SlideShare ist ein Scribd-Unternehmen logo
1 von 35
©2015 Check Point Software Technologies Ltd. 1©2015 Check Point Software Technologies Ltd.
Overview
Kirill Tsym,
Next Generation Enforcement team
FD.IO
VECTOR PACKET
PROCESSING
©2015 Check Point Software Technologies Ltd. 2
CHECK POINT SOFTWARE TECHNOLOGIES
The largest pure-play security vendor in
the world
Protecting more than
100,000 companies
with millions of users
worldwide
$1.63B annual revenues
in 2015
Over 4,300 employees
Partners in over 95
countries
©2015 Check Point Software Technologies Ltd. 3
Lecture agenda
 Linux networking stack vs user space networking initiatives
– Why User Space networking? Why so many projects around it?
 Introduction to FD.io and VPP
– Architecture, Vectors, Graph, etc.
 VPP Data path
– Typical graphs
– Example of supported topologies
 VPP Threads and scheduling
 Single and Multicore support
 Supported topologies
©2015 Check Point Software Technologies Ltd.
LINUX KERNEL
STACK
01
©2015 Check Point Software Technologies Ltd. 5
Applications
Linux kernel data path
User Space
Kernel Space
NIC1 NIC2
TCP/IP Stack
Forwarding
To Application
HW
Rx Tx
 Design goals or why stack is in the kernel?
– Linux is designed as an Internet Host
(RFC1122) or an “End-System” OS
– Need to service multiple applications
– Separate user applications from
sensitive kernel code
– Make application as simple as possible
– Receive direct access to HW drivers
 Cost
– Not optimized for Forwarding
– Every change requires new kernel
version
– Code is too generic
– Networking stack today is a huge part
of the kernel
Pass-through
Application Path
ApplicationsApplication
 Reference: Kernel Data Path
L1
L2
L3
L4
L7
Drivers
Sockets L5
©2015 Check Point Software Technologies Ltd. 6
Linux stack whole picture
 Reference: Network_data_flow_through_kernel
©2015 Check Point Software Technologies Ltd. 7
Linux stack packet processing
 Packets are processed in Kernel one by one
– A lot of code involved in each packet processing
– Processing path is monolithic, it’s impossible to change it or load new
stack modules
– Impossible to achieve Instruction Cache optimization in this model
– There are technics to hijack kernel routines or defines hooks, but no
simple and standard way to replace tcp_input() for example
 skb processing is not cache optimized
– sk_buff struct includes too much information
– It could be ideal to load all needed sk_buff ‘s to cache before processing
– But skb doesn’t fit to cache line nor placed in chain
– As result there is no Data Cache optimization and usually a lot of cache
misses
 Every change requires new kernel version
– Upstream a new protocol takes very long time
– Standardization goes much faster than implementation
©2015 Check Point Software Technologies Ltd.
USER SPACE
NETWORKING
PROJECTS
01
©2015 Check Point Software Technologies Ltd. 9
Application
netmap API
Netmap
User Space
Kernel Space
NIC
HW
Linux
Networking Stack
netmap
rings
NIC
rings
 Pros
– BSD, Linux and Windows
ports
– Good scalability
– Data path is detached from
host stack
– Widely adopted
 Cons
– No networking stack
– Routing done in host stack
which slows down initial
processing
 Performance
Packet forwarding Mpps
Freebsd bridging 0.690
Netmap + libpcap 7.5
Netmap 14.88 Reference: netmap - the fast packet I/O framework
©2015 Check Point Software Technologies Ltd. 10
DPDK /
Forwarding engine
DPDK
User Space
Kernel Space
NIC1
Linux
Networking Stack
Slow Path
Fast Path
4
HW
Kernel Networking Interface
3
5
8
NIC2
 Pros
– Kernel independent
– All packet processing done in
user space
– DPDK Fast Path is cache
and minimum instructions
optimized
 Cons
– No networking stack
– No routing stack
– Need to send packets to
Kernel for routing decisions
– Doesn’t perform well on
scaling tests
– No external API
– No integration with
management
– Out of tree drivers
Fast Path
Slow Path
Routing
Decision
Drivers
7
1
2
6
©2015 Check Point Software Technologies Ltd. 11
OpenFastPath
 BSD Networking Stack on top of DPDK and ODP
 OpenDataPlane (ODP) is a cross-platform data plane SoC networking open source API
 Supported by Nokia, ARM, Cavium and ENEA
 Includes optimized IP, UDP and TCP stacks
 Routes and MACs are in sync with Linux through Netlink
©2015 Check Point Software Technologies Ltd. 12
Other projects
 OpenSwitch
̶ OS with Main component: DPDK based Open vSwitch
̶ Various management and CLI daemons
̶ Routing decision made by Linux Kernel (Ouch!)
̶ REST API
̶ Good for inter-VM communications
 OpenOnload
