SlideShare a Scribd company logo
1©2016 Open-NFP
P4-based VNF and Micro-VNF chaining for
servers with SmartNICs
David George
david.george@netronome.com
2©2016 Open-NFP
Session Agenda
●
Introduction
●
Design overview
●
A look under the hood
– P4, SandboxC and rules
●
Run-through
– Demo of key features
●
Conclusions + questions
●
(time permitting) A quick overview of SDK6 P4 runtime
3©2016 Open-NFP
Introduction
●
VNF – Virtualized Network Function
– Network function hosted independent of physical hardware
●
examples: Firewall, intrusion detection
– Chaining a sequence of VNF
●
Micro-VNF?
– Light-weight VNF
– Possible to integrate close to dataplane
●
e.g in kernel, on smartNIC
– examples: telemetry, statistics
●
Goal to illustrate how this can be achieved:
– SmartNIC P4 dataplane using Netronome SDK 6
– Micro-VNFs in sandbox C
– Simple VNFs with libvirt + VFIO
– Other ‘neat’ P4 stuff
●
Why this example?
– Illustrates how simple it can be to solve challenging problems with P4 + SmartNICs:
●
Marshalling data into VNFs
●
Gathering telemetry info + processing statistics
–
4©2016 Open-NFP
Design/Demo Overview
X86 Host
Micro-VNFs:
Payload scan
Hoptime stats
Linux Net Namespace
VLAN 2
“dumb” NIC
+ bridge
Physical
Interface
TCP path
with metering
Netronome SmartNIC with P4+C Dataplane
VNF0:
NetDev L2 Bridge
in VM
VFIO 1
VNF1:
DPDK L2 Bridge
in VM
VFIO 0
VFIO 3
VFIO 2
Linux Net Namespace
VLAN3
5©2016 Open-NFP
Design/Demo Overview (cont.)
●
P4 Dataplane
– Run-of-the-mill parse + match + action + forwarding
●
VNFs: L2 Forwarding “cooked two ways” DPDK and NetDev
– Simple way to illustrate use
– BUT complicated routing:
●
Must be unique per port direction!
●
MicroVNFs:
– VF “Hoptime” statistics
●
Min, max, avg reported between VF send + receive
●
Achieved using custom tunnel
– Simple payload scanner: search for a compile time token
●
Extra points of interest
– Meters
●
Traffic generation:
– VLAN IDs used for routing between VFs
– Linux Network Namespaces to isolate address spaces (all on one host)
6©2016 Open-NFP
Traffic Generation
X86 Host
Micro-VNFs:
Payload scan
Hoptime stats
Linux Net Namespace
VLAN 2
“dumb” NIC
+ bridge
Physical
Interface
TCP path
with metering
Netronome SmartNIC with P4+C Dataplane
VNF0:
NetDev L2 Bridge
in VM
VFIO 1
VNF1:
DPDK L2 Bridge
in VM
VFIO 0
VFIO 3
VFIO 2
Linux Net Namespace
VLAN3
7©2016 Open-NFP
Coarse look at P4 design
Parsing
Ethernet
VLAN
Custom “hoptime” header
IP + TCP
Ingress
Process “hoptime”
Metering
Forwarding
Egress
Insert “hoptime”
Translate VLAN Tags
8©2016 Open-NFP
A look under the hood + demo:
9©2016 Open-NFP
Conclusions
●
Illustrated simple solution for VNF chaining using P4
●
Showed the potential for implementing Micro-VNFs in C
sandbox
– Support for going beyond the P4 parsed headers in C
– Measurement of VNF processing time
●
Showed how flexibly P4 meters can be used
10©2016 Open-NFP
Github Resources
●
https://github.com/open-nfpsw/p4_vnf_uvnf_demo
●
Includes:
●
P4 , sandbox C & P4 configs
– Building & loading using CLI or PS IDE
●
Host scripts
11©2016 Open-NFP
Questions?
12©2016 Open-NFP
SDK P4 Runtime Environment
●
Typically programmer studio drives the configuration
– Hitting “debug” programs firmware, load rules, configures meters etc.
●
The RTE ships with python tools and thrift interface for
interacting with P4 Runtime Environment Server via Thrift
RPC
– Allows command line driven loading configuration
– Possible to build a stand-alone application for interacting with design
●
Example: L2 bridge receiving P4 digests and writing table updates
13©2016 Open-NFP
SDK P4 Runtime Environment (cont)
●
in RTE installation you will find the following:
– thrift/sdk6_rte.thrift
●
Thrift interface file, RPC stubs generated from this and can be used
with python, C++...
– thrift/client/RTEInterface.py
●
A python module that provides an abstraction for the Thrift interface
– thrift/client/sdk6_rte_cli.py
●
A swiss army knife command line tool
– thrift/client/digest_listener
●
Example tool for dumping digest events

