Brian	Johnson,	Intel®	Corporation Andrey	Chilikin,	Intel®	Corporation DPDK	Summit	- San	Jose	– 2017 Flexible And Extensible Support for New Protocol Processing with DPDK using Dynamic Device Personalization #DPDKSummit
2 Network Landscape
3 Network Landscape Enterprise GiLANWireless Wireline
4 Dynamic Device Personalization (DDP) Dynamic	Device	Personalization	(DDP)	profiles	for Intel®	Ethernet	700	Series	enables	run-time	updating	and configuration	of	parse	graph	to	expand	or	modify	protocol support	allowing	early	adoption	of	new	technologies Example: u Default	Tunneling	protocol	support u VXLAN,	GENEVE,	NVGRE,	MPLS,	VXLAN-GPE	currently supported	but	limited	by	hardware	resources u Dynamic	Device	Personalization	enables 1. Loadable	profiles	for	packet	classification	for additional	or	modification	of	existing	protocols u e.g.	MPLSoGRE,	GTP-U/GTP-C,	PPPoE,	QUIC,	ESP,	AH 2. Configurable	tunnel	filters	for	traffic	steering u Steering	packets	to	VM	queues	on	QinQ/tunnel	ID Load Distribution Software Worker 0 Worker 1 Worker n Worker 0 Worker 1 Worker n External traffic (e.g. GTP-U/GTP-C) External traffic (e.g. GTP-U/GTP-C) Host Software analyzes and distributes packets (without DDP) NIC Hardware with DDP enabled Profile and configured traffic steering Packet analyzes and distribution is done on NIC with additional Rx Descriptor Data
5 Dynamic Device Personalization DPDK APIs* u rte_pmd_i40e_get_ddp_list() get	the	list	of	registered	profile(s) u rte_pmd_i40e_process_ddp_package() download	dynamic	device	personalization	profile	to	the	device	and	register	profile rollback	dynamic	device	personalization	profile	and	un-register	it u rte_pmd_i40e_get_ddp_info() request	information	about	a	profile	without	downloading	it	to	the	NIC * Requires XL710 firmware version 6.01 https://downloadcenter.intel.com/product/75021/Intel-Ethernet-Controller-XL710-Series
6 Dynamic Device Personalization: Without vs. With, GTP-U example Default FVL6 processing (without Personalization profile): DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload FVL6 with Personalization profile applied: DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload RSS RSS GTP-U is unknown flow type, so no RSS, FDIR or other filters are possible on encapsulated frame GTP-U flow type is defined, encapsulated frame fields (including GTP TEID) can be used for RSS, FDIR. Encapsulated frame type is indicated on RX descriptor, for example, TCP in GTP-U or GTP-U echo message GTP-C flow type is defined as well and has separate RSS/FDIR configuration. RSS RSS RSS Packet type: UDP in IPv4 Packet type: TCP in GTP-U
7 Without Dynamic Device Personalization Profiles Loaded DDP
8 With Dynamic Device Personalization GTP, QUIC & IPsec Profiles Loaded DDP
9 With Dynamic Device Personalization RSS Queue Regions Assigned DDP
10 Summary u Dynamic	Device	Personalization	can	be	used	on	any	OS	supported	by	DPDK u For	example,	QUIC	protocol	classification	on	both	Windows	and	Linux	OSes u Dynamic	Device	Personalization	allows	a	DPDK	application	to	enable	identification	of	new protocols,	for	example,	GTP,	PPPoE,	QUIC,	MPLSoGRE,	SRv6,	etc without	requiring	a	reboot due	to	changing	hardware	or	firmware	updates. u Allows	for	existing	Parse	Graphs	to	be	modified	to	support	new	usage	models	as	they	are defined	enabling	faster	time	to	market	for	DPDK	enable	applications. DPDK on Microsoft Windows DPDK on Linux
Thank You Dynamic	Device	Personalization Core	Team Eyal	Prashker Yochai	Hagvi Andrey	Chilikin Brian	Johnson Robin	Giller DPDK	Team Helin	Zhang Heqing	Zhu Dynamic Device Personalization with GTP and QUIC Profiles Special Thanks to Michael Shearer and Patrick Kutch for all the help on the development of the DDP Dashboard and server instrumentation development BIF Framework -- https://github.com/intel/Board-Instrumentation-Framework

