• No results found

ODP Application proof point: OpenFastPath. ODP mini-summit

N/A
N/A
Protected

Academic year: 2021

Share "ODP Application proof point: OpenFastPath. ODP mini-summit"

Copied!
15
0
0

Loading.... (view fulltext now)

Full text

(1)

ODP Application proof point:

OpenFastPath

(2)

What is Our Intention with OpenFastPath?

To enable efficient IP communication

 Essential in practically all networking use-cases, including NFV To enable efficient system design

 The IP stack runs close to the underlying hardware and can leverage hardware features To lower the barriers to build network applications in a multivendor environment

 ODP based IP stack offers application portability across hardware architectures To reduce development costs through Open Source business model

(3)

What is OpenFastPath (OFP)?

IP fast path incubation project between Nokia, Enea and ARM

 Developers and supporting staff active from all three companies

Organized as an Open source project

 Democratic governance model  Using open source software  BSD license

 Source code on GitHub

 Mailing list, shared Google docs, weekly calls, Freenode chat etc

API’s towards hardware is based on ODP (Open Data Plane)

 Maximizes portability and software reuse

Linux user space IP fast path implementation

 Maximizes throughput and scalability by minimizing Linux overhead  Leverages Linux for slowpath and route/ARP table updates

(4)

Why base the OFP stack on ODP?

Standardized data plane API to enable networking applications across any architecture  Open support for ARM, Intel, MIPS, PowerPC, RTOS, Linux, bare metal

Designed to be an generic yet high performance data plane abstraction layer

 Lightweight without prescribing lower level processing structure which can be vendor specific  Access and management of HW accelerators and classification

 Supports optional schedulers to provision easy management and traffic load balancing Defined to enable high throughput user plane applications

 Run to completion

 Core isolation (only 1 work thread per core scheduled by ODP)  Minimal use to no use of Linux APIs

(5)

Features implemented

Fast path protocols processing:

 Layer 4: UDP termination, TCP termination, ICMP protocol  Layer 3

 ARP/NDP

 IPv4 and IPv6 forwarding and routing  IPv4 fragmentation and reassembly  VRF for IPv4

 IGMP and multicast

 Layer 2: Ethernet, VLAN, VxLAN  GRE Tunneling

Routes and MACs are in sync with Linux through Netlink

Integration with Linux Slow path IP stack through TAP interface Command line interface

 Packet dumping and other debugging

 Statistics, ARP, routes, and interface printing

 Configuration of routes and interfaces with VRF support

(6)

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

Confidential Under NDA

(7)

Ingress API User/Default

Dispatcher

OFP System View

Packets Ctrl HW / NICs ODP API Host OS (Linux) ODP FW ODP SW TAP N etli nk

Socket Hook API Socket Egress API

User Termination or Forwarding

In it API OpenFastPath (OFP) PKTIO Interface Management User Conf Code pkt_cnt = odp_pktio_recv(pktio, pkt_tbl, OFP_PKT_BURST_SIZE); or buf = odp_schedule(&queue, ODP_SCHED_WAIT); ODP Linux ODP API OFP HW Application Slow path Route tables

(8)

Open Fast Path multicore System View

NICs Dispatcher 1 Ingress API Socket callback /Hook API User Termination or Forwarding A In it API PKTIO Host OS (Linux) ODP FW/HW Core 1

Core 0 Core 2 Core N

Dispatcher 2 Ingress API User Termination or Forwarding B OpenFastPath (OFP) (SMP multicore library) N etli nk TAP PKTIO Dispatcher N Ingress API User Termination or Forwarding X PKTIO User Conf Code

….

….

ODP API ODP SW

….

ODP Linux ODP API OFP HW Application Slow path Route tables One ODP thread context Socket callback

(9)

Ingress Packet Processing

Ethernet VLAN IPv4/v6 ARP IPv4 local hook API IPv4 GRE IPv4/v6

routing IPv4/v6 output IPv4 forward hook API Transport(L4) classifier UDP input TCP input ICMP Send ARP request Socket API Update MAC table Pre-classified L2 L3 L4 User API Packets Information IPv4 Reassembly Ingress API Fallback to slowpath for unknown traffic

GRE hook API IP, UDP, TCP, … classified by HW VXLAN IGMP Loopback to VXLAN

(10)

Egress Packet Processing

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

Confidential Under NDA

Ethernet VLAN

(11)

Optimized OFP socket APIs

New zero-copy APIs optimized for single thread run-to-completion environments  UDP

 Send: Optimized send function with ODP packet container (odp_packet_t)

 Receive: A function callback can be registered to read on a socket. Receives ODP 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 ODP packet container and a socket handle

Standard BSD Socket interface

 For compatibility with legacy applications

(12)

Why should someone use OFP?

Open source project

 Enables companies to focus investments on differentiating features

Highly optimized and scalable solution

 Non-blocking event based API focused on performance and scalability

Portable high performance solution supporting multiple HW and SW platforms

 Functionality verified on ARM, MIPS and x86 HW with native ODP, ODP-DPDK, ODP-NETMAP support

Reliable

 OFP IP and ICMP implementations passing Ixia conformance test

User space implementation

 Simplifies maintenance and maximizes throughput and scalability by minimizing Linux kernel

(13)

Shaped in Telecom, authority in

communication, future in connectivity

www.enea.com

Solutions

Services

Training

Linux, RTOS and NFV

software platforms for

network applications

Experienced and

multidisciplinary teams

Enea is a Linux

Foundation Authorised

Training Partner

Multicore RTOS maximizing hardware utilization and

powering embedded systems from telecom to

(14)

Enea - A part of the Open Source Community

Enea provides Open Source community leadership

 Provides the Linaro Networking Group kernel tree maintainer at Linaro (Linux for ARM)  Is a contributing member of the Linaro Networking Group and key contributor to the Open

Data Plane solution

Initiator (in cooperation with Nokia and ARM) of an open source IP Fast-path project (Not yet

public announced)

 Hardware independent open source IP solution – OpenFastPath (OFP)

 Silver member in the OPNFV project – Demoed COSNOS an NFV implementation for ARM Enea participates in the Yocto project

 Initiator of the virtualization layer

 Initiator and maintainer of a Carrier Grade Linux layer to be included in the Yocto Project  Contributor of ptest-framework, helps to increase the quality of contributions

Enea is the innovator of LINX

(15)

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 o n E n e a , p l e a s e v i s i t w w w . e n e a . c o m

References

Related documents