SlideShare a Scribd company logo
1 of 53
Download to read offline
© 2016 NETRONOME
Johann Tönsing
August 9, 2016
Using Agilio™ SmartNICs for

OpenStack Networking Acceleration
© 2016 NETRONOME 2
Agenda
• Overview of Traditional OpenStack Networking Options

OVS (with/without connection tracking), Contrail vRouter, SR-IOV, VirtIO…
• Issues: Flexibility, Performance, CPU Utilization
• Accelerating and Offloading OpenStack Networking using Agilio™ SmartNICs
• Results: Features, Throughput, CPU Utilization
• Implementation Details: Hardware and Software Architectures
• Evolution of OpenStack Networking
• Supporting P4, C and eBPF Programmability
• Integration Activities
• Conclusions
© 2016 NETRONOME
Traditional OpenStack Networking Options
3
Forwarding /
Virtual Switching
Technology
OpenStack 

Control Plane
Forwarding Overlays (Tunnels) Security Groups
(Microsegmentation,
Stateful Firewalling)
SR-IOV with
regular NIC
Vendor specific plugin Limited



E.g. MAC/VLAN

based directing
None None
© 2016 NETRONOME
Traditional OpenStack Networking Options
3
Forwarding /
Virtual Switching
Technology
OpenStack 

Control Plane
Forwarding Overlays (Tunnels) Security Groups
(Microsegmentation,
Stateful Firewalling)
SR-IOV with
regular NIC
Vendor specific plugin Limited



E.g. MAC/VLAN

based directing
None None
OVS
ML2 plugin 

(optional: SDN controller)


OVN plugin
L2 / L3 VXLAN, GRE, 

(for OVN) GENEVE

…



Emerging: 

NSH (for NFV)
OVS 2.5+ can interface
to Linux conntrack



(Previously Linux bridge
with iptables/nftables)
© 2016 NETRONOME
Traditional OpenStack Networking Options
3
Forwarding /
Virtual Switching
Technology
OpenStack 

Control Plane
Forwarding Overlays (Tunnels) Security Groups
(Microsegmentation,
Stateful Firewalling)
SR-IOV with
regular NIC
Vendor specific plugin Limited



E.g. MAC/VLAN

based directing
None None
OVS
ML2 plugin 

(optional: SDN controller)


OVN plugin
L2 / L3 VXLAN, GRE, 

(for OVN) GENEVE

…



Emerging: 

NSH (for NFV)
OVS 2.5+ can interface
to Linux conntrack



(Previously Linux bridge
with iptables/nftables)
Contrail vRouter
Contrail plugin (via
Contrail controller)
L2 / L3 MPLS in UDP, 

MPLS in GRE,

VXLAN

…
Built in, via flow table
© 2016 NETRONOME
Traditional OpenStack Networking Options
3
Forwarding /
Virtual Switching
Technology
OpenStack 

Control Plane
Forwarding Overlays (Tunnels) Security Groups
(Microsegmentation,
Stateful Firewalling)
SR-IOV with
regular NIC
Vendor specific plugin Limited



E.g. MAC/VLAN

based directing
None None
OVS
ML2 plugin 

(optional: SDN controller)


OVN plugin
L2 / L3 VXLAN, GRE, 

(for OVN) GENEVE

…



Emerging: 

NSH (for NFV)
OVS 2.5+ can interface
to Linux conntrack



(Previously Linux bridge
with iptables/nftables)
Contrail vRouter
Contrail plugin (via
Contrail controller)
L2 / L3 MPLS in UDP, 

MPLS in GRE,

VXLAN

…
Built in, via flow table
Additional features: load balancing, NAT etc.
© 2016 NETRONOME
OpenStack Networking Options Evaluated
4
Forwarding /
Virtual Switching
Technology
Traditional Approach Agilio™ SmartNIC Accelerated Approach
SR-IOV
Limited expressiveness to direct traffic to
VMs (no support for general match/action
rules, tunnel termination, stateful firewalling)


High throughput



No VM migration support
Full OVS or vRouter virtual switching incl.
tunnel termination, stateless/stateful firewalling


and SR-IOV based data delivery to VMs 



High throughput



VirtIO integration, supporting VM migration
OVS



and



Contrail vRouter
High expressiveness - match/action,
tunnels, stateless/stateful firewalling etc.


Limited throughput


High CPU utilization (e.g. 50% of cores)
Same expressiveness - match/action, tunnels,
stateless/stateful firewalling etc.

Higher throughput (~5x higher)


Lower CPU utilization (~10x lower)
© 2016 NETRONOME 5
Agilio™ CX SmartNIC Family
• Optimized for standard server based cloud data centers
• Low Profile Half Length PCIe form factor, power < 25W
• Based on Netronome’s NFP-4xxx silicon (72 C programmable cores, 8 threads each)
• 2GB DRAM for lookup tables / state tables (millions of entries)
• Dataplane fully implemented in software
1x 40GbE 2x 40GbE2x 10GbE New: 2x 25GbE
Also available: Agilio™ LX 2x40G / 1x100G with dual PCIe interfaces, 120 cores, 8GB DRAM…
© 2016 NETRONOME 6
OVS Throughput vs. Packet Size
OVS L2 Forward to VMs
Packet Size
MillionsofPacketsperSecond
OVS VXLAN + L2 Forward to VMs
Packet Size
MillionsofPacketsperSecond
© 2016 NETRONOME 7
OVS Throughput vs. Number of Rules
5
10
15
20
25
30
OVS in Kernel
Space
OVS in User Space
on DPDK
100 Wildcard Rules
1000 Wildcard Rules
10000 Wildcard Rules
64000 Wildcard Rules
MillionsofPacketsperSecond
12 CPU Cores
12 CPU Cores
OVS Offloaded to
Agilio™ CX-4000
1 CPU Core
5X Throughput Improvement + 90% CPU Savings
OVS L2/L3 Forwarding to 8 VMs with 64K Flows
© 2016 NETRONOME 8
Tested Scenario: Server CPU Core Allocation
Unaccelerated OVS (Kernel / User Mode)
Agilio™ OVS
OVS
© 2016 NETRONOME 9
Efficiency: Throughput Per Server CPU Core
Throughput with single server CPU core

dedicated to network related processing
MillionsofPacketsperSecond
• 50x Efficiency vs. Kernel OVS
• 20x Efficiency vs. User Mode (DPDK) OVS



=> Replace 3-6 racks with 1 rack!
Throughput / efficiency similar for
Agilio™ Contrail vRouter
Benefit for your use case: 

search for

“netronome.com roi calculator”
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
(Nova, Neutron)
Execute
Action
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
3 Offload datapath: copy match tables, sync stats
3
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
3 Offload datapath: copy match tables, sync stats
3
4 Flow tracking: per-microflow state learning
4
Self Learning
Exact Match

Flow Tracker
Miss
Hit
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
3 Offload datapath: copy match tables, sync stats
3
Conn
track
FTP
SIP
4 Flow tracking: per-microflow state learning
4
Self Learning
Exact Match

Flow Tracker
Miss
Hit
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
Conn
track
3 Offload datapath: copy match tables, sync stats
3
Conn
track
FTP
SIP
4 Flow tracking: per-microflow state learning
4
Self Learning
Exact Match

Flow Tracker
Miss
Hit
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Offload Model: Agilio™ OVS Acceleration
10
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
Conn
track
3 Offload datapath: copy match tables, sync stats
3
5 Offload connection tracking: synchronize state
5
Conn
track
FTP
SIP
4 Flow tracking: per-microflow state learning
4
Self Learning
Exact Match