̶ A user-level network stack from Sloarflare
̶ Depends on Solarflare NICs (Ouch!)
• IO Visor
̶ XDP or eXpress Data Path
̶ Not a user space networking!
̶ Tries to bring performance in to
existing kernel with BPF
̶ No need for 3rd party code
̶ Allows option of busy polling
̶ No need to allocate large pages
̶ No need for dedicated CPUs
©2015 Check Point Software Technologies Ltd.
FD.IO
01
©2015 Check Point Software Technologies Ltd. 14
FD.io Project overview
• FD.io is Linux Foundation project
̶ A collection of several projects based on Data Plane Development Kit (DPDK)
̶ Distributed under Apache license
̶ A key project the Vector Packet Processing (VPP) is donated by Cisco
̶ Proprietary version of VPP is running in Cisco CRS1 router
̶ There is no tool chain, OS, etc in Open sourced VPP version
̶ VPP is about 300K lines of code
̶ Major contributor: Cisco Chief Technology and Architecture office team
• Three Main components
̶ Management Agent
̶ Packet Processing
̶ IO
• VPP Roadmap
̶ First release 16 of June includes14MPPS single core L3 performance
̶ 16.09 release includes integration with containers and orchestration
̶ 17.01 release will include dpdk-16.11, dpdk CryptoDev, enhanced NAT, etc.
©2015 Check Point Software Technologies Ltd. 15
VPP ideas
• CPU cycles budget
̶ 14 Mpps on 3.5 Ghz CPU = 250 cycles per packet budget
̶ Memory access 67ns and it’s the cost of fetching one cache line (64
bytes) OR 134 CPU cycles
• Solution
̶ Perform all the processing with minimum of code
̶ Process more than one packet at a time
̶ Grab all available packets from Rx ring on every cycle
̶ Perform each atomic task in a dedicated Node
• VPP Optimization Techniques
̶ Branch Prediction hints
̶ Use of vector instructions SSE, AVX
̶ Prefetching – do not pre-fetch to much to left the cache warm
̶ Speculations – around the packet destination instead of a full lookup
̶ Dual Loops
Cache miss is
unacceptable
©2015 Check Point Software Technologies Ltd. 16
VPP architecture
NIC1 NIC2
User Space
Kernel Space
DPDK
VPP IP Stack
PluginsPluginVPP Plugins
VPP
 Pros
– Kernel independent
– All packet processing done in user space
– DPDK based (or netmap, virtio, host,
etc.)
– Includes full scale L2/L3 Networking
stack
– Routing decision made by VPP
– Also includes bridge implementation
– Good plugins framework
– Integrated with external management:
Honeycomb
 Cons
– Young project
– First stable release ~06/16
– Many open areas
– Open Stack integration / Neutron
– Lack of Transport Layer integration
– Control Plane API & Stack
 But what about L4/L7?
– TLDK Project
HW
Fast Path
VPP I/O Tasks I/O Polling logic + L2
L3 tasks
User Defined tasks
©2015 Check Point Software Technologies Ltd. 17
Performance
̶ VPP data plane throughput not impacted by large IPv4 FIB size
̶ OVSDPDK data plane throughput heavily impacted by IPv4 FIB size
̶ VPP and OVSDPDK tested on Haswell x86 platform
with E5-2698v3 2x16C 2.3GHz (Ubuntu 14.04 trusty)
fd.io Foundation
 Reference: FD.io intro
©2015 Check Point Software Technologies Ltd. 18
TLDK
VPP TLDK Application layer (project)
NIC1
User Space
Kernel Space
HW
Fast Path
Purpose build
TLDK
Application
Socket
Application
BSD Socket Layer
LD_PRELOAD
SocketLayer
NativeLinux
Application
DPDK
NIC2
VPP
 TLDK Application Layer
– Using TLDK Library to process
TCP and UDP packets
 Purpose Built Application
– Using TLDK API Directly
(VPP node)
– Provides highest performance
 BSD Socket Layer
– A standard BSD socket layer for
applications using sockets by design
– Lower performance, but good
compatibility
 LD_PRELOAD Socket Layer
