Your SlideShare is downloading. ×
0
Network Topology Offload with 
       Intelligent NICs
               Rolf Neugebauer
     (rolf.neugebauer@netronome.com)...
Motivation
• NICs with multiple queues and Virtualization support:
   • VMDq, Solarflare, Neterion, PCI­SIG SR­IOV etc
• S...
Current Xen support




        © 2008 Netronome Systems, Inc.   3
Current Xen support (cont.)
• Complex and difficult to comprehend 
   • e.g. TX switch in FE
• Management of endpoints? SR...
Netronome NFP3200
                                 SRAM             DDR2/3


           NFP­3200              SRAM        ...
Topology offload vs acceleration
• Network Processors allows complete topology offload
   • Connect VMs using common netwo...
A simple switch example




• InterVM traffic either via device or separate network
• NB: plenty of spare ME resources for...
A simple IDS example




• TAP can perform filtering based on rules
• Can be extended to IPS with a TX component per VM

 ...
NAT: Topology acceleration
• Previous examples were offload
• Full stateful NAT requires parsing of 
  flow content for so...
Topology configuration
• Topology is modeled a Nodes connected by Links
• Potentially can implement arbitrary topologies
•...
Conclusions
• Programmable network processors offer new 
  functionality for network IO virtualisation
   • Complete topol...
Questions?



 Also thanks to

 Espen Skoglund
Joshua LeVasseur
Sample topology description
d = NFE3200() # This is for a NFE3200    # Wire everything up
# First the functional blocks   ...
Topology (auto generated)
• Generated from topology description (using graphviz)
Upcoming SlideShare
Loading in...5
×

XS Boston 2008 Network Topology

437

Published on