Flow Tracker
Miss
Hit
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
(Nova, Neutron)
Execute
Action
vRouter
Flow
Classify
vRouter
Forwarding
vRouter
Forwarding
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
(Nova, Neutron)
Execute
Action
vRouter
Flow
Classify
vRouter
Forwarding
vRouter
Forwarding
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
(Nova, Neutron)
Execute
Action
vRouter
Flow
Classify
vRouter
Forwarding
vRouter
Forwarding
2
2 Offload forwarding: pre-emptively copied
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
(Nova, Neutron)
Execute
Action
vRouter
Flow
Classify
Miss
vRouter
Forwarding
vRouter
Forwarding
2
2 Offload forwarding: pre-emptively copied
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
(Nova, Neutron)
Execute
Action
vRouter
Flow
Classify
Miss
Miss
vRouter
Forwarding
vRouter
Forwarding
2
2 Offload forwarding: pre-emptively copied
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
3
3 Userspace agent populates kernel tables
(Nova, Neutron)
Execute
Action
vRouter
Flow
Classify
Miss
Miss
vRouter
Forwarding
vRouter
Forwarding
2
2 Offload forwarding: pre-emptively copied
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
3
3 Userspace agent populates kernel tables
(Nova, Neutron)
Execute
Action
4 Offload flows: copy tables, sync stats
4
vRouter
Flow
Classify
Miss
Miss
vRouter
Forwarding
vRouter
Forwarding
2
2 Offload forwarding: pre-emptively copied
© 2016 NETRONOME
vRouter Datapath
vRouter
Flow
Classify
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
vRouter
Forwarding
vRouter
Forwarding
Agilio™ vRouter Acceleration
11
vRouter
Subsystem
vRouter
Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
vRouter
CLI
1 Configuration via controller or CLI: BGP over XMPP
3
3 Userspace agent populates kernel tables
(Nova, Neutron)
Execute
Action
4 Offload flows: copy tables, sync stats
4
vRouter
Flow
Classify
Miss
Miss
vRouter
Forwarding
vRouter
Forwarding
Notes:
- Control protocol: BGP over XMPP
- Tunnel protocols: VXLAN, MPLS over UDP / GRE
- Distinct policy (flows - ACLs) and forwarding (IP/MPLS)
- Flow table is used to implement stateful firewalling
2
2 Offload forwarding: pre-emptively copied
© 2016 NETRONOME
SmartNIC Firmware: Pre-programmed or Custom
• SmartNIC with dynamically downloadable
firmware
© 2016 NETRONOME
SmartNIC Firmware: Pre-programmed or Custom
• SmartNIC with dynamically downloadable
firmware
Contrail OVS
OpenStack ONOS ODL
Linux BSD
• OVS / Contrail / Linux eBPF datapath on host
can be accelerated by SmartNIC
D
P
D
K
eBPF
© 2016 NETRONOME
SmartNIC Firmware: Pre-programmed or Custom
Compiler Debugger
Run-Time
app.P4 app.C
Editor
• Firmware can be developed in P4 and/or C
• TBD how to integrate custom programmed
datapaths (implemented in P4 / C etc.) into
OpenStack
• SmartNIC with dynamically downloadable
firmware
Contrail OVS
OpenStack ONOS ODL
Linux BSD
• OVS / Contrail / Linux eBPF datapath on host
can be accelerated by SmartNIC
D
P
D
K
eBPF
© 2016 NETRONOME 13
SmartNIC Datapath “Worker” Software Architecture
• Load balancer distributes each packet to next available thread for optimum throughput
• Hardware assisted reordering ensures packet order is maintained
• Flow tracker statefully learns / tracks millions of sessions
• Matching performed using DRAM-backed tables - capacity > 500k entries
• Actions efficiently performed in on-chip memory
Parse Match Act
Flow Tracker
Learn microflows
Cache action
Datapath
Run to completion
Load

Balance
C Plugin
Re-

order
Pool of worker threads on flow processing cores
net or
PCIE
net or
PCIE
= Ring / Work Queue (multi producer / consumer)
© 2016 NETRONOME 14
Example: P4 “main” implementing a simple NIC
header_type eth_hdr {
fields {
dst : 48;
src : 48;
etype : 16;
}
}
header eth_hdr eth;
parser start {
return eth_parse;
}
parser eth_parse {
extract(eth);
return ingress;
}
action drop_act() {
drop();
}
action fwd_act(port) {
modify_field(standard_metadata.egress_spec,
port);
}
table in_tbl {
reads {
standard_metadata.ingress_port : exact;
}
actions {
fwd_act;
drop_act;
}
}
control ingress {
apply(in_tbl);
}
© 2016 NETRONOME
SmartNIC Firmware (P4/C)
Example of Fully Customized Datapath (P4 / C)
15
Run-Time
Interface
Server (x86 - Linux)
PCIe
Agilio™ SmartNIC
Virtual Machine 1
VNF
Kernel
Mode
(C)
netdev
P4 / C
Development
Environment
Edit - Debug
Control
App
Populate
tables,
display
statistics
Security
µVNF (C)
Timestamp
µVNF (C)
Latency Stats
µVNF (C)
Virtual Machine 2
VNF
User
Mode

(C)
DPDK
Timestamp
µVNF (C)
Latency Stats
µVNF (C)
Match
Protocol
Meter
Other
TCP
Concepts:
• P4 and C running on SmartNIC 

implements datapath - e.g.

defines protocols, match / action

behavior
• Datapath steers traffic to VNFs

running on x86 server and 

on SmartNIC
© 2016 NETRONOME
SmartNIC Firmware (P4/C)
Example of Fully Customized Datapath (P4 / C)
15
Run-Time
Interface
Server (x86 - Linux)
PCIe
Agilio™ SmartNIC
Virtual Machine 1
VNF
Kernel
Mode
(C)
netdev
P4 / C
Development
Environment
Edit - Debug
Control
App
Populate
tables,
display
statistics
Security
µVNF (C)
Timestamp
µVNF (C)
Latency Stats
µVNF (C)
Virtual Machine 2
VNF
User
Mode

(C)
DPDK
Timestamp
µVNF (C)
Latency Stats
µVNF (C)
Match
Protocol
Meter
Other
TCP
Concepts:
• P4 and C running on SmartNIC 

implements datapath - e.g.

defines protocols, match / action

behavior
• Datapath steers traffic to VNFs

running on x86 server and 

on SmartNIC
To Discuss: 

OpenStack

Integration
© 2016 NETRONOME
Extending OpenStack Networking - P4/C Plugins
16
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
3 Offload datapath: copy match tables, sync stats
3
OVS

Kernel DP
Match/Act
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
Extending OpenStack Networking - P4/C Plugins
16
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
1 Configuration via controller, CLI, or Callable API
2
2 OVS userspace agent populates kernel cache
(Nova, Neutron)
Execute
Action
Open vSwitch Datapath
Execute Action
(e.g. Entunnel,
Deliver to VM,
Send to Port)
3 Offload datapath: copy match tables, sync stats
3
OVS

Kernel DP
Match/Act
Datapath
Extension
or Plugin
P4 / C
in Sandbox
DP Ext.
4 Datapath extension software
4
4
OVS

Kernel DP
Match/Act
Miss
Miss
© 2016 NETRONOME
OVS “on” SmartNIC P4 Datapath
17
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
Execute
Action
OVS

Kernel DP
Match/Act
P4
Matching
© 2016 NETRONOME
OVS “on” SmartNIC P4 Datapath
17
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
Execute
Action
P4 Generated Datapath
Execute
P4
Action
OVS

Kernel DP
Match/Act
P4
Matching
© 2016 NETRONOME
OVS “on” SmartNIC P4 Datapath
17
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
Execute
Action
P4 Generated Datapath
Execute
P4
Action
OVS

Kernel DP
Match/Act
P4
Matching
Fallback
© 2016 NETRONOME
OVS “on” SmartNIC P4 Datapath
17
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
Execute
Action
P4 Generated Datapath
Execute
P4
Action
OVS

