Empower Diverse Open Protocols in Cloud Networking

GEORGE ZHAO DIRECTOR OSS & ECOSYSTEM, HUAWEI Agenda

FD.io Introduction Challenges in Container & Cloud Native Apps Proposed Solutions

2 A Universal Terabit Network Platform For Native Cloud Network Services

EFFICIENCY

Most Efficient on the Planet

PERFORMANCE Superior Performance

SOFTWARE DEFINED NETWORKING Flexible and Extensible

CLOUD NETWORK SERVICES Cloud Native

LINUX FOUNDATION Open Source

Breaking the Barrier of Software Defined Network Services 1 Terabit Services on a Single Intel® Xeon® Server !!! 3 4 FD.io VPP – Vector Packet Processor Compute Optimized SW Network Platform

Bare Metal/VM/Container Packet Processing Software Platform Dataplane Management Agent  High performance  Linux User Space  Runs on compute CPUs: Packet Processing - And “knows” how to run them well !

Network IO  Shipping at volume in server & embedded products since 2004.

4 One Data Plane Multiple Deployment Scenarios

VM Con VM VM Server Con Con FD.io FD.io Device FD.io

Operating Systems FD.io

Hardware Operating Systems FD.io Hardware CPU(INTEL、ARM)、NIC、SoC、FPGA, …… Smart INTEL, ARM NiC Hardware INTEL, ARM App

FD.io enables: VNF 1. Bare Metal, Cloud NFVi and Container Infra 2. FD.io based VNFs 5 Kernel space or User space ?

Oops.. How about Go through kernel space and user space User space stack instead of kernel many times when communication between containers TCP/IP stack

container container container APP APP APP xxx_send() glibc send() recv() /xxx_recv()

FIFO kernel FIFO User space stack

TCP/IP TCP/IP

DPDK dev dev

Challenge:Applications need to adapt to different while using user space stack

6 Apps have different flavors

Oops… How about… different APP different user space Develop different stack to match stack——Some applications required different requirement high I/O throughput(e.g. File transfer, container container container Video on Demand) and Some File online Web transfer game APP

applications required low latency(e.g. xxx_send() yyy_send()/ send() /xxx_recv() yyy_recv() /recv() online game , live streaming), high I/O Low latency Kernel TCP/IP throughput stack stack

Challenge:Application can not choose stack dynamic

7 Hardware is not all the same

Oops… example Didn’t make full use of the speedup RDMA ability of different hardware by kernel stack and user space stack

Challenge:How to identify the difference of hardware and how to adapt RDMA 8 Introducing DMM Project

- DMM Protocol Framework: Dual mode, Multiple protocols & Multiple instances, aim to provide a new solution of diverse protocol stacks for developers. - Dual Mode: Kernel Space and User Space - Multiple protocols: Simply new protocol adoptions and Integrations - Multiple Instances: Enable “protocol routing”

- DMM is a FD.io open source project, first release targets 18.04.

9 DMM: Protocol Stack Common Framework

Web APP Video Streaming Online gaming Posix Socket Compatible API + Posix Socket Compatible API (LD_PRELOAD) nSocket Socket 1. Posix compatible and Layer

Socket Bridge(SBR) nSocket (MUX) orchestrator uniform socket API to APP Protocol Protocol RD DHT 2. Support both kernel TCP/IP stack and user space stack VPP Host TLDK F-Stack … REST

Stack Honeycomb REST L2 Data-Plane HAL ~ netconf/yang L4 - - Protocol orchestrator + nRD input/output input/output VPP Other(BGP) 1. dynamic mapping DPDK-input between application and stack

Kernel TCP/IP 2. Stack selection rule can be configured by e.g. SDN controllers DMM FD.io Honeycomb Third stack RD : Resource Discovery 10 Key Takeaways

 Stack developers can Common library for develop user space stack concentrate on user space

protocol innovations; Posix Socket Compatible API (LD_PRELOAD)

nSocket (MUX)

 Apps can dynamically choose orchestrator Protocol different protocols. RD VPP F-Stack LWIP TLDK  Support both kernel TCP/IP Host Stack stack and user space stack ; Data-Plane HAL  Container network will easily build E2E communication HAL:Hardware Abstraction Layer,a IO adaptor capacities.

11