Design principles in parser design

Size: px
Start display at page:

Download "Design principles in parser design"

Transcription

1 Design principles in parser design Glen Gibb Dept. of Electrical Engineering Advisor: Prof. Nick McKeown

2 Header parsing? 2

3 Header parsing? Identify headers & extract fields A???? B???? C?? Field Field Field Field Field 2

4 Header parsing? Identify headers & extract fields A???? B???? C?? Field Source Field Dest. Field Field Field Proto. 2

5 Header parsing? Identify headers & extract fields A???? B???? C?? Field Source Field Dest. Field Field Field Proto. Next Hop

6 Header parsing? Identify headers & extract fields A???? B???? C?? Field Field Field Dest. Source Dest. Field Field Field Proto. Next Hop

7 Header parsing? Identify headers & extract fields A???? B???? C?? Field Source Field Dest. Field Field Field Proto. Host X can talk to host Y Next Hop Field Dest. Firewall ALLOW DENY ALLOW except via HTTP 2

8 Header parsing? Identify headers & extract fields A???? B???? C?? Field Source Field Dest. Field Field Field Proto. Host X can talk to host Y Next Hop Field Dest. Firewall ALLOW DENY ALLOW except via HTTP 2

9 Header parsing? Identify headers & extract fields A???? B???? C?? Field Source Field Dest. Field Field Field Proto. Host X can talk to host Y Next Hop Field Dest. Field Source Field Dest. Field Proto. Firewall ALLOW DENY ALLOW except via HTTP 2

10 Header parsing? Identify headers & extract fields A???? B???? C?? Field Source Field Dest. Field Field Field Proto. Host X can talk to host Y Next Hop Field Dest. Field Source Field Dest. Field Proto. Firewall ALLOW DENY ALLOW except via HTTP > 1 billion packets / second New packet every ns 2

11 Almost no prior work 3

12 Leaping Multiple Headers in a Single Bound: Wire-Speed Parsing Using the Kangaroo System C. Kozanitis, J. Huber, S. Singh, & G. Varghese INFOCOM 2010 Programmable parser Parses multiple headers per cycle Receives all headers before parsing high latency 4

13 400 Gb/s Programmable Packet Parsing on a Single FPGA M. Attig & G. Brebner ANCS 2011 Language to describe header sequences Compile into efficient designs on FPGA FPGA-centric commercial switches are ASICs Extremely deep pipeline (100+ stages) 5

14 Neither paper analyzes design trade-offs or presents design principles 6

15 Outline 1. Packet parsing 2. Understanding parser design 3. Providing flexibility 7

16 Packet parsing Network review Parsing process 8

17 Internet 9

18 9

19 9

20

21 Packet Color Output Port

22 Packet Color Output Port

23 Packet 11

24 Header 1 Header 2 Packet Header 3 Payload 11

25 Header 1 Header 2 Packet Header 3 Payload Field 1 Field 2 Field 3... Field n 11

26 (Ethernet) (VLAN) (IPv4) Header 1 Header 2 Packet Header 3 Payload Field 1 Field 2 Field 3... Field n (Source Address) (Destination Address) 11

27 (Ethernet) (VLAN) (IPv4) Header 1 Header 2 Packet Header 3 Payload Field 1 Field 2 Field 3... Field n (Source Address) (Destination Address) Destination Port A 1 B 2 C 3 D 4 11

28 Header fields Match Tables Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets 12

29 Ethernet VLAN IP TCP Src MAC Dst MAC Eth Type VLAN ID Src IP Dst IP Protocol Priority Src Port Dst Port Header fields Match Tables Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets 12

30 Ethernet VLAN IP TCP Src MAC Dst MAC Eth Type VLAN ID Src IP Dst IP Protocol Priority Src Port Dst Port In Parser Src MAC Dst MAC Eth Type VLAN ID Header fields Ethernet Forwarding Eth Type Dst IP IP Routing Src MAC Dst MAC Eth Type VLAN ID Src IP Dst IP Protocol Priority Match Tables Access Control List Src Port Dst Port Action Processing Queues Out Packets 12

31 Packet parsing Network review Parsing process 13

32 Parsing: identify headers & extract fields 14

33 Parsing: identify headers & extract fields A B C A D A B B 14

34 Parsing: identify headers & extract fields A B C A D A B B?????????? 14

35 Parsing: identify headers & extract fields A B C A D A B B A?????????? 14

36 Parsing: identify headers & extract fields A B C A D A B B Next: B A?????????? 14

37 Parsing: identify headers & extract fields A B C A D A B B Next: B A?????????? 14

38 Parsing: identify headers & extract fields A B C A D A B B Next: B A?????? B???? 14

39 Parsing: identify headers & extract fields A B C A D A B B Next: B Len: 20B Next: C A?????? B???? 14

40 Parsing: identify headers & extract fields A B C A D A B B Field Next: B Len: 20B Next: C A?????? B???? 14

41 Parsing: identify headers & extract fields A B C A D A B B Field Next: B Len: 20B Next: C A???? B?????? 14

42 Parsing: identify headers & extract fields A B C A D A B B Field Next: B Len: 20B Next: C Field Field A???? B?????? 14

43 Parsing: identify headers & extract fields A B C A D A B B Field Next: B Len: 20B Next: C Next: Field Field Field A???? B???? C?? 14

44 Parsing: identify headers & extract fields A B C A B B A D Next Hop Next: B Len: 20B Next: C Next: Field Field Field Field A???? B???? C?? 14

45 Parse graphs A B C D E F 15

46 Parse graphs A B C A C D F D E F 15

47 Parse graphs A Extract fields: 1, 2 B Extract fields: 2 C Extract fields: 1 D Extract fields: 2, 4 E Extract fields: 2 F Extract fields: 1, 2 15

48 Parse graphs A Extract fields: 1, 2 B Extract fields: 2 C Extract fields: 1 Parse graph is D E Extract fields: 2, 4 Extract fields: 2 the state machine F Extract fields: 1, 2 15

49 Parse graphs in the field ARP/RARP Ethernet IPv4 VLAN IPv6 VLAN Ethernet IPv4 VLAN VLAN Ethernet TCP UDP ICMP Enterprise TCP VXLAN UDP GRE Ethernet ARP/RARP NVGRE MPLS Data center MPLS MPLS Ethernet MPLS ARP IPv4 IPv6 RARP MPLS IPv4 IPv6 Service provider 16 TCP UDP SCTP GRE IPsec AH IPsec ESP Enterprise edge

50 Parse graphs in the field Ethernet VLAN (802.1ad) PBB (802.1ah) ARP VLAN (802.1Q) EoMPLS RARP ICMPv6 VLAN (802.1Q) MPLS IPv6 MPLS MPLS IPv4 MPLS MPLS GRE IPsec ESP IPsec AH SCTP UDP TCP ICMP NVGRE IPv6 IPv4 VXLAN Ethernet 16

51 What makes parsing hard? 17

52 What makes parsing hard? Ethernet Many headers Many paths VLAN (802.1ad) PBB (802.1ah) ARP VLAN (802.1Q) EoMPLS RARP ICMPv6 VLAN (802.1Q) MPLS IPv6 MPLS MPLS IPv4 MPLS MPLS Variable path lengths Ethernet GRE IPsec ESP IPsec AH SCTP UDP NVGRE IPv6 IPv4 VXLAN TCP ICMP 17

53 What makes parsing hard? Ethernet Many headers Many paths VLAN (802.1ad) PBB (802.1ah) ARP VLAN (802.1Q) EoMPLS RARP ICMPv6 VLAN (802.1Q) MPLS IPv6 MPLS MPLS IPv4 MPLS MPLS Variable path lengths Ethernet GRE IPsec ESP IPsec AH SCTP UDP NVGRE IPv6 IPv4 VXLAN TCP ICMP Variable header lengths Ethernet Len: 14B IPv4 Len: 20-60B TCP Len: 20-60B Payload Header identified by previous Next: IPv4 Len: 20B Next: TCP Len: 20B 17

