40
vpp overview Keith Burns [email protected]

fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

vpp overviewKeithBurns

[email protected]

Page 2: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Agenda

• VPPOverview

• Structure

• Integrations

• Performance

Page 3: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPOverview

Page 4: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Introducing Vector PacketProcessor- VPP

Predictableperformance

NetworkIO

PacketProcessing:VPP

ManagementAgentNC/Y REST ...

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

Seealso:www.fd.io (TheFastDataProject)

Consistentperformance

Optimalperformance• 14+Mpps percore• Testedto480Gbps

• (bi-directional,24cores)• Multi-millionentryFIBs

Page 5: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

• Directedgraphofnodes• Nodesareaconsistent,repeatablepattern

• Processesvectorofpackets

Introducing Vector PacketProcessor- VPP

NetworkIO

PacketProcessing:VPP

ManagementAgentNC/Y REST ...

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

Seealso:www.fd.io (TheFastDataProject)

Flexibilitywithoutsacrificingperformance

Page 6: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Introducing Vector PacketProcessor- VPP

• Multi-coreCPUsandleveragesDPDK

• RunsasaLinuxuser-spaceapplication

• Shipsaspartofbothembedded&serverproducts,involume

• Activedevelopmentsince2002

• RobustandcompleteAPIs• Approaching4th release• PackagedasDebian andRPMimagesfor:

• Ubuntu14.04,Ubuntu16.04,Centos7.2

16.06 16.091.0.0 17.01

Page 7: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Structurecodecomposition...plugins...API...whatmakesVPPtick...

Page 8: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPOverview

vppinfra• libraryofcomposable functionsfor

• vectors• memorymanagement• advanceddatastructures

• applicabletomanyproblemdomains• (seesimulated-annealing)

vnet

vlib

vppinfra

Page 9: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPOverview

vlib• VPPapplicationmanagement

• threading• main()• buffermetadatadefinition• CLI• ...more

vnet

vlib

vppinfra

Page 10: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPOverview

vnet• VPPpacketprocessingfeatures

API• AllfeatureshavefullAPIdefinedatthislayer

vnet

vlib

vppinfra

Page 11: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPOverview– vnet breakdown

• vnet codebrokenintofoldersperfeature

• mostfunctionalitycanbesummarizedbythesecategories

• eachdiscretefeatureimplementedasanodeinadirected-graph

Devices

Layer2

Layer3

Traffic Mgmt

Overlays

vnet

Page 12: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

AF_PACKET

DPDK v16.11,HQOS

NETMAP

SSVM

QEMUvhost-user

multi-queue, indirectdescriptors

Ethernet,MPLSoverEthernet

HDLC,LLC,SNAP,PPP,SRP,LLDPVLAN- single/double tagging

MACLearningdefault limit of50kaddresses

BridgingSplit-horizon groupsupport/EFP FilteringVTR– push/pop/Translate (1:1,1:2,2:1,2:2)

Multimillion entryFIBs

SourceRPF

Thousands ofVRFsControlledcross-VRFlookups

Multipath– ECMPandUnequalCost

IPSec

IPv6

(Neighbor discovery,

RouterAdvertisement)

ARM32,

RaspberryPi

ProxyARP

ARPtermination

IRB– BVISupportwithRouter/MACassignment

Flooding

InputACLs

Interfacecross-connect

SPAN

BFD

TUN/TAPjumbosupport

CryptoDev

FIB2.0recursiveFIBlookup,failuredetectionIPMPLSFIBSharedFIBadjacencies

Mandatory Input Checks:TTLexpiration,Headerchecksum,L2length<IPlength,ARPresolution/snooping, perinterfacewhitelists

SNAT

MagLev-likeLoadBalancer

IdentifierLocatorAddressing(ILA)

Highperformanceportrangeingressfiltering

LawfulIntercept

Policer

GBP/SecurityGroupsclassifiersupport

Connection tracking

LISP

NSH

SegmentRouting

MAP/LW46

iOAM

DHCP

GREMPLS-GRENSH-GRE

VXLAN

VXLAN-GPE

L2TPv3

VXLANoverIPv6underlay

ARPproxy

SourceRPF

MultiplemillionClassifiers–ArbitraryN-tuple

Page 13: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Pluginsarefirstclasscitizens

• Pluginscanbein-tree:• SNAT,PolicyACL,L2Session,FlowPerPacket,ILA,IOAM,LB,SIXRD,VCGN

• Separatefd.io project:• NSH_SFC

ethernet-input

snat-out2in

vxlan-gpe-input

ip4-input

nsh-input

nsh-mapper

vxlan-gpe-input

Page 14: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

APIcomposability

• Eachgraph-nodeandfeatureexposesabinaryAPI

