Presentation is loading. Please wait.

Presentation is loading. Please wait.

Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Similar presentations


Presentation on theme: "Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs."— Presentation transcript:

1 Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs America

2 Path Tracing in SDN 1. Correctness: Trackdown the real path in the data plane 1. Correctness: Passively monitor the real packets 2. Scalability: Minimal operational, configuration cost 2

3 Challenges from Accuracy and Scalability Correctness vs. Complexity Scalability vs. Flexibility Complexity Correctness Configuratio n @controller Flow tables @switches Flexibility Scalability Probe packets Chosen paths Real packets Real paths VeriFlow ndb OFRewind 3 Anteater

4 Reducing Tracing Space Monitoring pathlets –# of pathlets is less than # of flows Tagging packets to differentiate pathlets –Precise calling context encoding (PCCE) is utilized 4

5 Precise Calling Context Encoding 1 1. for s in switches: PP[s] = calculatedPossiblePaths(s, A) 2. for s in switches: for l = in getIncomingEdges(s): if l is the first: continue else: PN[l] = PP[s] Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177. A B C D E F G 1 1 2 2 2 4 1 +1 +2 5

6 Precise Calling Context Encoding 1 1. for s in switches: PP[s] = calculatedPossiblePaths(s, A) 2. for s in switches: for l = in getIncomingEdges(s): if l is the first: continue else: PN[l] = PP[s] 3. for p in DepthFirstSearchPaths(G): ID[p] = sum(PN[l] for l in p) Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177. A B C D E F G 0 5 +1 +2

7 Precise Calling Context Encoding 1 1. for s in switches: PP[s] = calculatedPossiblePaths(s, A) 2. for s in switches: for l = in getIncomingEdges(s): if l is the first: continue else: PN[l] = PP[s] 3. for p in DepthFirstSearchPaths(G): ID[p] = sum(PN[l] for l in p) Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177. A B C D E F G 1 5 +1 +2

8 Precise Calling Context Encoding 1 1. for s in switches: PP[s] = calculatedPossiblePaths(s, A) 2. for s in switches: for l = in getIncomingEdges(s): if l is the first: continue else: PN[l] = PP[s] 3. for p in DepthFirstSearchPaths(G): ID[p] = sum(PN[l] for l in p) Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177. A B C D E F G 2 5 +1 +2

9 Precise Calling Context Encoding 1 1. for s in switches: PP[s] = calculatedPossiblePaths(s, A) 2. for s in switches: for l = in getIncomingEdges(s): if l is the first: continue else: PN[l] = PP[s] 3. for p in DepthFirstSearchPaths(G): ID[p] = sum(PN[l] for l in p) Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177. A B C D E F G 3 5 +1 +2

10 Codebook of Path IDs IDsitepath 0GABDEG 2GABDFG 1GACDEG 3GACDFG … … … A B C D E F G +1 +2 6

11 Codebook of Path IDs IDdstpath 0GABDEG 2GABDFG 1GACDEG 3GACDFG 0BGEDB … … `ID` + `dst` can uniquely identify a path – as long as `ID`s can be imprinted into packets, the paths can be determined A B C D E F G +1 +2 B D E G 6

12 Tagging Flows with Path IDs Encoding path IDs –8bit ToS –16bit IPID –20bit flow label in IPv6 Enabling actions of ID = ID + X –Enumerate ingress ports and paths A B C D E F G +1 +2 7

13 Enabling actions of ID=ID+X Enumerate ingress ports and paths –Port with no path, e.g., port ‘a’ –Port with one path, e.g., port ‘b’ –Port with multiple paths, e.g., port ‘c’ switch path Y path Z path Xno path a b c flow table IP src …… IP ToS switch port action * port amod_nw_tos:ID(NULL) * …… * port b mod_nw_tos:ID(X ) * …… * port c mod_nw_tos:ID(Y ) u …… * port c mod_nw_tos:ID(Z ) v …… 8

14 Path Tracing System flow table IP src …… IP tos switc h port action * port cmod_nw_tos:1 0 …… flow table IP src …… IP tos switc h port action * port cmod_nw_tos:1 0 …… flow table IP src …… IP tos switc h port action * port cmod_nw_tos:1 0 …… PathletTracer IDsitepath 0GABDEG 2GABDFG 1GACDEG 3GACDFG 0BGEDB IDsitepath 0GABDEG 2GABDFG 1GACDEG 3GACDFG 0BGEDB IDsitepath 0GABDEG 2GABDFG 1GACDEG 3GACDFG 0BGEDB path ABDEG ABDFG ACDEG ACDFG GEDB OpenFlow Controller 9

15 Conclusions A scalable data-plane path tracing application for SDN networks –Accuracy: data plane tracing Tagging flows with path identifiers –Scalability: calling context encoding Tracing more than 2 K paths by re-using K bits in packet headers 10

16 Thank You! Questions?


Download ppt "Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs."

Similar presentations


Ads by Google