fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf ·...
Transcript of fd.io vpp overview Uwvi - Meetupfiles.meetup.com/19623913/Day2DevLab_VPP_Overview.pdf ·...
![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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/2.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/3.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/4.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/5.jpg)
• 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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/6.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/7.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/8.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/9.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/10.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/11.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/12.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/13.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/14.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/15.jpg)
...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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/16.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/17.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/18.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/19.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/20.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/21.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/22.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/23.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/24.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/25.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/26.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/27.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/28.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/29.jpg)
...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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/30.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/31.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/32.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/33.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/34.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/35.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/36.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/37.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/38.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/39.jpg)
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 -](https://reader033.fdocuments.in/reader033/viewer/2022042303/5eced5849515787d420062f0/html5/thumbnails/40.jpg)
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