More Related Content

PDF
Consensus as a Network Service
PDF
P4 for Custom Identification, Flow Tagging, Monitoring and Control
PDF
Stacks and Layers: Integrating P4, C, OVS and OpenStack
PDF
Accelerating Networked Applications with Flexible Packet Processing
PDF
Protecting the Privacy of the Network – Using P4 to Prototype and Extend Netw...
PDF
Transparent eBPF Offload: Playing Nice with the Linux Kernel
PDF
Data Plane and VNF Acceleration Mini Summit
PDF
Whitebox Switches Deployment Experience
Consensus as a Network Service
P4 for Custom Identification, Flow Tagging, Monitoring and Control
Stacks and Layers: Integrating P4, C, OVS and OpenStack
Accelerating Networked Applications with Flexible Packet Processing
Protecting the Privacy of the Network – Using P4 to Prototype and Extend Netw...
Transparent eBPF Offload: Playing Nice with the Linux Kernel
Data Plane and VNF Acceleration Mini Summit
Whitebox Switches Deployment Experience

What's hot (20)

PDF
OpenContrail, Real Speed: Offloading vRouter
PDF
Measuring a 25 and 40Gb/s Data Plane
PDF
Network Measurement with P4 and C on Netronome Agilio
PPTX
Compiling P4 to XDP, IOVISOR Summit 2017
PDF
LinuxCon 2015 Stateful NAT with OVS
PDF
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
PPTX
2016 NCTU P4 Workshop
PDF
[Webinar Slides] Programming the Network Dataplane in P4
PDF
P4, EPBF, and Linux TC Offload
PDF
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
PDF
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
PDF
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
ODP
CentOS NFV SIG Introduction and Update
PDF
Cilium - BPF & XDP for containers
PDF
Cilium - Network security for microservices
PDF
TC Flower Offload
PDF
The IPv6-Only Network
PDF
Accelerating Envoy and Istio with Cilium and the Linux Kernel
PDF
LF_DPDK17_Lagopus Router
PDF
Low-power IP: 6LoWPAN & Co.
OpenContrail, Real Speed: Offloading vRouter
Measuring a 25 and 40Gb/s Data Plane
Network Measurement with P4 and C on Netronome Agilio
Compiling P4 to XDP, IOVISOR Summit 2017
LinuxCon 2015 Stateful NAT with OVS
LF_DPDK17_GRO/GSO Libraries: Bring Significant Performance Gains to DPDK-base...
2016 NCTU P4 Workshop
[Webinar Slides] Programming the Network Dataplane in P4
P4, EPBF, and Linux TC Offload
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
CentOS NFV SIG Introduction and Update
Cilium - BPF & XDP for containers
Cilium - Network security for microservices
TC Flower Offload
The IPv6-Only Network
Accelerating Envoy and Istio with Cilium and the Linux Kernel
LF_DPDK17_Lagopus Router
Low-power IP: 6LoWPAN & Co.
Ad

Viewers also liked (19)

