SlideShare a Scribd company logo
Andy Harazin, andrew.t.harazin@intel.com
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 ©2019 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 Dynamic Device Personalization Profile?
Examples
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
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
5
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 6
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) – flow director
Ethernet Networking Division 7
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 8
Intel® Ethernet 700 Series – Increased
Programmability
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:
Default Tunnel protocol support does not cover all uses cases
• VXLAN, GENEVE, NVGRE, MPLS, VXLAN-GPE currently supported
Dynamic Device Personalization enables
• Loadable profiles for packet classification for additional or modification of existing
protocols such as MPLSoGRE, GTP-U/GTP-C, PPPoE, QUIC, ESP, AH
• Configurable tunnel filters for enhanced traffic steering
Load Distribution SW
Worker 0 Worker 1 Worker n
Worker 0 Worker 1 Worker n
External traffic
e.g. GTP-U
External traffic
(e.g. GTP-U)
Increases packet throughput
and reduces packet latency
One Architecture. Multiple Speeds.
Host Software analyzes
and distributes packets
(without DDP)
NIC HW with DDP
enabled Profile and
configure traffic
steering
Ethernet Networking Division 9
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 10
DDP can be applied in Transaction like mode
No need to reset NIC to restore original configuration:
“Write Profile” AQ returns original values ready to be applied.
Profile can be applied/removed with traffic running*.
* some packet loss is expected during profile download/rollback
Ethernet Networking Division 11
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
Ethernet Networking Division 12
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 13
Dynamic Device Personalization
Without vs. With, MPLSoGRE example
Default FVL6 processing (without personalization profile):
DA SA IPv4 GRE
MPL
S
DA SA IPv4 UDP PAY
Parsed fields Payload
FVL6 with personalization profile applied:
DA SA IPv4 GRE
MPL
S
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
Without Dynamic Device Personalization GTP Profile Loaded
Ethernet Networking Division
With Dynamic Device Personalization GTP 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 18
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
After 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 19
Existing Profiles in Production and in PoC
Production
 GTPv1
– Enhances performance for virtualized enhanced packet core (vEPC) and multi-access edge (MEC) use cases.
 PPPoE
– Enhances performance for virtual broadband network gateway (vBND) and remote access server (vBRAS).
Proof of Concept / NDA
 GRE Parsing Off
– Disables GREoIP classification.
 QinQ VLAN Performance
– Applies alternative configuration for VLAN processing performance.
 MPLSoGRE/MPLSoUDP
– Enables MPLSoGRE/MPLSoUDP classification for MPLS tunnels with Ethernet frames payload.
 L2TPv3
– Enables L2TPv3 over IP packets classification. L2TPv3 Session ID field extracted as tunnel key. Hash input set
uses Session ID only. Flow director input set is not configured.
 QUIC
– Configures the device for Quick UDP Internet Connections protocol classification.
 IPv4 Multicast
– Creates IPv4 multicast PCTYPE 30.
 Others, 4G Fronthaul
Ethernet Networking Division 20
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
 GTP DDP Profile Download
– https://downloadcenter.intel.com/download/27587
 PPPoE DDP Profile Download
– https://downloadcenter.intel.com/download/28040
 Intel® Network Adapter Driver for PCIe 40 Gigabit Ethernet Network Connections Under Linux
– https://downloadcenter.intel.com/download/24411/Intel-Network-Adapter-Driver-for-PCIe-40-Gigabit-Ethernet-Network-
Connections-Under-Linux-
 IDZ Webinar - Flexible support for new protocol processing with DPDK using DDP
– https://www.brighttalk.com/webcast/12229/305873 (AEP)
 DPDK Summit Nov 2017 - Flexible support for new protocol processing with DPDK using DDP
– https://www.youtube.com/watch?v=X8aMDdAnnBI (YouTube Video)
– https://www.slideshare.net/LF_DPDK/lfdpdk17flexible-and-extensible-support-for-new-protocol-processing-with-dpdk-using-
dynamic-device-personalization (AEP)
 DPDK Summit Nov 2017 - Enablement for SmartNIC, FPGA, Ipsec Discussion
– https://youtu.be/wwoqVUCR0Zw (YouTube Video)
 DPDK Meetup Mar 2018 – Enabling New Protocol Processing with DPDK using DDP
– https://www.slideshare.net/MichelleHolley1/enabling-new-protocol-processing-with-dpdk-using-dynamic-device-personalization (AEP)
– https://www.youtube.com/watch?v=qy7ALXLHrPY (YouTube)
Audio Enabled Presentation (AEP)
OSN Bay Area Feb 2019 Meetup: Intel, Dynamic Device Personalization - Journey Continues

More Related Content