54 What makes parsing hard? Ethernet Many headers Many paths VLAN (802.1ad) PBB (802.1ah) ARP VLAN (802.1Q) EoMPLS RARP ICMPv6 VLAN (802.1Q) MPLS IPv6 MPLS MPLS IPv4 MPLS MPLS Variable path lengths Ethernet GRE IPsec ESP IPsec AH SCTP UDP NVGRE IPv6 IPv4 VXLAN TCP ICMP Variable header lengths Ethernet Len: 14B IPv4 Len: 20-60B TCP Len: 20-60B Payload Header identified by previous Next: IPv4 Len: 20B Next: TCP Len: 20B Line rate Aggressive latency Area & power constrained 17

55 What makes parsing hard? Ethernet Many headers Many paths VLAN (802.1ad) PBB (802.1ah) ARP VLAN (802.1Q) EoMPLS RARP ICMPv6 VLAN (802.1Q) MPLS IPv6 MPLS MPLS IPv4 MPLS MPLS Variable path lengths Ethernet GRE IPsec ESP IPsec AH SCTP UDP NVGRE IPv6 IPv4 VXLAN TCP ICMP Variable header lengths Ethernet Len: 14B IPv4 Len: 20-60B TCP Len: 20-60B Payload Header identified by previous Next: IPv4 Len: 20B Next: TCP Len: 20B Line rate Aggressive latency Area & power constrained 64 x 10 Gb/s switch: 1 billion pkts/sec 250ns port-to-port 40W 17

56 Implementing a parser 18

57 Implementing a parser A B C D E F 18

58 Implementing a parser A Header Identification B C D F E Header types & locations Field Extraction Extracted Field Buffer Packet data 18 Extracted fields

59 Implementing a parser A Field (Source) Field (Dest) Field Field Header Identification Field (Proto)?????????? B D C Field (Source) F Field (Dest) E Field (Proto) Access Control ALLOW Header types DENY & locations Field ALLOWExtraction Extracted Field Buffer Packet data 18 Extracted fields

60 Implementing a parser B A D Field (Source) C Field (Source) F Field (Dest) E Field (Dest) Field (Proto) Field Field Header Identification Access Control ALLOW Header types DENY & locations Field ALLOWExtraction Field (Proto) A?????????? Extracted Field Buffer Packet data 18 Extracted fields

61 Implementing a parser A Field Field Header Identification Field (Proto) A?????????? B D C Field (Source) F Field (Dest) E Field (Proto) Extracted Field Buffer Access Control ALLOW Header types DENY & locations Field ALLOWExtraction Extracted Field Buffer Packet data 18 Extracted fields

62 Implementing a parser A???? B???? C?? B A D C Field (Source) F Field (Dest) E Field (Proto) Extracted Field Buffer Header Identification Access Control ALLOW Header types DENY & locations Field ALLOWExtraction Extracted Field Buffer Packet data 18 Extracted fields

63 Implementing a parser A Header Identification B C D F E Header types & locations Field Extraction Extracted Field Buffer Packet data 19 Extracted fields

64 Implementing a parser A Header Identification B C D F E State Machine Header types & locations Field Extraction Extracted Field Buffer Packet data 19 Extracted fields

65 Implementing a parser A Header Identification B C D F E State Machine Header types & locations Field Extraction Header Extract Fields A A1, A2 B B1 C C2, C4 Extracted Field Buffer Packet data 19 Extracted fields

66 Data processing width????????????? 20

67 Data processing width????????????? A B C D E F 20

68 Data processing width????????????? Packet position (B) B A D C E B A D C E F F 20

69 Data processing width????????????? Packet position (B) B A D C E B A D C E F F 20

70 Data processing width????????????? Packet position (B) B A D C E B A D C E F F 4 cycles, 1 decision/cycle 20

71 Data processing width????????????? Packet position (B) B A D C E B A D C E F F 4 cycles, 1 decision/cycle 20

72 Data processing width????????????? Packet position (B) B A D C E B A D C E F F 4 cycles, 1 decision/cycle 20 2 cycles, 2 decisions/cycle

73 21

74 Processing width: 1B Processing width: 2B Processing width: 3B Processing width: 16B 21

75 Parser construction Processing width: 1B Prototype: 2 months Processing width: 2B Processing width: 3B Processing width: 16B 21

76 Parser construction Processing width: 1B Prototype: 2 months Processing width: 2B Processing width: 3B Processing width: 1B Processing width: 2B Rate: 10 Gb/s Rate: 20 Gb/s Processing width: 16B Processing width: 2B Rate: 100 Gb/s 21

77 Understanding parser design Parser generator Trade-offs in parser design 22

78 Parse graph Clock Processing width Parsers per chip Parser Generator.v Parser (Verilog) Synthesis Netlist Layout Reports: 23 area, power, timing

79 Parse graph Clock Processing width Parsers per chip Parser Generator.v Parser (Verilog) Synthesis Netlist Layout Reports: 24 area, power, timing

80 Parse graph Clock Processing width Parsers per chip Parser Generator Genesis [Shacham et. al., IEEE Micro 10] Architectural Template Per-Application Configuration A = 1 B = 12 + Design Instance.v Parser (Verilog) Synthesis Netlist Layout Reports: 24 area, power, timing

81 Parse graph Clock Processing width Parsers per chip Parser Generator //; foreach my $header { //; my $hdrparser = generate('hdr_parser', //; "hdr_parser_". $n++, //; Header => $header); `$hdrparser->instantiate()` (.pkt_data (pkt data), Parser architectural template: mixed Perl/Verilog Genesis [Shacham et. al., IEEE Micro 10] Architectural Template Per-Application Configuration A = 1 B = 12 + Design Instance.v Parser (Verilog) Synthesis Netlist Layout Reports: 24 area, power, timing

82 Parse graph Processing Width Parser Generator.v Parser design 25

83 Parse graph Processing Width Parser Generator.v Parser design header { name: fields: extract: next-header: }... Parse Graph & Header Formats 25

84 Parse graph Processing Width Parser Generator.v Parser design header { name: fields: extract: next-header: } A... Parse Graph & Header Formats B D C E F 25

85 Parse graph Processing Width Parser Generator.v Parser design header { name: fields: extract: next-header: } A... Parse Graph & Header Formats B D C E F 25

86 Parse graph Processing Width Parser Generator.v Parser design header { name: fields: extract: next-header: } A A A B A C... Parse Graph & Header Formats B D C E F 25

87 Parse graph Processing Width Parser Generator.v Parser design header { name: fields: extract: next-header: } A A A B A C... C Parse Graph & Header Formats B D C F E D D F C D C E E E F 25

88 A B Next Header C D 26

89 A A B Next Header B Next Header C D C D 26

90 A A B Next Header Requires buffering to delay processing B Next Header C D C D Process all data by packet end more data some cycles 26

91 Meeting throughput needs 27

92 Meeting throughput needs r = f w throughput (rate) frequency data width 27

93 Meeting throughput needs r = f w throughput (rate) frequency data width width: w Parser width: w/n Parser 1 width: w/n Parser n 27

94 Meeting throughput needs r = f w throughput (rate) frequency data width r = n f w/n width: w Parser width: w/n Parser 1 width: w/n Parser n 27

95 Understanding parser design Parser generator Trade-offs in parser design 28

96 Data processing width? Fixed for switch r = n f w width: w width: w Parser 1 Parser n Single instance: Build a single parser of rate r (r = const n = 1 f 1/w) Multiple instances: Build multiple parsers with total rate r (r = const f = const n 1/w) 29

97 Single parser instance 10 Gb/s Big parse graph 8 M 6 M Gates Power Gates 4 M 300 Power (mw) 2 M M Processing width (B) 30 0

98 Single parser instance 10 Gb/s Big parse graph 8 M 6 M Gates Power Gates 4 M 300 Power (mw) 2 M M Processing width (B) 30 0

99 Single parser instance 10 Gb/s Big parse graph 8 M 6 M Gates Power Gates 4 M 300 Power (mw) 2 M Area: narrow width M Power: slow clock Processing width (B) 30 0

