SlideShare a Scribd company logo
1 of 33
Download to read offline
Brian Johnson – Solution Architect, Intel Corp
v1803.20
Ethernet Networking Division 2
Legal Disclaimer
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS
IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY
EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL® PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. INTEL PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE
SUSTAINING APPLICATIONS.
Intel may make changes to specifications and product descriptions at any time, without notice.
All products, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice.
Intel processors, chipsets, and desktop boards may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are
available on request.
Alta, Red Rock Canyon, Seacliff Trail and other code names featured are used internally within Intel to identify products that are in development and not yet publicly announced for release. Customers,
licensees and other third parties are not authorized by Intel to use code names in advertising, promotion or marketing of any product or services and any such use of Intel's internal code names is at the
sole risk of the user
Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using
specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests
to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products.
Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. Go to:
http://www.intel.com/products/processor_number
Intel product plans in this presentation do not constitute Intel plan of record product roadmaps. Please contact your Intel representative to obtain Intel's current plan of record product roadmaps.
Intel, Xeon the Intel logo are trademarks of Intel Corporation in the United States and other countries.
*Other names and brands may be claimed as the property of others.
Copyright ©2018 Intel Corporation.
Intel does not control or audit the design or implementation of third party benchmark data or Web sites referenced in this document. Intel encourages all of its customers to visit the referenced Web sites
or others where similar performance benchmark data are reported and confirm whether the referenced benchmark data are accurate and reflect performance of systems available for purchase.
Ethernet Networking Division 3
Agenda
Problem statement
Intel® Ethernet 700 Series capabilities level set
What is a Dynamic Device Personalization Profile?
Personalization programming tool chain
Examples and Demo
Using the Data Plane Development Kit and Dynamic Device Personalization
Click here to access stream
Ethernet Networking Division 4
Network Landscape
Microwave
Mobile
Backhaul
BRAS
Wireless Core GiLAN
IMS
DSLAM
CDN
IPFE
GTP
QinQ,
GRE,
MPLS Martini
VXLAN
Load distribution
(stateless hashing)
on any packet’s fields
QinQ
SCTP
NSH
NSH
NSHoUDP
IPSec – ESP stateless hashing
ARP
Load balancing
(stateless hashing)
on GTP TEID,
IPSec ESP SPI
VXLAN-gpe
Geneve
CAPWAP
MPLS
IPv4, IPv6, TCP, UDP, SCTP, VXLAN, NVGRE, GRE
VXLAN + PPPoE
VXLAN + GTP
Available Limited functionality
Software
Classification/
Distribution
Bottleneck
Classification/
Distribution in
HW Removes
Bottleneck
Load Distribution Software
Runs on CPU Core
Intel® Ethernet
700 Series
Worker
1
Worker
2
Worker
3
Worker
4
From 40GbE
Traffic Generator
MPLSoGREStandard TCP
Worker
0
Load Distribution Core
Load Distribution
Runs on XL710 Personalization Profile
Worker
1
Worker
2
Worker
3
Worker
4
Load Distribution using
MPLSoGRE DDP
MPLSoGREStandard TCP
Worker
0
Intel® Ethernet
700 Series
From 40GbE
Traffic Generator
Ethernet Networking Division 5
Intel® Ethernet 700 Series Capabilities Level Set
Packets classification: supports up to 64 packet classifier types (PCTYPEs)
o “TCP in IPv4” and “UDP in IPv6” are different packet classifier types
filters (hash, flow director, tunnel filter) configured per PCTYPE
Reported packet types: up to 192 packet types as 8bit value on RX descriptor
o “MAC, IPv4, TCP, PAY4” and “MAC, IPv6, TCP, PAY4” packets will have different PTYPE
value on RX descriptor
Packets steering/mirroring: tunnel (cloud) filters for VXLAN, GRE, GENEVE
o ADq (Application Device Queues) to filter TCP/UDP traffic
Hash offload calculation (up to 48 bytes input set)
o Different queue regions can be assigned to different PCTYPEs
Exact flow matching (up to 8k rules) – Intel® Ethernet Flow Director
Ethernet Networking Division 6
Intel® Ethernet 700 Series Rx Programmable Pipeline
Parser
Packet Context
Classifier
Switch
Classifier
Rx Post Filters
Packet Type
Resolver
3-StageFlowTables
FlowTables
...
Packet Type
Packet Type
Packet
Modifier
(RDPU)
Analyzer
(Packet Digest & Metadata)
uCode
FlexKeyperPacketType
Q
Stats
VSI
Actions
FV (Field Vecor)
QVSI
Q
Rx Desc
RDPU Rcp
Actions
Rx DescRDPU Rcp
Recipies
Packet
Buffer
Ports
Network
Interfaces
Rx
Descriptor
Packet
Data
PCIeEthernet
Drop
Drop
Metering/
Stats
Stats
Metadata
Filter/Selector
FlexN-TupleKeyBuild
FLUs
...
FLUs
...
FLUs
...
...
...
Stats Stats Stats
...
TC / QoS
FD
RSS
QH
...
FCoE
TC / QoS
Field
Extractor
Stats
Programming
by firmware
or by DDP1 2
Ethernet Networking Division 7
What is Dynamic Device Personalization (DDP)?1
Loadable Packet Classifications (Parser) personalization
for any well-defined traffic profiles for VNFs or
appliances with a specific position in the network
 Enable new protocols:
– GTP tunnel support, GTP-C and GTP-U as a separate flow types
– IP protocols as new flow types, for example L2TPv3, ESP/AH for IPSec
– Legacy protocols: PPPoE, PPPoL2TPv2
 Modify existing protocols:
– VXLAN with IP payload, NSHoUDP
– New PTYPEs on RX descriptor: for example, IPv4 TCP in one/two
MPLS label(s)
 Make Smart NIC act Stupid:
– Disable GRE classification
– Disable IPv4 classification
 Debug:
– Read configuration/statistics registers in one admin command call
Configurable tunnel filters for traffic steering
(Classifier Switch)
 Steering packets to a VM on QinQ
 Steering packets to a VM on Tunnel ID