PDF
Landscape_2016
PDF
iRECON 2016 Virtual RE Conference - Software Requirements: 7 Critical Success...
PPTX
Immigration and ethnicity of skilled workers to US, Irinel Ciocioc
PPTX
6 B Draft
PPT
Mortgage analysis, Real Estate Investments, Irinel Ciocioc
PPTX
Hawaiian punch Irinel Ciocioc
PDF
Kajiado County Audit Report 2014/15
PPTX
ONOS intent introduction
PDF
Using an Information Asset Register for the GDPR
PDF
Vip scan
PDF
P4: Programming Protocol-Independent Packet Processor
PDF
Layer 3 Tunnel Support for Open vSwitch
PDF
Request to Fulfill Presentation (IT4IT)
PDF
EBPF and Linux Networking
PDF
Nyamira County Audit Report 2014/2015
PPTX
SDN, OpenFlow, NFV, and Virtual Network
PDF
Aws S3 uploading tricks 2016
PPTX
Norma oficial mexicana 251 SSA
Landscape_2016
iRECON 2016 Virtual RE Conference - Software Requirements: 7 Critical Success...
Immigration and ethnicity of skilled workers to US, Irinel Ciocioc
6 B Draft
Mortgage analysis, Real Estate Investments, Irinel Ciocioc
Hawaiian punch Irinel Ciocioc
Kajiado County Audit Report 2014/15
ONOS intent introduction
Using an Information Asset Register for the GDPR
Vip scan
P4: Programming Protocol-Independent Packet Processor
Layer 3 Tunnel Support for Open vSwitch
Request to Fulfill Presentation (IT4IT)
EBPF and Linux Networking
Nyamira County Audit Report 2014/2015
SDN, OpenFlow, NFV, and Virtual Network
Aws S3 uploading tricks 2016
Norma oficial mexicana 251 SSA
Ad

Similar to P4-based VNF and Micro-VNF Chaining for Servers With Intelligent Server Adapters (20)

PDF
Host Data Plane Acceleration: SmartNIC Deployment Models
PDF
Leveraging Network Offload to Accelerate SDN and NFV Deployments
PDF
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
PPTX
SoC Solutions Enabling Server-Based Networking
PDF
VMworld 2014: Advanced Topics & Future Directions in Network Virtualization w...
PDF
Scaling the Container Dataplane
PDF
Open vSwitch Implementation Options
PPTX
Supporting Virtualized Telco Applications with OpenStack
PDF
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
PPTX
Architecture of OpenFlow SDNs
PDF
L4-L7 services for SDN and NVF by Youcef Laribi
PPTX
Offline SD SF Mapping
PDF
New Networking Capabilities In ACS And How To Leverage Them For VNF Deployments
PDF
Net1674 final emea
PDF
High performance and flexible networking
PDF
PLNOG15: Is there something less complicated than connecting two LAN networks...
PPTX
Network and Service Virtualization tutorial at ONUG Spring 2015
PDF
P4 Introduction
PDF
Control of Communication and Energy Networks Final Project - Service Function...
PDF
VMworld 2013: Advanced VMware NSX Architecture
Host Data Plane Acceleration: SmartNIC Deployment Models
Leveraging Network Offload to Accelerate SDN and NFV Deployments
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
SoC Solutions Enabling Server-Based Networking
VMworld 2014: Advanced Topics & Future Directions in Network Virtualization w...
Scaling the Container Dataplane
Open vSwitch Implementation Options
Supporting Virtualized Telco Applications with OpenStack
VSPERF BEnchmarking the Network Data Plane of NFV VDevices and VLinks
Architecture of OpenFlow SDNs
L4-L7 services for SDN and NVF by Youcef Laribi
Offline SD SF Mapping
New Networking Capabilities In ACS And How To Leverage Them For VNF Deployments
Net1674 final emea
High performance and flexible networking
PLNOG15: Is there something less complicated than connecting two LAN networks...
Network and Service Virtualization tutorial at ONUG Spring 2015
P4 Introduction
Control of Communication and Energy Networks Final Project - Service Function...
VMworld 2013: Advanced VMware NSX Architecture

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
TLE Review Electricity (Electricity).pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Approach and Philosophy of On baking technology
Group 1 Presentation -Planning and Decision Making .pptx
TLE Review Electricity (Electricity).pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
DP Operators-handbook-extract for the Mautical Institute
SOPHOS-XG Firewall Administrator PPT.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MIND Revenue Release Quarter 2 2025 Press Release
OMC Textile Division Presentation 2021.pptx
A comparative study of natural language inference in Swahili using monolingua...
Mushroom cultivation and it's methods.pdf
Chapter 5: Probability Theory and Statistics
Zenith AI: Advanced Artificial Intelligence
Enhancing emotion recognition model for a student engagement use case through...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Getting Started with Data Integration: FME Form 101
Unlocking AI with Model Context Protocol (MCP)
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Approach and Philosophy of On baking technology