100 Aggregating parsers 2M 640 Gb/s Big parse graph M 450 Gates 1M Size Power 300 Power (mw) 0.5M 150 0M Rate (Gb/s) per instance 31

101 Aggregating parsers 2M 640 Gb/s Big parse graph M 450 Gates 1M Size Power 300 Power (mw) 0.5M 150 0M Rate (Gb/s) per instance 31

102 Aggregating parsers 2M 640 Gb/s Big parse graph M 450 Gates 1M Size Power Area: independent of instance rate 300 Power (mw) 0.5M and count 150 Power: prefer fewer fast parsers 0M Rate (Gb/s) per instance 31 0

103 Parse graph impacts area 32

104 Parse graph impacts area Enterprise Enterprise Edge Service Provider Big 32

105 Parse graph impacts area Enterprise Enterprise Edge Service Provider Big 2 M 1.5 M Gates 1 M 0.5 M 0 M 10 Gb/s 20 Gb/s 40 Gb/s 80 Gb/s Rate per instance 32

106 Parse graph impacts area Enterprise Enterprise Edge Service Provider Big 2 M 640 Gb/s aggregate 1.5 M Gates 1 M 0.5 M 0 M 10 Gb/s 20 Gb/s 40 Gb/s 80 Gb/s Rate per instance 32

107 Parse graph impacts area Enterprise Enterprise Edge Service Provider Big 2 M 1.5 M 640 Gb/s aggregate Why? Gates 1 M 0.5 M 0 M 10 Gb/s 20 Gb/s 40 Gb/s 80 Gb/s Rate per instance 32

108 Extracted fields dominate area 2 M 1.5 M 640 Gb/s 40 Gb/s per instance Header Identification Field Extraction Field Result Buffer Gates 1 M 0.5 M 0 M Enterprise Enterprise Edge Service Provider Composite 33

109 Extracted fields dominate area 2 M 1.5 M 640 Gb/s 40 Gb/s per instance Header Identification Field Extraction Field Result Buffer Gates 1 M 0.5 M 0 M 672 b 888 b 688 b 1664 b Enterprise Enterprise Edge Service Provider Composite 33

110 672b 888b 688b 1672b 34

111 672b 2 M 888b 688b 640 Gb/s 40 Gb/s per instance 1672b 1.5 M Gates 1 M 0.5 M 0 M Field Result Buffer Width (b) 34

112 672b 2 M 888b 688b 640 Gb/s 40 Gb/s per instance 1672b 1.5 M Gates 1 M 0.5 M 0 M Field Result Buffer Width (b) 34

113 672b 888b 2 M 688b 640 Gb/s 40 Gb/s per instance 1672b 1.5 M Gates 1 M 0.5 M 0 M 3 headers Extracted fields: 1672b Field Result Buffer Width (b) 34

114 672b 888b 2 M 688b 640 Gb/s 40 Gb/s per instance 1672b 1.5 M Gates 1 M 0.5 M 0 M 3 headers Extracted fields: 1672b Field Result Buffer Width (b) 34

115 672b 2 M Area 888b determined by 688b 640 Gb/s 40 Gb/s per instance 1672b extracted field buffer size 1.5 M Gates 1 M 0.5 M 0 M Field Result Buffer Width (b) 34 3 headers Extracted fields: 1672b

116 Design principles Single parser instances area minimize by reducing width power minimize by reducing clock Aggregating instances for throughput area independent of instance rate & count power minimize using few fast instances Extracted field buffer dominates area Area determined by extracted field size total 35

117 Providing flexibility RMT model Programmable parser Generating parse table entries 36

118 Parser specific to one parse graph 37

119 Parser specific to one parse graph Parser 37

120 Parser specific to one parse graph Parser 37

121 Parser specific to one parse graph Parser 37

122 Parser specific to one parse graph Parser S1 37

123 Parser specific to one parse graph Parser Switch = S1 S1 37

124 38

125 Header fields Match Tables Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets 38

126 Header fields Match Tables Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets CPU GPU FPGA OpenFlow/SDN? 38

127 Header fields Match Tables Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets 39

128 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets 39

129 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets Reconfigurable Multiple Table (RMT) Reconfigurable Match + Action Tables Queues In Programmable Parser Recombine Out Packets 39

130 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets Reconfigurable Multiple Table (RMT) Reconfigurable Match + Action Tables Queues In Programmable Parser Recombine Out Packets 39

131 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets Reconfigurable Multiple Table (RMT) Reconfigurable Match + Action Tables Queues In Programmable Parser Recombine Out Packets 39

132 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets Reconfigurable Multiple Table (RMT) Reconfigurable Match + Action Tables Queues In Programmable Parser Recombine Out Packets 39

133 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets Reconfigurable Multiple Table (RMT) Reconfigurable Match + Action Tables Queues In Programmable Parser Recombine Out Packets 39

134 Header fields Match Tables Multiple Match Table (MMT) Queues In Parser Ethernet Forwarding IP Routing Access Control List Action Processing Out Packets Reconfigurable Multiple Table (RMT) Reconfigurable Match + Action Tables Queues In Programmable Parser Recombine Out Packets 39

135 RMT architecture Stage 1 Stage n IN DATA HEADER Match Table Action Match Table Action Recombine Output Queues OUT 40

136 RMT architecture Stage 1 Stage n ta IN H DATA HEADER Match Table Action Match Table Action Recombine Output Queues OUT 40

137 RMT architecture Stage 1 Stage n IN Data DATA HEADER H Match Table Action Match Table Action Recombine Output Queues OUT 40

138 RMT architecture Stage 1 Stage n IN Data DATA HEADER Match Table Action Match Table Action Recombine Output Queues OUT 40

139 RMT architecture Stage 1 Stage n IN Data DATA HEADER Match Table Action Match Table Action Recombine Output Queues OUT 40

140 RMT architecture Stage 1 Stage n IN Data DATA HEADER Match Table Action Match Table Action Recombine Output Queues OUT 40

141 RMT architecture Stage 1 Stage n IN DATA HEADER Match Table Action Match Table Action Data Recombine Output Queues OUT 40

142 RMT architecture Stage 1 Stage n IN DATA HEADER Match Table Action Match Table Action Recombine Output Data Queues H OUT 40

143 RMT architecture Stage 1 Stage n IN DATA HEADER Match Table Action Match Table Action Recombine Output Queues OUT 40

144 RMT Match Tables Physical Stage 1 Physical Stage 2 Physical Stage n Logical Table 1 Logical Table 3 6 Logical Table

145 Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN P. Bosshart, G.Gibb, H.S. Kim, G. Varghese, N. McKeown, M. Izzard, F. Mujica & M. Horowitz SIGCOMM 2013 [to appear] 42

146 Providing flexibility RMT model Programmable parser Generating parse table entries 43

147 Providing programmability C Header Identification C D C E D D F Header types & locations Field Extraction Header Extract Fields A A1, A2 B B1 C C2, C4 Extracted Field Buffer B A C E E F Packet data Extracted fields D E 44 F

148 Providing programmability Replace hard-coded C Header Identification logic with C D programmable logic C E D D F Header types & locations Field Extraction Header Extract Fields A A1, A2 B B1 C C2, C4 Extracted Field Buffer B A C E E F Packet data Extracted fields D E 44 F

149 Providing programmability C Header Identification C D Curr. State Match Values Next State A A1, A2 B B B1 -- C C2, C4 D D C E D F Header types & locations Field Extraction Header Extract Fields A A1, A2 B B1 C C2, C4 Extracted Field Buffer B A C E E F Packet data Extracted fields D E 44 F

150 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

151 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

152 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

153 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

154 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

155 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

156 A B C D E F Current State Match Values Next State A 11 (A B) B A A C C C C D, D F F C C E E 45

157 Parser state table 46

158 Parser state table Current State Match Values Next State 46

159 Parser state table TCAM or RAM RAM Current State Match Values Next State 46

160 Parser state table TCAM or RAM RAM Current State Match Values Next State Header Length 46

161 Parser state table TCAM or RAM RAM Current State Match Values Next State Header Length Next Match Offsets 46