Kernel DP
Match/Act
P4
Matching
Fallback
Fallback
© 2016 NETRONOME
P4 “into” OVS Datapath
18
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
Execute
P4 / OVS
Action
P4 / OVS
Matching
P4 / OVS
Matching
© 2016 NETRONOME
P4 “into” OVS Datapath
18
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
P4 Generated Datapath
Execute
P4 / OVS
Action
Execute
P4 / OVS
Action
P4 / OVS
Matching
P4 / OVS
Matching
© 2016 NETRONOME
P4 “into” OVS Datapath
18
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
P4 Generated Datapath
Execute
P4 / OVS
Action
Execute
P4 / OVS
Action
P4 / OVS
Matching
P4 / OVS
Matching
Fallback
© 2016 NETRONOME
P4 “into” OVS Datapath
18
Open vSwitch Subsystem
OVS
Agent
OpenFlow
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
OVS CLI
Callable
API
(Nova, Neutron)
P4 Generated Datapath
Execute
P4 / OVS
Action
Execute
P4 / OVS
Action
P4 / OVS
Matching
P4 / OVS
Matching
Fallback
Fallback
© 2016 NETRONOME
P4 “instead of” OVS (Datapath and Control)
19
Open vSwitch Subsystem
P4 Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
(Nova, Neutron)
P4 Generated Datapath
Execute
P4
Action
Execute
Action
P4
or eBPF
or XDP
P4
Matching
Fallback
Fallback
1 Protocol(s) to be discussed
(could become callable API)
© 2016 NETRONOME
P4 “instead of” OVS (Datapath and Control)
19
Open vSwitch Subsystem
P4 Agent
Virtual Machine
Virtual Machine
Virtual Machine
x86 Kernel
x86 Userspace
PCIe
Virtual Machine
SR-IOV /
VirtIO VFs
SR-IOV /
VirtIO VFs
Agilio™

SmartNIC
Apps
Apps
1
netdev or DPDK
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
Apps
netdev or DPDK
(Nova, Neutron)
P4 Generated Datapath
Execute
P4
Action
Execute
Action
P4
or eBPF
or XDP
P4
Matching
Fallback
Fallback
1 Protocol(s) to be discussed
(could become callable API)
Other open issues:
- Downloading programs via

OpenStack or other systems

- Scheduling VMs to run on

nodes with acceleration hardware

(Nova)



Acceleration discussion started at
OpenStack Spring 2016 (Austin)

© 2016 NETRONOME 20
Integration / Open Sourcing Activities
Area Activities
Linux drivers VF netdev (kernel device
driver) upstreamed in
kernel 4.5
Patches available for
older kernels, or use
VirtIO
Representative netdev
(for fallback processing
of traffic) proposals
imminent
FreeBSD drivers Kernel device driver implemented
DPDK drivers Poll mode driver
upstreamed in DPDK 2.2
Patches available for
older DPDK versions
Open vSwitch
acceleration

integration
Hooks for acceleration
proposed in October
2014
Iteration in progress
OpenStack
integration
Proposing plugins and
agents to support virtual
switching acceleration
via RFE process
Integration for OVS in
process - Mirantis,
Ericsson CEE etc.
Integration for Contrail
vRouter in process -
Juniper etc.
© 2016 NETRONOME 20
Integration / Open Sourcing Activities
Area Activities
Linux drivers VF netdev (kernel device
driver) upstreamed in
kernel 4.5
Patches available for
older kernels, or use
VirtIO
Representative netdev
(for fallback processing
of traffic) proposals
imminent
FreeBSD drivers Kernel device driver implemented
DPDK drivers Poll mode driver
upstreamed in DPDK 2.2
Patches available for
older DPDK versions
Open vSwitch
acceleration

integration
Hooks for acceleration
proposed in October
2014
Iteration in progress
OpenStack
integration
Proposing plugins and
agents to support virtual
switching acceleration
via RFE process
Integration for OVS in
process - Mirantis,
Ericsson CEE etc.
Integration for Contrail
vRouter in process -
Juniper etc.
Also: P4 and protocol independent forwarding, switchdev, eBPF / XDP…
© 2016 NETRONOME 21
Next Steps
• Use Agilio™ SmartNICs with existing dataplanes
• Use Agilio™ OVS (with / without Conntrack)
• Use Agilio™ vRouter
• Future: Agilio™ eBPF/XDP, etc.

• Program Agilio™ SmartNICs
• Use APIs (on x86 servers) - with above dataplanes
• Program in P4 and/or C (on SmartNIC / on x86)

• Improve performance + free up server resources!
© 2016 NETRONOME
More information: netronome.com and open-nfp.org
Thank You!
22

More Related Content

What's hot

Leveraging Network Offload to Accelerate SDN and NFV Deployments
Leveraging Network Offload to Accelerate SDN and NFV DeploymentsLeveraging Network Offload to Accelerate SDN and NFV Deployments
Leveraging Network Offload to Accelerate SDN and NFV DeploymentsNetronome
 
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...OpenStack Korea Community
 
Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!
Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!
Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!OPNFV
 
