dpdk support for new alejandro lucero, netronome hw offloads€¦ · alejandro lucero, netronome....

22
DPDK Summit - San Jose – 2017 DPDK support for new hw offloads #DPDKSummit Alejandro Lucero, Netronome

Upload: others

Post on 13-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

DPDK Summit - San Jose – 2017

DPDK support for new hw offloads

#DPDKSummit

Alejandro Lucero, Netronome

Page 2: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

2#DPDKSummit

DPDK support for new hw offloads

Netronome Agilio SmartNIC: a highly programmable card designed for network packet/flow processing

● 120 Flow Processing cores● Hardware accelerators: crypto, hash, queue, LB, TM● Hardware offloads: checksum, VLAN, TSO, IPSec, …, OVS, eBPF, P4,

Contrail vROUTER, virtio● 10G, 25G, 40G, 100G● Up to quad PCIe Gen3x8

Page 3: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

3

DPDK support for new hw offloads

OVSVMvirtio-net

kernel

user

OVS-kernelvhost-net

Orchestrator

HW

NIC driver

NIC

VMvirtio-netVM

virtio-netVMvirtio-net

OVSKERNEL

Page 4: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

4

DPDK support for new hw offloads

OVSVMvirtio-net

kernel

user

OVS-kernel

Orchestrator

HW

NFP PF netdev

VMvirtio-netVM

virtio-netVMNFP driver

OVSKERNEL

OFFLOAD

VFVFVF

VF OVS

PF

Repr netdev

NFPWIRE

TC

Repr netdev

Repr netdev

Repr netdev

Flow offload

Page 5: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

5

DPDK support for new hw offloads

OVS

kernel

user

OVS-kernel

Orchestrator

HW

NFP PF netdev

VMvirtio-net OVS

KERNELOFFLOAD

+(Netronome) XVIO

VFVF

VFVF OVS

PF

Repr netdev

NFPWIRE

TC

Repr netdev

Repr netdev

Repr netdev

PMD PMD PMD

VMvirtio-net

VMvirtio-net

XVIO-DPDKvhost-user

...

...

Flow offload

Page 6: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

6

DPDK support for new hw offloads

OVS-DPDK:

● Better performance than (kernel) OVS● Consumes CPU in the Host. Scalable?

Page 7: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

7

DPDK support for new hw offloads

OVS-DPDK

VMvirtio-net

kernel

user

Orchestrator

HW

PMD

NIC

VMvirtio-net

VMvirtio-net

VMvirtio-net OVS-DPDK

VHOST

Page 8: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

8

DPDK support for new hw offloads

OVS-DPDKVM

virtio-net

kernel

user

Orchestrator

HW

PMD

NIC

VM

virtio-net

VM

virtio-net

VM

virtio-netOVS-DPDK &SR-IOV

VHOST

PMD PMD...

VF VF VF...

Page 9: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

9

DPDK support for new hw offloads

OVS-DPDK: offload?

● Partial offload proposed in the OvS mailing list (just classification giving hints for action to OvS)

● Full (classification + action) Offload? Does it make sense?○ VMs using SR-IOV (native NIC performance)○ OVS-DPDK needs CPUs. With offload CPU just for slow path○ Different tenants, different service: virtio AND SR-IOV○ Security○ Just experimental work done (Netronome)

Page 10: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

10

DPDK support for new hw offloads

VMvirtio-net

kernel

user

Orchestrator

HW

NFP PF PMD

VMvirtio-net

VMvirtio-net

VMNFP driver

OVS-DPDK FULL OFFLOAD

VFVF

VFVF OVS

PF

Repr PMD

NFP

WIRE

Repr PMD

Repr PMD...

OVS-DPDK

Page 11: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

11

DPDK support for new hw offloads

kernel

user

Orchestrator

HW

NFP PF PMD

VMvirtio-net

VMvirtio-net

VMNFP driver

OVS- DPDKFULL OFFLOAD(optional)

VFVF

VFVF OVS

PF

Repr PMD

NFP

WIRE

Repr PMD

Repr PMD...

OVS-DPDKvhost

VMvirtio-net