162 Parser state table TCAM or RAM RAM Current State Match Values Next State Header Length Next Match Offsets Next header location Next match locations 46

163 Parser state table TCAM or RAM RAM Optional Current State Match Values Next State Header Length Next Match Offsets Next header location Next match locations 46

164 Parser state table TCAM or RAM RAM Optional Current State Match Values Next State Header Length Next Match Offsets Next Lookup Mask Next header location Next match locations 46

165 Parser state table TCAM or RAM RAM Optional Current State Match Values Next State Header Length Next Match Offsets Next Lookup Mask Extract Fields Next header location Next match locations 46

166 Cost of programmability Extracted Field Buffer TCAM (State Table) Hdr Ident/Field Extract RAM (State Table) 47

167 Cost of programmability Extracted Field Buffer TCAM (State Table) Hdr Ident/Field Extract RAM (State Table) 7 M 5.25 M Gates 3.5 M 1.75 M 0 M Fixed Programmable 47

168 Cost of programmability Extracted Field Buffer TCAM (State Table) Hdr Ident/Field Extract RAM (State Table) 7 M 5.25 M Gates 3.5 M 1.75 M 0 M Fixed Programmable 47

169 Cost of programmability Extracted Field Buffer TCAM (State Table) Hdr Ident/Field Extract RAM (State Table) 7 M 4.4mm 2 Gates 5.25 M 3.5 M 2.6mm M 0 M Fixed Programmable 47

170 Cost of programmability Extracted Field Buffer TCAM (State Table) Hdr Ident/Field Extract RAM (State Table) Programmability costs 1.5-3x 7 M 4.4mm 2 Gates State 5.25 M table size determines area 3.5 M 2.6mm 2 increase 1.75 M 0 M Fixed Programmable 47

171 Take-aways Cost of programmability 1.5-3x fixed parser area State table dominates additional area area minimize TCAM and RAM Parse graph edge count determines table size 48

172 Providing flexibility RMT model Programmable parser Generating parse table entries 49

173 Naïve generation of state table entries 50

174 Naïve generation of state table entries 150 TCAM table size (Kb) Processing width (B) 50

175 Naïve generation of state table entries 150 TCAM table size (Kb) Processing width (B) 50

176 State table entry generation A Current State Match Values Next State B C A 11 (A B) B D E A A C C C C D, D F F F C C E E 51

177 State table entry generation A Current State Match Values Next State B C A 11 (A B) B D E A A C C C C D, D F F F C C E E 51

178 State table entry generation A Current State Match Values Next State B C A 11 (A B) B D E A A C C C C D, D F F F C C E E Merge nodes to minimize edges 51

179 State table entry generation A Current State Match Values Next State B C A 11 (A B) B D E A A C C C C D, D F F F C C E E Merge nodes to minimize edges Problem: graph clustering is NP-hard 51

180 Kangaroo Intuition: iteratively identify minimal edge clustering starting at leaves 52

181 Kangaroo Intuition: iteratively identify minimal edge clustering starting at leaves 52

182 Kangaroo Intuition: iteratively identify minimal edge clustering starting at leaves 52

183 Kangaroo Intuition: iteratively identify minimal edge clustering starting at leaves 52

184 Kangaroo Intuition: iteratively identify minimal edge clustering starting at leaves Kangaroo s algorithm: access to data anywhere in header region non-minimal solutions for non-trees 52

185 Improving solution for non-trees 53

186 Improving solution for non-trees 53

187 Improving solution for non-trees 53

188 Improving solution for non-trees Two independent solutions 53

189 Improving solution for non-trees Solution: solve shared regions independently Two independent solutions 53

190 Improving solution for non-trees Solution: solve shared regions independently Two independent solutions 53

191 Improving solution for non-trees Solution: solve shared regions independently Two independent solutions 53

192 Improving solution for non-trees Solution: solve shared regions independently Two independent solutions 53

193 Improving solution for non-trees Solution: solve shared regions independently Two independent solutions 53

194 Streaming-aware algorithm Kangaroo: Streaming: 54

195 Streaming-aware algorithm Kangaroo: Streaming: 54

196 Streaming-aware algorithm Kangaroo: Streaming: 54

197 Streaming-aware algorithm Kangaroo: Streaming: 54

198 Streaming-aware algorithm Kangaroo: Streaming: Next Hdr Next Hdr 54

199 Streaming-aware algorithm Kangaroo: OPT(n, b) = min c2clusters(n) 1 X OPT(j,...) A j2fringe(c) 55

200 Streaming-aware algorithm Kangaroo: OPT(n, b) = min c2clusters(n) 1 X OPT(j,...) A j2fringe(c) Streaming: OPT(n, b, w) = min c2clusters(n,w) X j2fringe(c) 1 OPT(j,..., NewLoc(w, j, c)) A 55

201 Streaming-aware algorithm Kangaroo: OPT(n, b) = min c2clusters(n) 1 X OPT(j,...) A j2fringe(c) Streaming: OPT(n, b, w) = min c2clusters(n,w) X j2fringe(c) 1 OPT(j,..., NewLoc(w, j, c)) A New parameter: window location 55

202 Streaming-aware algorithm Kangaroo: OPT(n, b) = min c2clusters(n) 1 X OPT(j,...) A j2fringe(c) Streaming: OPT(n, b, w) = min c2clusters(n,w) X j2fringe(c) 1 OPT(j,..., NewLoc(w, j, c)) A New parameter: window location Node clusters restricted by: windows location window size 55

203 Streaming-aware algorithm Kangaroo: OPT(n, b) = min c2clusters(n) 1 X OPT(j,...) A j2fringe(c) Streaming: OPT(n, b, w) = min c2clusters(n,w) X j2fringe(c) 1 OPT(j,..., NewLoc(w, j, c)) A New parameter: window location Node clusters restricted by: windows location window size Updated location for subgraphs 55

204 Algorithm performance O( E V d k ) Method Naive Algorithm (excluding non-tree logic) Algorithm 40b TCAM (8b state + 2 x 16b inputs) 342 entries 0.48s 177 entries 2.6s 112 entries 128.7s 56b TCAM (8b state + 3 x 16b inputs) 641 entries 0.48s 170 entries 5.5s 106 entries 207.6s 56

205 Benefits of parallel lookups? Table entries required Lookups Data arrival rate (bits/cycle) 57

206 Benefits of parallel lookups? Table entries required Lookups Data arrival rate (bits/cycle) 57

207 Benefits of parallel lookups? Table entries required Unable to process at arrival rate Lookups Data arrival rate (bits/cycle) 57

208 Benefits of parallel lookups? 8000 TCAM bits required Table entries required Unable to process at arrival rate Lookups Data arrival rate (bits/cycle) 57

209 Benefits of parallel lookups? 8000 TCAM bits required Table entries required Minimize parallel lookups 0 Unable to process at arrival rate for single instance Data arrival rate (bits/cycle) 57 Lookups

210 Contributions Parser generator Parser design trade-off analysis & principles Fixed parsers Single parser instances area minimize by reducing width power minimize by reducing clock Aggregating instances for throughput area independent of instance rate & count power minimize using few fast instances Extracted field buffer dominates area Programmable parsers Cost of programmability is low (1.5-3x) State table dominates area increase RMT model State table generation algorithm 58

211 Publications Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN Bosshart, P., Gibb, G., et. al. SIGCOMM 2013 [to appear] Outsourcing network functionality Gibb, G., Zeng, H., and McKeown, N., HotSDN '12. Initial Thoughts on the Waypoint Service Gibb, G., Zeng, H., and McKeown, N., WISH '11. Can the Production Network be the Testbed? Sherwood, R., Gibb, G., et. al, OSDI '10. A Packet Generator on the NetFPGA platform Covington, G.A., Gibb, G., et. al. FCCM '09,. NetFPGA An Open Platform for Teaching How to Build Gigabit-rate Network Switches and Routers Gibb, G., et. al. IEEE Transactions on Education 08. NetFPGA: Reusable Router Architecture for Experimental Research Naous, J., Gibb, G., et. al. PRESTO '08. Building a RCP (Rate Control Protocol) Test Network Dukkipati, N., Gibb, G. et. al. Hot Interconnects 07. NetFPGA An Open Platform for Gigabit- Rate Network Switching and Routing Lockwood, J., et. al. MSE '07 59