– Used to allow a ‘native binary Linux’
application to be ported in to the
system
– Allows for existing application to work
without any change
©2015 Check Point Software Technologies Ltd. 19
VPP Nodes and Graph
Node 1
Node 2
Node 3
Node 4
Node 5
Node 6
Processing is
divided per Node
Node works on
Vector of Packets
Nodes are
connected to graph
Graph could be
changed dynamically
vector of packets
©2015 Check Point Software Technologies Ltd.
DATA PATH
©2015 Check Point Software Technologies Ltd. 21
• Full zero copy
• Data always resides in
Huge Pages memory
• Vector is passed from
graph node to node
during processing
ethernet-
input
Data path - ping
dpdk-input
ipv4-input ipv4-local ipv4-icmp-
input
ipv4-icmp-
echo-
request
ipv4-
rewrite-
local
Gigabit
Ethernet-
Output
Gigabit
Ethernet-
Txt
DPDK
Core 0
vector of packet pointers
Huge
Pages
Memory
packets data
Packets placed
to Huge Pages
by NIC
VPP Vector created during
input device work
Node
©2015 Check Point Software Technologies Ltd. 22
ethernet-
input
Vector processing – split example
input-
device
ipv4-input
Gigabit
Ethernet-
Output
Gigabit
Ethernet-
Txt
input vector
ipv6-input
output vector A
output vector B
Transmit
queue:
packets are
reordered
Next node is called
twice by threads
scheduler
DPDK
©2015 Check Point Software Technologies Ltd. 23
ethernet-
input
Vector processing – cloning example
dpdk-input
ipv4-input
Gigabit
Ethernet-
Output
Gigabit
Ethernet-
Txt
input vector
Transmit
queue
ipv4-frag output vector * 2 packets
input vector
Max vector size is 256
If output vector is full
Then two vectors will be
created
DPDK
©2015 Check Point Software Technologies Ltd. 24
Rx features example : IPsec flow
dpdk-input
ipsec-if-
output
Gigabit
Ethernet-
Output
Gigabit
Ethernet-
Txt
DPDK
ethernet-
input
ipv4-input esp-
encrypt
ipv4-
rewrite-
local
esp-
decrypt
ipsec-if-
input
ipv4-local
ipsec-if node been dynamically
registered to receive
IPsec traffic using
Rx Features during interface UP
Done through rewrite
adjutancy
©2015 Check Point Software Technologies Ltd.
THREADS AND
SCHEDULING
©2015 Check Point Software Technologies Ltd. 26
Threads scheduling
[Restricted] ONLY for designated groups and individuals​
One VPP scheduling cycle
PRE-INPUT
Purpose:
Linux input and
system control
Example:
unix_epoll_input
dhcp-client
management
stack interface
INPUT
Purpose:
Packets input
Example:
dpdk_io_input
dpdk_input
tuntap_rx
INTERRUPTS
Purpose:
Run Suspended
processes
Example:
expired timers
PENDING
NODES
DISPATCH
Purpose:
Processing all
vectors that needs
additional
processing after
changes
Example:
Worker thread
main
INTERNAL
NODES
DISPATCH
Purpose:
Processing all
pending vectors
on VPP graph
Example:
Worker thread
main
Main work: L2/L3 stack
processing and Tx
©2015 Check Point Software Technologies Ltd. 27
Threads zoom-in
[Restricted] ONLY for designated groups and individuals​
vpp# show run
Time 9.5, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00
vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0
Name State Calls Vectors Suspends Clocks Vectors/Call
admin-up-down-process event wait 0 0 1 6.52e3 0.00
api-rx-from-ring active 0 0 6 1.04e5 0.00
cdp-process any wait 0 0 1 1.10e5 0.00
cnat-db-scanner any wait 0 0 1 5.34e3 0.00
dhcp-client-process any wait 0 0 1 6.58e3 0.00
dpdk-process any wait 0 0 3 2.73e6 0.00
flow-report-process any wait 0 0 1 6.19e3 0.00
gmon-process time wait 0 0 2 5.36e8 0.00
ip6-icmp-neighbor-discovery-ev any wait 0 0 10 1.81e4 0.00
startup-config-process done 1 0 1 2.64e5 0.00
unix-cli-stdin event wait 0 0 1 3.05e9 0.00
unix-epoll-input polling 24811921 0 0 9.48e2 0.00
vhost-user-process any wait 0 0 1 3.24e4 0.00
vpe-link-state-process event wait 0 0 1 7.10e3 0.00
vpe-oam-process any wait 0 0 5 1.37e4 0.00
vpe-route-resolver-process any wait 0 0 1 9.52e3 0.00
vpp# exit
# ps -elf | grep vpp
4 R root 20566 1 92 80 0 - 535432 - 16:10 ? 00:00:27 vpp -c /etc/vpp/startup.conf
0 S root 20582 1960 0 80 0 - 4293 pipe_w 16:10 pts/34 00:00:00 grep --color=auto vpp
#
©2015 Check Point Software Technologies Ltd.
SINGLE AND
MULTCORE MODES
[Restricted] ONLY for designated groups and individuals​
©2015 Check Point Software Technologies Ltd. 29
Core 0 Core 1 Core 2
Rx Tx Rx Tx
VPP Threading modes
[Restricted] ONLY for designated groups and individuals​
• Single-threaded
̶ Both control and forwarding engine run on single thread
• Multi-thread with workers only
̶ Control running on Main thread (API, CLI)
̶ Forwarding performed by one or more worker threads
• Multi-thread with IO and Workers
̶ Control on main thread (API,CLI)
̶ IO thread handling input and dispatching to worker threads
̶ Worker threads doing actual work including interface TX
̶ RSS is in use
• Multi-thread with Main and IO
on a single thread
̶ Workers separated by core
- Control - IO - Worker
Core 0 Core 1 Core 2
Rx Tx Tx
Core 0
Rx Tx
Core 0 Core 1 Core 2
Rx Tx
Core 3
Rx
…..
©2015 Check Point Software Technologies Ltd.
SUPPORTED
TOPOLOGIES
[Restricted] ONLY for designated groups and individuals​
©2015 Check Point Software Technologies Ltd. 31
Router and Switch for namespaces
Reference
©2015 Check Point Software Technologies Ltd.
QUESTIONS?
©2015 Check Point Software Technologies Ltd. 33
VPP Capabilities
• Why VPP?
̶ Linux Kernel is good, but going too slow because of backward compatibility
̶ Standardization today moving faster than implementations
̶ Main reason for VPP speed – optimal usage of ICACHE
̶ Do not trash the cache with packet per packet processing like in the standard IP
stack
̶ Separation of Data Plane and Control Plane. VPP is pure Data Plane
• Main ideas
̶ Separation of Data Plane and Control Plane
̶ API generation. Available binding for Java, C and Python
̶ OpenStack integration
̶ Neutron ML2 driver
̶ OPENFV / ODL-GBP / ODL-SFC (Service chaining like firewalls, NAT, QoS)
• Containers
̶ Could be in the host connecting between containers
̶ Could be VPP inside of containers and talking between them
©2015 Check Point Software Technologies Ltd. 34
Connection between various layers
dpdk-input
plugin
ethernet-input
ip-input
udp-local
ip4_register_protocol()  UDP
ethernet_register_input_type()  IPv4
vnet_hw_interface_rx_redirect_to_node()
Defined in plugin code
Next node is hardcoded in
dpdk-input/handoff-dispatch
Callback
Data
©2015 Check Point Software Technologies Ltd. 35
Output attachment point
ipv4-input ipv4-
lookup
VPP Adjacency: mechanism to add and
rewrite next node dynamically after routing
lookup.
Available nodes:
- miss
- drop
- punt
- local
- rewrite
- classify
- map
- map_t
- sixrd
- hop_by_hop
*Possible place for POSTROUTING
HOOK
ipv4-
rewrite-
transit
VPP Rx features: mechanism
to add and rewrite next node
dynamically after ipv4-input.
Available nodes:
- input acl  *Prerouting
- source check rx
- source check any
- ipsec
- vpath
- lookup
*Currently impossible to do
it from plugins
L3 Nodes Various L4 Nodes Various Post Routing Nodes