LF_DPDK17_Flexible and Extensible support for new protocol processing with DPDK using Dynamic Device Personalization

  • 1.
    Brian Johnson, Intel® Corporation Andrey Chilikin, Intel® Corporation DPDK Summit - San Jose – 2017 FlexibleAnd Extensible Support for New Protocol Processing with DPDK using Dynamic Device Personalization #DPDKSummit
  • 2.
  • 3.
  • 4.
    4 Dynamic Device Personalization(DDP) Dynamic Device Personalization (DDP) profiles for Intel® Ethernet 700 Series enables run-time updating and configuration of parse graph to expand or modify protocol support allowing early adoption of new technologies Example: u Default Tunneling protocol support u VXLAN, GENEVE, NVGRE, MPLS, VXLAN-GPE currently supported but limited by hardware resources u Dynamic Device Personalization enables 1. Loadable profiles for packet classification for additional or modification of existing protocols u e.g. MPLSoGRE, GTP-U/GTP-C, PPPoE, QUIC, ESP, AH 2. Configurable tunnel filters for traffic steering u Steering packets to VM queues on QinQ/tunnel ID Load Distribution Software Worker 0 Worker 1 Worker n Worker 0 Worker 1 Worker n External traffic (e.g. GTP-U/GTP-C) External traffic (e.g. GTP-U/GTP-C) Host Software analyzes and distributes packets (without DDP) NIC Hardware with DDP enabled Profile and configured traffic steering Packet analyzes and distribution is done on NIC with additional Rx Descriptor Data
  • 5.
    5 Dynamic Device PersonalizationDPDK APIs* u rte_pmd_i40e_get_ddp_list() get the list of registered profile(s) u rte_pmd_i40e_process_ddp_package() download dynamic device personalization profile to the device and register profile rollback dynamic device personalization profile and un-register it u rte_pmd_i40e_get_ddp_info() request information about a profile without downloading it to the NIC * Requires XL710 firmware version 6.01 https://downloadcenter.intel.com/product/75021/Intel-Ethernet-Controller-XL710-Series
  • 6.
    6 Dynamic Device Personalization: Withoutvs. With, GTP-U example Default FVL6 processing (without Personalization profile): DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload FVL6 with Personalization profile applied: DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload RSS RSS GTP-U is unknown flow type, so no RSS, FDIR or other filters are possible on encapsulated frame GTP-U flow type is defined, encapsulated frame fields (including GTP TEID) can be used for RSS, FDIR. Encapsulated frame type is indicated on RX descriptor, for example, TCP in GTP-U or GTP-U echo message GTP-C flow type is defined as well and has separate RSS/FDIR configuration. RSS RSS RSS Packet type: UDP in IPv4 Packet type: TCP in GTP-U
  • 7.
    7 Without Dynamic DevicePersonalization Profiles Loaded DDP
  • 8.
    8 With Dynamic DevicePersonalization GTP, QUIC & IPsec Profiles Loaded DDP
  • 9.
    9 With Dynamic DevicePersonalization RSS Queue Regions Assigned DDP
  • 10.
    10 Summary u Dynamic Device Personalization can be used on any OS supported by DPDK u For example, QUIC protocol classification on both Windows and Linux OSes uDynamic Device Personalization allows a DPDK application to enable identification of new protocols, for example, GTP, PPPoE, QUIC, MPLSoGRE, SRv6, etc without requiring a reboot due to changing hardware or firmware updates. u Allows for existing Parse Graphs to be modified to support new usage models as they are defined enabling faster time to market for DPDK enable applications. DPDK on Microsoft Windows DPDK on Linux
  • 11.
    Thank You Dynamic Device Personalization Core Team Eyal Prashker Yochai Hagvi Andrey Chilikin Brian Johnson Robin Giller DPDK Team Helin Zhang Heqing Zhu Dynamic Device Personalizationwith GTP and QUIC Profiles Special Thanks to Michael Shearer and Patrick Kutch for all the help on the development of the DDP Dashboard and server instrumentation development BIF Framework -- https://github.com/intel/Board-Instrumentation-Framework