Rolf Neugebauer: Network Topology Offload

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
437
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "XS Boston 2008 Network Topology"

  1. 1. Network Topology Offload with  Intelligent NICs Rolf Neugebauer (rolf.neugebauer@netronome.com) XenSummit June 2008
  2. 2. Motivation • NICs with multiple queues and Virtualization support: • VMDq, Solarflare, Neterion, PCI­SIG SR­IOV etc • Several physical ports (separate PCI functions) • Larger number of virtual endpoints: 16, 32, ... • How are these connected? Typically: • Ingress: perform simple classification to determine  queue: MAC, VLAN, IP header fields, ... • Egress: basic scheduling © 2008 Netronome Systems, Inc. 2
  3. 3. Current Xen support © 2008 Netronome Systems, Inc. 3
  4. 4. Current Xen support (cont.) • Complex and difficult to comprehend  • e.g. TX switch in FE • Management of endpoints? SR­IOV? • (see other talks in this session) • Support for different network setup? • Firewall, NAT, Load Balancing, Routing • Support for VLANs? • Multiple physical ports? • Different types of endpoints? • TAP, (iSCSI), ... • More complex “flow processing” • Cut­Through, early drop, ... • Intelligent, programmable NPU can help © 2008 Netronome Systems, Inc. 4
  5. 5. Netronome NFP3200 SRAM DDR2/3 NFP­3200 SRAM DDR2/3 Controller Controller 10G 10G 8x PCIe PHY SERDES PCIe Root 10G 10G SPI 4.2 / Fabric PHY SERDES CSIX ARM 11 Crypto Microengine CPU Clusters • NFP­3200 evolved from Intel® IXP 28xx family • 40 RISC microengines for increased performance  and functionality • Cost­effective DDR2/3 memory • PCIe/SPI for dataplane applications • Line interfaces with support for 10G Ethernet © 2008 Netronome Systems, Inc. 5
  6. 6. Topology offload vs acceleration • Network Processors allows complete topology offload • Connect VMs using common network elements • Ethernet switch, firewall, load­balancer, ... • Network element's data­path entirely on NP • Controlled by user software in control VM • Some functions can't be offloaded, but accelerated • “Very stateful” firewall/NAT: FTP, SIP etc • TCP­Splice/Flow Cut­Through for proxies • Approach: accelerate standard Linux functionality • e.g. iptables and connection tracking • Pass minimum number of packets to host • Offer API to process rest on the NP © 2008 Netronome Systems, Inc. 6
  7. 7. A simple switch example • InterVM traffic either via device or separate network • NB: plenty of spare ME resources for this config © 2008 Netronome Systems, Inc. 7
  8. 8. A simple IDS example • TAP can perform filtering based on rules • Can be extended to IPS with a TX component per VM © 2008 Netronome Systems, Inc. 8
  9. 9. NAT: Topology acceleration • Previous examples were offload • Full stateful NAT requires parsing of  flow content for some protocols: • FTP, SIP, etc • Existing implementations in Linux • Difficult to do on Mes • Let Linux NAT take care of this! • Pass all flows up to a VM • Once connection has been  established and is deemed “safe” • Instruct NAT block on device to “cut­through” and modify flow • Not new :) ­> StoreLink 351x © 2008 Netronome Systems, Inc. 9
  10. 10. Topology configuration • Topology is modeled a Nodes connected by Links • Potentially can implement arbitrary topologies • Topology elements need to be configured • Designing a topology description language • Developing a control daemon • Daemon has model of topology • Topology description • Configures elements on the device • API and cmdline © 2008 Netronome Systems, Inc. 10
  11. 11. Conclusions • Programmable network processors offer new  functionality for network IO virtualisation • Complete topology offload • Accelerate networking features • Existing netchannel architecture does not support these  type of network devices • But very little support in Xen required • NFP3200 has significant resources to implement  complex topologies. • Will provide some example topologies • SDK will be available to roll your own © 2008 Netronome Systems, Inc. 11
  12. 12. Questions? Also thanks to Espen Skoglund Joshua LeVasseur
  13. 13. Sample topology description d = NFE3200() # This is for a NFE3200 # Wire everything up # First the functional blocks lkpp1 = BiLink(quot;lkflr1quot;, flr1, 0, d.pep[0], 0) # Phys to FC eth1 = Switch(quot;eth1quot;, 4) lkpp2 = BiLink(quot;lkflr2quot;, flr2, 0, d.pep[1], 0) flst = FlowState(quot;flstquot;) flr1 = FlowRouter(quot;flr1quot;, 2, flst) lk1 = BiLink(quot;lki1quot;, eth1, 0, flr1, 1) # FC port 1 to switch flr2 = FlowRouter(quot;flr2quot;, 2, flst) lk2 = BiLink(quot;lki2quot;, eth1, 1, flr2, 1) lb = LoadBalancer(quot;lb1quot;, 2) lkv1 = BiLink(quot;lkv1quot;, eth1, 2, d.vep[0], 0) # Switch ports 2 & 3 to  # the next two line are ony needed to  VNICS make the backends simpler lkv2 = BiLink(quot;lkv2quot;, eth1, 3, d.vep[1], 0) d.add_table(flst) d.add_nodes((eth1, flr1, flr2, lb)) lkv3 = BiLink(quot;lkv3quot;, flr1, 2, d.vep[2], 0) # Tap from flr1 to a  Capture VNIC # Instantiate some NICS and VNICS  d.pep[0] = MAC10g(quot;mac0quot;)  lkl3 = Link(quot;lkl3quot;, flr2, 2, lb, 0)  # Tap from flr2 to load balancer d.pep[1] = MAC10g(quot;mac1quot;) lkv4 = Link(quot;lkv4quot;, lb, 1, d.vep[3], 0)   # Load balance across  d.vep[0] = VNIC(quot;vnic1quot;)  two Tap VNICs d.vep[1] = VNIC(quot;vnic2quot;) lkv5 = Link(quot;lkv5quot;, lb, 2, d.vep[4], 0) d.vep[2] = CaptureVNIC(quot;tap1quot;) # the next two line are ony needed to make the backends  d.vep[3] = TapVNIC(quot;tap2quot;) simpler d.vep[4] = TapVNIC(quot;tap3quot;) d.add_links((lkpp1, lkpp2, lk1, lk2, lkv1, lkv2, lkv3, lkl3, lkv4,  lkv5))
  14. 14. Topology (auto generated) • Generated from topology description (using graphviz)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×