• Accessibleviahigh-performanceshared-memoryring-buffer

• Implementedasasynchronouscallback

• Python*,Javabindings

vl_api_snat_add_address_range_t_handler()

vl_api_nsh_add_del_entry_t_handler()

vl_api_vxlan_gpe_add_del_tunnel_t_handler()

ExampleAPIcallfromuser

void add_l2_bridge (int bd_id, client_main_t *cm) { vl_api_bridge_domain_add_del_t *mp; ...mp->_vl_msg_id = ntohs (VL_API_BRIDGE_DOMAIN_ADD_DEL); mp->client_index = cm->my_client_index; mp->bd_id = ntohl(bd_id); ...mp->learn = 1; vl_msg_api_send_shmem (cm->vl_input_queue, (u8 *)&mp);

}

plugin

ethernet-input

snat-out2in

vxlan-gpe-input

ip4-input

nsh-input

nsh-mapper

vxlan-gpe-input

Page 15: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

...butonlywhentheinstructionsareloadedin

here...

Howdoesitwork?

*approx.173nodesindefaultdeployment

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

Nodeswilldoprocessing ...

1

2

...onthesethings ...3

...butonlywhenthedataisloadedinhere.

4

cpu instruction cache cpu datacache

Page 16: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork? P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

cpu instruction cache cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

ethernet-input

Getpointertovector

PREFETCH#3and#4

PROCESS#1and#2

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets

Page 17: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Integrations

Page 18: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

OPNFVFDS

16.09

https://wiki.opnfv.org/display/fds/FastDataStacks+Home

GBPRendererManager

GBPNeutronMapper

VPPrendererTopologyManager-

VBD

NeutronNorthBound

Neutron

...

Honeycomb(DataplaneAgent)

VPP

DPDK

System

Test(Yardstick)

System

Install(A

PEX)

Colorado

REST

NETCONFYANG

Page 19: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPML2

ML2MechanicalDriver

Neutron

...

VPP

DPDK

REST

17.01

ML2Agent

PythonAPI

REST

Page 20: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Containerintegration

CGO

CONTIV

VPP

DPDK

CAPI

17.01

GOLANG

containeragent

VPPdrivercontiv

FELIXv2

VPPdriver

PythonAPI

GOLANGAPI

Page 21: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

ApplicationNetworking

Page 22: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Containernetworking

FIFO

PID1234

TCP

IP(routing)

device

send()

FIFO

PID4321

TCP

IP(routing)

device

recv()

kernel

glibc

Page 23: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Containernetworking

FIFO

PID1234

TCP

IP(routing)

device

send()

FIFO

PID4321

TCP

IP(routing)

device

recv()

FIFO

device

FIFO

device

VPP

af_packet

etc etcetcACL,SR,VXLAN-GPEip(4|6)-rewriteip(4|6)-inputethernet-input

dpdk

dpdk

device

af_packet

Page 24: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Whynotthis?PID1234 PID4321

recv()

VPP

FIFOFIFO

TCP

IP

DPDK

send()

DASHBOARD 60Gbpsround-trip

DASHBOARD40Gbpsoneway

VPPFIFO

vsLinuxbridge

iPerf

*reference:E5-2620v42.1GHz

Page 25: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Performance

Page 26: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPP technology in a nutshell

• NDR = Non Drop Rate

• Read zero frame loss

• Not ITU 10^-7 packet loss ratio

• So simply put

• NDR here is better than ITU NDR J

OVSDPDK-vhost-user

VPP-vhost-user

0

1

2

3

4

5

6

7

NIC-to-VMVM-to-VM

OVSDPDK

VPP0

5

10

15

20

2MACs2kMACs

20kMACs

NDR rates for 2p10GE, 1 core, L2 NIC-to-NIC

[IMIX Gbps]

[IMIX Gbps]

NDR rates for 2p10GE, 1 core, L2 NIC-to-VM/VM-to-VM

• Virtual network infra benchmark of efficiency• All tests per connection only, single core• Higher performance with more connections, more cores• Latest SW: OVSDPDK 2.4.0, VPP 09/2015

Page 27: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

OVSDPDK

VPP0.0

20.0

40.0

60.0

80.0

100.0

120.0

12routes 1kroutes100kroutes

500kroutes1Mroutes

2Mroutes

OVSDPDK

VPP0.0

10.0

20.0

30.0

40.0

50.0

60.0

6routes1kroutes

100kroutes500kroutes

1Mroutes2Mroutes

• VPPdataplanethroughputnotimpactedbylargeIPv4FIBsize

• OVSDPDKdataplanethroughputheavilyimpactedbyIPv4FIBsize

• VPPandOVSDPDKtestedonHaswell x86platformwithE5-2698v32x16C2.3GHz(Ubuntu14.04trusty)