OSN Bay Area Feb 2019 Meetup: Intel, Dynamic Device Personalization - Journey Continues

  • 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 ©2019 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 Dynamic Device Personalization Profile? Examples
  • 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 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 5 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
  • 6. Ethernet Networking Division 6 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) – flow director
  • 7. Ethernet Networking Division 7 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
  • 8. Ethernet Networking Division 8 Intel® Ethernet 700 Series – Increased Programmability 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: Default Tunnel protocol support does not cover all uses cases • VXLAN, GENEVE, NVGRE, MPLS, VXLAN-GPE currently supported Dynamic Device Personalization enables • Loadable profiles for packet classification for additional or modification of existing protocols such as MPLSoGRE, GTP-U/GTP-C, PPPoE, QUIC, ESP, AH • Configurable tunnel filters for enhanced traffic steering Load Distribution SW Worker 0 Worker 1 Worker n Worker 0 Worker 1 Worker n External traffic e.g. GTP-U External traffic (e.g. GTP-U) Increases packet throughput and reduces packet latency One Architecture. Multiple Speeds. Host Software analyzes and distributes packets (without DDP) NIC HW with DDP enabled Profile and configure traffic steering
  • 9. Ethernet Networking Division 9 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
  • 10. Ethernet Networking Division 10 DDP can be applied in Transaction like mode No need to reset NIC to restore original configuration: “Write Profile” AQ returns original values ready to be applied. Profile can be applied/removed with traffic running*. * some packet loss is expected during profile download/rollback
  • 11. Ethernet Networking Division 11 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
  • 12. Ethernet Networking Division 12 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
  • 13. Ethernet Networking Division 13 Dynamic Device Personalization Without vs. With, MPLSoGRE example Default FVL6 processing (without personalization profile): DA SA IPv4 GRE MPL S DA SA IPv4 UDP PAY Parsed fields Payload FVL6 with personalization profile applied: DA SA IPv4 GRE MPL S 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
  • 14. Ethernet Networking Division Without Dynamic Device Personalization GTP Profile Loaded
  • 15. Ethernet Networking Division With Dynamic Device Personalization GTP Profile Loaded
  • 16. Ethernet Networking Division With Dynamic Device Personalization RSS Queue Regions Assigned
  • 17. Ethernet Networking Division With Dynamic Device Personalization More RSS Queue Per Regions Assigned
  • 18. Ethernet Networking Division 18 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 After 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
  • 19. Ethernet Networking Division 19 Existing Profiles in Production and in PoC Production  GTPv1 – Enhances performance for virtualized enhanced packet core (vEPC) and multi-access edge (MEC) use cases.  PPPoE – Enhances performance for virtual broadband network gateway (vBND) and remote access server (vBRAS). Proof of Concept / NDA  GRE Parsing Off – Disables GREoIP classification.  QinQ VLAN Performance – Applies alternative configuration for VLAN processing performance.  MPLSoGRE/MPLSoUDP – Enables MPLSoGRE/MPLSoUDP classification for MPLS tunnels with Ethernet frames payload.  L2TPv3 – Enables L2TPv3 over IP packets classification. L2TPv3 Session ID field extracted as tunnel key. Hash input set uses Session ID only. Flow director input set is not configured.  QUIC – Configures the device for Quick UDP Internet Connections protocol classification.  IPv4 Multicast – Creates IPv4 multicast PCTYPE 30.  Others, 4G Fronthaul
  • 20. Ethernet Networking Division 20 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  GTP DDP Profile Download – https://downloadcenter.intel.com/download/27587  PPPoE DDP Profile Download – https://downloadcenter.intel.com/download/28040  Intel® Network Adapter Driver for PCIe 40 Gigabit Ethernet Network Connections Under Linux – https://downloadcenter.intel.com/download/24411/Intel-Network-Adapter-Driver-for-PCIe-40-Gigabit-Ethernet-Network- Connections-Under-Linux-  IDZ Webinar - Flexible support for new protocol processing with DPDK using DDP – https://www.brighttalk.com/webcast/12229/305873 (AEP)  DPDK Summit Nov 2017 - Flexible support for new protocol processing with DPDK using DDP – https://www.youtube.com/watch?v=X8aMDdAnnBI (YouTube Video) – https://www.slideshare.net/LF_DPDK/lfdpdk17flexible-and-extensible-support-for-new-protocol-processing-with-dpdk-using- dynamic-device-personalization (AEP)  DPDK Summit Nov 2017 - Enablement for SmartNIC, FPGA, Ipsec Discussion – https://youtu.be/wwoqVUCR0Zw (YouTube Video)  DPDK Meetup Mar 2018 – Enabling New Protocol Processing with DPDK using DDP – https://www.slideshare.net/MichelleHolley1/enabling-new-protocol-processing-with-dpdk-using-dynamic-device-personalization (AEP) – https://www.youtube.com/watch?v=qy7ALXLHrPY (YouTube) Audio Enabled Presentation (AEP)

Editor's Notes

  1. 700 Series CANNOT assist in Manipulate packet: no encap/decap of tunneled packets Do Wild card: exact match flow director rules only Mirroring back to the wire Ingress QoS/policing Limited per-port configuration, mainly per-device configuration
  2. FVL is much more complex device compare to Niantic Green – is what we can program (with FW or at runtime), blue –is what is being affected by programming
  3. Removes requirement for CPU cores on the host to perform classification and load balancing of packet types for the specified use case Increases packet throughput, reduces packet latency for the use case 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) 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 Currently enabled in DPDK 17.08 including testpmd
  4. Multi-access Edge Computing (MEC) -- http://www.etsi.org/technologies-clusters/technologies/multi-access-edge-computing Radio Access Network (RAN) Evolved Packet Core (EPC) Customer Premise Equipment (CPE) Broadband Network Gateway (BNG) PPP over Ethernet (PPPoE) IP over Ethernet (IPoE) Layer 2 Tunneling Protocol (L2TP) Cable Modem Termination System (CMTS) Segment Routing IPv6 (SRv6) Radio of Ethernet (RoE) GPRS Tunneling Protocol (GTP) -- is a group of IP-based communications protocols used to carry General Packet Radio Service (GPRS) within GSM, UMTS and LTE networks. In 3GPP architectures, GTP and Proxy Mobile IPv6 based interfaces are specified on various interface points.
  5. FVL is much more complex device compare to Niantic Green – is what we can program (with FW or at runtime), blue –is what is being affected by programming