(VXLAN, NVGRE, MPLS, GTP, NSH*)
 User definable steering/mirroring rules
1Does not include Intel® Ethernet Connection X722
Ethernet Networking Division
DPDK API or
Linux driver*
Dynamic Device Personalization Programming Tool Chain
Profile Editor
No GTP
Support
1. Take current Parser NVM configuration
2. Use Profile Editor to modify existing entries/create new entries for
Analyzer/Parser to address customer’s request
3. Create binary package file to be applied to FVL by customer
4. Download profile to FVL to change Parser configuration: new
PCTYPEs, PTYPEs, Protocols, extracted fields.
Profile is not persistent, on reset the original configuration is restores from
the NVM. SW can restore original configuration without reset as profiles
support “roll-back” transaction.
1 2 4
5
Loader
Loader:
DPDK 17.05 to 17.11
Linux: in planning
GTP
Support
gtp.i40e file
pppoe.pkgo
gtp.pkgo
mmio { // Expose GTP protocol
groupi REG w 0x300 x05 0x0 0xb
// add UDP 2153
write REG w 0x100 x32 0x0 0xcf58b
…
compiler
Intel Customermpls.pkgo 3
8
Ethernet Networking Division 9
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 24: UDP in IPv4
Packet type 172: TCP in GTP-U
RSS
RSS
10
Resume Presentation
Ethernet Networking Division 11
GTP Profile Example
Before GTP Profile is Applied
 31 udp
 33 tcp
 34 sctp
 35 ip
 36 ipf
 41 udp6
 43 tcp6
 44 sctp6
 45 ip6
 46 ipf6
 63 l2
Before GTP Profile is Applied
 22 gtpu ipv4
 23 gtpu ipv6
 24 gtpu
 25 gtpc
 31 udp
 33 tcp
 34 sctp
 35 ip
 36 ipf
 41 udp6
 43 tcp6
 44 sctp6
 45 ip6
 46 ipf6
 63 l2
Ethernet Networking Division 12
Dynamic Device Personalization Demo
Ethernet Networking Division
Without Dynamic Device Personalization GTP Profile Loaded
Ethernet Networking Division
With Dynamic Device Personalization GT Profile Loaded
Ethernet Networking Division
With Dynamic Device Personalization RSS Queue Regions Assigned
Ethernet Networking Division
With Dynamic Device Personalization More RSS Queue Per Regions Assigned
Ethernet Networking Division 17
Dynamic Device Personalization Commands in DPDK testpmd
4.4. Display Functions
4.4.10. ddp get list
Get loaded dynamic device personalization (DDP) package info list:
testpmd> ddp get list (port_id)
4.4.11. ddp get info
Display information about dynamic device personalization (DDP) profile:
testpmd> ddp get info (profile_path)
4.5. Configuration Functions
4.5.88. ddp add
Load a dynamic device personalization (DDP) profile and store backup profile:
testpmd> ddp add (port_id) (profile_path[,backup_profile_path])
4.5.89. ddp del
Delete a dynamic device personalization profile and restore backup profile:
testpmd> ddp del (port_id) (backup_profile_path)
http://dpdk.org/doc/guides/testpmd_app_ug/testpmd_funcs.html#configuration-functions
Ethernet Networking Division
rte_pmd_i40e_process_ddp_package()
download dynamic device personalization profile and register it**
int rte_pmd_i40e_process_ddp_package(
uint8_t port, // DPDK port index to download DDP package to
uint8_t *buff, // buffer with the package in the memory
uint32_t size, // size of the buffer
rte_pmd_i40e_package_op op // 17.05 supports only RTE_PMD_I40E_PKG_OP_WR_ADD
);
int rte_pmd_i40e_get_ddp_list()
get list of registered profile(s)**
int int rte_pmd_i40e_get_ddp_list (
uint8_t port, // DPDK port index to get list from
uint8_t *buff, // buffer to store list of registered profiles (rte_pmd_i40e_profile_list *)
uint32_t size // size of the buffer
);
* Requires XL710 firmware version 6.01
** HW could register up to 16 profiles, but SW should limit number of loaded profiles to one to avoid profiles overlapping
DPDK 17.05 APIs (rte_pmd_i40e.h)*
18
Ethernet Networking Division
DPDK 17.08 APIs (rte_pmd_i40e.h)*
rte_pmd_i40e_process_ddp_package()
download dynamic device personalization profile and register it (RTE_PMD_I40E_PKG_OP_WR_ADD)
rollback dynamic device personalization profile and un-register it (RTE_PMD_I40E_PKG_OP_WR_DEL)
rte_pmd_i40e_get_ddp_info()
request information about a profile without downloading it to the NIC
int rte_pmd_i40e_get_ddp_info(
uint8_t *pkg_buff, // buffer with the package in the memory
uint32_t pkg_size, // size of the package buffer
uint8_t *info_buff, // buffer to store information to
uint32_t info_size, // size of the information buffer
enum rte_pmd_i40e_package_info type // information type: header, devlist, ...
);
Note: in case if profile adds new flow types/packet types, these types should be enabled in DPDK separately
NEW:
* Requires XL710 firmware version 6.01
19
Ethernet Networking Division
Identify
Feature
Develop
Prototype
PoC with
Customers
FVL6 Delivery
Q2 2017
New Protocols Dynamically
Defined via DDP Profiles
Dynamic Device Personalization (DDP) – Protocol Profile Development Plan
20
Dynamic Device Personalization profiles for Intel® Ethernet 700 Series addresses
additional protocol support and allows early adoption of new technologies.
Intel® Ethernet 700 Series
2016
Pre-FVL6 Gap:
Protocols supported
Limited to firmware only
Intel® Ethernet 700 Series
FlexRAN /
MEC / EPC
GTP
RoE
BNG
PPPoE
CMTS
L2TPv3
Network
Programming
NHS
SRv6
Custom
VXLAN+IP payload
vRouter
MPLSoGRE
MPLSoUPD
New protocols via
Dynamic Device
Personalization
Application
Proposed
Protocols
Ethernet Networking Division
Load Distribution Software
Runs on CPU Core
Intel® Ethernet
700 Series
Worker
1
Worker
2
Worker
3
Worker
4
From 40GbE
Traffic Generator
MPLSoGREStandard TCP
Worker
0
Load Distribution Core
Load Distribution
Runs on XL710 Personalization Profile
Worker
1
Worker
2
Worker
3
Worker
4
Load Distribution using
MPLSoGRE DDP
MPLSoGREStandard TCP
Worker
0
Intel® Ethernet
700 Series
From 40GbE
Traffic Generator
Profiles for Wireline
Profiles for Wireless Profiles for GiLAN
Profiles for Enterprise
21
Network Landscape with
Dynamic Device Personalization
Microwave
Mobile
Backhaul
BRAS
Wireless Core GiLAN
IMS
DSLAM
CDN
IPFE
GTP-U
QinQ,
GRE,
MPLS Martini
VXLAN
Load distribution
(stateless hashing)
on any packet’s fields
QinQ
SCTP
NSH
NSH
NSHoUDP
IPSec – ESP stateless hashing
ARP
Load balancing
(stateless hashing)
on GTP TEID,
IPSec ESP SPI
VXLAN-gpe
Geneve
CAPWAP
MPLS
Without DDP
Software
Bottleneck
Profiles can be loaded separately per-device, so the same server with
multiple NICs can be used for different workload in a very dynamic way
DDP Removes
Bottleneck
VXLAN + GTP
Ethernet Networking Division
Intel® Ethernet Converged
Network Adapter XL710-QDA2
Port Speeds: 10Gb/40GbE
Intel® Ethernet Network
Adapter XXV710-DA1
Port Speeds: 1Gb/10Gb/25GbE
Intel® Ethernet Converged
Network Adapter X710-T4
Port Speeds: 1Gb/10GbE
Intel® Ethernet Converged
Network Adapter X710-DA4
Port Speeds: 1Gb/10GbE
PCIExpress*
EthernetAdapters
22
Intel®Ethernet700Seriesnetworkadapters
OpenComputeProject
EthernetAdapters
Intel® Ethernet Network Adapter
XXV710-DA1 for OCP
Port Speeds: 1Gb/10Gb/25GbE
Intel® Ethernet Network
Adapter XXV710-DA2
Port Speeds: 1Gb/10Gb/25GbE
Intel® Ethernet Converged
Network Adapter X710-DA2
Port Speeds: 1Gb/10GbE
Intel® Ethernet Server Adapter
XL710-QDA2 for OCP
Port Speeds: 1Gb/10Gb/40GbE
Intel® Ethernet Converged
Network Adapter XL710-QDA1
Port Speeds: 10Gb/40GbE
Intel® Ethernet Server Adapter
XL710-QDA1 for OCP
Port Speeds: 1Gb/10Gb/40GbE
Intel® Ethernet Server Adapter
X710-DA2 for OCP
Port Speeds: 1Gb/10GbE
10Gb Ethernet 10Gb or 25Gb Ethernet 4x10Gb or 40Gb Ethernet
Optimized Performance and Enhanced Usability
for Cloud and Network Functions Virtualization (NFV)
Ethernet Networking Division
Dynamic Device Personalization Summary
Dynamic Device Personalization can be used on any OS supported by DPDK
 For example, QUIC protocol classification on both Windows and Linux Oses
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.
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
23
Ethernet Networking Division
Dynamic Device Personalization Resources
Public Resources
 Intel® Developer Zone Article
– https://software.intel.com/en-us/articles/dynamic-device-
personalization-for-intel-ethernet-700-series
 DPDK Summit Nov 2017 presentation (YouTube)
– https://www.youtube.com/watch?v=X8aMDdAnnBI
 DPDK Summit Nov 2017 Slides
– https://www.slideshare.net/LF_DPDK/lfdpdk17flexible-and-
extensible-support-for-new-protocol-processing-with-dpdk-
using-dynamic-device-personalization
24
Ethernet Networking Division 25
Ethernet Networking Division 26
Dynamic Device Personalization
Without vs. With, PPPoE example
Default FVL6 processing (without personalization profile):
DA SA PPPoE IPv4 UDP PAY
Parsed fields Payload
FVL6 with personalization profile applied:
Parsed fields Payload
RSS
RSS
RSS
PPPoE is unknown flow type, so no RSS, FDIR or other filters are possible on inner packet fields.
FVL classifies PPPoE (Discovery and Session) packets as L2 payload.
With a DDP profile, PPPoE header can be parsed and encapsulated packet classified.
For example, for PPPoE session with UDP in IPv4, as shown above, RSS and FDIR filters can be used on UDP.
If required, RSS, FDIR and Tunnel filters can use PPPoE Session ID as well.
RSS
DA SA PPPoE IPv4 UDP PAYsession
Ethernet Networking Division 27
Dynamic Device Personalization
Without vs. With, MPLSoGRE example
Default FVL6 processing (without personalization profile):
DA SA IPv4 GRE MPLS DA SA IPv4 UDP PAY
Parsed fields Payload
FVL6 with personalization profile applied:
DA SA IPv4 GRE MPLS DA SA IPv4 UDP PAY
Parsed fields Payload
RSS
RSS
RSS
MPLSoGRE is unknown flow type, so no RSS, FDIR or other filters are possible. Packet type set to 43.
With MPLSoGRE flow type is defined by encapsulated frame, for example, UDP in IPv4 as shown above
so all filters available for UDP can be applied to the packets: RSS, FDIR. Packet type 59-72.
RSS, FDIR and Tunnel filters can use MPLS label as tunnel (tenant) ID.
RSS
Ethernet Networking Division
Q&A, generic
Q How profiles will be distributed?
A
There a two main ways of distributing profiles:
1. as a separate binary file and loaded by application
2. it can be precompiled to a driver, and selected on device initialization stage
For the trials/test with a customer we use the first option, as profile configuration can change
during pre-release.
After full validation, release version can be precompiled with a driver (kernel or DPDK) or an
application to be selected at initialization.
Q Can profile be applied to only one port/PF/VF of a multi-port device?
A
No, profiles affect all port on a device. In virtual environment not only PFs but all VFs will be
affected as well. Which PF is used to apply a profile does not matter.
Q Do we need to reload a profile after NIC reset or, once loaded, profile stays in the NVM?
A Profiles are not persistent, so must be reloaded after any reset of the NIC.
Q
Can we use profiles on any other i40e compatible devices, for example, on Intel® Ethernet
Connection X722 ports of Intel® Chipset C620?
A No, the Intel Ethernet Connection X722 does not support profiles.
28
Ethernet Networking Division
Q&A, generic
Q Does firmware version 5 supports dynamic device personalization profiles?
A No, dynamic device personalization will be available starting from firmware version 6
Q How many profiles can be loaded simultaneously on one device?
A
Thou the Network Adapters can provide information about up to 16 loaded profiles. Multiple
profiles are not recommended. In case if, for some reason, multiple profiles are needed, it
should be treated very carefully to make sure that profiles are not overlapping and to avoid
any unexpected behaviour.
Q Will I (as a customer) be able to create profiles by myself?
A
No, profile programming requires very deep knowledge of the device internals and can be
done only by Intel engineers.
Q Can I apply profile while traffic is running through the device or I have to stop device first?
A You can apply/remove profile with traffic running, but some packet loss should be expected.
29
Ethernet Networking Division 31
Default firmware processing (WITHOUT Personalization profile)
DA SA IPv4 UDP GTP TEID IPv4 TCP PAY
Parsed fields Payload
GTP-U is unknown flow type, so no RSS, FDIR or other filters are possible on encapsulated frame
RSS
RSS
Packet type 24: UDP in IPv4
RSS
Ethernet Networking Division 32
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
Dynamic Device Personalization GTP Profile applied:
DA SA IPv4 UDP GTP TEID IPv4 TCP PAY
Parsed fields Payload
RSS
RSS
RSS
Packet type 172: TCP in GTP-U
RSS
Ethernet Networking Division 33
RSS configured separating traffic across 16 queues, assigning each of the
packet types to individual traffic classes and queue regions
GTP Demo RSS Configuration
// 31 ipv4-udp region 1, queues 1-2
// 41 ipv6-udp region 2, queues 3-4
// 34 SCTP region 3, queue 4
// 24 GTPU region 4, queue 6 (GTPU with message types != 0xFF)
// 25 GTPC region 5, queue 7
// 22 GTPU_IPV4 region 6, queues 8-11
// 23 GTPU_IPV6 region 7, queues 12-15
Dynamic Device Personalization GTP Profile applied with RSS:
DA SA IPv4 UDP GTP TEID IPv4 TCP PAY
Parsed fields Payload
RSS
RSS
RSS
Packet type 172: TCP in GTP-U
RSS

More Related Content

What's hot

仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
Kernel TLV
 

What's hot (20)

仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
 
Meet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingMeet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracing
 
Debug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsDebug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpoints
 
TRex Realistic Traffic Generator - Stateless support
TRex  Realistic Traffic Generator  - Stateless support TRex  Realistic Traffic Generator  - Stateless support
TRex Realistic Traffic Generator - Stateless support
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of Software
 
Introduction to DPDK RIB library
Introduction to DPDK RIB libraryIntroduction to DPDK RIB library
Introduction to DPDK RIB library
 
Intel dpdk Tutorial
Intel dpdk TutorialIntel dpdk Tutorial
Intel dpdk Tutorial
 
MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014  Segment Routing TI-LFA Fast ReRouteMPLS WC 2014  Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
 
Ixgbe internals
Ixgbe internalsIxgbe internals
Ixgbe internals
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
SK hynix CXL Disaggregated Memory Solution
SK hynix CXL Disaggregated Memory SolutionSK hynix CXL Disaggregated Memory Solution
SK hynix CXL Disaggregated Memory Solution
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
 
SPI Drivers
SPI DriversSPI Drivers
SPI Drivers
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 

Similar to Enabling new protocol processing with DPDK using Dynamic Device Personalization

Enabling Applications to Exploit SmartNICs and FPGAs
Enabling Applications to Exploit SmartNICs and FPGAsEnabling Applications to Exploit SmartNICs and FPGAs
Enabling Applications to Exploit SmartNICs and FPGAs
inside-BigData.com
 
Best Practice of Compression/Decompression Codes in Apache Spark with Sophia...
 Best Practice of Compression/Decompression Codes in Apache Spark with Sophia... Best Practice of Compression/Decompression Codes in Apache Spark with Sophia...
Best Practice of Compression/Decompression Codes in Apache Spark with Sophia...
Databricks
 

Similar to Enabling new protocol processing with DPDK using Dynamic Device Personalization (20)

OSN Bay Area Feb 2019 Meetup: Intel, Dynamic Device Personalization - Journey...
OSN Bay Area Feb 2019 Meetup: Intel, Dynamic Device Personalization - Journey...OSN Bay Area Feb 2019 Meetup: Intel, Dynamic Device Personalization - Journey...
OSN Bay Area Feb 2019 Meetup: Intel, Dynamic Device Personalization - Journey...
 
P4/FPGA, Packet Acceleration
P4/FPGA, Packet AccelerationP4/FPGA, Packet Acceleration
P4/FPGA, Packet Acceleration
 
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel ArchitectureDPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
 
Performance out of the box developers
Performance   out of the box developersPerformance   out of the box developers
Performance out of the box developers
 
What are latest new features that DPDK brings into 2018?
What are latest new features that DPDK brings into 2018?What are latest new features that DPDK brings into 2018?
What are latest new features that DPDK brings into 2018?
 
Технологии Intel в центрах обработки данных
Технологии Intel в центрах обработки данныхТехнологии Intel в центрах обработки данных
Технологии Intel в центрах обработки данных
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii Tkachuk
 
NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkNFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function Framework
 
HP_NextGEN_Training_Q4_2015
HP_NextGEN_Training_Q4_2015HP_NextGEN_Training_Q4_2015
HP_NextGEN_Training_Q4_2015
 
P3APS19001EN IEC 61850_Configuration_Instructions.pdf
P3APS19001EN IEC 61850_Configuration_Instructions.pdfP3APS19001EN IEC 61850_Configuration_Instructions.pdf
P3APS19001EN IEC 61850_Configuration_Instructions.pdf
 
Enabling Applications to Exploit SmartNICs and FPGAs
Enabling Applications to Exploit SmartNICs and FPGAsEnabling Applications to Exploit SmartNICs and FPGAs
Enabling Applications to Exploit SmartNICs and FPGAs
 
Intel® QuickAssist Technology (Intel® QAT) and OpenSSL-1.1.0: Performance
Intel® QuickAssist Technology (Intel® QAT) and OpenSSL-1.1.0: PerformanceIntel® QuickAssist Technology (Intel® QAT) and OpenSSL-1.1.0: Performance
Intel® QuickAssist Technology (Intel® QAT) and OpenSSL-1.1.0: Performance
 
Best Practice of Compression/Decompression Codes in Apache Spark with Sophia...
 Best Practice of Compression/Decompression Codes in Apache Spark with Sophia... Best Practice of Compression/Decompression Codes in Apache Spark with Sophia...
Best Practice of Compression/Decompression Codes in Apache Spark with Sophia...
 
Edge Computing and 5G - SDN/NFV London meetup
Edge Computing and 5G - SDN/NFV London meetupEdge Computing and 5G - SDN/NFV London meetup
Edge Computing and 5G - SDN/NFV London meetup
 
Serial interface module for ethernet based applications
Serial interface module for ethernet based applicationsSerial interface module for ethernet based applications
Serial interface module for ethernet based applications
 
5 pipeline arch_rationale
5 pipeline arch_rationale5 pipeline arch_rationale
5 pipeline arch_rationale
 
Omni path-fabric-software-architecture-overview
Omni path-fabric-software-architecture-overviewOmni path-fabric-software-architecture-overview
Omni path-fabric-software-architecture-overview
 
Overview of Intel® Omni-Path Architecture
Overview of Intel® Omni-Path ArchitectureOverview of Intel® Omni-Path Architecture
Overview of Intel® Omni-Path Architecture
 
Service Assurance Constructs for Achieving Network Transformation by Sunku Ra...
Service Assurance Constructs for Achieving Network Transformation by Sunku Ra...Service Assurance Constructs for Achieving Network Transformation by Sunku Ra...
Service Assurance Constructs for Achieving Network Transformation by Sunku Ra...
 
Service Assurance Constructs for Achieving Network Transformation - Sunku Ran...
Service Assurance Constructs for Achieving Network Transformation - Sunku Ran...Service Assurance Constructs for Achieving Network Transformation - Sunku Ran...
Service Assurance Constructs for Achieving Network Transformation - Sunku Ran...
 

More from Michelle Holley

Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
Michelle Holley
 

More from Michelle Holley (20)

Edge and 5G: What is in it for the developers?
Edge and 5G: What is in it for the developers?Edge and 5G: What is in it for the developers?
Edge and 5G: What is in it for the developers?
 
5G and Open Reference Platforms
5G and Open Reference Platforms5G and Open Reference Platforms
5G and Open Reference Platforms
 
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
De-fogging Edge Computing: Ecosystem, Use-cases, and OpportunitiesDe-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
 
Building the SD-Branch using uCPE
Building the SD-Branch using uCPEBuilding the SD-Branch using uCPE
Building the SD-Branch using uCPE
 
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesEnabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
 
Accelerating Edge Computing Adoption
Accelerating Edge Computing Adoption Accelerating Edge Computing Adoption
Accelerating Edge Computing Adoption
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
 
DPDK & Cloud Native
DPDK & Cloud NativeDPDK & Cloud Native
DPDK & Cloud Native
 
OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
Orchestrating NFV Workloads in Multiple Clouds
Orchestrating NFV Workloads in Multiple CloudsOrchestrating NFV Workloads in Multiple Clouds
Orchestrating NFV Workloads in Multiple Clouds
 
Convergence of device and data at the Edge Cloud
Convergence of device and data at the Edge CloudConvergence of device and data at the Edge Cloud
Convergence of device and data at the Edge Cloud
 
Intel® Network Builders - Network Edge Ecosystem Program
Intel® Network Builders - Network Edge Ecosystem ProgramIntel® Network Builders - Network Edge Ecosystem Program
Intel® Network Builders - Network Edge Ecosystem Program
 
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Design Implications, Challenges and Principles of Zero-Touch Management Envir...Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
 
Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...
 
Intel Powered AI Applications for Telco
Intel Powered AI Applications for TelcoIntel Powered AI Applications for Telco
Intel Powered AI Applications for Telco
 
Artificial Intelligence in the Network
Artificial Intelligence in the Network Artificial Intelligence in the Network
Artificial Intelligence in the Network
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
 
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
 
Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Enabling new protocol processing with DPDK using Dynamic Device Personalization

  • 1. Brian Johnson – Solution Architect, Intel Corp v1803.20
  • 2. Ethernet Networking Division 2 Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL® PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. INTEL PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS. Intel may make changes to specifications and product descriptions at any time, without notice. All products, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice. Intel processors, chipsets, and desktop boards may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request. Alta, Red Rock Canyon, Seacliff Trail and other code names featured are used internally within Intel to identify products that are in development and not yet publicly announced for release. Customers, licensees and other third parties are not authorized by Intel to use code names in advertising, promotion or marketing of any product or services and any such use of Intel's internal code names is at the sole risk of the user Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. Go to: http://www.intel.com/products/processor_number Intel product plans in this presentation do not constitute Intel plan of record product roadmaps. Please contact your Intel representative to obtain Intel's current plan of record product roadmaps. Intel, Xeon the Intel logo are trademarks of Intel Corporation in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright ©2018 Intel Corporation. Intel does not control or audit the design or implementation of third party benchmark data or Web sites referenced in this document. Intel encourages all of its customers to visit the referenced Web sites or others where similar performance benchmark data are reported and confirm whether the referenced benchmark data are accurate and reflect performance of systems available for purchase.
  • 3. Ethernet Networking Division 3 Agenda Problem statement Intel® Ethernet 700 Series capabilities level set What is a Dynamic Device Personalization Profile? Personalization programming tool chain Examples and Demo Using the Data Plane Development Kit and Dynamic Device Personalization Click here to access stream
  • 4. Ethernet Networking Division 4 Network Landscape Microwave Mobile Backhaul BRAS Wireless Core GiLAN IMS DSLAM CDN IPFE GTP QinQ, GRE, MPLS Martini VXLAN Load distribution (stateless hashing) on any packet’s fields QinQ SCTP NSH NSH NSHoUDP IPSec – ESP stateless hashing ARP Load balancing (stateless hashing) on GTP TEID, IPSec ESP SPI VXLAN-gpe Geneve CAPWAP MPLS IPv4, IPv6, TCP, UDP, SCTP, VXLAN, NVGRE, GRE VXLAN + PPPoE VXLAN + GTP Available Limited functionality Software Classification/ Distribution Bottleneck Classification/ Distribution in HW Removes Bottleneck Load Distribution Software Runs on CPU Core Intel® Ethernet 700 Series Worker 1 Worker 2 Worker 3 Worker 4 From 40GbE Traffic Generator MPLSoGREStandard TCP Worker 0 Load Distribution Core Load Distribution Runs on XL710 Personalization Profile Worker 1 Worker 2 Worker 3 Worker 4 Load Distribution using MPLSoGRE DDP MPLSoGREStandard TCP Worker 0 Intel® Ethernet 700 Series From 40GbE Traffic Generator
  • 5. Ethernet Networking Division 5 Intel® Ethernet 700 Series Capabilities Level Set Packets classification: supports up to 64 packet classifier types (PCTYPEs) o “TCP in IPv4” and “UDP in IPv6” are different packet classifier types filters (hash, flow director, tunnel filter) configured per PCTYPE Reported packet types: up to 192 packet types as 8bit value on RX descriptor o “MAC, IPv4, TCP, PAY4” and “MAC, IPv6, TCP, PAY4” packets will have different PTYPE value on RX descriptor Packets steering/mirroring: tunnel (cloud) filters for VXLAN, GRE, GENEVE o ADq (Application Device Queues) to filter TCP/UDP traffic Hash offload calculation (up to 48 bytes input set) o Different queue regions can be assigned to different PCTYPEs Exact flow matching (up to 8k rules) – Intel® Ethernet Flow Director
  • 6. Ethernet Networking Division 6 Intel® Ethernet 700 Series Rx Programmable Pipeline Parser Packet Context Classifier Switch Classifier Rx Post Filters Packet Type Resolver 3-StageFlowTables FlowTables ... Packet Type Packet Type Packet Modifier (RDPU) Analyzer (Packet Digest & Metadata) uCode FlexKeyperPacketType Q Stats VSI Actions FV (Field Vecor) QVSI Q Rx Desc RDPU Rcp Actions Rx DescRDPU Rcp Recipies Packet Buffer Ports Network Interfaces Rx Descriptor Packet Data PCIeEthernet Drop Drop Metering/ Stats Stats Metadata Filter/Selector FlexN-TupleKeyBuild FLUs ... FLUs ... FLUs ... ... ... Stats Stats Stats ... TC / QoS FD RSS QH ... FCoE TC / QoS Field Extractor Stats Programming by firmware or by DDP1 2
  • 7. Ethernet Networking Division 7 What is Dynamic Device Personalization (DDP)?1 Loadable Packet Classifications (Parser) personalization for any well-defined traffic profiles for VNFs or appliances with a specific position in the network  Enable new protocols: – GTP tunnel support, GTP-C and GTP-U as a separate flow types – IP protocols as new flow types, for example L2TPv3, ESP/AH for IPSec – Legacy protocols: PPPoE, PPPoL2TPv2  Modify existing protocols: – VXLAN with IP payload, NSHoUDP – New PTYPEs on RX descriptor: for example, IPv4 TCP in one/two MPLS label(s)  Make Smart NIC act Stupid: – Disable GRE classification – Disable IPv4 classification  Debug: – Read configuration/statistics registers in one admin command call Configurable tunnel filters for traffic steering (Classifier Switch)  Steering packets to a VM on QinQ  Steering packets to a VM on Tunnel ID (VXLAN, NVGRE, MPLS, GTP, NSH*)  User definable steering/mirroring rules 1Does not include Intel® Ethernet Connection X722
  • 8. Ethernet Networking Division DPDK API or Linux driver* Dynamic Device Personalization Programming Tool Chain Profile Editor No GTP Support 1. Take current Parser NVM configuration 2. Use Profile Editor to modify existing entries/create new entries for Analyzer/Parser to address customer’s request 3. Create binary package file to be applied to FVL by customer 4. Download profile to FVL to change Parser configuration: new PCTYPEs, PTYPEs, Protocols, extracted fields. Profile is not persistent, on reset the original configuration is restores from the NVM. SW can restore original configuration without reset as profiles support “roll-back” transaction. 1 2 4 5 Loader Loader: DPDK 17.05 to 17.11 Linux: in planning GTP Support gtp.i40e file pppoe.pkgo gtp.pkgo mmio { // Expose GTP protocol groupi REG w 0x300 x05 0x0 0xb // add UDP 2153 write REG w 0x100 x32 0x0 0xcf58b … compiler Intel Customermpls.pkgo 3 8
  • 9. Ethernet Networking Division 9 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 24: UDP in IPv4 Packet type 172: TCP in GTP-U RSS RSS
  • 11. Ethernet Networking Division 11 GTP Profile Example Before GTP Profile is Applied  31 udp  33 tcp  34 sctp  35 ip  36 ipf  41 udp6  43 tcp6  44 sctp6  45 ip6  46 ipf6  63 l2 Before GTP Profile is Applied  22 gtpu ipv4  23 gtpu ipv6  24 gtpu  25 gtpc  31 udp  33 tcp  34 sctp  35 ip  36 ipf  41 udp6  43 tcp6  44 sctp6  45 ip6  46 ipf6  63 l2
  • 12. Ethernet Networking Division 12 Dynamic Device Personalization Demo
  • 13. Ethernet Networking Division Without Dynamic Device Personalization GTP Profile Loaded
  • 14. Ethernet Networking Division With Dynamic Device Personalization GT Profile Loaded
  • 15. Ethernet Networking Division With Dynamic Device Personalization RSS Queue Regions Assigned
  • 16. Ethernet Networking Division With Dynamic Device Personalization More RSS Queue Per Regions Assigned
  • 17. Ethernet Networking Division 17 Dynamic Device Personalization Commands in DPDK testpmd 4.4. Display Functions 4.4.10. ddp get list Get loaded dynamic device personalization (DDP) package info list: testpmd> ddp get list (port_id) 4.4.11. ddp get info Display information about dynamic device personalization (DDP) profile: testpmd> ddp get info (profile_path) 4.5. Configuration Functions 4.5.88. ddp add Load a dynamic device personalization (DDP) profile and store backup profile: testpmd> ddp add (port_id) (profile_path[,backup_profile_path]) 4.5.89. ddp del Delete a dynamic device personalization profile and restore backup profile: testpmd> ddp del (port_id) (backup_profile_path) http://dpdk.org/doc/guides/testpmd_app_ug/testpmd_funcs.html#configuration-functions
  • 18. Ethernet Networking Division rte_pmd_i40e_process_ddp_package() download dynamic device personalization profile and register it** int rte_pmd_i40e_process_ddp_package( uint8_t port, // DPDK port index to download DDP package to uint8_t *buff, // buffer with the package in the memory uint32_t size, // size of the buffer rte_pmd_i40e_package_op op // 17.05 supports only RTE_PMD_I40E_PKG_OP_WR_ADD ); int rte_pmd_i40e_get_ddp_list() get list of registered profile(s)** int int rte_pmd_i40e_get_ddp_list ( uint8_t port, // DPDK port index to get list from uint8_t *buff, // buffer to store list of registered profiles (rte_pmd_i40e_profile_list *) uint32_t size // size of the buffer ); * Requires XL710 firmware version 6.01 ** HW could register up to 16 profiles, but SW should limit number of loaded profiles to one to avoid profiles overlapping DPDK 17.05 APIs (rte_pmd_i40e.h)* 18
  • 19. Ethernet Networking Division DPDK 17.08 APIs (rte_pmd_i40e.h)* rte_pmd_i40e_process_ddp_package() download dynamic device personalization profile and register it (RTE_PMD_I40E_PKG_OP_WR_ADD) rollback dynamic device personalization profile and un-register it (RTE_PMD_I40E_PKG_OP_WR_DEL) rte_pmd_i40e_get_ddp_info() request information about a profile without downloading it to the NIC int rte_pmd_i40e_get_ddp_info( uint8_t *pkg_buff, // buffer with the package in the memory uint32_t pkg_size, // size of the package buffer uint8_t *info_buff, // buffer to store information to uint32_t info_size, // size of the information buffer enum rte_pmd_i40e_package_info type // information type: header, devlist, ... ); Note: in case if profile adds new flow types/packet types, these types should be enabled in DPDK separately NEW: * Requires XL710 firmware version 6.01 19
  • 20. Ethernet Networking Division Identify Feature Develop Prototype PoC with Customers FVL6 Delivery Q2 2017 New Protocols Dynamically Defined via DDP Profiles Dynamic Device Personalization (DDP) – Protocol Profile Development Plan 20 Dynamic Device Personalization profiles for Intel® Ethernet 700 Series addresses additional protocol support and allows early adoption of new technologies. Intel® Ethernet 700 Series 2016 Pre-FVL6 Gap: Protocols supported Limited to firmware only Intel® Ethernet 700 Series FlexRAN / MEC / EPC GTP RoE BNG PPPoE CMTS L2TPv3 Network Programming NHS SRv6 Custom VXLAN+IP payload vRouter MPLSoGRE MPLSoUPD New protocols via Dynamic Device Personalization Application Proposed Protocols
  • 21. Ethernet Networking Division Load Distribution Software Runs on CPU Core Intel® Ethernet 700 Series Worker 1 Worker 2 Worker 3 Worker 4 From 40GbE Traffic Generator MPLSoGREStandard TCP Worker 0 Load Distribution Core Load Distribution Runs on XL710 Personalization Profile Worker 1 Worker 2 Worker 3 Worker 4 Load Distribution using MPLSoGRE DDP MPLSoGREStandard TCP Worker 0 Intel® Ethernet 700 Series From 40GbE Traffic Generator Profiles for Wireline Profiles for Wireless Profiles for GiLAN Profiles for Enterprise 21 Network Landscape with Dynamic Device Personalization Microwave Mobile Backhaul BRAS Wireless Core GiLAN IMS DSLAM CDN IPFE GTP-U QinQ, GRE, MPLS Martini VXLAN Load distribution (stateless hashing) on any packet’s fields QinQ SCTP NSH NSH NSHoUDP IPSec – ESP stateless hashing ARP Load balancing (stateless hashing) on GTP TEID, IPSec ESP SPI VXLAN-gpe Geneve CAPWAP MPLS Without DDP Software Bottleneck Profiles can be loaded separately per-device, so the same server with multiple NICs can be used for different workload in a very dynamic way DDP Removes Bottleneck VXLAN + GTP
  • 22. Ethernet Networking Division Intel® Ethernet Converged Network Adapter XL710-QDA2 Port Speeds: 10Gb/40GbE Intel® Ethernet Network Adapter XXV710-DA1 Port Speeds: 1Gb/10Gb/25GbE Intel® Ethernet Converged Network Adapter X710-T4 Port Speeds: 1Gb/10GbE Intel® Ethernet Converged Network Adapter X710-DA4 Port Speeds: 1Gb/10GbE PCIExpress* EthernetAdapters 22 Intel®Ethernet700Seriesnetworkadapters OpenComputeProject EthernetAdapters Intel® Ethernet Network Adapter XXV710-DA1 for OCP Port Speeds: 1Gb/10Gb/25GbE Intel® Ethernet Network Adapter XXV710-DA2 Port Speeds: 1Gb/10Gb/25GbE Intel® Ethernet Converged Network Adapter X710-DA2 Port Speeds: 1Gb/10GbE Intel® Ethernet Server Adapter XL710-QDA2 for OCP Port Speeds: 1Gb/10Gb/40GbE Intel® Ethernet Converged Network Adapter XL710-QDA1 Port Speeds: 10Gb/40GbE Intel® Ethernet Server Adapter XL710-QDA1 for OCP Port Speeds: 1Gb/10Gb/40GbE Intel® Ethernet Server Adapter X710-DA2 for OCP Port Speeds: 1Gb/10GbE 10Gb Ethernet 10Gb or 25Gb Ethernet 4x10Gb or 40Gb Ethernet Optimized Performance and Enhanced Usability for Cloud and Network Functions Virtualization (NFV)
  • 23. Ethernet Networking Division Dynamic Device Personalization Summary Dynamic Device Personalization can be used on any OS supported by DPDK  For example, QUIC protocol classification on both Windows and Linux Oses 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. 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 23
  • 24. Ethernet Networking Division Dynamic Device Personalization Resources Public Resources  Intel® Developer Zone Article – https://software.intel.com/en-us/articles/dynamic-device- personalization-for-intel-ethernet-700-series  DPDK Summit Nov 2017 presentation (YouTube) – https://www.youtube.com/watch?v=X8aMDdAnnBI  DPDK Summit Nov 2017 Slides – https://www.slideshare.net/LF_DPDK/lfdpdk17flexible-and- extensible-support-for-new-protocol-processing-with-dpdk- using-dynamic-device-personalization 24
  • 26. Ethernet Networking Division 26 Dynamic Device Personalization Without vs. With, PPPoE example Default FVL6 processing (without personalization profile): DA SA PPPoE IPv4 UDP PAY Parsed fields Payload FVL6 with personalization profile applied: Parsed fields Payload RSS RSS RSS PPPoE is unknown flow type, so no RSS, FDIR or other filters are possible on inner packet fields. FVL classifies PPPoE (Discovery and Session) packets as L2 payload. With a DDP profile, PPPoE header can be parsed and encapsulated packet classified. For example, for PPPoE session with UDP in IPv4, as shown above, RSS and FDIR filters can be used on UDP. If required, RSS, FDIR and Tunnel filters can use PPPoE Session ID as well. RSS DA SA PPPoE IPv4 UDP PAYsession
  • 27. Ethernet Networking Division 27 Dynamic Device Personalization Without vs. With, MPLSoGRE example Default FVL6 processing (without personalization profile): DA SA IPv4 GRE MPLS DA SA IPv4 UDP PAY Parsed fields Payload FVL6 with personalization profile applied: DA SA IPv4 GRE MPLS DA SA IPv4 UDP PAY Parsed fields Payload RSS RSS RSS MPLSoGRE is unknown flow type, so no RSS, FDIR or other filters are possible. Packet type set to 43. With MPLSoGRE flow type is defined by encapsulated frame, for example, UDP in IPv4 as shown above so all filters available for UDP can be applied to the packets: RSS, FDIR. Packet type 59-72. RSS, FDIR and Tunnel filters can use MPLS label as tunnel (tenant) ID. RSS
  • 28. Ethernet Networking Division Q&A, generic Q How profiles will be distributed? A There a two main ways of distributing profiles: 1. as a separate binary file and loaded by application 2. it can be precompiled to a driver, and selected on device initialization stage For the trials/test with a customer we use the first option, as profile configuration can change during pre-release. After full validation, release version can be precompiled with a driver (kernel or DPDK) or an application to be selected at initialization. Q Can profile be applied to only one port/PF/VF of a multi-port device? A No, profiles affect all port on a device. In virtual environment not only PFs but all VFs will be affected as well. Which PF is used to apply a profile does not matter. Q Do we need to reload a profile after NIC reset or, once loaded, profile stays in the NVM? A Profiles are not persistent, so must be reloaded after any reset of the NIC. Q Can we use profiles on any other i40e compatible devices, for example, on Intel® Ethernet Connection X722 ports of Intel® Chipset C620? A No, the Intel Ethernet Connection X722 does not support profiles. 28
  • 29. Ethernet Networking Division Q&A, generic Q Does firmware version 5 supports dynamic device personalization profiles? A No, dynamic device personalization will be available starting from firmware version 6 Q How many profiles can be loaded simultaneously on one device? A Thou the Network Adapters can provide information about up to 16 loaded profiles. Multiple profiles are not recommended. In case if, for some reason, multiple profiles are needed, it should be treated very carefully to make sure that profiles are not overlapping and to avoid any unexpected behaviour. Q Will I (as a customer) be able to create profiles by myself? A No, profile programming requires very deep knowledge of the device internals and can be done only by Intel engineers. Q Can I apply profile while traffic is running through the device or I have to stop device first? A You can apply/remove profile with traffic running, but some packet loss should be expected. 29
  • 30.
  • 31. Ethernet Networking Division 31 Default firmware processing (WITHOUT Personalization profile) DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload GTP-U is unknown flow type, so no RSS, FDIR or other filters are possible on encapsulated frame RSS RSS Packet type 24: UDP in IPv4 RSS
  • 32. Ethernet Networking Division 32 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 Dynamic Device Personalization GTP Profile applied: DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload RSS RSS RSS Packet type 172: TCP in GTP-U RSS
  • 33. Ethernet Networking Division 33 RSS configured separating traffic across 16 queues, assigning each of the packet types to individual traffic classes and queue regions GTP Demo RSS Configuration // 31 ipv4-udp region 1, queues 1-2 // 41 ipv6-udp region 2, queues 3-4 // 34 SCTP region 3, queue 4 // 24 GTPU region 4, queue 6 (GTPU with message types != 0xFF) // 25 GTPC region 5, queue 7 // 22 GTPU_IPV4 region 6, queues 8-11 // 23 GTPU_IPV6 region 7, queues 12-15 Dynamic Device Personalization GTP Profile applied with RSS: DA SA IPv4 UDP GTP TEID IPv4 TCP PAY Parsed fields Payload RSS RSS RSS Packet type 172: TCP in GTP-U RSS