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
- 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
- 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
- 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
- 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
- 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.
- 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