Slicing a Network. Software-Defined Network (SDN) FlowVisor. Advanced! Computer Networks. Centralized Network Control (NC)

Slicing a Network. Software-Defined Network (SDN) FlowVisor. Advanced! Computer Networks. Centralized Network Control (NC) Slicing a Network Advanced! Computer Networks Sherwood, R., et al., Can the Production Network Be the Testbed? Proc. of the 9 th USENIX Symposium on OSDI, 2010 Reference: [C+07] Cascado et al., Ethane:

More information

Line-rate packet processing in hardware: the evolution towards 400 Gbit/s

Line-rate packet processing in hardware: the evolution towards 400 Gbit/s Proceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, 2014. Vol. 1. pp. 259 268 doi: 10.14794/ICAI.9.2014.1.259 Line-rate packet processing in hardware:

More information

cs144 Midterm Review Fall 2010

cs144 Midterm Review Fall 2010 cs144 Midterm Review Fall 2010 Administrivia Lab 3 in flight. Due: Thursday, Oct 28 Midterm is this Thursday, Oct 21 (during class) Remember Grading Policy: - Exam grade = max (final, (final + midterm)/2)

More information

HEADER SPACE ANALYSIS

HEADER SPACE ANALYSIS HEADER SPACE ANALYSIS Peyman Kazemian (Stanford University) George Varghese (UCSD, Yahoo Labs) Nick McKeown (Stanford University) 1 July 17 th, 2012 Joint Techs 2012 TODAY A typical network is a complex

More information

Lesson 9 OpenFlow. Objectives :

Lesson 9 OpenFlow. Objectives : 1 Lesson 9 Objectives : is new technology developed in 2004 which introduce Flow for D-plane. The Flow can be defined any combinations of Source/Destination MAC, VLAN Tag, IP address or port number etc.

More information

P4 for an FPGA target

P4 for an FPGA target P4 for an FPGA target Gordon Brebner Xilinx Labs San José, USA P4 Workshop, Stanford University, 4 June 2015 What this talk is about FPGAs and packet processing languages Xilinx SDNet data plane builder

More information

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA Weirong Jiang, Viktor K. Prasanna University of Southern California Norio Yamagaki NEC Corporation September 1, 2010 Outline

More information

NetFPGA Hardware Architecture

NetFPGA Hardware Architecture NetFPGA Hardware Architecture Jeffrey Shafer Some slides adapted from Stanford NetFPGA tutorials NetFPGA http://netfpga.org 2 NetFPGA Components Virtex-II Pro 5 FPGA 53,136 logic cells 4,176 Kbit block

More information

COMP211 Chapter 4 Network Layer: The Data Plane

COMP211 Chapter 4 Network Layer: The Data Plane COMP211 Chapter 4 Network Layer: The Data Plane All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th edition Jim Kurose, Keith Ross

More information

P51: High Performance Networking

P51: High Performance Networking P51: High Performance Networking Lecture 6: Programmable network devices Dr Noa Zilberman noa.zilberman@cl.cam.ac.uk Lent 2017/18 High Throughput Interfaces Performance Limitations So far we discussed

More information

Jakub Cabal et al. CESNET

Jakub Cabal et al. CESNET CONFIGURABLE FPGA PACKET PARSER FOR TERABIT NETWORKS WITH GUARANTEED WIRE- SPEED THROUGHPUT Jakub Cabal et al. CESNET 2018/02/27 FPGA, Monterey, USA Packet parsing INTRODUCTION It is among basic operations

More information

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router Overview Implementing Gigabit Routers with NetFPGA Prof. Sasu Tarkoma The NetFPGA is a low-cost platform for teaching networking hardware and router design, and a tool for networking researchers. The NetFPGA

More information

Network Processors. Nevin Heintze Agere Systems

Network Processors. Nevin Heintze Agere Systems Network Processors Nevin Heintze Agere Systems Network Processors What are the packaging challenges for NPs? Caveat: I know very little about packaging. Network Processors What are the packaging challenges

More information

Experience with the NetFPGA Program

Experience with the NetFPGA Program Experience with the NetFPGA Program John W. Lockwood Algo-Logic Systems Algo-Logic.com With input from the Stanford University NetFPGA Group & Xilinx XUP Program Sunday, February 21, 2010 FPGA-2010 Pre-Conference

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Network Layer IPv4, Format and Addressing,, IPv6 Prof. Lina Battestilli Fall 2017 Chapter 4 Outline Network Layer: Data Plane 4.1 Overview of Network layer

More information

Leaping multiple headers in a single bound: wire-speed parsing using the Kangaroo system

Leaping multiple headers in a single bound: wire-speed parsing using the Kangaroo system Leaping multiple headers in a single bound: wire-speed parsing using the Kangaroo system Christos Kozanitis University of California San Diego Email: ckozanit@cs.ucsd.edu John Huber Cisco Inc San Diego,

More information

Motivation to Teach Network Hardware

Motivation to Teach Network Hardware NetFPGA: An Open Platform for Gigabit-rate Network Switching and Routing John W. Lockwood, Nick McKeown Greg Watson, Glen Gibb, Paul Hartke, Jad Naous, Ramanan Raghuraman, and Jianying Luo JWLockwd@stanford.edu

More information

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Lecture 3. The Network Layer (cont d) Network Layer 1-1 Lecture 3 The Network Layer (cont d) Network Layer 1-1 Agenda The Network Layer (cont d) What is inside a router? Internet Protocol (IP) IPv4 fragmentation and addressing IP Address Classes and Subnets

More information

Programming Protocol-Independent Packet Processors

Programming Protocol-Independent Packet Processors Programming Protocol-Independent Packet Processors Pat Bosshart, Dan Daly *, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford **, Cole Schlesinger **, Dan Talayco, Amin Vahdat, George Varghese,

More information

Lecture 8. Network Layer (cont d) Network Layer 1-1

Lecture 8. Network Layer (cont d) Network Layer 1-1 Lecture 8 Network Layer (cont d) Network Layer 1-1 Agenda The Network Layer (cont d) What is inside a router Internet Protocol (IP) IPv4 fragmentation and addressing IP Address Classes and Subnets Network

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see

More information

CSC 4900 Computer Networks: Network Layer

CSC 4900 Computer Networks: Network Layer CSC 4900 Computer Networks: Network Layer Professor Henry Carter Fall 2017 Chapter 4: Network Layer 4. 1 Introduction 4.2 What s inside a router 4.3 IP: Internet Protocol Datagram format 4.4 Generalized

More information

Bringing Programmability to the Data Plane: Packet Processing with a NoC-Enhanced FPGA

Bringing Programmability to the Data Plane: Packet Processing with a NoC-Enhanced FPGA Total Tranceiver BW (Gb/s) Bringing Programmability to the Data Plane: Packet Processing with a NoC-Enhanced FPGA Andrew Bitar, Mohamed S. Abdelfattah, Vaughn Betz Department of Electrical and Computer

More information

Computer Networking: A Top Down Approach Featuring the. Computer Networks with Internet Technology, William

Computer Networking: A Top Down Approach Featuring the. Computer Networks with Internet Technology, William Dr. John Keeney 3BA33 TCP/IP protocol architecture with IP OSI Model Layers TCP/IP Protocol Architecture Layers TCP/IP Protocol Suite Application Layer Application Layer Telnet FTP HTTP DNS RIPng SNMP

More information

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011 // Bottlenecks Memory, memory, 88 - Switch and Router Design Dr. David Hay Ross 8b dhay@cs.huji.ac.il Source: Nick Mckeown, Isaac Keslassy Packet Processing Examples Address Lookup (IP/Ethernet) Where

More information

Configuring OpenFlow 1