NDRratesfor6port10GE,6cores,IPv4 NDRratesfor12port10GE,12cores,IPv4

[IMIX Gbps] [IMIX Gbps]

vNet-SLAbenchmarkingatscale:IPv4VPPandOVSDPDK

fd.ioFoundation27

UPDATEw/LATEST#s

Page 28: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Backupslides

Page 29: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

...butonlywhentheinstructionsareloadedin

here...

Howdoesitwork?

*approx.173nodesindefaultdeployment

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

Nodeswilldoprocessing ...

1

2

...onthesethings ...3

...butonlywhenthedataisloadedinhere.

4

cpu instructioncache cpu datacache

Page 30: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork? P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

register node

init node

dispatch fn()

trace formatter

cpu instructioncache cpu datacache

Page 31: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork? P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

cpu instruction cache cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

ethernet-input

Getpointertovector

PREFETCH#3and#4

PROCESS#1and#2

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets

Page 32: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork?

cpu instruction cache cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

ethernet-input

PREFETCH#3and#4

Getpointertovector

PROCESS#1and#2

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets

1

2

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

P2 P3

Page 33: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork?

cpu instruction cache cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

ethernet-input

Getpointertovector

PREFETCH#3and#4

PROCESS#1and#2

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets 2

1

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

P2 P3P0 P1

Page 34: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork?

cpu instruction cache cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

ethernet-input

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

P2 P3P0 P1

Getpointertovector

PREFETCH#3and#4

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets

PROCESS#1and#2Checkandfix-upforany

packetsthataren’tgoing tothelast

packet’snext-node!

Page 35: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork?

cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

2

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

P2 P3 P4 P5

cpu instruction cache

ethernet-input

Getpointertovector

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets

1

PREFETCH#3and#4

PROCESS#1and#2

Page 36: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

Howdoesitwork?

cpu datacache

dispatch fn()

ethernet-input

dpdk-inputaf-packet-input

vhost-user-input

mpls-inputlldp-input

...-no-checksum

ip4-input ip6-inputarp-inputcdp-input l2-input

ip4-lookup ip4-lookup-mulitcast

ip4-rewrite-transit

ip4-load-balance

ip4-midchain

mpls-policy-encap

interface-output

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

P2 P3 P4 P5

cpu instruction cache

ethernet-input

Getpointertovector

ASSUMEnext_node sameaslastpacket

Updatecounters,advancebuffers

Enqueue thepackettonext_node

<asabovebutsingleton>

whilepacketsinvector

while4ormorepackets

whileanypackets

1

PREFETCH#3and#4

PROCESS#1and#2

Page 37: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPHistory

16.06 16.091.0.0 17.01pre-OSS

Devices

Layer2

Layer3

Traffic Mgmt

Overlays

vnet

DASHBOARD

14Mpps

Participatingprojects

Code

-#+#

Contributors: xxx

Coverity warnings:xxx

Integrations

contiv

openstack ML2

HoneycombCSITNSH_SFCONE_LISP

14

17

10

41

8

• UnitTestinfrastructure• maketest

• IPFIXenhancements• PNDAintegration

• Outputfeaturesupport• post- lookup

• Pythonbindings forplugins• Featuresub-grapharcsupport• iOAM enhancements

Page 38: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPHistory

16.06 16.091.0.0 17.01pre-OSS

Devices

Layer2

Layer3

Traffic Mgmt

Overlays

vnet

DASHBOARD

14Mpps

Participatingprojects

Code

-#+#

Contributors: xxx

Coverity warnings:xxx

Integrations

HoneycombCSITNSH_SFCONE_LISP

7

16

8

30

8

• Dynamicallyorderedsubgraphs• Doxygen generateddocs.fd.io• Java/Python languagebindings

Page 39: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPHistory

16.06 16.091.0.0 17.01pre-OSS

Devices

Layer2

Layer3

Traffic Mgmt

Overlays

vnet

DASHBOARD

14Mpps

Participatingprojects

Code

-#+#

Contributors: xxx

Coverity warnings:xxx

Integrations

HoneycombCSITNSH_SFCONE_LISP

7

16

8

19

8

Page 40: fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf · 2016-12-14 · Network IO Packet Processing: VPP Management Agent NC/Y REST ... ethernet -

VPPHistory

16.06 16.091.0.0 17.01pre-OSS

Devices

Layer2

Layer3

Traffic Mgmt

Overlays

vnet

DASHBOARD

14Mpps/core

Feb2016

Participatingprojects

Code

-#+#

Contributors: xxx

Coverity warnings:xxx

HoneycombCSIT

5

16

7

15

6

2002