Weitere ähnliche Inhalte

Was ist angesagt?

DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingMichelle Holley
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux KernelKernel TLV
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたakira6592
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on LinuxEtsuji Nakai
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 finalKwonSun Bae
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingMichelle Holley
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングTomoya Hibi
 
Openstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsOpenstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsThomas Morin
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
Segment Routing: Prepare Your Network For New Business Models
Segment Routing:  Prepare Your Network For New Business ModelsSegment Routing:  Prepare Your Network For New Business Models
Segment Routing: Prepare Your Network For New Business ModelsCisco Service Provider
 
Pushing Packets - How do the ML2 Mechanism Drivers Stack Up
Pushing Packets - How do the ML2 Mechanism Drivers Stack UpPushing Packets - How do the ML2 Mechanism Drivers Stack Up
Pushing Packets - How do the ML2 Mechanism Drivers Stack UpJames Denton
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machineAlexei Starovoitov
 

Was ist angesagt? (20)

Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet Processing
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux Kernel
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 final
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet Processing
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
Openstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsOpenstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNs
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Segment Routing: Prepare Your Network For New Business Models
Segment Routing:  Prepare Your Network For New Business ModelsSegment Routing:  Prepare Your Network For New Business Models
Segment Routing: Prepare Your Network For New Business Models
 
Pushing Packets - How do the ML2 Mechanism Drivers Stack Up
Pushing Packets - How do the ML2 Mechanism Drivers Stack UpPushing Packets - How do the ML2 Mechanism Drivers Stack Up
Pushing Packets - How do the ML2 Mechanism Drivers Stack Up
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
 

Andere mochten auch

Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival GuideKernel TLV
 
Windows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel DevelopersWindows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel DevelopersKernel TLV
 
Specializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackSpecializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackKernel TLV
 
Linux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesLinux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesKernel TLV
 
Userfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy MigrationUserfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy MigrationKernel TLV
 
WiFi and the Beast
WiFi and the BeastWiFi and the Beast
WiFi and the BeastKernel TLV
 
Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelKernel TLV
 
Switchdev - No More SDK
Switchdev - No More SDKSwitchdev - No More SDK
Switchdev - No More SDKKernel TLV
 
Linux Security Overview
Linux Security OverviewLinux Security Overview
Linux Security OverviewKernel TLV
 
TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 Benoit Hudzia
 
Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing LandscapeKernel TLV
 
grsecurity and PaX
grsecurity and PaXgrsecurity and PaX
grsecurity and PaXKernel TLV
 
FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and DriversKernel TLV
 
Linux Locking Mechanisms
Linux Locking MechanismsLinux Locking Mechanisms
Linux Locking MechanismsKernel TLV
 
Linux Kernel Init Process
Linux Kernel Init ProcessLinux Kernel Init Process
Linux Kernel Init ProcessKernel TLV
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelKernel TLV
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux InterruptsKernel TLV
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLinaro
 

Andere mochten auch (20)

Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
 
Windows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel DevelopersWindows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel Developers
 
Specializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackSpecializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network Stack
 
Linux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesLinux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use Cases
 
Userfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy MigrationUserfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy Migration
 
WiFi and the Beast
WiFi and the BeastWiFi and the Beast
WiFi and the Beast
 
Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux Kernel
 
Switchdev - No More SDK
Switchdev - No More SDKSwitchdev - No More SDK
Switchdev - No More SDK
 
Linux Security Overview
Linux Security OverviewLinux Security Overview
Linux Security Overview
 
TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016
 
Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing Landscape
 
grsecurity and PaX
grsecurity and PaXgrsecurity and PaX
grsecurity and PaX
 
FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and Drivers
 
Linux Locking Mechanisms
Linux Locking MechanismsLinux Locking Mechanisms
Linux Locking Mechanisms
 