Configuring OpenFlow 1 Contents Configuring OpenFlow 1 Overview 1 OpenFlow switch 1 OpenFlow port 1 OpenFlow instance 2 OpenFlow flow table 3 Group table 5 Meter table 5 OpenFlow channel 6 Protocols and standards 7 Configuration

More information

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane This presentation is adapted from slides produced by Jim Kurose and Keith Ross for their book, Computer Networking:

More information

PUSHING THE LIMITS, A PERSPECTIVE ON ROUTER ARCHITECTURE CHALLENGES

PUSHING THE LIMITS, A PERSPECTIVE ON ROUTER ARCHITECTURE CHALLENGES PUSHING THE LIMITS, A PERSPECTIVE ON ROUTER ARCHITECTURE CHALLENGES Greg Hankins APRICOT 2012 2012 Brocade Communications Systems, Inc. 2012/02/28 Lookup Capacity and Forwarding

More information

CS 5114 Network Programming Languages Data Plane. Nate Foster Cornell University Spring 2013

CS 5114 Network Programming Languages Data Plane. Nate Foster Cornell University Spring 2013 CS 5114 Network Programming Languages Data Plane http://www.flickr.com/photos/rofi/2097239111/ Nate Foster Cornell University Spring 2013 Based on lecture notes by Jennifer Rexford and Michael Freedman

More information

Implementing an OpenFlow Switch With QoS Feature on the NetFPGA Platform

Implementing an OpenFlow Switch With QoS Feature on the NetFPGA Platform Implementing an OpenFlow Switch With QoS Feature on the NetFPGA Platform Yichen Wang Yichong Qin Long Gao Purdue University Calumet Purdue University Calumet Purdue University Calumet Hammond, IN 46323

More information

Chapter 4 Network Layer: The Data Plane. Part A. Computer Networking: A Top Down Approach

Chapter 4 Network Layer: The Data Plane. Part A. Computer Networking: A Top Down Approach Chapter 4 Network Layer: The Data Plane Part A All material copyright 996-06 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th Edition, Global Edition Jim Kurose,

More information

Design Methodology of Configurable High Performance Packet Parser for FPGA

Design Methodology of Configurable High Performance Packet Parser for FPGA Design Methodology of Configurable High Performance Packet Parser for FPGA Viktor Puš, Lukáš Kekely CESNET a. l. e. Zikova 4, 6 Prague, Czech Republic Email: pus,kekely@cesnet.cz Abstract Packet parsing

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Network Layer Overview, Router Design, IP Sec 4.1. 4.2 and 4.3 Prof. Lina Battestilli Fall 2017 Chapter 4: Network Layer, Data Plane chapter goals: understand

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane Lu Su Assistant Professor Department of Computer Science and Engineering State University of New York at Buffalo Adapted from the slides of the book s authors Computer

More information

OPENFLOW & SOFTWARE DEFINED NETWORKING. Greg Ferro EtherealMind.com and PacketPushers.net

OPENFLOW & SOFTWARE DEFINED NETWORKING. Greg Ferro EtherealMind.com and PacketPushers.net OPENFLOW & SOFTWARE DEFINED NETWORKING Greg Ferro EtherealMind.com and PacketPushers.net 1 HUH? OPENFLOW. What is OpenFlow? From the bottom up. With big words. How OpenFlow does stuff. Then WHY we want

More information

Disruptive Innovation in ethernet switching

Disruptive Innovation in ethernet switching Disruptive Innovation in ethernet switching Lincoln Dale Principal Engineer, Arista Networks ltd@aristanetworks.com AusNOG 2012 Ethernet switches have had a pretty boring existence. The odd speed increase

More information

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview Chapter 4: chapter goals: understand principles behind services service models forwarding versus routing how a router works generalized forwarding instantiation, implementation in the Internet 4- Network

More information

Programmable Forwarding Planes at Terabit/s Speeds

Programmable Forwarding Planes at Terabit/s Speeds Programmable Forwarding Planes at Terabit/s Speeds Patrick Bosshart HIEF TEHNOLOGY OFFIER, BREFOOT NETWORKS nd the entire Barefoot Networks team Hot hips 30, ugust 21, 2018 Barefoot Tofino : Domain Specific

More information

Configuring QoS CHAPTER

Configuring QoS CHAPTER CHAPTER 34 This chapter describes how to use different methods to configure quality of service (QoS) on the Catalyst 3750 Metro switch. With QoS, you can provide preferential treatment to certain types