[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...
[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...
[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...OpenStack Korea Community
 
Summit 16: IPv6 in DT's TeraStream
Summit 16: IPv6 in DT's TeraStreamSummit 16: IPv6 in DT's TeraStream
Summit 16: IPv6 in DT's TeraStreamOPNFV
 
Accelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network OverlaysAccelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network OverlaysCumulus Networks
 
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof MazepaPLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof MazepaPROIDEA
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?OPNFV
 
Design, Verification and Emulation of an Island-Based Network Flow Processor
Design, Verification and Emulation of an Island-Based Network Flow ProcessorDesign, Verification and Emulation of an Island-Based Network Flow Processor
Design, Verification and Emulation of an Island-Based Network Flow ProcessorNetronome
 
Openstack meetup: NFV and Openstack
Openstack meetup: NFV and OpenstackOpenstack meetup: NFV and Openstack
Openstack meetup: NFV and OpenstackMarie-Paule Odini
 
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...Cloud Native Day Tel Aviv
 
Kubernetes OpenContrail Meetup
Kubernetes OpenContrail MeetupKubernetes OpenContrail Meetup
Kubernetes OpenContrail MeetupLachlan Evenson
 
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...Junho Suh
 
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'OpenStack Korea Community
 
Using OpenContrail with Kubernetes
Using OpenContrail with KubernetesUsing OpenContrail with Kubernetes
Using OpenContrail with KubernetesMatt Baldwin
 
Tech Talk by Louis Fourie: SFC: technology, trend and implementation
Tech Talk by Louis Fourie: SFC: technology, trend and implementationTech Talk by Louis Fourie: SFC: technology, trend and implementation
Tech Talk by Louis Fourie: SFC: technology, trend and implementationnvirters
 
Nexus 7000 Series Innovations: M3 Module, DCI, Scale
Nexus 7000 Series Innovations: M3 Module, DCI, ScaleNexus 7000 Series Innovations: M3 Module, DCI, Scale
Nexus 7000 Series Innovations: M3 Module, DCI, ScaleTony Antony
 
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini SummitRed hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summitkimw001
 
High-performance 32G Fibre Channel Module on MDS 9700 Directors:
High-performance 32G Fibre Channel Module on MDS 9700 Directors:High-performance 32G Fibre Channel Module on MDS 9700 Directors:
High-performance 32G Fibre Channel Module on MDS 9700 Directors:Tony Antony
 

What's hot (20)

Leveraging Network Offload to Accelerate SDN and NFV Deployments
Leveraging Network Offload to Accelerate SDN and NFV DeploymentsLeveraging Network Offload to Accelerate SDN and NFV Deployments
Leveraging Network Offload to Accelerate SDN and NFV Deployments
 
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
 
Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!
Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!
Summit 16: OPNFV on ARM - Hardware Freedom of Choice Has Arrived!
 
[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...
[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...
[2015-05월 세미나] Network Bottlenecks Mutiply with NFV Don't Forget Performance ...
 
Summit 16: IPv6 in DT's TeraStream
Summit 16: IPv6 in DT's TeraStreamSummit 16: IPv6 in DT's TeraStream
Summit 16: IPv6 in DT's TeraStream
 
Accelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network OverlaysAccelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network Overlays
 
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof MazepaPLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?
 
Design, Verification and Emulation of an Island-Based Network Flow Processor
Design, Verification and Emulation of an Island-Based Network Flow ProcessorDesign, Verification and Emulation of an Island-Based Network Flow Processor
Design, Verification and Emulation of an Island-Based Network Flow Processor
 
Openstack meetup: NFV and Openstack
Openstack meetup: NFV and OpenstackOpenstack meetup: NFV and Openstack
Openstack meetup: NFV and Openstack
 
Introduction to SDN and NFV
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
 
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
 
Kubernetes OpenContrail Meetup
Kubernetes OpenContrail MeetupKubernetes OpenContrail Meetup
Kubernetes OpenContrail Meetup
 
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
 
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
 
Using OpenContrail with Kubernetes
Using OpenContrail with KubernetesUsing OpenContrail with Kubernetes
Using OpenContrail with Kubernetes
 
Tech Talk by Louis Fourie: SFC: technology, trend and implementation
Tech Talk by Louis Fourie: SFC: technology, trend and implementationTech Talk by Louis Fourie: SFC: technology, trend and implementation
Tech Talk by Louis Fourie: SFC: technology, trend and implementation
 
Nexus 7000 Series Innovations: M3 Module, DCI, Scale
Nexus 7000 Series Innovations: M3 Module, DCI, ScaleNexus 7000 Series Innovations: M3 Module, DCI, Scale
Nexus 7000 Series Innovations: M3 Module, DCI, Scale
 
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini SummitRed hat NFV Roadmap    - OpenStack Summit 2016/Red Hat NFV Mini Summit
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
 
High-performance 32G Fibre Channel Module on MDS 9700 Directors:
High-performance 32G Fibre Channel Module on MDS 9700 Directors:High-performance 32G Fibre Channel Module on MDS 9700 Directors:
High-performance 32G Fibre Channel Module on MDS 9700 Directors:
 

Viewers also liked

5 g network &amp; technology
5 g network &amp; technology5 g network &amp; technology
5 g network &amp; technologyFrikha Nour
 
Treasure Data Cloud Data Platform
Treasure Data Cloud Data PlatformTreasure Data Cloud Data Platform
Treasure Data Cloud Data Platforminside-BigData.com
 
Nfv orchestration open stack summit may2015 aricent
Nfv orchestration open stack summit may2015 aricentNfv orchestration open stack summit may2015 aricent
Nfv orchestration open stack summit may2015 aricentAricent
 
大規模環境のOpenStack アップグレードの考え方と実施のコツ
大規模環境のOpenStackアップグレードの考え方と実施のコツ大規模環境のOpenStackアップグレードの考え方と実施のコツ
大規模環境のOpenStack アップグレードの考え方と実施のコツTomoya Hashimoto
 
Network visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetryNetwork visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetrypphaal
 
Monitor OpenStack Environments from the bottom up and front to back
Monitor OpenStack Environments from the bottom up and front to backMonitor OpenStack Environments from the bottom up and front to back
Monitor OpenStack Environments from the bottom up and front to backIcinga
 
Digdagによる大規模データ処理の自動化とエラー処理
Digdagによる大規模データ処理の自動化とエラー処理Digdagによる大規模データ処理の自動化とエラー処理
Digdagによる大規模データ処理の自動化とエラー処理Sadayuki Furuhashi
 
NFV : Virtual Network Function Architecture
NFV : Virtual Network Function ArchitectureNFV : Virtual Network Function Architecture
NFV : Virtual Network Function Architecturesidneel
 
【AWS初心者向けWebinar】AWSから始める動画配信
【AWS初心者向けWebinar】AWSから始める動画配信【AWS初心者向けWebinar】AWSから始める動画配信
【AWS初心者向けWebinar】AWSから始める動画配信Amazon Web Services Japan
 
Cloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper ContrailCloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper Contrailbuildacloud
 
Contrail Deep-dive - Cloud Network Services at Scale
Contrail Deep-dive - Cloud Network Services at ScaleContrail Deep-dive - Cloud Network Services at Scale
Contrail Deep-dive - Cloud Network Services at ScaleMarketingArrowECS_CZ
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けRecruit Technologies
 

Viewers also liked (18)

5 g network &amp; technology
5 g network &amp; technology5 g network &amp; technology
5 g network &amp; technology
 
Treasure Data Cloud Data Platform
Treasure Data Cloud Data PlatformTreasure Data Cloud Data Platform
Treasure Data Cloud Data Platform
 
Nfv orchestration open stack summit may2015 aricent
Nfv orchestration open stack summit may2015 aricentNfv orchestration open stack summit may2015 aricent
Nfv orchestration open stack summit may2015 aricent
 
大規模環境のOpenStack アップグレードの考え方と実施のコツ
大規模環境のOpenStackアップグレードの考え方と実施のコツ大規模環境のOpenStackアップグレードの考え方と実施のコツ
大規模環境のOpenStack アップグレードの考え方と実施のコツ
 
Network visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetryNetwork visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetry
 
AWS Data Collection & Storage
AWS Data Collection & StorageAWS Data Collection & Storage
AWS Data Collection & Storage
 
NFV and OpenStack
NFV and OpenStackNFV and OpenStack
NFV and OpenStack
 
NFV Tutorial
NFV TutorialNFV Tutorial
NFV Tutorial
 
Monitor OpenStack Environments from the bottom up and front to back
Monitor OpenStack Environments from the bottom up and front to backMonitor OpenStack Environments from the bottom up and front to back
Monitor OpenStack Environments from the bottom up and front to back
 
Digdagによる大規模データ処理の自動化とエラー処理
Digdagによる大規模データ処理の自動化とエラー処理Digdagによる大規模データ処理の自動化とエラー処理
Digdagによる大規模データ処理の自動化とエラー処理
 
NFV evolution towards 5G
NFV evolution towards 5GNFV evolution towards 5G
NFV evolution towards 5G
 
Design Principles for 5G
Design Principles for 5GDesign Principles for 5G
Design Principles for 5G
 
NFV : Virtual Network Function Architecture
NFV : Virtual Network Function ArchitectureNFV : Virtual Network Function Architecture
NFV : Virtual Network Function Architecture
 
【AWS初心者向けWebinar】AWSから始める動画配信
【AWS初心者向けWebinar】AWSから始める動画配信【AWS初心者向けWebinar】AWSから始める動画配信
【AWS初心者向けWebinar】AWSから始める動画配信
 
Cloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper ContrailCloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper Contrail
 
Contrail Deep-dive - Cloud Network Services at Scale
Contrail Deep-dive - Cloud Network Services at ScaleContrail Deep-dive - Cloud Network Services at Scale
Contrail Deep-dive - Cloud Network Services at Scale
 
170827 jtf garafana
170827 jtf garafana170827 jtf garafana
170827 jtf garafana
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 

Similar to Using Agilio SmartNICs for OpenStack Networking Acceleration

Stacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStackStacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStackOpen-NFP
 
Support of containerized workloads in ONAP
Support of containerized workloads in ONAPSupport of containerized workloads in ONAP
Support of containerized workloads in ONAPVictor Morales
 
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and moreAdvanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and moreinside-BigData.com
 
Open vSwitch Implementation Options
Open vSwitch Implementation Options Open vSwitch Implementation Options
Open vSwitch Implementation Options Netronome
 
Nvp deep dive_session_cee-day
Nvp deep dive_session_cee-dayNvp deep dive_session_cee-day
Nvp deep dive_session_cee-dayyfauser
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...Jim St. Leger
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - CaviumSummit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - CaviumOPNFV
 
Red Hat demo of OpenStack and ODL at ODL summit 2016
Red Hat demo of OpenStack and ODL at ODL summit 2016 Red Hat demo of OpenStack and ODL at ODL summit 2016
Red Hat demo of OpenStack and ODL at ODL summit 2016 RedHatTelco
 
Platforms for Accelerating the Software Defined and Virtual Infrastructure
Platforms for Accelerating the Software Defined and Virtual InfrastructurePlatforms for Accelerating the Software Defined and Virtual Infrastructure
Platforms for Accelerating the Software Defined and Virtual Infrastructure6WIND
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...OpenStack Korea Community
 
StarlingX - Driving Compute to the Edge with OpenStack
StarlingX - Driving Compute to the Edge with OpenStackStarlingX - Driving Compute to the Edge with OpenStack
StarlingX - Driving Compute to the Edge with OpenStackStacy Véronneau
 
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...NETWAYS
 
Osdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauserOsdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauseryfauser
 
 Network Innovations Driving Business Transformation
 Network Innovations Driving Business Transformation Network Innovations Driving Business Transformation
 Network Innovations Driving Business TransformationCisco Service Provider
 
6WINDGate™ - Enabling Cloud RAN Virtualization
6WINDGate™ - Enabling Cloud RAN Virtualization6WINDGate™ - Enabling Cloud RAN Virtualization
6WINDGate™ - Enabling Cloud RAN Virtualization6WIND
 
Understanding network and service virtualization
Understanding network and service virtualizationUnderstanding network and service virtualization
Understanding network and service virtualizationSDN Hub
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvIntel
 

Similar to Using Agilio SmartNICs for OpenStack Networking Acceleration (20)

Stacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStackStacks and Layers: Integrating P4, C, OVS and OpenStack
Stacks and Layers: Integrating P4, C, OVS and OpenStack
 
Support of containerized workloads in ONAP
Support of containerized workloads in ONAPSupport of containerized workloads in ONAP
Support of containerized workloads in ONAP
 
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and moreAdvanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
 
Open vSwitch Implementation Options
Open vSwitch Implementation Options Open vSwitch Implementation Options
Open vSwitch Implementation Options
 
Nvp deep dive_session_cee-day
Nvp deep dive_session_cee-dayNvp deep dive_session_cee-day
Nvp deep dive_session_cee-day
 
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - CaviumSummit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
Summit 16: ARM Mini-Summit - Efficient NFV solutions for Cloud and Edge - Cavium
 
Contrail Enabler for agile cloud services
Contrail Enabler for agile cloud servicesContrail Enabler for agile cloud services
Contrail Enabler for agile cloud services
 
Red Hat demo of OpenStack and ODL at ODL summit 2016
Red Hat demo of OpenStack and ODL at ODL summit 2016 Red Hat demo of OpenStack and ODL at ODL summit 2016
Red Hat demo of OpenStack and ODL at ODL summit 2016
 
Platforms for Accelerating the Software Defined and Virtual Infrastructure
Platforms for Accelerating the Software Defined and Virtual InfrastructurePlatforms for Accelerating the Software Defined and Virtual Infrastructure
Platforms for Accelerating the Software Defined and Virtual Infrastructure
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
 
StarlingX - Driving Compute to the Edge with OpenStack
StarlingX - Driving Compute to the Edge with OpenStackStarlingX - Driving Compute to the Edge with OpenStack
StarlingX - Driving Compute to the Edge with OpenStack
 
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
 
Osdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauserOsdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauser
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
 
 Network Innovations Driving Business Transformation
 Network Innovations Driving Business Transformation Network Innovations Driving Business Transformation
 Network Innovations Driving Business Transformation
 
6WINDGate™ - Enabling Cloud RAN Virtualization
6WINDGate™ - Enabling Cloud RAN Virtualization6WINDGate™ - Enabling Cloud RAN Virtualization
6WINDGate™ - Enabling Cloud RAN Virtualization
 
Understanding network and service virtualization
Understanding network and service virtualizationUnderstanding network and service virtualization
Understanding network and service virtualization
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfv
 

More from Netronome

Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...Netronome
 
LFSMM AF XDP Queue I-DS
LFSMM AF XDP Queue I-DSLFSMM AF XDP Queue I-DS
LFSMM AF XDP Queue I-DSNetronome
 
LFSMM Verifier Optimizations and 1 M Instructions
LFSMM Verifier Optimizations and 1 M InstructionsLFSMM Verifier Optimizations and 1 M Instructions
LFSMM Verifier Optimizations and 1 M InstructionsNetronome
 
Using Network Acceleration for an Optimized Edge Cloud Server Architecture
Using Network Acceleration for an Optimized Edge Cloud Server ArchitectureUsing Network Acceleration for an Optimized Edge Cloud Server Architecture
Using Network Acceleration for an Optimized Edge Cloud Server ArchitectureNetronome
 
Offloading TC Rules on OVS Internal Ports
Offloading TC Rules on OVS Internal Ports Offloading TC Rules on OVS Internal Ports
Offloading TC Rules on OVS Internal Ports Netronome
 
Quality of Service Ingress Rate Limiting and OVS Hardware Offloads
Quality of Service Ingress Rate Limiting and OVS Hardware OffloadsQuality of Service Ingress Rate Limiting and OVS Hardware Offloads
Quality of Service Ingress Rate Limiting and OVS Hardware OffloadsNetronome
 
ODSA Sub-Project Launch
 ODSA Sub-Project Launch ODSA Sub-Project Launch
ODSA Sub-Project LaunchNetronome
 
Flexible and Scalable Domain-Specific Architectures
Flexible and Scalable Domain-Specific ArchitecturesFlexible and Scalable Domain-Specific Architectures
Flexible and Scalable Domain-Specific ArchitecturesNetronome
 
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFUnifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFNetronome
 
Massively Parallel RISC-V Processing with Transactional Memory
Massively Parallel RISC-V Processing with Transactional MemoryMassively Parallel RISC-V Processing with Transactional Memory
Massively Parallel RISC-V Processing with Transactional MemoryNetronome
 
Offloading Linux LAG Devices Via Open vSwitch and TC
Offloading Linux LAG Devices Via Open vSwitch and TCOffloading Linux LAG Devices Via Open vSwitch and TC
Offloading Linux LAG Devices Via Open vSwitch and TCNetronome
 
eBPF Debugging Infrastructure - Current Techniques
eBPF Debugging Infrastructure - Current TechniqueseBPF Debugging Infrastructure - Current Techniques
eBPF Debugging Infrastructure - Current TechniquesNetronome
 
Efficient JIT to 32-bit Arches
Efficient JIT to 32-bit ArchesEfficient JIT to 32-bit Arches
Efficient JIT to 32-bit ArchesNetronome
 
eBPF & Switch Abstractions
eBPF & Switch AbstractionseBPF & Switch Abstractions
eBPF & Switch AbstractionsNetronome
 
eBPF Tooling and Debugging Infrastructure
eBPF Tooling and Debugging InfrastructureeBPF Tooling and Debugging Infrastructure
eBPF Tooling and Debugging InfrastructureNetronome
 
BPF Hardware Offload Deep Dive
BPF Hardware Offload Deep DiveBPF Hardware Offload Deep Dive
BPF Hardware Offload Deep DiveNetronome
 
Demystify eBPF JIT Compiler
Demystify eBPF JIT CompilerDemystify eBPF JIT Compiler
Demystify eBPF JIT CompilerNetronome
 
P4 Introduction
P4 Introduction P4 Introduction
P4 Introduction Netronome
 
Host Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment ModelsHost Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment ModelsNetronome
 

More from Netronome (20)

Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
 
LFSMM AF XDP Queue I-DS
LFSMM AF XDP Queue I-DSLFSMM AF XDP Queue I-DS
LFSMM AF XDP Queue I-DS
 
LFSMM Verifier Optimizations and 1 M Instructions
LFSMM Verifier Optimizations and 1 M InstructionsLFSMM Verifier Optimizations and 1 M Instructions
LFSMM Verifier Optimizations and 1 M Instructions
 
Using Network Acceleration for an Optimized Edge Cloud Server Architecture
Using Network Acceleration for an Optimized Edge Cloud Server ArchitectureUsing Network Acceleration for an Optimized Edge Cloud Server Architecture
Using Network Acceleration for an Optimized Edge Cloud Server Architecture
 
Offloading TC Rules on OVS Internal Ports
Offloading TC Rules on OVS Internal Ports Offloading TC Rules on OVS Internal Ports
Offloading TC Rules on OVS Internal Ports
 
Quality of Service Ingress Rate Limiting and OVS Hardware Offloads
Quality of Service Ingress Rate Limiting and OVS Hardware OffloadsQuality of Service Ingress Rate Limiting and OVS Hardware Offloads
Quality of Service Ingress Rate Limiting and OVS Hardware Offloads
 
ODSA Sub-Project Launch
 ODSA Sub-Project Launch ODSA Sub-Project Launch
ODSA Sub-Project Launch
 
Flexible and Scalable Domain-Specific Architectures
Flexible and Scalable Domain-Specific ArchitecturesFlexible and Scalable Domain-Specific Architectures
Flexible and Scalable Domain-Specific Architectures
 
Unifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPFUnifying Network Filtering Rules for the Linux Kernel with eBPF
Unifying Network Filtering Rules for the Linux Kernel with eBPF
 
Massively Parallel RISC-V Processing with Transactional Memory
Massively Parallel RISC-V Processing with Transactional MemoryMassively Parallel RISC-V Processing with Transactional Memory
Massively Parallel RISC-V Processing with Transactional Memory
 
Offloading Linux LAG Devices Via Open vSwitch and TC
Offloading Linux LAG Devices Via Open vSwitch and TCOffloading Linux LAG Devices Via Open vSwitch and TC
Offloading Linux LAG Devices Via Open vSwitch and TC
 
eBPF Debugging Infrastructure - Current Techniques
eBPF Debugging Infrastructure - Current TechniqueseBPF Debugging Infrastructure - Current Techniques
eBPF Debugging Infrastructure - Current Techniques
 
Efficient JIT to 32-bit Arches
Efficient JIT to 32-bit ArchesEfficient JIT to 32-bit Arches
Efficient JIT to 32-bit Arches
 
eBPF & Switch Abstractions
eBPF & Switch AbstractionseBPF & Switch Abstractions
eBPF & Switch Abstractions
 
eBPF Tooling and Debugging Infrastructure
eBPF Tooling and Debugging InfrastructureeBPF Tooling and Debugging Infrastructure
eBPF Tooling and Debugging Infrastructure
 
BPF Hardware Offload Deep Dive
BPF Hardware Offload Deep DiveBPF Hardware Offload Deep Dive
BPF Hardware Offload Deep Dive
 
Demystify eBPF JIT Compiler
Demystify eBPF JIT CompilerDemystify eBPF JIT Compiler
Demystify eBPF JIT Compiler
 
eBPF/XDP
eBPF/XDP eBPF/XDP
eBPF/XDP
 
P4 Introduction
P4 Introduction P4 Introduction
P4 Introduction
 
Host Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment ModelsHost Data Plane Acceleration: SmartNIC Deployment Models
Host Data Plane Acceleration: SmartNIC Deployment Models
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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...Drew Madelung
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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 AutomationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Using Agilio SmartNICs for OpenStack Networking Acceleration

  • 1. © 2016 NETRONOME Johann Tönsing August 9, 2016 Using Agilio™ SmartNICs for
 OpenStack Networking Acceleration
  • 2. © 2016 NETRONOME 2 Agenda • Overview of Traditional OpenStack Networking Options
 OVS (with/without connection tracking), Contrail vRouter, SR-IOV, VirtIO… • Issues: Flexibility, Performance, CPU Utilization • Accelerating and Offloading OpenStack Networking using Agilio™ SmartNICs • Results: Features, Throughput, CPU Utilization • Implementation Details: Hardware and Software Architectures • Evolution of OpenStack Networking • Supporting P4, C and eBPF Programmability • Integration Activities • Conclusions
  • 3. © 2016 NETRONOME Traditional OpenStack Networking Options 3 Forwarding / Virtual Switching Technology OpenStack 
 Control Plane Forwarding Overlays (Tunnels) Security Groups (Microsegmentation, Stateful Firewalling) SR-IOV with regular NIC Vendor specific plugin Limited
 
 E.g. MAC/VLAN
 based directing None None
  • 4. © 2016 NETRONOME Traditional OpenStack Networking Options 3 Forwarding / Virtual Switching Technology OpenStack 
 Control Plane Forwarding Overlays (Tunnels) Security Groups (Microsegmentation, Stateful Firewalling) SR-IOV with regular NIC Vendor specific plugin Limited
 
 E.g. MAC/VLAN
 based directing None None OVS ML2 plugin 
 (optional: SDN controller) 
 OVN plugin L2 / L3 VXLAN, GRE, 
 (for OVN) GENEVE
 …
 
 Emerging: 
 NSH (for NFV) OVS 2.5+ can interface to Linux conntrack
 
 (Previously Linux bridge with iptables/nftables)
  • 5. © 2016 NETRONOME Traditional OpenStack Networking Options 3 Forwarding / Virtual Switching Technology OpenStack 
 Control Plane Forwarding Overlays (Tunnels) Security Groups (Microsegmentation, Stateful Firewalling) SR-IOV with regular NIC Vendor specific plugin Limited
 
 E.g. MAC/VLAN
 based directing None None OVS ML2 plugin 
 (optional: SDN controller) 
 OVN plugin L2 / L3 VXLAN, GRE, 
 (for OVN) GENEVE
 …
 
 Emerging: 
 NSH (for NFV) OVS 2.5+ can interface to Linux conntrack
 
 (Previously Linux bridge with iptables/nftables) Contrail vRouter Contrail plugin (via Contrail controller) L2 / L3 MPLS in UDP, 
 MPLS in GRE,
 VXLAN
 … Built in, via flow table
  • 6. © 2016 NETRONOME Traditional OpenStack Networking Options 3 Forwarding / Virtual Switching Technology OpenStack 
 Control Plane Forwarding Overlays (Tunnels) Security Groups (Microsegmentation, Stateful Firewalling) SR-IOV with regular NIC Vendor specific plugin Limited
 
 E.g. MAC/VLAN
 based directing None None OVS ML2 plugin 
 (optional: SDN controller) 
 OVN plugin L2 / L3 VXLAN, GRE, 
 (for OVN) GENEVE
 …
 
 Emerging: 
 NSH (for NFV) OVS 2.5+ can interface to Linux conntrack
 
 (Previously Linux bridge with iptables/nftables) Contrail vRouter Contrail plugin (via Contrail controller) L2 / L3 MPLS in UDP, 
 MPLS in GRE,
 VXLAN
 … Built in, via flow table Additional features: load balancing, NAT etc.
  • 7. © 2016 NETRONOME OpenStack Networking Options Evaluated 4 Forwarding / Virtual Switching Technology Traditional Approach Agilio™ SmartNIC Accelerated Approach SR-IOV Limited expressiveness to direct traffic to VMs (no support for general match/action rules, tunnel termination, stateful firewalling) 
 High throughput
 
 No VM migration support Full OVS or vRouter virtual switching incl. tunnel termination, stateless/stateful firewalling

 and SR-IOV based data delivery to VMs 
 
 High throughput
 
 VirtIO integration, supporting VM migration OVS
 
 and
 
 Contrail vRouter High expressiveness - match/action, tunnels, stateless/stateful firewalling etc. 
 Limited throughput 
 High CPU utilization (e.g. 50% of cores) Same expressiveness - match/action, tunnels, stateless/stateful firewalling etc.
 Higher throughput (~5x higher) 
 Lower CPU utilization (~10x lower)
  • 8. © 2016 NETRONOME 5 Agilio™ CX SmartNIC Family • Optimized for standard server based cloud data centers • Low Profile Half Length PCIe form factor, power < 25W • Based on Netronome’s NFP-4xxx silicon (72 C programmable cores, 8 threads each) • 2GB DRAM for lookup tables / state tables (millions of entries) • Dataplane fully implemented in software 1x 40GbE 2x 40GbE2x 10GbE New: 2x 25GbE Also available: Agilio™ LX 2x40G / 1x100G with dual PCIe interfaces, 120 cores, 8GB DRAM…
  • 9. © 2016 NETRONOME 6 OVS Throughput vs. Packet Size OVS L2 Forward to VMs Packet Size MillionsofPacketsperSecond OVS VXLAN + L2 Forward to VMs Packet Size MillionsofPacketsperSecond
  • 10. © 2016 NETRONOME 7 OVS Throughput vs. Number of Rules 5 10 15 20 25 30 OVS in Kernel Space OVS in User Space on DPDK 100 Wildcard Rules 1000 Wildcard Rules 10000 Wildcard Rules 64000 Wildcard Rules MillionsofPacketsperSecond 12 CPU Cores 12 CPU Cores OVS Offloaded to Agilio™ CX-4000 1 CPU Core 5X Throughput Improvement + 90% CPU Savings OVS L2/L3 Forwarding to 8 VMs with 64K Flows
  • 11. © 2016 NETRONOME 8 Tested Scenario: Server CPU Core Allocation Unaccelerated OVS (Kernel / User Mode) Agilio™ OVS OVS
  • 12. © 2016 NETRONOME 9 Efficiency: Throughput Per Server CPU Core Throughput with single server CPU core
 dedicated to network related processing MillionsofPacketsperSecond • 50x Efficiency vs. Kernel OVS • 20x Efficiency vs. User Mode (DPDK) OVS
 
 => Replace 3-6 racks with 1 rack! Throughput / efficiency similar for Agilio™ Contrail vRouter Benefit for your use case: 
 search for
 “netronome.com roi calculator”
  • 13. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API (Nova, Neutron) Execute Action OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act
  • 14. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act
  • 15. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss
  • 16. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 17. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 18. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) 3 Offload datapath: copy match tables, sync stats 3 OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 19. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) 3 Offload datapath: copy match tables, sync stats 3 4 Flow tracking: per-microflow state learning 4 Self Learning Exact Match
 Flow Tracker Miss Hit OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 20. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) 3 Offload datapath: copy match tables, sync stats 3 Conn track FTP SIP 4 Flow tracking: per-microflow state learning 4 Self Learning Exact Match
 Flow Tracker Miss Hit OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 21. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) Conn track 3 Offload datapath: copy match tables, sync stats 3 Conn track FTP SIP 4 Flow tracking: per-microflow state learning 4 Self Learning Exact Match
 Flow Tracker Miss Hit OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 22. © 2016 NETRONOME Offload Model: Agilio™ OVS Acceleration 10 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) Conn track 3 Offload datapath: copy match tables, sync stats 3 5 Offload connection tracking: synchronize state 5 Conn track FTP SIP 4 Flow tracking: per-microflow state learning 4 Self Learning Exact Match
 Flow Tracker Miss Hit OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 23. © 2016 NETRONOME Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP (Nova, Neutron) Execute Action vRouter Flow Classify vRouter Forwarding vRouter Forwarding
  • 24. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP (Nova, Neutron) Execute Action vRouter Flow Classify vRouter Forwarding vRouter Forwarding
  • 25. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP (Nova, Neutron) Execute Action vRouter Flow Classify vRouter Forwarding vRouter Forwarding 2 2 Offload forwarding: pre-emptively copied
  • 26. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP (Nova, Neutron) Execute Action vRouter Flow Classify Miss vRouter Forwarding vRouter Forwarding 2 2 Offload forwarding: pre-emptively copied
  • 27. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP (Nova, Neutron) Execute Action vRouter Flow Classify Miss Miss vRouter Forwarding vRouter Forwarding 2 2 Offload forwarding: pre-emptively copied
  • 28. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP 3 3 Userspace agent populates kernel tables (Nova, Neutron) Execute Action vRouter Flow Classify Miss Miss vRouter Forwarding vRouter Forwarding 2 2 Offload forwarding: pre-emptively copied
  • 29. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP 3 3 Userspace agent populates kernel tables (Nova, Neutron) Execute Action 4 Offload flows: copy tables, sync stats 4 vRouter Flow Classify Miss Miss vRouter Forwarding vRouter Forwarding 2 2 Offload forwarding: pre-emptively copied
  • 30. © 2016 NETRONOME vRouter Datapath vRouter Flow Classify Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) vRouter Forwarding vRouter Forwarding Agilio™ vRouter Acceleration 11 vRouter Subsystem vRouter Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK vRouter CLI 1 Configuration via controller or CLI: BGP over XMPP 3 3 Userspace agent populates kernel tables (Nova, Neutron) Execute Action 4 Offload flows: copy tables, sync stats 4 vRouter Flow Classify Miss Miss vRouter Forwarding vRouter Forwarding Notes: - Control protocol: BGP over XMPP - Tunnel protocols: VXLAN, MPLS over UDP / GRE - Distinct policy (flows - ACLs) and forwarding (IP/MPLS) - Flow table is used to implement stateful firewalling 2 2 Offload forwarding: pre-emptively copied
  • 31. © 2016 NETRONOME SmartNIC Firmware: Pre-programmed or Custom • SmartNIC with dynamically downloadable firmware
  • 32. © 2016 NETRONOME SmartNIC Firmware: Pre-programmed or Custom • SmartNIC with dynamically downloadable firmware Contrail OVS OpenStack ONOS ODL Linux BSD • OVS / Contrail / Linux eBPF datapath on host can be accelerated by SmartNIC D P D K eBPF
  • 33. © 2016 NETRONOME SmartNIC Firmware: Pre-programmed or Custom Compiler Debugger Run-Time app.P4 app.C Editor • Firmware can be developed in P4 and/or C • TBD how to integrate custom programmed datapaths (implemented in P4 / C etc.) into OpenStack • SmartNIC with dynamically downloadable firmware Contrail OVS OpenStack ONOS ODL Linux BSD • OVS / Contrail / Linux eBPF datapath on host can be accelerated by SmartNIC D P D K eBPF
  • 34. © 2016 NETRONOME 13 SmartNIC Datapath “Worker” Software Architecture • Load balancer distributes each packet to next available thread for optimum throughput • Hardware assisted reordering ensures packet order is maintained • Flow tracker statefully learns / tracks millions of sessions • Matching performed using DRAM-backed tables - capacity > 500k entries • Actions efficiently performed in on-chip memory Parse Match Act Flow Tracker Learn microflows Cache action Datapath Run to completion Load
 Balance C Plugin Re-
 order Pool of worker threads on flow processing cores net or PCIE net or PCIE = Ring / Work Queue (multi producer / consumer)
  • 35. © 2016 NETRONOME 14 Example: P4 “main” implementing a simple NIC header_type eth_hdr { fields { dst : 48; src : 48; etype : 16; } } header eth_hdr eth; parser start { return eth_parse; } parser eth_parse { extract(eth); return ingress; } action drop_act() { drop(); } action fwd_act(port) { modify_field(standard_metadata.egress_spec, port); } table in_tbl { reads { standard_metadata.ingress_port : exact; } actions { fwd_act; drop_act; } } control ingress { apply(in_tbl); }
  • 36. © 2016 NETRONOME SmartNIC Firmware (P4/C) Example of Fully Customized Datapath (P4 / C) 15 Run-Time Interface Server (x86 - Linux) PCIe Agilio™ SmartNIC Virtual Machine 1 VNF Kernel Mode (C) netdev P4 / C Development Environment Edit - Debug Control App Populate tables, display statistics Security µVNF (C) Timestamp µVNF (C) Latency Stats µVNF (C) Virtual Machine 2 VNF User Mode
 (C) DPDK Timestamp µVNF (C) Latency Stats µVNF (C) Match Protocol Meter Other TCP Concepts: • P4 and C running on SmartNIC 
 implements datapath - e.g.
 defines protocols, match / action
 behavior • Datapath steers traffic to VNFs
 running on x86 server and 
 on SmartNIC
  • 37. © 2016 NETRONOME SmartNIC Firmware (P4/C) Example of Fully Customized Datapath (P4 / C) 15 Run-Time Interface Server (x86 - Linux) PCIe Agilio™ SmartNIC Virtual Machine 1 VNF Kernel Mode (C) netdev P4 / C Development Environment Edit - Debug Control App Populate tables, display statistics Security µVNF (C) Timestamp µVNF (C) Latency Stats µVNF (C) Virtual Machine 2 VNF User Mode
 (C) DPDK Timestamp µVNF (C) Latency Stats µVNF (C) Match Protocol Meter Other TCP Concepts: • P4 and C running on SmartNIC 
 implements datapath - e.g.
 defines protocols, match / action
 behavior • Datapath steers traffic to VNFs
 running on x86 server and 
 on SmartNIC To Discuss: 
 OpenStack
 Integration
  • 38. © 2016 NETRONOME Extending OpenStack Networking - P4/C Plugins 16 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) 3 Offload datapath: copy match tables, sync stats 3 OVS
 Kernel DP Match/Act OVS
 Kernel DP Match/Act Miss Miss
  • 39. © 2016 NETRONOME Extending OpenStack Networking - P4/C Plugins 16 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API 1 Configuration via controller, CLI, or Callable API 2 2 OVS userspace agent populates kernel cache (Nova, Neutron) Execute Action Open vSwitch Datapath Execute Action (e.g. Entunnel, Deliver to VM, Send to Port) 3 Offload datapath: copy match tables, sync stats 3 OVS
 Kernel DP Match/Act Datapath Extension or Plugin P4 / C in Sandbox DP Ext. 4 Datapath extension software 4 4 OVS
 Kernel DP Match/Act Miss Miss
  • 40. © 2016 NETRONOME OVS “on” SmartNIC P4 Datapath 17 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) Execute Action OVS
 Kernel DP Match/Act P4 Matching
  • 41. © 2016 NETRONOME OVS “on” SmartNIC P4 Datapath 17 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) Execute Action P4 Generated Datapath Execute P4 Action OVS
 Kernel DP Match/Act P4 Matching
  • 42. © 2016 NETRONOME OVS “on” SmartNIC P4 Datapath 17 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) Execute Action P4 Generated Datapath Execute P4 Action OVS
 Kernel DP Match/Act P4 Matching Fallback
  • 43. © 2016 NETRONOME OVS “on” SmartNIC P4 Datapath 17 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) Execute Action P4 Generated Datapath Execute P4 Action OVS
 Kernel DP Match/Act P4 Matching Fallback Fallback
  • 44. © 2016 NETRONOME P4 “into” OVS Datapath 18 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) Execute P4 / OVS Action P4 / OVS Matching P4 / OVS Matching
  • 45. © 2016 NETRONOME P4 “into” OVS Datapath 18 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) P4 Generated Datapath Execute P4 / OVS Action Execute P4 / OVS Action P4 / OVS Matching P4 / OVS Matching
  • 46. © 2016 NETRONOME P4 “into” OVS Datapath 18 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) P4 Generated Datapath Execute P4 / OVS Action Execute P4 / OVS Action P4 / OVS Matching P4 / OVS Matching Fallback
  • 47. © 2016 NETRONOME P4 “into” OVS Datapath 18 Open vSwitch Subsystem OVS Agent OpenFlow Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK OVS CLI Callable API (Nova, Neutron) P4 Generated Datapath Execute P4 / OVS Action Execute P4 / OVS Action P4 / OVS Matching P4 / OVS Matching Fallback Fallback
  • 48. © 2016 NETRONOME P4 “instead of” OVS (Datapath and Control) 19 Open vSwitch Subsystem P4 Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK (Nova, Neutron) P4 Generated Datapath Execute P4 Action Execute Action P4 or eBPF or XDP P4 Matching Fallback Fallback 1 Protocol(s) to be discussed (could become callable API)
  • 49. © 2016 NETRONOME P4 “instead of” OVS (Datapath and Control) 19 Open vSwitch Subsystem P4 Agent Virtual Machine Virtual Machine Virtual Machine x86 Kernel x86 Userspace PCIe Virtual Machine SR-IOV / VirtIO VFs SR-IOV / VirtIO VFs Agilio™
 SmartNIC Apps Apps 1 netdev or DPDK netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK Apps netdev or DPDK (Nova, Neutron) P4 Generated Datapath Execute P4 Action Execute Action P4 or eBPF or XDP P4 Matching Fallback Fallback 1 Protocol(s) to be discussed (could become callable API) Other open issues: - Downloading programs via
 OpenStack or other systems
 - Scheduling VMs to run on
 nodes with acceleration hardware
 (Nova)
 
 Acceleration discussion started at OpenStack Spring 2016 (Austin)

  • 50. © 2016 NETRONOME 20 Integration / Open Sourcing Activities Area Activities Linux drivers VF netdev (kernel device driver) upstreamed in kernel 4.5 Patches available for older kernels, or use VirtIO Representative netdev (for fallback processing of traffic) proposals imminent FreeBSD drivers Kernel device driver implemented DPDK drivers Poll mode driver upstreamed in DPDK 2.2 Patches available for older DPDK versions Open vSwitch acceleration
 integration Hooks for acceleration proposed in October 2014 Iteration in progress OpenStack integration Proposing plugins and agents to support virtual switching acceleration via RFE process Integration for OVS in process - Mirantis, Ericsson CEE etc. Integration for Contrail vRouter in process - Juniper etc.
  • 51. © 2016 NETRONOME 20 Integration / Open Sourcing Activities Area Activities Linux drivers VF netdev (kernel device driver) upstreamed in kernel 4.5 Patches available for older kernels, or use VirtIO Representative netdev (for fallback processing of traffic) proposals imminent FreeBSD drivers Kernel device driver implemented DPDK drivers Poll mode driver upstreamed in DPDK 2.2 Patches available for older DPDK versions Open vSwitch acceleration
 integration Hooks for acceleration proposed in October 2014 Iteration in progress OpenStack integration Proposing plugins and agents to support virtual switching acceleration via RFE process Integration for OVS in process - Mirantis, Ericsson CEE etc. Integration for Contrail vRouter in process - Juniper etc. Also: P4 and protocol independent forwarding, switchdev, eBPF / XDP…
  • 52. © 2016 NETRONOME 21 Next Steps • Use Agilio™ SmartNICs with existing dataplanes • Use Agilio™ OVS (with / without Conntrack) • Use Agilio™ vRouter • Future: Agilio™ eBPF/XDP, etc.
 • Program Agilio™ SmartNICs • Use APIs (on x86 servers) - with above dataplanes • Program in P4 and/or C (on SmartNIC / on x86)
 • Improve performance + free up server resources!
  • 53. © 2016 NETRONOME More information: netronome.com and open-nfp.org Thank You! 22