Linux Kernel Init Process
Linux Kernel Init ProcessLinux Kernel Init Process
Linux Kernel Init Process
 
Linux IO
Linux IOLinux IO
Linux IO
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux Kernel
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
 

Ähnlich wie FD.IO Vector Packet Processing

High Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing CommunityHigh Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing Community6WIND
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...Jim St. Leger
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Michelle Holley
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDKLagopus SDN/OpenFlow switch
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaJim St. Leger
 
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
 
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
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Grayharryvanhaaren
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxSamsung Open Source Group
 
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA WorkshopIrati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA WorkshopEleni Trouva
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchJim St. Leger
 
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVMSven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVMShapeBlue
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingThomas Graf
 
Network Virtualization & Software-defined Networking
Network Virtualization & Software-defined NetworkingNetwork Virtualization & Software-defined Networking
Network Virtualization & Software-defined NetworkingDigicomp Academy AG
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
 
Software Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVSoftware Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVYoshihiro Nakajima
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterIgalia
 
G rpc talk with intel (3)
G rpc talk with intel (3)G rpc talk with intel (3)
G rpc talk with intel (3)Intel
 
Innovation is back in the transport and network layers
Innovation is back in the transport and network layersInnovation is back in the transport and network layers
Innovation is back in the transport and network layersOlivier Bonaventure
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVGhodhbane Mohamed Amine
 

Ähnlich wie FD.IO Vector Packet Processing (20)

High Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing CommunityHigh Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing Community
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
 
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
 
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?
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA WorkshopIrati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA Workshop
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
 
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVMSven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVM
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center Networking
 
Network Virtualization & Software-defined Networking
Network Virtualization & Software-defined NetworkingNetwork Virtualization & Software-defined Networking
Network Virtualization & Software-defined Networking
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
Software Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVSoftware Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFV
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporter
 
G rpc talk with intel (3)
G rpc talk with intel (3)G rpc talk with intel (3)
G rpc talk with intel (3)
 
Innovation is back in the transport and network layers
Innovation is back in the transport and network layersInnovation is back in the transport and network layers
Innovation is back in the transport and network layers
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 

Mehr von Kernel TLV

Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCKernel TLV
 
SGX Trusted Execution Environment
SGX Trusted Execution EnvironmentSGX Trusted Execution Environment
SGX Trusted Execution EnvironmentKernel TLV
 
Kernel Proc Connector and Containers
Kernel Proc Connector and ContainersKernel Proc Connector and Containers
Kernel Proc Connector and ContainersKernel TLV
 
Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Kernel TLV
 
Present Absence of Linux Filesystem Security
Present Absence of Linux Filesystem SecurityPresent Absence of Linux Filesystem Security
Present Absence of Linux Filesystem SecurityKernel TLV
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 
Make Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance ToolsMake Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance ToolsKernel TLV
 
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...Kernel TLV
 
File Systems: Why, How and Where
File Systems: Why, How and WhereFile Systems: Why, How and Where
File Systems: Why, How and WhereKernel TLV
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
KernelTLV Speaker Guidelines
KernelTLV Speaker GuidelinesKernelTLV Speaker Guidelines
KernelTLV Speaker GuidelinesKernel TLV
 
Userfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentUserfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentKernel TLV
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageKernel TLV
 

Mehr von Kernel TLV (14)

Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 
SGX Trusted Execution Environment
SGX Trusted Execution EnvironmentSGX Trusted Execution Environment
SGX Trusted Execution Environment
 
Fun with FUSE
Fun with FUSEFun with FUSE
Fun with FUSE
 
Kernel Proc Connector and Containers
Kernel Proc Connector and ContainersKernel Proc Connector and Containers
Kernel Proc Connector and Containers
 
Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545
 
Present Absence of Linux Filesystem Security
Present Absence of Linux Filesystem SecurityPresent Absence of Linux Filesystem Security
Present Absence of Linux Filesystem Security
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
Make Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance ToolsMake Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance Tools
 
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User ...
 
File Systems: Why, How and Where
File Systems: Why, How and WhereFile Systems: Why, How and Where
File Systems: Why, How and Where
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
KernelTLV Speaker Guidelines
KernelTLV Speaker GuidelinesKernelTLV Speaker Guidelines
KernelTLV Speaker Guidelines
 
Userfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentUserfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future Development
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 

Kürzlich hochgeladen

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 

Kürzlich hochgeladen (20)

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 

