an open source user space fast path tcp ip stack industry
play

An open source user space fast path TCP/IP stack Industry network - PowerPoint PPT Presentation

An open source user space fast path TCP/IP stack Industry network challenges Growth in data traffic means that even small network nodes needs a fast path The Linux IP stack is slow and does not scale High throughput IP processing


  1. An open source user space fast path TCP/IP stack

  2. Industry network challenges  Growth in data traffic means that even small network nodes needs a fast path  The Linux IP stack is slow and does not scale  High throughput IP processing solutions has been around for a number of years  Why this now?  Most existing implementations are either hardware specific or proprietary closed source  SoC vendor solutions and for example 6Wind  Developing this basic building block from scratch in-house does not make sense  Not even for the big network equipment providers

  3. Enter OpenFastPath! A TCP/IP stack that  lives in user space  is optimized for scalability and throughput  uses Data Plane Development Kit ( DPDK ) and  Open Data Plane ( ODP ) to access network hardware  runs on ARM, x86, MIPS, PPC hardware  runs natively , in a guest or in the host platform The OpenFastPath project  is a true open source project  uses well known open source components  open for all to participate – no lock-in to HW or SW  Nokia , ARM and Enea key contributors

  4. A main benefit with OFP is portability…. VM Application Application Application Application OFP OFP OFP OFP ODP SW ODP/DPDK* DPDK* DPDK* OS / Bare metal Guest OS OS / Bare metal OS / Bare metal Host OS ODP HW+FW x86 ARM Any Architecture ARM MIPS PPC OFP DPDK/ODP Network I/F Network I/F Application Network I/F Network I/F HW …. AND * Native support in execution

  5. …performance - OFP is 20x Linux TCP/IP stack! IP forwarding application in user space - 256 routes, 4 x 10 Gbps, 64Byte packets 60 Kernel OFP 50 40 Mpps 30 x20 20 10 0 1 2 3 4 5 6 7 8 9 10 11 12 Physical Cores Intel Xeon E5-2697 v3 Two 82599 NICs with   Ubuntu 14.04 - 3.16.0- OFP fpm_burstmode   processor (turbo modified netmap 53-generic. CPU example application disabled) ixgbe 4.1.5 driver (12 isolation used to test rx/tx queue pairs) kernel IP forwarding. ODP 1.4.1.0 ext. with  totaling 4x10Gbps multi queue packet I/O ports support

  6. Features implemented Fast path protocols processing: Command line interface  Layer 4: UDP termination, TCP termination,  Packet dumping and other debugging ICMP protocol  Statistics, ARP , routes, and interface printing  Layer 3  Configuration of routes and interfaces with  ARP/NDP VRF support  IPv4 and IPv6 forwarding and routing OFP IP and ICMP implementations passing  IPv4 fragmentation and reassembly Ixia conformance tests  VRF for IPv4 IP and UDP implementations has been  IGMP and multicast optimized for performance  Layer 2: Ethernet, VLAN  TCP implementation is functional but not  GRE and VXLAN Tunneling performance optimized Integrated with NGiNX webserver Routes and MACs are in sync with Linux Integration with Linux Slow path IP stack through TAP interface

  7. OpenFastPath Source code New open-source code  Developed by partners during the incubation stage UDP , TCP , ICMP code was ported from libuinet (User space FreeBSD port)  Non-blocking event based socket API  Modular, multithreaded design focused on performance and scalability  Tightly coupled to application, linked in as a library  Maintainability – Tracks evolution of FreeBSD High performance and scalable implementation for MAC and Route tables  Lockless synchronization

  8. OpenFastPath system components DPDK Packet API NICs Application API ODP processing API IPv4 Linux TAP Routes, ARP API IPv6 kernel Netlink MAC Application OFP Interface API ODP API configuration Configuration Linux Packets ODP Information HW CLI

  9. OpenFastPath System View User Termination or Forwarding Socket Egress API Socket Hook API Host OS (Linux) User Conf Code API OpenFastPath (OFP) Init pkt_cnt = odp_pktio_recv (pktio, Netlink Route pkt_tbl, OFP_PKT_BURST_SIZE); or tables buf = odp_schedule (&queue, ODP_SCHED_WAIT); Ingress API PKTIO Slow Interface Application TAP path User/Default Management OFP Dispatcher Linux ODP/DPDK ODP SW DPDK HW ODP/DPDK FW/HW Ctrl HW / NICs Packets

  10. OpenFastPath multicore System View User Termination or User Termination or User Termination or …. Forwarding A Forwarding B Forwarding X Single Socket callback Socket callback Socket callback thread /Hook API /Hook API /Hook API context Host OS (Linux) User OpenFastPath (OFP) Conf (SMP multicore library) Code Netlink Route Init API tables Ingress API Ingress API PKTIO Ingress API PKTIO PKTIO Slow TAP path …. Dispatcher Dispatcher Dispatcher N 1 2 ODP SW DPDK …. Application Core 0 Core 1 Core 2 Core N OFP ODP/DPDK FW/HW Linux ODP/DPDK NICs HW

  11. Ingress Packet Processing Loopback to VXLAN IPv4/v6 local IP , UDP , TCP , … UDP input Socket API hook API classified by IPv4/v6 HW IPv4/v6 forward TCP input hook API VXLAN IPv4 Transport(L4) IPv4 GRE GRE hook API Ethernet Reassembly classifier Ingress API VLAN ICMP NDP User API IPv4/v6 L4 IGMP Fallback to routing L3 slowpath for unknown traffic L2 Update MAC IPv4/v6 output Pre-classified table ARP Send ARP Packets request Information

  12. Egress Packet Processing UDP output TCP output IPv6 output Socket/Egress API Ethernet IPv4 IPv4 output Fragmentation VLAN User API ICMP error L4 IPv4 GRE tunneling L3 L2 VXLAN Pre-classified Packets Information

  13. Optimized OpenFastPath socket APIs New zero-copy APIs optimized for single thread run-to-completion environments  UDP  Send: Optimized send function with a packet container (packet + meta-data)  Receive: A function callback can be registered to read on a socket. Receives a packet container and socket handle  TCP  Accept event: A function callback can be registered for TCP accept event. Receives socket handle.  Receive: A function callback can be registered to read on socket. Receives a packet container and a socket handle Standard BSD Socket interface  For compatibility with legacy applications

  14. Other OpenFastPath user application APIs  Initiation of Open Fast Path  Interface configuration  Route and MAC table access  Packet Ingress and Egress processing  Hooks for IP local, IP forwarding and GRE  Timer callbacks  Statistics  Packet capture

  15. Code examples ODP thread creation above OFP default dispatcher to the left

  16. Why should someone use OpenFastPath? Portable high performance solution supporting multiple HW platforms  Functionality verified on ARM, MIPS and x86 HW Highly optimized and scalable solution  Non-blocking event based API focused on performance and scalability User space implementation  Simplifies maintenance and maximizes throughput and scalability by minimizing Linux kernel dependency Very flexible deployment scenarios  Embedded, virtualized, servers, edge nodes, etc.

  17. Why engage in the OpenFastPath project? OpenFastPath is designed as an open source project from the start  Based on known open source code like libuinet  Not an old proprietary code base turned open source…. The framework is highly modular, adaptable and lightweight.  Not restricted to plug-ins Membership is cheap and open for all  Potential to impact is high Very high interest from major industry players

  18. What’s next? - Get involved! Download the source code from: https://github.com/OpenFastPath/ofp Check us out at www.openfastpath.org to get more information about the project Subscribe to Mailing-list: http://www.openfastpath.org/mailman/listinfo Ping us on our freenode chat: #OpenFastPath Membership is cheap and open to all!

  19. Enea services offering on OFP Integration services  Integration of OFP in customer hardware and software system. Hardware porting and optimization services  Test, verification and optimization of silicon vendor ODP implementation together with OFP Feature development services  Pre-studying, specifying and implementing new OFP features and protocols. Production test, maintenance and support services  Production testing, release management and support.

  20. Thank You F o r a d d i t i o n a l i n f o r m a t i o n , p l e a s e v i s i t w w w. o p e n f a s t p a t h . o r g

Recommend


More recommend