P4-based VNF and Micro-VNF Chaining for Servers With Intelligent Server Adapters

  • 1. 1©2016 Open-NFP P4-based VNF and Micro-VNF chaining for servers with SmartNICs David George david.george@netronome.com
  • 2. 2©2016 Open-NFP Session Agenda ● Introduction ● Design overview ● A look under the hood – P4, SandboxC and rules ● Run-through – Demo of key features ● Conclusions + questions ● (time permitting) A quick overview of SDK6 P4 runtime
  • 3. 3©2016 Open-NFP Introduction ● VNF – Virtualized Network Function – Network function hosted independent of physical hardware ● examples: Firewall, intrusion detection – Chaining a sequence of VNF ● Micro-VNF? – Light-weight VNF – Possible to integrate close to dataplane ● e.g in kernel, on smartNIC – examples: telemetry, statistics ● Goal to illustrate how this can be achieved: – SmartNIC P4 dataplane using Netronome SDK 6 – Micro-VNFs in sandbox C – Simple VNFs with libvirt + VFIO – Other ‘neat’ P4 stuff ● Why this example? – Illustrates how simple it can be to solve challenging problems with P4 + SmartNICs: ● Marshalling data into VNFs ● Gathering telemetry info + processing statistics –
  • 4. 4©2016 Open-NFP Design/Demo Overview X86 Host Micro-VNFs: Payload scan Hoptime stats Linux Net Namespace VLAN 2 “dumb” NIC + bridge Physical Interface TCP path with metering Netronome SmartNIC with P4+C Dataplane VNF0: NetDev L2 Bridge in VM VFIO 1 VNF1: DPDK L2 Bridge in VM VFIO 0 VFIO 3 VFIO 2 Linux Net Namespace VLAN3
  • 5. 5©2016 Open-NFP Design/Demo Overview (cont.) ● P4 Dataplane – Run-of-the-mill parse + match + action + forwarding ● VNFs: L2 Forwarding “cooked two ways” DPDK and NetDev – Simple way to illustrate use – BUT complicated routing: ● Must be unique per port direction! ● MicroVNFs: – VF “Hoptime” statistics ● Min, max, avg reported between VF send + receive ● Achieved using custom tunnel – Simple payload scanner: search for a compile time token ● Extra points of interest – Meters ● Traffic generation: – VLAN IDs used for routing between VFs – Linux Network Namespaces to isolate address spaces (all on one host)
  • 6. 6©2016 Open-NFP Traffic Generation X86 Host Micro-VNFs: Payload scan Hoptime stats Linux Net Namespace VLAN 2 “dumb” NIC + bridge Physical Interface TCP path with metering Netronome SmartNIC with P4+C Dataplane VNF0: NetDev L2 Bridge in VM VFIO 1 VNF1: DPDK L2 Bridge in VM VFIO 0 VFIO 3 VFIO 2 Linux Net Namespace VLAN3
  • 7. 7©2016 Open-NFP Coarse look at P4 design Parsing Ethernet VLAN Custom “hoptime” header IP + TCP Ingress Process “hoptime” Metering Forwarding Egress Insert “hoptime” Translate VLAN Tags
  • 8. 8©2016 Open-NFP A look under the hood + demo:
  • 9. 9©2016 Open-NFP Conclusions ● Illustrated simple solution for VNF chaining using P4 ● Showed the potential for implementing Micro-VNFs in C sandbox – Support for going beyond the P4 parsed headers in C – Measurement of VNF processing time ● Showed how flexibly P4 meters can be used
  • 10. 10©2016 Open-NFP Github Resources ● https://github.com/open-nfpsw/p4_vnf_uvnf_demo ● Includes: ● P4 , sandbox C & P4 configs – Building & loading using CLI or PS IDE ● Host scripts
  • 12. 12©2016 Open-NFP SDK P4 Runtime Environment ● Typically programmer studio drives the configuration – Hitting “debug” programs firmware, load rules, configures meters etc. ● The RTE ships with python tools and thrift interface for interacting with P4 Runtime Environment Server via Thrift RPC – Allows command line driven loading configuration – Possible to build a stand-alone application for interacting with design ● Example: L2 bridge receiving P4 digests and writing table updates
  • 13. 13©2016 Open-NFP SDK P4 Runtime Environment (cont) ● in RTE installation you will find the following: – thrift/sdk6_rte.thrift ● Thrift interface file, RPC stubs generated from this and can be used with python, C++... – thrift/client/RTEInterface.py ● A python module that provides an abstraction for the Thrift interface – thrift/client/sdk6_rte_cli.py ● A swiss army knife command line tool – thrift/client/digest_listener ● Example tool for dumping digest events