FD.IO Vector Packet Processing

  • 1. ©2015 Check Point Software Technologies Ltd. 1©2015 Check Point Software Technologies Ltd. Overview Kirill Tsym, Next Generation Enforcement team FD.IO VECTOR PACKET PROCESSING
  • 2. ©2015 Check Point Software Technologies Ltd. 2 CHECK POINT SOFTWARE TECHNOLOGIES The largest pure-play security vendor in the world Protecting more than 100,000 companies with millions of users worldwide $1.63B annual revenues in 2015 Over 4,300 employees Partners in over 95 countries
  • 3. ©2015 Check Point Software Technologies Ltd. 3 Lecture agenda  Linux networking stack vs user space networking initiatives – Why User Space networking? Why so many projects around it?  Introduction to FD.io and VPP – Architecture, Vectors, Graph, etc.  VPP Data path – Typical graphs – Example of supported topologies  VPP Threads and scheduling  Single and Multicore support  Supported topologies
  • 4. ©2015 Check Point Software Technologies Ltd. LINUX KERNEL STACK 01
  • 5. ©2015 Check Point Software Technologies Ltd. 5 Applications Linux kernel data path User Space Kernel Space NIC1 NIC2 TCP/IP Stack Forwarding To Application HW Rx Tx  Design goals or why stack is in the kernel? – Linux is designed as an Internet Host (RFC1122) or an “End-System” OS – Need to service multiple applications – Separate user applications from sensitive kernel code – Make application as simple as possible – Receive direct access to HW drivers  Cost – Not optimized for Forwarding – Every change requires new kernel version – Code is too generic – Networking stack today is a huge part of the kernel Pass-through Application Path ApplicationsApplication  Reference: Kernel Data Path L1 L2 L3 L4 L7 Drivers Sockets L5
  • 6. ©2015 Check Point Software Technologies Ltd. 6 Linux stack whole picture  Reference: Network_data_flow_through_kernel
  • 7. ©2015 Check Point Software Technologies Ltd. 7 Linux stack packet processing  Packets are processed in Kernel one by one – A lot of code involved in each packet processing – Processing path is monolithic, it’s impossible to change it or load new stack modules – Impossible to achieve Instruction Cache optimization in this model – There are technics to hijack kernel routines or defines hooks, but no simple and standard way to replace tcp_input() for example  skb processing is not cache optimized – sk_buff struct includes too much information – It could be ideal to load all needed sk_buff ‘s to cache before processing – But skb doesn’t fit to cache line nor placed in chain – As result there is no Data Cache optimization and usually a lot of cache misses  Every change requires new kernel version – Upstream a new protocol takes very long time – Standardization goes much faster than implementation
  • 8. ©2015 Check Point Software Technologies Ltd. USER SPACE NETWORKING PROJECTS 01
  • 9. ©2015 Check Point Software Technologies Ltd. 9 Application netmap API Netmap User Space Kernel Space NIC HW Linux Networking Stack netmap rings NIC rings  Pros – BSD, Linux and Windows ports – Good scalability – Data path is detached from host stack – Widely adopted  Cons – No networking stack – Routing done in host stack which slows down initial processing  Performance Packet forwarding Mpps Freebsd bridging 0.690 Netmap + libpcap 7.5 Netmap 14.88 Reference: netmap - the fast packet I/O framework
  • 10. ©2015 Check Point Software Technologies Ltd. 10 DPDK / Forwarding engine DPDK User Space Kernel Space NIC1 Linux Networking Stack Slow Path Fast Path 4 HW Kernel Networking Interface 3 5 8 NIC2  Pros – Kernel independent – All packet processing done in user space – DPDK Fast Path is cache and minimum instructions optimized  Cons – No networking stack – No routing stack – Need to send packets to Kernel for routing decisions – Doesn’t perform well on scaling tests – No external API – No integration with management – Out of tree drivers Fast Path Slow Path Routing Decision Drivers 7 1 2 6
  • 11. ©2015 Check Point Software Technologies Ltd. 11 OpenFastPath  BSD Networking Stack on top of DPDK and ODP  OpenDataPlane (ODP) is a cross-platform data plane SoC networking open source API  Supported by Nokia, ARM, Cavium and ENEA  Includes optimized IP, UDP and TCP stacks  Routes and MACs are in sync with Linux through Netlink
  • 12. ©2015 Check Point Software Technologies Ltd. 12 Other projects  OpenSwitch ̶ OS with Main component: DPDK based Open vSwitch ̶ Various management and CLI daemons ̶ Routing decision made by Linux Kernel (Ouch!) ̶ REST API ̶ Good for inter-VM communications  OpenOnload ̶ A user-level network stack from Sloarflare ̶ Depends on Solarflare NICs (Ouch!) • IO Visor ̶ XDP or eXpress Data Path ̶ Not a user space networking! ̶ Tries to bring performance in to existing kernel with BPF ̶ No need for 3rd party code ̶ Allows option of busy polling ̶ No need to allocate large pages ̶ No need for dedicated CPUs
  • 13. ©2015 Check Point Software Technologies Ltd. FD.IO 01
  • 14. ©2015 Check Point Software Technologies Ltd. 14 FD.io Project overview • FD.io is Linux Foundation project ̶ A collection of several projects based on Data Plane Development Kit (DPDK) ̶ Distributed under Apache license ̶ A key project the Vector Packet Processing (VPP) is donated by Cisco ̶ Proprietary version of VPP is running in Cisco CRS1 router ̶ There is no tool chain, OS, etc in Open sourced VPP version ̶ VPP is about 300K lines of code ̶ Major contributor: Cisco Chief Technology and Architecture office team • Three Main components ̶ Management Agent ̶ Packet Processing ̶ IO • VPP Roadmap ̶ First release 16 of June includes14MPPS single core L3 performance ̶ 16.09 release includes integration with containers and orchestration ̶ 17.01 release will include dpdk-16.11, dpdk CryptoDev, enhanced NAT, etc.
  • 15. ©2015 Check Point Software Technologies Ltd. 15 VPP ideas • CPU cycles budget ̶ 14 Mpps on 3.5 Ghz CPU = 250 cycles per packet budget ̶ Memory access 67ns and it’s the cost of fetching one cache line (64 bytes) OR 134 CPU cycles • Solution ̶ Perform all the processing with minimum of code ̶ Process more than one packet at a time ̶ Grab all available packets from Rx ring on every cycle ̶ Perform each atomic task in a dedicated Node • VPP Optimization Techniques ̶ Branch Prediction hints ̶ Use of vector instructions SSE, AVX ̶ Prefetching – do not pre-fetch to much to left the cache warm ̶ Speculations – around the packet destination instead of a full lookup ̶ Dual Loops Cache miss is unacceptable
  • 16. ©2015 Check Point Software Technologies Ltd. 16 VPP architecture NIC1 NIC2 User Space Kernel Space DPDK VPP IP Stack PluginsPluginVPP Plugins VPP  Pros – Kernel independent – All packet processing done in user space – DPDK based (or netmap, virtio, host, etc.) – Includes full scale L2/L3 Networking stack – Routing decision made by VPP – Also includes bridge implementation – Good plugins framework – Integrated with external management: Honeycomb  Cons – Young project – First stable release ~06/16 – Many open areas – Open Stack integration / Neutron – Lack of Transport Layer integration – Control Plane API & Stack  But what about L4/L7? – TLDK Project HW Fast Path VPP I/O Tasks I/O Polling logic + L2 L3 tasks User Defined tasks
  • 17. ©2015 Check Point Software Technologies Ltd. 17 Performance ̶ VPP data plane throughput not impacted by large IPv4 FIB size ̶ OVSDPDK data plane throughput heavily impacted by IPv4 FIB size ̶ VPP and OVSDPDK tested on Haswell x86 platform with E5-2698v3 2x16C 2.3GHz (Ubuntu 14.04 trusty) fd.io Foundation  Reference: FD.io intro
  • 18. ©2015 Check Point Software Technologies Ltd. 18 TLDK VPP TLDK Application layer (project) NIC1 User Space Kernel Space HW Fast Path Purpose build TLDK Application Socket Application BSD Socket Layer LD_PRELOAD SocketLayer NativeLinux Application DPDK NIC2 VPP  TLDK Application Layer – Using TLDK Library to process TCP and UDP packets  Purpose Built Application – Using TLDK API Directly (VPP node) – Provides highest performance  BSD Socket Layer – A standard BSD socket layer for applications using sockets by design – Lower performance, but good compatibility  LD_PRELOAD Socket Layer – Used to allow a ‘native binary Linux’ application to be ported in to the system – Allows for existing application to work without any change
  • 19. ©2015 Check Point Software Technologies Ltd. 19 VPP Nodes and Graph Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Processing is divided per Node Node works on Vector of Packets Nodes are connected to graph Graph could be changed dynamically vector of packets
  • 20. ©2015 Check Point Software Technologies Ltd. DATA PATH
  • 21. ©2015 Check Point Software Technologies Ltd. 21 • Full zero copy • Data always resides in Huge Pages memory • Vector is passed from graph node to node during processing ethernet- input Data path - ping dpdk-input ipv4-input ipv4-local ipv4-icmp- input ipv4-icmp- echo- request ipv4- rewrite- local Gigabit Ethernet- Output Gigabit Ethernet- Txt DPDK Core 0 vector of packet pointers Huge Pages Memory packets data Packets placed to Huge Pages by NIC VPP Vector created during input device work Node
  • 22. ©2015 Check Point Software Technologies Ltd. 22 ethernet- input Vector processing – split example input- device ipv4-input Gigabit Ethernet- Output Gigabit Ethernet- Txt input vector ipv6-input output vector A output vector B Transmit queue: packets are reordered Next node is called twice by threads scheduler DPDK
  • 23. ©2015 Check Point Software Technologies Ltd. 23 ethernet- input Vector processing – cloning example dpdk-input ipv4-input Gigabit Ethernet- Output Gigabit Ethernet- Txt input vector Transmit queue ipv4-frag output vector * 2 packets input vector Max vector size is 256 If output vector is full Then two vectors will be created DPDK
  • 24. ©2015 Check Point Software Technologies Ltd. 24 Rx features example : IPsec flow dpdk-input ipsec-if- output Gigabit Ethernet- Output Gigabit Ethernet- Txt DPDK ethernet- input ipv4-input esp- encrypt ipv4- rewrite- local esp- decrypt ipsec-if- input ipv4-local ipsec-if node been dynamically registered to receive IPsec traffic using Rx Features during interface UP Done through rewrite adjutancy
  • 25. ©2015 Check Point Software Technologies Ltd. THREADS AND SCHEDULING
  • 26. ©2015 Check Point Software Technologies Ltd. 26 Threads scheduling [Restricted] ONLY for designated groups and individuals​ One VPP scheduling cycle PRE-INPUT Purpose: Linux input and system control Example: unix_epoll_input dhcp-client management stack interface INPUT Purpose: Packets input Example: dpdk_io_input dpdk_input tuntap_rx INTERRUPTS Purpose: Run Suspended processes Example: expired timers PENDING NODES DISPATCH Purpose: Processing all vectors that needs additional processing after changes Example: Worker thread main INTERNAL NODES DISPATCH Purpose: Processing all pending vectors on VPP graph Example: Worker thread main Main work: L2/L3 stack processing and Tx
  • 27. ©2015 Check Point Software Technologies Ltd. 27 Threads zoom-in [Restricted] ONLY for designated groups and individuals​ vpp# show run Time 9.5, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00 vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0 Name State Calls Vectors Suspends Clocks Vectors/Call admin-up-down-process event wait 0 0 1 6.52e3 0.00 api-rx-from-ring active 0 0 6 1.04e5 0.00 cdp-process any wait 0 0 1 1.10e5 0.00 cnat-db-scanner any wait 0 0 1 5.34e3 0.00 dhcp-client-process any wait 0 0 1 6.58e3 0.00 dpdk-process any wait 0 0 3 2.73e6 0.00 flow-report-process any wait 0 0 1 6.19e3 0.00 gmon-process time wait 0 0 2 5.36e8 0.00 ip6-icmp-neighbor-discovery-ev any wait 0 0 10 1.81e4 0.00 startup-config-process done 1 0 1 2.64e5 0.00 unix-cli-stdin event wait 0 0 1 3.05e9 0.00 unix-epoll-input polling 24811921 0 0 9.48e2 0.00 vhost-user-process any wait 0 0 1 3.24e4 0.00 vpe-link-state-process event wait 0 0 1 7.10e3 0.00 vpe-oam-process any wait 0 0 5 1.37e4 0.00 vpe-route-resolver-process any wait 0 0 1 9.52e3 0.00 vpp# exit # ps -elf | grep vpp 4 R root 20566 1 92 80 0 - 535432 - 16:10 ? 00:00:27 vpp -c /etc/vpp/startup.conf 0 S root 20582 1960 0 80 0 - 4293 pipe_w 16:10 pts/34 00:00:00 grep --color=auto vpp #
  • 28. ©2015 Check Point Software Technologies Ltd. SINGLE AND MULTCORE MODES [Restricted] ONLY for designated groups and individuals​
  • 29. ©2015 Check Point Software Technologies Ltd. 29 Core 0 Core 1 Core 2 Rx Tx Rx Tx VPP Threading modes [Restricted] ONLY for designated groups and individuals​ • Single-threaded ̶ Both control and forwarding engine run on single thread • Multi-thread with workers only ̶ Control running on Main thread (API, CLI) ̶ Forwarding performed by one or more worker threads • Multi-thread with IO and Workers ̶ Control on main thread (API,CLI) ̶ IO thread handling input and dispatching to worker threads ̶ Worker threads doing actual work including interface TX ̶ RSS is in use • Multi-thread with Main and IO on a single thread ̶ Workers separated by core - Control - IO - Worker Core 0 Core 1 Core 2 Rx Tx Tx Core 0 Rx Tx Core 0 Core 1 Core 2 Rx Tx Core 3 Rx …..
  • 30. ©2015 Check Point Software Technologies Ltd. SUPPORTED TOPOLOGIES [Restricted] ONLY for designated groups and individuals​
  • 31. ©2015 Check Point Software Technologies Ltd. 31 Router and Switch for namespaces Reference
  • 32. ©2015 Check Point Software Technologies Ltd. QUESTIONS?
  • 33. ©2015 Check Point Software Technologies Ltd. 33 VPP Capabilities • Why VPP? ̶ Linux Kernel is good, but going too slow because of backward compatibility ̶ Standardization today moving faster than implementations ̶ Main reason for VPP speed – optimal usage of ICACHE ̶ Do not trash the cache with packet per packet processing like in the standard IP stack ̶ Separation of Data Plane and Control Plane. VPP is pure Data Plane • Main ideas ̶ Separation of Data Plane and Control Plane ̶ API generation. Available binding for Java, C and Python ̶ OpenStack integration ̶ Neutron ML2 driver ̶ OPENFV / ODL-GBP / ODL-SFC (Service chaining like firewalls, NAT, QoS) • Containers ̶ Could be in the host connecting between containers ̶ Could be VPP inside of containers and talking between them
  • 34. ©2015 Check Point Software Technologies Ltd. 34 Connection between various layers dpdk-input plugin ethernet-input ip-input udp-local ip4_register_protocol()  UDP ethernet_register_input_type()  IPv4 vnet_hw_interface_rx_redirect_to_node() Defined in plugin code Next node is hardcoded in dpdk-input/handoff-dispatch Callback Data
  • 35. ©2015 Check Point Software Technologies Ltd. 35 Output attachment point ipv4-input ipv4- lookup VPP Adjacency: mechanism to add and rewrite next node dynamically after routing lookup. Available nodes: - miss - drop - punt - local - rewrite - classify - map - map_t - sixrd - hop_by_hop *Possible place for POSTROUTING HOOK ipv4- rewrite- transit VPP Rx features: mechanism to add and rewrite next node dynamically after ipv4-input. Available nodes: - input acl  *Prerouting - source check rx - source check any - ipsec - vpath - lookup *Currently impossible to do it from plugins L3 Nodes Various L4 Nodes Various Post Routing Nodes

Hinweis der Redaktion

  1. Partners (channel partner program excl. not in program / revoked), with over 100K bookings in the past 2 years (2015-2016YTD)