More information

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin, Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin, ydlin@cs.nctu.edu.tw Chapter 1: Introduction 1. How does Internet scale to billions of hosts? (Describe what structure

More information

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. Managing a HTTP request. transport session. Step 1 - opening transport

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. Managing a HTTP request. transport session. Step 1 - opening transport Lecture 2-ter. 2 A communication example Managing a HTTP v1.0 connection Managing a HTTP request User digits URL and press return (or clicks ). What happens (HTTP 1.0): 1. opens a TCP transport session

More information

CSC358 Week 6. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

CSC358 Week 6. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved CSC358 Week 6 Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Logistics Assignment 2 posted, due Feb 24, 10pm Next week

More information

IPv6 Protocol. Does it solve all the security problems of IPv4? Franjo Majstor EMEA Consulting Engineer Cisco Systems, Inc.

IPv6 Protocol. Does it solve all the security problems of IPv4? Franjo Majstor EMEA Consulting Engineer Cisco Systems, Inc. IPv6 Protocol Does it solve all the security problems of IPv4? Franjo Majstor EMEA Consulting Engineer fmajstor@cisco.com Cisco Systems, Inc. 1 Agenda IPv6 Primer IPv6 Protocol Security Dual stack approach

More information

Interconnecting Networks with TCP/IP. 2000, Cisco Systems, Inc. 8-1

Interconnecting Networks with TCP/IP. 2000, Cisco Systems, Inc. 8-1 Interconnecting Networks with TCP/IP 2000, Cisco Systems, Inc. 8-1 Objectives Upon completion of this chapter you will be able to perform the following tasks: Identify the IP protocol stack, its protocol

More information

Lecture 16: Network Layer Overview, Internet Protocol

Lecture 16: Network Layer Overview, Internet Protocol Lecture 16: Network Layer Overview, Internet Protocol COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016,

More information

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results.

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results. Algorithms for Routing Lookups and Packet Classification October 3, 2000 High Level Outline Part I. Routing Lookups - Two lookup algorithms Part II. Packet Classification - One classification algorithm

More information

Software Defined Networks

Software Defined Networks Software Defined Networks A quick overview Based primarily on the presentations of Prof. Scott Shenker of UC Berkeley The Future of Networking, and the Past of Protocols Please watch the YouTube video

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane Chapter 4: outline 4.1 Overview of Network layer data plane control plane 4.2 What s inside a router 4.3 IP: Internet Protocol datagram format fragmentation IPv4

More information

Prototyping Fast, Simple, Secure Switches for Ethane

Prototyping Fast, Simple, Secure Switches for Ethane Prototyping Fast, Simple, Secure Switches for Ethane Jianying Luo, Justin Pettit, Martin Casado, John Lockwood, Nick McKeown (jyluo,jpettit,casado,jwlockwd,nickm)@stanford.edu Abstract We recently proposed

More information

A Next Generation Home Access Point and Router

A Next Generation Home Access Point and Router A Next Generation Home Access Point and Router Product Marketing Manager Network Communication Technology and Application of the New Generation Points of Discussion Why Do We Need a Next Gen Home Router?

More information

OpenFlow Ronald van der Pol

OpenFlow Ronald van der Pol OpenFlow Ronald van der Pol Outline! Goal of this project! Why OpenFlow?! Basics of OpenFlow! Short Demo OpenFlow Overview! Initiative of Stanford University! Run network research experiments

More information

Cubro Packetmaster EX32100

Cubro Packetmaster EX32100 Cubro Packetmaster EX32100 PRODUCT OVERVIEW Network Packet Broker (NPB) At a glance The Packetmaster EX32100 is a network packet broker and network controller switch that aggregates, filters and load balances

More information

Where we are in the Course

Where we are in the Course Network Layer Where we are in the Course Moving on up to the Network Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Network Layer How to connect different link layer

More information

Linux Network Programming with P4. Linux Plumbers 2018 Fabian Ruffy, William Tu, Mihai Budiu VMware Inc. and University of British Columbia

Linux Network Programming with P4. Linux Plumbers 2018 Fabian Ruffy, William Tu, Mihai Budiu VMware Inc. and University of British Columbia Linux Network Programming with P4 Linux Plumbers 2018 Fabian Ruffy, William Tu, Mihai Budiu VMware Inc. and University of British Columbia Outline Introduction to P4 XDP and the P4 Compiler Testing Example

More information

Data Center Virtualization: VirtualWire

Data Center Virtualization: VirtualWire Data Center Virtualization: VirtualWire Hakim Weatherspoon Assistant Professor, Dept of Computer Science CS 5413: High Performance Systems and Networking November 21, 2014 Slides from USENIX Workshop on

More information

Professor Yashar Ganjali Department of Computer Science University of Toronto.

Professor Yashar Ganjali Department of Computer Science University of Toronto. Professor Yashar Ganjali Department of Computer Science University of Toronto yganjali@cs.toronto.edu http://www.cs.toronto.edu/~yganjali Today Outline What this course is about Logistics Course structure,

More information

Stateful Openflow: Hardware Proof of Concept

Stateful Openflow: Hardware Proof of Concept Stateful Openflow: Hardware Proof of Concept Salvatore Pontarelli* Marco Bonola*, Giuseppe Bianchi*, Antonio Capone, Carmelo Cascone, CNIT/Universitá di Roma Tor Vergata Politecnico di Milano Abstract

More information

Network Layer: Control/data plane, addressing, routers

Network Layer: Control/data plane, addressing, routers Network Layer: Control/data plane, addressing, routers CS 352, Lecture 10 http://www.cs.rutgers.edu/~sn624/352-s19 Srinivas Narayana (heavily adapted from slides by Prof. Badri Nath and the textbook authors)

More information

Cloud e Datacenter Networking

Cloud e Datacenter Networking Cloud e Datacenter Networking Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione DIETI Laurea Magistrale in Ingegneria Informatica Prof.

More information

I Commands. iping, page 2 iping6, page 4 itraceroute, page 5 itraceroute6 vrf, page 6. itraceroute vrf encap vxlan, page 12

I Commands. iping, page 2 iping6, page 4 itraceroute, page 5 itraceroute6 vrf, page 6. itraceroute vrf encap vxlan, page 12 iping, page 2 iping6, page 4 itraceroute, page 5 itraceroute6 vrf, page 6 itraceroute6 vrf encap vlan, page 7 itraceroute6 vrf encap vxlan dst-mac, page 8 itraceroute vrf, page 9 itraceroute vrf encap

More information

IPv6 Protocols and Networks Hadassah College Spring 2018 Wireless Dr. Martin Land

IPv6 Protocols and Networks Hadassah College Spring 2018 Wireless Dr. Martin Land IPv6 1 IPv4 & IPv6 Header Comparison IPv4 Header IPv6 Header Ver IHL Type of Service Total Length Ver Traffic Class Flow Label Identification Flags Fragment Offset Payload Length Next Header Hop Limit

More information

100 GBE AND BEYOND. Diagram courtesy of the CFP MSA Brocade Communications Systems, Inc. v /11/21

100 GBE AND BEYOND. Diagram courtesy of the CFP MSA Brocade Communications Systems, Inc. v /11/21 100 GBE AND BEYOND 2011 Brocade Communications Systems, Inc. Diagram courtesy of the CFP MSA. v1.4 2011/11/21 Current State of the Industry 10 Electrical Fundamental 1 st generation technology constraints

More information

Cloud e Datacenter Networking

Cloud e Datacenter Networking Cloud e Datacenter Networking Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione DIETI Laurea Magistrale in Ingegneria Informatica Prof.

More information

Scaling Hardware Accelerated Network Monitoring to Concurrent and Dynamic Queries with *Flow

Scaling Hardware Accelerated Network Monitoring to Concurrent and Dynamic Queries with *Flow Scaling Hardware Accelerated Network Monitoring to Concurrent and Dynamic Queries with *Flow John Sonchack, Oliver Michel, Adam J. Aviv, Eric Keller, Jonathan M. Smith Measuring High Speed Networks 00

More information

RECONFIGURABLE HARDWARE FOR SOFTWARE-DEFINED NETWORKS

RECONFIGURABLE HARDWARE FOR SOFTWARE-DEFINED NETWORKS RECONFIGURABLE HARDWARE FOR SOFTWARE-DEFINED NETWORKS A DISSERTATION SUBMITTED TO THE DEPARTMENT OF ELECTRICAL ENGINEERING AND THE COMMITTEE ON GRADUATE STUDIES OF STANFORD UNIVERSITY IN PARTIAL FULFILLMENT

More information

Network Verification: Reflections from Electronic Design Automation (EDA)

Network Verification: Reflections from Electronic Design Automation (EDA) Network Verification: Reflections from Electronic Design Automation (EDA) Sharad Malik Princeton University MSR Faculty Summit: 7/8/2015 $4 Billion EDA industry EDA Consortium $350 Billion Semiconductor

More information

Configuring Network Security with ACLs

Configuring Network Security with ACLs 26 CHAPTER This chapter describes how to use access control lists (ACLs) to configure network security on the Catalyst 4500 series switches. Note For complete syntax and usage information for the switch

More information

NetFPGA Update at GEC4

NetFPGA Update at GEC4 NetFPGA Update at GEC4 http://netfpga.org/ NSF GENI Engineering Conference 4 (GEC4) March 31, 2009 John W. Lockwood http://stanford.edu/~jwlockwd/ jwlockwd@stanford.edu NSF GEC4 1 March 2009 What is the

More information

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API Network Programming Outline Definitions Dr. Thaier Hayajneh Computer Engineering Department Berkeley API Socket definition and types Introduction to Sockets 1 2 Process Process Process Layer TCP SCTP UDP

More information

Multi-core Implementation of Decomposition-based Packet Classification Algorithms 1

Multi-core Implementation of Decomposition-based Packet Classification Algorithms 1 Multi-core Implementation of Decomposition-based Packet Classification Algorithms 1 Shijie Zhou, Yun R. Qu, and Viktor K. Prasanna Ming Hsieh Department of Electrical Engineering, University of Southern

More information

Scalable Packet Classification on FPGA

Scalable Packet Classification on FPGA Scalable Packet Classification on FPGA 1 Deepak K. Thakkar, 2 Dr. B. S. Agarkar 1 Student, 2 Professor 1 Electronics and Telecommunication Engineering, 1 Sanjivani college of Engineering, Kopargaon, India.

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see

More information

Be Fast, Cheap and in Control with SwitchKV. Xiaozhou Li

Be Fast, Cheap and in Control with SwitchKV. Xiaozhou Li Be Fast, Cheap and in Control with SwitchKV Xiaozhou Li Goal: fast and cost-efficient key-value store Store, retrieve, manage key-value objects Get(key)/Put(key,value)/Delete(key) Target: cluster-level

More information

Building Efficient and Reliable Software-Defined Networks. Naga Katta

Building Efficient and Reliable Software-Defined Networks. Naga Katta FPO Talk Building Efficient and Reliable Software-Defined Networks Naga Katta Jennifer Rexford (Advisor) Readers: Mike Freedman, David Walker Examiners: Nick Feamster, Aarti Gupta 1 Traditional Networking

More information

Sections Describing Standard Software Features

Sections Describing Standard Software Features 30 CHAPTER This chapter describes how to configure quality of service (QoS) by using automatic-qos (auto-qos) commands or by using standard QoS commands. With QoS, you can give preferential treatment to

More information

Lecture 9. Address Resolution Protocol (ARP)

Lecture 9. Address Resolution Protocol (ARP) Lecture 9. Direct Datagram Forwarding: Address Resolution Protocol (ARP) G.Bianchi, G.Neglia, V.Mancuso Problem statement Routing decision for packet X has two possible outcomes: You are arrived to the

More information

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24 EE 586 Communication and Switching Networks (Fall 2010) Lecture 24 October 25, 2010 1-1 Announcements Midterm 1: Mean = 92.2 Stdev = 8 Still grading your programs (sorry about the delay) Network Layer

More information

T NetFPGA prototype of zfilter forwarding. Petri Jokela ericsson research, Nomadiclab

T NetFPGA prototype of zfilter forwarding. Petri Jokela ericsson research, Nomadiclab T-110.5110 NetFPGA prototype of zfilter forwarding Petri Jokela ericsson research, Nomadiclab 23.11.2009 CONTENT Information centric networking Reasoning, background Forwarding with In-packet Bloom Filters

More information

Network Processors and their memory

Network Processors and their memory Network Processors and their memory Network Processor Workshop, Madrid 2004 Nick McKeown Departments of Electrical Engineering and Computer Science, Stanford University nickm@stanford.edu http://www.stanford.edu/~nickm

More information

Using NAT in Overlapping Networks

Using NAT in Overlapping Networks Using NAT in Overlapping Networks Document ID: 13774 Contents Introduction Prerequisites Requirements Components Used Conventions Configure Network Diagram Configurations Verify Troubleshoot Related Information

More information

K2289: Using advanced tcpdump filters

K2289: Using advanced tcpdump filters K2289: Using advanced tcpdump filters Non-Diagnostic Original Publication Date: May 17, 2007 Update Date: Sep 21, 2017 Topic Introduction Filtering for packets using specific TCP flags headers Filtering

More information

LM1000STXR4 Gigabit Ethernet Load Module

LM1000STXR4 Gigabit Ethernet Load Module Gigabit Ethernet Load Module Gigabit Ethernet Load Module Ixia's Gigabit Ethernet Load Modules offer complete Layer 2-3 network and routing/bridging protocol testing functionality in a single platform.

More information

Hardware Acceleration in Computer Networks. Jan Kořenek Conference IT4Innovations, Ostrava

Hardware Acceleration in Computer Networks. Jan Kořenek Conference IT4Innovations, Ostrava Hardware Acceleration in Computer Networks Outline Motivation for hardware acceleration Longest prefix matching using FPGA Hardware acceleration of time critical operations Framework and applications Contracted

More information

Packet Sniffer. Table of Contents. General Information. Summary. Specifications

Packet Sniffer. Table of Contents. General Information. Summary. Specifications Packet Sniffer Document revision 1.6 (February 5, 2008, 15:52 GMT) This document applies to V3.0 Table of Contents Table of Contents General Information Summary Specifications Packet Sniffer Configuration

More information

TXS 10/100 Mbps and Gigabit Ethernet Load Modules

TXS 10/100 Mbps and Gigabit Ethernet Load Modules TXS 10/100 Mbps and Gigabit Ethernet Load Modules Ixia's TXS family of Ethernet load modules offer complete layer 2-7 network and application testing functionality in a single platform. Wire-speed layer

More information

Simplifying FPGA Design for SDR with a Network on Chip Architecture

Simplifying FPGA Design for SDR with a Network on Chip Architecture Simplifying FPGA Design for SDR with a Network on Chip Architecture Matt Ettus Ettus Research GRCon13 Outline 1 Introduction 2 RF NoC 3 Status and Conclusions USRP FPGA Capability Gen

More information

Introduction to Internetworking

Introduction to Internetworking Introduction to Internetworking Stefano Vissicchio UCL Computer Science COMP0023 Internetworking Goal: Connect many networks together into one Internet. Any computer can send to any other computer on any

More information

IPv6 Cyber Security Briefing May 27, Ron Hulen VP and CTO Cyber Security Solutions Command Information, Inc.

IPv6 Cyber Security Briefing May 27, Ron Hulen VP and CTO Cyber Security Solutions Command Information, Inc. IPv6 Cyber Security Briefing May 27, 2010 Ron Hulen VP and CTO Cyber Security Solutions Command Information, Inc. 2610:f8:ffff:2010:05:27:85:1 Attack Surfaces Protocol Translator IPv4 Native Dual-Stack

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Network Layer ICMP (5.6), Network Management(5.7) & SDN (5.1, 5.5, 4.4) Prof. Lina Battestilli Fall 2017 Outline 5.6 ICMP: The Internet Control Message

More information

IP Address Lookup and Packet Classification Algorithms

IP Address Lookup and Packet Classification Algorithms IP Address Lookup and Packet Classification Algorithms Zhen Xu, Jeff Nie, Xuehong Sun, and Yiqiang Q. Zhao School of Mathematics and Statistics, Carleton University Outline 1. Background 2. Two IP Address

More information

Packet Expert Report

Packet Expert Report Packet Expert Report Hardware Ethernet Test Tool PacketExpert Start Date : Start Time : 2/4/14 18:34:18 End Date : End Time : Test Report : RECORD_ONLY User Comments : RecordOnly www.gl.com Port1 Interface

More information

Aruba 8320 Configuring ACLs and Classifier Policies Guide for ArubaOS- CX 10.00

Aruba 8320 Configuring ACLs and Classifier Policies Guide for ArubaOS- CX 10.00 Aruba 8320 Configuring ACLs and Classifier Policies Guide for ArubaOS- CX 10.00 Part Number: 5200-4710a Published: April 2018 Edition: 2 Copyright 2018 Hewlett Packard Enterprise Development LP Notices

More information

Managing and Securing Computer Networks. Guy Leduc. Chapter 2: Software-Defined Networks (SDN) Chapter 2. Chapter goals:

Managing and Securing Computer Networks. Guy Leduc. Chapter 2: Software-Defined Networks (SDN) Chapter 2. Chapter goals: Managing and Securing Computer Networks Guy Leduc Chapter 2: Software-Defined Networks (SDN) Mainly based on: Computer Networks and Internets, 6 th Edition Douglas E. Comer Pearson Education, 2015 (Chapter

More information

Sections Describing Standard Software Features

Sections Describing Standard Software Features 27 CHAPTER This chapter describes how to configure quality of service (QoS) by using automatic-qos (auto-qos) commands or by using standard QoS commands. With QoS, you can give preferential treatment to

More information

Network Layer (1) Networked Systems 3 Lecture 8

Network Layer (1) Networked Systems 3 Lecture 8 Network Layer (1) Networked Systems 3 Lecture 8 Role of the Network Layer Application Application The network layer is the first end-to-end layer in the OSI reference model Presentation Session Transport

More information

Scalable Ternary Content Addressable Memory Implementation Using FPGAs

Scalable Ternary Content Addressable Memory Implementation Using FPGAs Scalable Ternary Content Addressable Memory Implementation Using FPGAs Weirong Jiang Xilinx Research Labs San Jose, CA, USA weirongj@acm.org ABSTRACT Ternary Content Addressable Memory (TCAM) is widely

More information

Network Layer: Data Plane 4-2

Network Layer: Data Plane 4-2 Network Layer: Data Plane EECS3214 18-02-25 4-1 Chapter 4: outline 4.1 Overview of Network layer data plane control plane 4.2 What s inside a router 4.3 IP: Internet Protocol datagram format fragmentation

More information

These slides contain significant content contributions by

These slides contain significant content contributions by OpenFlow In Depth This document is a result of work by the Network Startup Resource Center (NSRC at http://www.nsrc.org) and Indiana Center for Network Translational Research and Education (InCNTRE). This

More information

Centec V350 Product Introduction. Centec Networks (Suzhou) Co. Ltd R

Centec V350 Product Introduction. Centec Networks (Suzhou) Co. Ltd R Centec V350 Product Introduction Centec Networks (Suzhou) Co. Ltd R1.6 2016-03 V350 Win the SDN Idol@ONS V350 win the SDN Idol@ONS award in ONS 2013 2016 Centec Networks (Suzhou) Co., Ltd. All rights reserved.

More information

Network Layer: Chapter 4. The Data Plane. Computer Networking: A Top Down Approach

Network Layer: Chapter 4. The Data Plane. Computer Networking: A Top Down Approach Chapter 4 Network Layer: The Data Plane A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see

More information