container

container

Page 12: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

12

DPDK support for new hw offloads

V-PMDrx_pkt_burst

M-PMD

V-PMDrx_pkt_burst

V-PMDrx_pkt_burst

V-PMDrx_pkt_burst

...

Virtual ports (Representors) packet delivery (slow path)

enqueue burst

enqueue burst

dequ

eue

bu

rst

dequ

eue

bu

rst

dequ

eue

bu

rst

dequ

eue

bu

rst

RTE RING LIBRARY

RX

RIN

G

RX

RIN

G

RX

RIN

G

RX

RIN

G

Representors

Multiplexed PF PMD based on metadata

Page 13: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

13

DPDK support for new hw offloads

OVS-DPDK Offload: what is needed?● Representors PMDs could be created inside PF PMDs, but ...

○ hotplug/unplug: representors are not PCI devices○ Transparency: representors naming○ Who is taking over the PF? Bifurcated driver?

● OVS Flow rules offload?○ Changes to OVS-DPDK? Using TC through PF?○ Is rte_flow enough for OVS flows syntax?

Page 14: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

14

DPDK support for new hw offloads

eBPF offloadBPF: Berkeley Packet Filter (tcpdump, libpcap, netfilter)

Kernel executes BPF programs via in-kernel virtual machine

eBPF: extended BPF. Sockets filtering and tracing (since 3.18)

Attaching eBPF programs to kernel TC classifier (since 4.1)

XDP: eXpress Data Path

Page 15: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

15

DPDK support for new hw offloads

XDP (eXpress Data Path) in the Linux kernelBare metal packet processing at the lowest point in the software stack

It does not require any specialized hardware

It does not required kernel bypass

It does not replace the TCP/IP stack

It works in concert with TCP/IP stack along with all the benefits of BPF (eBPF)

Page 16: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

16

DPDK support for new hw offloads

Page 17: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

17

DPDK support for new hw offloads

XDP/eBPF & DPDKDo we need XDP/eBPF in userspace networking? How to do it?

Good for being “kernel compatible”: executing eBPF/XDP programs, but …

Can eBPF-DPDK be eBPF-kernel compatible?

Likely good for any DPDK-based network stack

Support at PMD level with offload option

It is already possible (with limitations) to use eBPF in userspace

Page 18: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

18

DPDK support for new hw offloads

eBPF OffloadXDP consume host resources (CPU, PCIe bandwidth)

Netronome’s NFP: Packet processing through eBPF programs with hardware offload

IOvisor: eBPF to the extreme

Page 19: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

19

DPDK support for new hw offloads

Userspace

Network Stack

NIC HW

eBPF program

XDP DROP, FORWARDHOST CPU

Userspace

Network Stack

NIC HW

XDP

DROP, FORWARD

eBPFPCIePCIe

NFP

NICDRIVER

NICDRIVER

KerneleBPF Offload

Page 20: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

20

DPDK support for new hw offloads

virtio Offload: virtio capable NIC● VMs with SR-IOV (device passthrough) but using virtio interface

○ Pros: VM provisioning, performance○ Cons: VM migration, East-West traffic

● VM migration: requires a migration friendly NIC● East-West traffic: memory vs NIC● DPDK: virtio changes (vhost), iommu changes????● Other option: vDPA (vHost Data Path Acceleration)

Page 21: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

21

Dataplane Acceleration Developer Day (DXDD)

▪ Date: December 11-12 (Monday & Tuesday)▪ Time: 8:30 a.m. – 8:00 p.m.▪ Location: Computer Science Museum (Mountain View, CA)▪ Why should you attend?

• Discussions about recent dataplane acceleration development– P4-16 introduction– TC offload introduction – eBPF introduction

• Extensive hands-on training– P4-14 labs– TC labs

▪ Register: https://open-nfp.org/dxdd-2017

Page 22: DPDK support for new Alejandro Lucero, Netronome hw offloads€¦ · Alejandro Lucero, Netronome. #DPDKSummit 2 DPDK support for new hw offloads Netronome Agilio SmartNIC: a highly

22

DPDK support for new hw offloads

Questions?