SlideShare a Scribd company logo
2011-2014 © PLUMgrid - Confidential Information
Extended BPF and Data Plane Extensibility:
An overview of networking and Linux
Fernando Sanchez
Principal SE, PLUMgrid Inc.
@fernandosanchez
Brenden Blanco
Architect, Office of the CTO, PLUMgrid
@brendenblanco
2011-2014 © PLUMgrid - Confidential Information
Agenda
•  Lessons from Physical Networks: Traditional Data
Center Design and the effects of virtualization
•  Hypervisor Networking Layer: Virtual Switches,
Distributed Virtual Switches and Network Overlays
•  (E)BPF and its applicability to an Extensible
Networking Dataplane – From Virtual Switches to
Virtual Networks
•  Demos, examples and usage of BPF
2
2011-2014 © PLUMgrid - Confidential Information
Lessons from Physical Networks:
Traditional Data Center Design and the effects of
virtualization
3
2011-2014 © PLUMgrid - Confidential Information
Server Virtualization
How does this affect the network?
2011-2014 © PLUMgrid - Confidential Information
Traditional Data Center: Characteristics
5
• One host OS per server
• Three tier (Access, Distribution,
Core) Networking Design
• Traditional L2 and L3 protocols
• spanning-tree issues, anyone?
• HA based in physical server/link
deployments
2011-2014 © PLUMgrid - Confidential Information
Traditional Data Center: General Issues
6
•  Costly, Complex, and Constrained
•  Switch cross connects waste
revenue generating ports
•  Scalability based on hardware and
space
•  Network sub-utilization
•  Slow L2/3 failure recovery
•  Layer 4/7 is centralized at core layer
•  Quickly reaching HW limits (#MACs,
#VLANs, etc.)
2011-2014 © PLUMgrid - Confidential Information
A Modern Data Center: Characteristics
7
• Server Virtualization:
• Multiple OS and VMs
• Efficient Network Virtualization:
• Multiple link utilization
• Fast convergence
• Increased uptime
• Storage Virtualization:
• Fast & efficient
• New design requirements
needed!
Fully distributed network layer
2011-2014 © PLUMgrid - Confidential Information
Effects of Server Virtualization
Virtualization helped optimize compute but
added to the network issues:
•  Traffic Flows: East West and VM to VM
flows could cause hair-pinning of traffic
•  VM Segmentation: More VLAN and
MAC address issues
•  VM Management: Traditional systems
could not see past the hypervisor
•  Intra Server Security: How to secure
traffic within a server?
Fully distributed network layer
2011-2014 © PLUMgrid - Confidential Information
Hypervisor Networking Layer: Virtual Switches,
Distributed Virtual Switches and Network Overlays
9
2011-2014 © PLUMgrid - Confidential Information
A New Networking Layer
Your data plane matters … A LOT
vSwitches
Distributed vSwitches
vRouters
Distributed topologies
Extensible data plane
2011-2014 © PLUMgrid - Confidential Information
Virtual Switches
•  A Virtual Switch (vSwitch) is a software
component within a server that allows one inter-
virtual machine (VM) communication as well as
communication with external world
•  A vSwitch has a few key advantages:
•  Provides network functionalities right inside
the hypervisor layer
•  Operations are similar to that of the
hypervisor yet with control over network
functionality
•  Compared to a physical switch, it's easy to
roll out new functionality, which can be
hardware or firmware related Host
2011-2014 © PLUMgrid - Confidential Information
Open vSwitch
•  Open vSwitch is a
production quality, multilayer
virtual switch licensed under
the Apache 2.0 license
•  Enables massive network
automation
•  Supports distribution across
multiple physical servers
2011-2014 © PLUMgrid - Confidential Information
Inside a Compute Node
13
Compute Node
Kernel
Ethmgmt
vSwitch Kernel Module
Tenant VMs
VM VM VM
User
Vif
vSwitch
User Space
Component
2011-2014 © PLUMgrid - Confidential Information
From vSwitch to Distributed vSwitch
•  Logically stretches across
multiple physical servers
•  Provides L2 connectivity for
VMs that belong to the
same tenant within each
server and across them
•  Generally uses IP tunnel
Overlays (VxLAN, GRE) to
create isolated L2 broadcast
domains across L3
boundaries
14
VM VM VM VM VM VM
Distributed vSwitch
VM VMVM VMVM VM
2011-2014 © PLUMgrid - Confidential Information
How about L2+ Functions? “in-kernel switch” approach
15
Compute Node
Kernel
Ethmgmt
In Kernel Functions
Tenant VMs
VM VM VM
User
Vif
Advanced Functions
Advanced Functions
Dedicated Network Node
2011-2014 © PLUMgrid - Confidential Information
Extensible In-Kernel Functions
16
Compute Node
Kernel
Ethmgmt
Tenant VMs
VM VM VM
User
Vif
2011-2014 © PLUMgrid - Confidential Information
Extensible Data Plane Architecture
•  Is there a way to provide a software networking data plane:
•  Able to load and chain Virtual Network Functions dynamically
•  Extensible
•  Fully programmable, able to freely access the raw network devices
•  In-kernel – leverage all the existing kernel features for
•  Hardware support and portability
•  Guaranteed runtime safety
•  Predictable performance (delay, jitter, throughput…)
•  E-BPF Technology https://lwn.net/Articles/603983
17
2011-2014 © PLUMgrid - Confidential Information
(E)BPF and its applicability to an Extensible
Networking Dataplane – From Virtual Switches to
Virtual Networks
18
2011-2014 © PLUMgrid - Confidential Information
Classic BPF
•  BPF - Berkeley Packet Filter – In-kernel virtual machine with low level instruction
set for raw access to data link layer
•  Introduced in Linux in 1997 in kernel version 2.1.75
•  Initially used as socket filter by packet capture tool tcpdump (via libpcap)
Use Cases:
•  socket filters (drop or trim packet and pass to user space)
–  used by tcpdump/libpcap, wireshark, nmap, dhcp, arpd, ...
•  In-kernel networking subsystems
–  cls_bpf (TC classifier) –QoS subsystem- , xt_bpf, ppp, team, ...
•  seccomp (chrome sandboxing)
–  introduced in 2012 to filter syscall arguments with bpf program
2011-2014 © PLUMgrid - Confidential Information
Extended BPF
•  New set of patches introduced in the Linux kernel since 3.15 (June 8th, 2014)
and into 3.19 (Feb 8th, 2015), 4.0 (April 12th, 2015) and into 4.1
•  “Universal in-kernel virtual machine”*
•  More registers (64 bit), safety (no crashes, finite execution…), userspace maps
•  In-kernel JIT compiler (safe) à x86, ARM64, s390, powerpc*, MIPS* ….
•  LLVM backend: any platform that LLVM compiles into will work. (GCC backend
in the works) à PORTABILITY!
Use Cases:
1.  networking
2.  tracing (analytics, monitoring, debugging)
3.  in-kernel optimizations
4.  hw modeling
5.  crazy stuff... *http://lwn.net/Articles/599755/
2011-2014 © PLUMgrid - Confidential Information
Extended BPF program = BPF instructions + BPF maps
•  BPF map: key/value storage of different types
•  value = bpf_table_lookup(table_id, key) – lookup key in a table
•  Userspace can read/modify the tables
•  More on this on later slide
BPF insns program (pre-3.15) Extended BPF insns program
2 registers + stack
32-bit registers
4-byte load/store to stack
1-8 byte load from packet
Conditional jump forward
+, -, *, … instructions
10 registers + stack
64-bit registers
1-8 byte load/store to stack
1-8 byte load/store to packet
Conditional jump fwd and backward
Same + signed_shift + bswap
•  BPF instructions improvements:
2011-2014 © PLUMgrid - Confidential Information
Extended BPF Networking Program Example
Fully Programmable Dataplane Access
Restrictive C program to:
•  obtain the protocol type (UDP, TCP, ICMP, …) from each packet
•  keep a count for each protocol in a “map”:
int bpf_prog1(struct __sk_buff *skb)
{
int index = load_byte(skb, ETH_HLEN +
offsetof(struct iphdr, protocol));
long *value;
value = bpf_map_lookup_elem(&my_map, &index);
if (value)
__sync_fetch_and_add(value, 1);
return 0;
}
Equivalent eBPF program
(struct insns * “pretty print”)
Load an incoming frame and
get the IP protocol as “index”
from it
Lookup that IP protocol “index” in an
existing map* and get current
“value”
If found, add 1 to the “value”
LLVM
GCC*
JIT
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/samples/bpf/sockex2_kern.c
Blazing FAST
in-kernel
machine code!
insns
0: r6 = r1
1: r0 = *(u8 *)skb[23]
2: *(u32 *)(r10 -4) = r0
3: r1 = 0xba933f00
5: r2 = r10
6: r2 += -4
7: call 1
8: if r0 == 0x0 goto pc+2
9: r1 = 1
10: lock *(u64 *)(r0 +0) += r1
11: r0 = 0
12: exit
2011-2014 © PLUMgrid - Confidential Information
DEMO 1 – Using BPF kprobes for “Hello World”
•  Write a simple program that says “Hello World!”
•  Attach it to a kprobe point: sys_clone, sys_fork,…
•  Everytime that event happens, “Hello World!” on stdout
•  Dynamically modify the code and update the in-kernel
program “Hello, RedHat summit!”
23
2011-2014 © PLUMgrid - Confidential Information
•  BPF programs can attach to sockets, the traffic
control (TC) subsystem, kprobe, syscalls,
tracepoints…
•  Sockets can be STREAM (L4/UDP), DATAGRAM (L4/
TCP) or RAW (TC)
•  This allows to hook at different levels of the Linux
networking stack, providing the ability to act on traffic
that has or hasn’t been processed already by other
pieces of the stack
•  Opens up the possibility to implement network
functions at different layers of the stack
Hooking BPF into the Linux networking stack (RX)
HW/veth/cont
USERSPACE
TAP/Raw (RO)
driver
netif_receive_skb()
TC / traffic control
Bridge hook /
prerouting
IP / routing
KERNELSPACE
insns 1
BPF
Socket (TCP/UDP)
insns 5
BPF
insns 2
BPF
insns 3
insns 4
2011-2014 © PLUMgrid - Confidential Information
•  BPF programs can attach to sockets, the traffic
control (TC) subsystem, kprobe, syscalls,
tracepoints…
•  Sockets can be STREAM (L4/UDP), DATAGRAM (L4/
TCP) or RAW (TC)
•  This allows to hook at different levels of the linux
networking stack, providing the ability to act on traffic
that has or hasn’t been processed already by other
pieces of the stack
•  Opens up the possibility to implement network
functions at different layers of the OSI stack
Hooking BPF into the Linux networking stack (TX)
HW/veth/cont
USERSPACE
TAP/Raw (RO)
driver
dev_queue_xmit()
TC / traffic control
IP / routing
KERNELSPACE
insns 1
BPF
Socket (TCP/UDP)
For simplicity, the following slides simplify
this view into a single “kernel networking
stack”
insns 2
BPF
insns 3
insns 4
2011-2014 © PLUMgrid - Confidential Information
•  BPF Linux ‘call’ and set of in-kernel helper functions
define what BPF programs can do
int bpf(BPF_PROG_LOAD, union bpf_attr *attr, unsigned
int size);
•  BPF code itself acts as ‘glue’ between calls to in-kernel
helper functions
•  BPF helpers allow for additional functionality
•  ktime_get_ns (timestamp)
•  skb_store_bytes (packet write)
•  L3/L4 chksum replace
•  map_lookup/update/delete
(more on maps later)
Extended BPF system usage
Userspace “Call” and “Helpers”
insns 1
stack
Kernel
space
HW/veth/cont
Enables “in-kernel VNFs”
2011-2014 © PLUMgrid - Confidential Information
Extended BPF “maps”
•  Maps are generic storage of different types for
sharing data (key/value pairs) between kernel
and userspace
•  The maps are accessed from user space via
BPF syscall, with commands:
•  create a map with given type and attributes and receive as
file descriptor:
map_fd = bpf(BPF_MAP_CREATE, union bpf_attr *attr,
u32 size)
•  Additional calls to perform operations on the map:
lookup key/value, update, delete, iterate, delete a map
•  userspace programs use this syscall to create/
access maps that BPF programs are
concurrently updating
bpf_insn
stack
map_1
User
space
PHY
space
Kernel
space
Tables for “in-kernel VNFs”
2011-2014 © PLUMgrid - Confidential Information
Putting it all together - Networking with BPF
Example - Attach a program to a socket
•  User creates an eBPF program and obtains a
union bpf_attr (previous slides)
that includes the insns BPF instruction set for the program.
•  A userspace program loads the eBPF program:
int bpf(BPF_PROG_LOAD, union bpf_attr *attr, unsigned int
size);
•  It also creates a map, controlled with a file descriptor
map_fd = bpf(BPF_MAP_CREATE, union bpf_attr *attr, u32 size)
•  Create a socket (varies depending on socket type):
socket = socket(PF_INET, SOCK_STREAM,IPPROTO_TCP)
•  Attach the BPF program to a socket
setsockopt(socket, SOL_SOCKET, SO_ATTACH_BPF, &fd,
sizeof(fd));
•  Enjoy in-kernel networking nirvana ☺
insns
sock
filter
map_1
User
space
Kernel
space
HW/veth/cont
2011-2014 © PLUMgrid - Confidential Information
eBPF framework for networking
Building Virtual Network Infrastructure
µController
attachment points
attachment points
eBPF
Execution
Container
Kernel space
User space
IO context
IO Module helpers
(optional)IO Module
(dynamically loaded)
Open repo of
“IO Modules”
Encap/Tunneling
QoS / sched.
IN-KERNEL VNFs
Switching
Routing
Firewall
insns 1
insns 2
insns 3
2011-2014 © PLUMgrid - Confidential Information
Is there an easier/safer way to use this technology?
Higher-level APIs for producing and using BPF code
•  BPF ensures that programs to be loaded in the kernel won’t crash or loop
forever, by running it through a “verifier” upon loading it. (BPF_PROG_LOAD)
•  But it is today possible to write programs in C that would compile into invalid
BPF (C is like that), and a user would only know upon trying to run it
•  A BPF-specific frontend would allow for a compiler to provide feedback on
the validity of the code
•  BPF COMPILER COLLECTION (BCC)
http://github.com/iovisor/bcc
2011-2014 © PLUMgrid - Confidential Information
Why BCC?
•  Current approaches to converting a C program to BPF
involve many custom steps, tools
•  clang frontend, llvm backend with BPF support
•  kernel	
  samples/bpf/libbpf.c	
  APIs	
  
•  ELF	
  loader	
  with	
  sec<on	
  rewrites	
  
•  programs use low-level helper functions
•  can be simplified
2011-2014 © PLUMgrid - Confidential Information
Writing a BPF Program - Easy Mode
•  Write your BPF program in C... inline or in a separate file
•  Write a python script that loads and interacts with your BPF
program
•  Attach to kprobes, socket, tc filter/action
•  Read/update maps
•  Configuration, complex calculation/correlations
•  Iterate on above and re-try...in seconds
2011-2014 © PLUMgrid - Confidential Information
Demo 1 redux: EASY MODE
•  Hello again, RedHat Summit
2011-2014 © PLUMgrid - Confidential Information
Demo 2: Using BPF for a versatile networking application
•  Let’s assume that we have a set of applications running on top of a multitenant overlay network
Think an Openstack cloud running on top of VxLAN, or an IP VPN running on top of MPLS
•  Let’s store statistics of all the endpoints for every “overlay”, and also the endpoints for every
“underlay”, in realtime, without latency.
Think seeing in realtime the traffic between all VMs of an Openstack cloud (without having to have
administrative access), or being able to see the traffic between every CE router, IP phone, server or endpoint
connected to the IP VPN
•  Write a program that measures the traffic traversing the physical network and
dynamically stores measurements of all all metadata independently of whether it’s outer
(VxLAN, MPLS) or inner (Ethernet/IP). Then display on demand each level of depth
2011-2014 © PLUMgrid - Confidential Information
Demo 2: Using BPF for a versatile networking application
Dynamic analytics on a multi-level encapsulation network
35
172.16.1.1/24
192.168.0.1/24
192.168.1.1/24
192.168.3.2/24
192.168.1.2/24
192.168.0.3/24
192.168.3.3/24
172.16.1.2/24
172.16.1.3/24
vxlan 10001 vxlan 10001
vxlan 10002 vxlan 10002
vxlan 10003
vxlan 10003
2011-2014 © PLUMgrid - Confidential Information
Our Vision
36
Thank You
Ad

More Related Content

What's hot (20)

Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
Adrien Mahieux
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
SUSE Labs Taipei
 
ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!
Affan Syed
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
Thomas Graf
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
Denys Haryachyy
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
ScyllaDB
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
OSSラボ株式会社
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
Kernel TLV
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
Thomas Graf
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
Alexei Starovoitov
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)
Brendan Gregg
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
Brendan Gregg
 
L3HA-VRRP-20141201
L3HA-VRRP-20141201L3HA-VRRP-20141201
L3HA-VRRP-20141201
Manabu Ori
 
Intel dpdk Tutorial
Intel dpdk TutorialIntel dpdk Tutorial
Intel dpdk Tutorial
Saifuddin Kaijar
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
JuHwan Lee
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
Seung-Hoon Baek
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
lcplcp1
 
eBPF Perf Tools 2019
eBPF Perf Tools 2019eBPF Perf Tools 2019
eBPF Perf Tools 2019
Brendan Gregg
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
SUSE Labs Taipei
 
ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!
Affan Syed
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
Thomas Graf
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
ScyllaDB
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
Kernel TLV
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
Thomas Graf
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
Alexei Starovoitov
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)
Brendan Gregg
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
Brendan Gregg
 
L3HA-VRRP-20141201
L3HA-VRRP-20141201L3HA-VRRP-20141201
L3HA-VRRP-20141201
Manabu Ori
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
JuHwan Lee
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
Seung-Hoon Baek
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
lcplcp1
 
eBPF Perf Tools 2019
eBPF Perf Tools 2019eBPF Perf Tools 2019
eBPF Perf Tools 2019
Brendan Gregg
 

Similar to EBPF and Linux Networking (20)

OpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgridOpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgrid
Kamesh Pemmaraju
 
Understanding network and service virtualization
Understanding network and service virtualizationUnderstanding network and service virtualization
Understanding network and service virtualization
SDN Hub
 
Implementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined NetworksImplementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined Networks
PLUMgrid
 
Network Virtualization & Software-defined Networking
Network Virtualization & Software-defined NetworkingNetwork Virtualization & Software-defined Networking
Network Virtualization & Software-defined Networking
Digicomp Academy AG
 
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
Thomas Graf
 
Raga_SDN_NSX_1
Raga_SDN_NSX_1Raga_SDN_NSX_1
Raga_SDN_NSX_1
Ranjith Kumar
 
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
Indonesia Network Operators Group
 
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
 
Референсная архитектура HP FlexNetwork
Референсная архитектура HP FlexNetworkРеференсная архитектура HP FlexNetwork
Референсная архитектура HP FlexNetwork
TechExpert
 
Design and Deployment of Enterprise WLANs
Design and Deployment of Enterprise WLANsDesign and Deployment of Enterprise WLANs
Design and Deployment of Enterprise WLANs
Fab Fusaro
 
Mellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDNMellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDN
Mellanox Technologies
 
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SAMeh Zaghloul
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfv
Intel
 
SURF Lego - Architecture - Peter Boers- NWD23
SURF Lego - Architecture - Peter Boers- NWD23SURF Lego - Architecture - Peter Boers- NWD23
SURF Lego - Architecture - Peter Boers- NWD23
SURFevents
 
BuildingSDNmanageableswitch.pdf
BuildingSDNmanageableswitch.pdfBuildingSDNmanageableswitch.pdf
BuildingSDNmanageableswitch.pdf
Fernando Velez Varela
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
Kirill Tsym
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
Kernel TLV
 
Open vSwitch Implementation Options
Open vSwitch Implementation Options Open vSwitch Implementation Options
Open vSwitch Implementation Options
Netronome
 
Network Function Virtualization (NFV) BoF
Network Function Virtualization (NFV) BoFNetwork Function Virtualization (NFV) BoF
Network Function Virtualization (NFV) BoF
APNIC
 
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys Corporation
 
OpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgridOpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgrid
Kamesh Pemmaraju
 
Understanding network and service virtualization
Understanding network and service virtualizationUnderstanding network and service virtualization
Understanding network and service virtualization
SDN Hub
 
Implementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined NetworksImplementing vCPE with OpenStack and Software Defined Networks
Implementing vCPE with OpenStack and Software Defined Networks
PLUMgrid
 
Network Virtualization & Software-defined Networking
Network Virtualization & Software-defined NetworkingNetwork Virtualization & Software-defined Networking
Network Virtualization & Software-defined Networking
Digicomp Academy AG
 
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
Thomas Graf
 
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
Indonesia Network Operators Group
 
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
 
Референсная архитектура HP FlexNetwork
Референсная архитектура HP FlexNetworkРеференсная архитектура HP FlexNetwork
Референсная архитектура HP FlexNetwork
TechExpert
 
Design and Deployment of Enterprise WLANs
Design and Deployment of Enterprise WLANsDesign and Deployment of Enterprise WLANs
Design and Deployment of Enterprise WLANs
Fab Fusaro
 
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SAMeh Zaghloul
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfv
Intel
 
SURF Lego - Architecture - Peter Boers- NWD23
SURF Lego - Architecture - Peter Boers- NWD23SURF Lego - Architecture - Peter Boers- NWD23
SURF Lego - Architecture - Peter Boers- NWD23
SURFevents
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
Kirill Tsym
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
Kernel TLV
 
Open vSwitch Implementation Options
Open vSwitch Implementation Options Open vSwitch Implementation Options
Open vSwitch Implementation Options
Netronome
 
Network Function Virtualization (NFV) BoF
Network Function Virtualization (NFV) BoFNetwork Function Virtualization (NFV) BoF
Network Function Virtualization (NFV) BoF
APNIC
 
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys Corporation
 
Ad

More from PLUMgrid (20)

SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
PLUMgrid
 
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsIn-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
PLUMgrid
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack Clouds
PLUMgrid
 
Service Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitectureService Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices Architecture
PLUMgrid
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile Edge
PLUMgrid
 
Design and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use CasesDesign and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use Cases
PLUMgrid
 
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | WebinarHow to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
PLUMgrid
 
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipOpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
PLUMgrid
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it Too
PLUMgrid
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it Too
PLUMgrid
 
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
PLUMgrid
 
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
PLUMgrid
 
Hands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkHands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack Network
PLUMgrid
 
Securing Micro Services in Cloud Foundry
Securing Micro Services in Cloud FoundrySecuring Micro Services in Cloud Foundry
Securing Micro Services in Cloud Foundry
PLUMgrid
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
PLUMgrid
 
Unified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsUnified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack Clouds
PLUMgrid
 
Building a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid CloudBuilding a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid Cloud
PLUMgrid
 
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkManaging Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
PLUMgrid
 
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVRevolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
PLUMgrid
 
See Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never BeforeSee Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never Before
PLUMgrid
 
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
PLUMgrid
 
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack CloudsIn-kernel Analytics and Tracing with eBPF for OpenStack Clouds
In-kernel Analytics and Tracing with eBPF for OpenStack Clouds
PLUMgrid
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack Clouds
PLUMgrid
 
Service Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitectureService Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices Architecture
PLUMgrid
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile Edge
PLUMgrid
 
Design and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use CasesDesign and Deploy Secure Clouds for Financial Services Use Cases
Design and Deploy Secure Clouds for Financial Services Use Cases
PLUMgrid
 
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | WebinarHow to Quickly Implement a Secure Cloud for Government and Military | Webinar
How to Quickly Implement a Secure Cloud for Government and Military | Webinar
PLUMgrid
 
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipOpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
PLUMgrid
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it Too
PLUMgrid
 
You Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it TooYou Can Build Your OpenStack and Consume it Too
You Can Build Your OpenStack and Consume it Too
PLUMgrid
 
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
PLUMgrid
 
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
PLUMgrid
 
Hands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkHands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack Network
PLUMgrid
 
Securing Micro Services in Cloud Foundry
Securing Micro Services in Cloud FoundrySecuring Micro Services in Cloud Foundry
Securing Micro Services in Cloud Foundry
PLUMgrid
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
PLUMgrid
 
Unified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsUnified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack Clouds
PLUMgrid
 
Building a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid CloudBuilding a Scalable Federated Hybrid Cloud
Building a Scalable Federated Hybrid Cloud
PLUMgrid
 
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkManaging Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
PLUMgrid
 
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFVRevolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
Revolutionizing IT and Telecom Industry with OpenStack, SDN and NFV
PLUMgrid
 
See Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never BeforeSee Your OpenStack Network Like Never Before
See Your OpenStack Network Like Never Before
PLUMgrid
 
Ad

Recently uploaded (20)

The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Rock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning JourneyRock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning Journey
Lynda Kane
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtBuckeye Dreamin 2024: Assessing and Resolving Technical Debt
Buckeye Dreamin 2024: Assessing and Resolving Technical Debt
Lynda Kane
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Rock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning JourneyRock, Paper, Scissors: An Apex Map Learning Journey
Rock, Paper, Scissors: An Apex Map Learning Journey
Lynda Kane
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Automation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From AnywhereAutomation Dreamin': Capture User Feedback From Anywhere
Automation Dreamin': Capture User Feedback From Anywhere
Lynda Kane
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.Network Security. Different aspects of Network Security.
Network Security. Different aspects of Network Security.
gregtap1
 
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
#AdminHour presents: Hour of Code2018 slide deck from 12/6/2018
Lynda Kane
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Image processinglab image processing image processing
Image processinglab image processing  image processingImage processinglab image processing  image processing
Image processinglab image processing image processing
RaghadHany
 

EBPF and Linux Networking

  • 1. 2011-2014 © PLUMgrid - Confidential Information Extended BPF and Data Plane Extensibility: An overview of networking and Linux Fernando Sanchez Principal SE, PLUMgrid Inc. @fernandosanchez Brenden Blanco Architect, Office of the CTO, PLUMgrid @brendenblanco
  • 2. 2011-2014 © PLUMgrid - Confidential Information Agenda •  Lessons from Physical Networks: Traditional Data Center Design and the effects of virtualization •  Hypervisor Networking Layer: Virtual Switches, Distributed Virtual Switches and Network Overlays •  (E)BPF and its applicability to an Extensible Networking Dataplane – From Virtual Switches to Virtual Networks •  Demos, examples and usage of BPF 2
  • 3. 2011-2014 © PLUMgrid - Confidential Information Lessons from Physical Networks: Traditional Data Center Design and the effects of virtualization 3
  • 4. 2011-2014 © PLUMgrid - Confidential Information Server Virtualization How does this affect the network?
  • 5. 2011-2014 © PLUMgrid - Confidential Information Traditional Data Center: Characteristics 5 • One host OS per server • Three tier (Access, Distribution, Core) Networking Design • Traditional L2 and L3 protocols • spanning-tree issues, anyone? • HA based in physical server/link deployments
  • 6. 2011-2014 © PLUMgrid - Confidential Information Traditional Data Center: General Issues 6 •  Costly, Complex, and Constrained •  Switch cross connects waste revenue generating ports •  Scalability based on hardware and space •  Network sub-utilization •  Slow L2/3 failure recovery •  Layer 4/7 is centralized at core layer •  Quickly reaching HW limits (#MACs, #VLANs, etc.)
  • 7. 2011-2014 © PLUMgrid - Confidential Information A Modern Data Center: Characteristics 7 • Server Virtualization: • Multiple OS and VMs • Efficient Network Virtualization: • Multiple link utilization • Fast convergence • Increased uptime • Storage Virtualization: • Fast & efficient • New design requirements needed! Fully distributed network layer
  • 8. 2011-2014 © PLUMgrid - Confidential Information Effects of Server Virtualization Virtualization helped optimize compute but added to the network issues: •  Traffic Flows: East West and VM to VM flows could cause hair-pinning of traffic •  VM Segmentation: More VLAN and MAC address issues •  VM Management: Traditional systems could not see past the hypervisor •  Intra Server Security: How to secure traffic within a server? Fully distributed network layer
  • 9. 2011-2014 © PLUMgrid - Confidential Information Hypervisor Networking Layer: Virtual Switches, Distributed Virtual Switches and Network Overlays 9
  • 10. 2011-2014 © PLUMgrid - Confidential Information A New Networking Layer Your data plane matters … A LOT vSwitches Distributed vSwitches vRouters Distributed topologies Extensible data plane
  • 11. 2011-2014 © PLUMgrid - Confidential Information Virtual Switches •  A Virtual Switch (vSwitch) is a software component within a server that allows one inter- virtual machine (VM) communication as well as communication with external world •  A vSwitch has a few key advantages: •  Provides network functionalities right inside the hypervisor layer •  Operations are similar to that of the hypervisor yet with control over network functionality •  Compared to a physical switch, it's easy to roll out new functionality, which can be hardware or firmware related Host
  • 12. 2011-2014 © PLUMgrid - Confidential Information Open vSwitch •  Open vSwitch is a production quality, multilayer virtual switch licensed under the Apache 2.0 license •  Enables massive network automation •  Supports distribution across multiple physical servers
  • 13. 2011-2014 © PLUMgrid - Confidential Information Inside a Compute Node 13 Compute Node Kernel Ethmgmt vSwitch Kernel Module Tenant VMs VM VM VM User Vif vSwitch User Space Component
  • 14. 2011-2014 © PLUMgrid - Confidential Information From vSwitch to Distributed vSwitch •  Logically stretches across multiple physical servers •  Provides L2 connectivity for VMs that belong to the same tenant within each server and across them •  Generally uses IP tunnel Overlays (VxLAN, GRE) to create isolated L2 broadcast domains across L3 boundaries 14 VM VM VM VM VM VM Distributed vSwitch VM VMVM VMVM VM
  • 15. 2011-2014 © PLUMgrid - Confidential Information How about L2+ Functions? “in-kernel switch” approach 15 Compute Node Kernel Ethmgmt In Kernel Functions Tenant VMs VM VM VM User Vif Advanced Functions Advanced Functions Dedicated Network Node
  • 16. 2011-2014 © PLUMgrid - Confidential Information Extensible In-Kernel Functions 16 Compute Node Kernel Ethmgmt Tenant VMs VM VM VM User Vif
  • 17. 2011-2014 © PLUMgrid - Confidential Information Extensible Data Plane Architecture •  Is there a way to provide a software networking data plane: •  Able to load and chain Virtual Network Functions dynamically •  Extensible •  Fully programmable, able to freely access the raw network devices •  In-kernel – leverage all the existing kernel features for •  Hardware support and portability •  Guaranteed runtime safety •  Predictable performance (delay, jitter, throughput…) •  E-BPF Technology https://lwn.net/Articles/603983 17
  • 18. 2011-2014 © PLUMgrid - Confidential Information (E)BPF and its applicability to an Extensible Networking Dataplane – From Virtual Switches to Virtual Networks 18
  • 19. 2011-2014 © PLUMgrid - Confidential Information Classic BPF •  BPF - Berkeley Packet Filter – In-kernel virtual machine with low level instruction set for raw access to data link layer •  Introduced in Linux in 1997 in kernel version 2.1.75 •  Initially used as socket filter by packet capture tool tcpdump (via libpcap) Use Cases: •  socket filters (drop or trim packet and pass to user space) –  used by tcpdump/libpcap, wireshark, nmap, dhcp, arpd, ... •  In-kernel networking subsystems –  cls_bpf (TC classifier) –QoS subsystem- , xt_bpf, ppp, team, ... •  seccomp (chrome sandboxing) –  introduced in 2012 to filter syscall arguments with bpf program
  • 20. 2011-2014 © PLUMgrid - Confidential Information Extended BPF •  New set of patches introduced in the Linux kernel since 3.15 (June 8th, 2014) and into 3.19 (Feb 8th, 2015), 4.0 (April 12th, 2015) and into 4.1 •  “Universal in-kernel virtual machine”* •  More registers (64 bit), safety (no crashes, finite execution…), userspace maps •  In-kernel JIT compiler (safe) à x86, ARM64, s390, powerpc*, MIPS* …. •  LLVM backend: any platform that LLVM compiles into will work. (GCC backend in the works) à PORTABILITY! Use Cases: 1.  networking 2.  tracing (analytics, monitoring, debugging) 3.  in-kernel optimizations 4.  hw modeling 5.  crazy stuff... *http://lwn.net/Articles/599755/
  • 21. 2011-2014 © PLUMgrid - Confidential Information Extended BPF program = BPF instructions + BPF maps •  BPF map: key/value storage of different types •  value = bpf_table_lookup(table_id, key) – lookup key in a table •  Userspace can read/modify the tables •  More on this on later slide BPF insns program (pre-3.15) Extended BPF insns program 2 registers + stack 32-bit registers 4-byte load/store to stack 1-8 byte load from packet Conditional jump forward +, -, *, … instructions 10 registers + stack 64-bit registers 1-8 byte load/store to stack 1-8 byte load/store to packet Conditional jump fwd and backward Same + signed_shift + bswap •  BPF instructions improvements:
  • 22. 2011-2014 © PLUMgrid - Confidential Information Extended BPF Networking Program Example Fully Programmable Dataplane Access Restrictive C program to: •  obtain the protocol type (UDP, TCP, ICMP, …) from each packet •  keep a count for each protocol in a “map”: int bpf_prog1(struct __sk_buff *skb) { int index = load_byte(skb, ETH_HLEN + offsetof(struct iphdr, protocol)); long *value; value = bpf_map_lookup_elem(&my_map, &index); if (value) __sync_fetch_and_add(value, 1); return 0; } Equivalent eBPF program (struct insns * “pretty print”) Load an incoming frame and get the IP protocol as “index” from it Lookup that IP protocol “index” in an existing map* and get current “value” If found, add 1 to the “value” LLVM GCC* JIT https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/samples/bpf/sockex2_kern.c Blazing FAST in-kernel machine code! insns 0: r6 = r1 1: r0 = *(u8 *)skb[23] 2: *(u32 *)(r10 -4) = r0 3: r1 = 0xba933f00 5: r2 = r10 6: r2 += -4 7: call 1 8: if r0 == 0x0 goto pc+2 9: r1 = 1 10: lock *(u64 *)(r0 +0) += r1 11: r0 = 0 12: exit
  • 23. 2011-2014 © PLUMgrid - Confidential Information DEMO 1 – Using BPF kprobes for “Hello World” •  Write a simple program that says “Hello World!” •  Attach it to a kprobe point: sys_clone, sys_fork,… •  Everytime that event happens, “Hello World!” on stdout •  Dynamically modify the code and update the in-kernel program “Hello, RedHat summit!” 23
  • 24. 2011-2014 © PLUMgrid - Confidential Information •  BPF programs can attach to sockets, the traffic control (TC) subsystem, kprobe, syscalls, tracepoints… •  Sockets can be STREAM (L4/UDP), DATAGRAM (L4/ TCP) or RAW (TC) •  This allows to hook at different levels of the Linux networking stack, providing the ability to act on traffic that has or hasn’t been processed already by other pieces of the stack •  Opens up the possibility to implement network functions at different layers of the stack Hooking BPF into the Linux networking stack (RX) HW/veth/cont USERSPACE TAP/Raw (RO) driver netif_receive_skb() TC / traffic control Bridge hook / prerouting IP / routing KERNELSPACE insns 1 BPF Socket (TCP/UDP) insns 5 BPF insns 2 BPF insns 3 insns 4
  • 25. 2011-2014 © PLUMgrid - Confidential Information •  BPF programs can attach to sockets, the traffic control (TC) subsystem, kprobe, syscalls, tracepoints… •  Sockets can be STREAM (L4/UDP), DATAGRAM (L4/ TCP) or RAW (TC) •  This allows to hook at different levels of the linux networking stack, providing the ability to act on traffic that has or hasn’t been processed already by other pieces of the stack •  Opens up the possibility to implement network functions at different layers of the OSI stack Hooking BPF into the Linux networking stack (TX) HW/veth/cont USERSPACE TAP/Raw (RO) driver dev_queue_xmit() TC / traffic control IP / routing KERNELSPACE insns 1 BPF Socket (TCP/UDP) For simplicity, the following slides simplify this view into a single “kernel networking stack” insns 2 BPF insns 3 insns 4
  • 26. 2011-2014 © PLUMgrid - Confidential Information •  BPF Linux ‘call’ and set of in-kernel helper functions define what BPF programs can do int bpf(BPF_PROG_LOAD, union bpf_attr *attr, unsigned int size); •  BPF code itself acts as ‘glue’ between calls to in-kernel helper functions •  BPF helpers allow for additional functionality •  ktime_get_ns (timestamp) •  skb_store_bytes (packet write) •  L3/L4 chksum replace •  map_lookup/update/delete (more on maps later) Extended BPF system usage Userspace “Call” and “Helpers” insns 1 stack Kernel space HW/veth/cont Enables “in-kernel VNFs”
  • 27. 2011-2014 © PLUMgrid - Confidential Information Extended BPF “maps” •  Maps are generic storage of different types for sharing data (key/value pairs) between kernel and userspace •  The maps are accessed from user space via BPF syscall, with commands: •  create a map with given type and attributes and receive as file descriptor: map_fd = bpf(BPF_MAP_CREATE, union bpf_attr *attr, u32 size) •  Additional calls to perform operations on the map: lookup key/value, update, delete, iterate, delete a map •  userspace programs use this syscall to create/ access maps that BPF programs are concurrently updating bpf_insn stack map_1 User space PHY space Kernel space Tables for “in-kernel VNFs”
  • 28. 2011-2014 © PLUMgrid - Confidential Information Putting it all together - Networking with BPF Example - Attach a program to a socket •  User creates an eBPF program and obtains a union bpf_attr (previous slides) that includes the insns BPF instruction set for the program. •  A userspace program loads the eBPF program: int bpf(BPF_PROG_LOAD, union bpf_attr *attr, unsigned int size); •  It also creates a map, controlled with a file descriptor map_fd = bpf(BPF_MAP_CREATE, union bpf_attr *attr, u32 size) •  Create a socket (varies depending on socket type): socket = socket(PF_INET, SOCK_STREAM,IPPROTO_TCP) •  Attach the BPF program to a socket setsockopt(socket, SOL_SOCKET, SO_ATTACH_BPF, &fd, sizeof(fd)); •  Enjoy in-kernel networking nirvana ☺ insns sock filter map_1 User space Kernel space HW/veth/cont
  • 29. 2011-2014 © PLUMgrid - Confidential Information eBPF framework for networking Building Virtual Network Infrastructure µController attachment points attachment points eBPF Execution Container Kernel space User space IO context IO Module helpers (optional)IO Module (dynamically loaded) Open repo of “IO Modules” Encap/Tunneling QoS / sched. IN-KERNEL VNFs Switching Routing Firewall insns 1 insns 2 insns 3
  • 30. 2011-2014 © PLUMgrid - Confidential Information Is there an easier/safer way to use this technology? Higher-level APIs for producing and using BPF code •  BPF ensures that programs to be loaded in the kernel won’t crash or loop forever, by running it through a “verifier” upon loading it. (BPF_PROG_LOAD) •  But it is today possible to write programs in C that would compile into invalid BPF (C is like that), and a user would only know upon trying to run it •  A BPF-specific frontend would allow for a compiler to provide feedback on the validity of the code •  BPF COMPILER COLLECTION (BCC) http://github.com/iovisor/bcc
  • 31. 2011-2014 © PLUMgrid - Confidential Information Why BCC? •  Current approaches to converting a C program to BPF involve many custom steps, tools •  clang frontend, llvm backend with BPF support •  kernel  samples/bpf/libbpf.c  APIs   •  ELF  loader  with  sec<on  rewrites   •  programs use low-level helper functions •  can be simplified
  • 32. 2011-2014 © PLUMgrid - Confidential Information Writing a BPF Program - Easy Mode •  Write your BPF program in C... inline or in a separate file •  Write a python script that loads and interacts with your BPF program •  Attach to kprobes, socket, tc filter/action •  Read/update maps •  Configuration, complex calculation/correlations •  Iterate on above and re-try...in seconds
  • 33. 2011-2014 © PLUMgrid - Confidential Information Demo 1 redux: EASY MODE •  Hello again, RedHat Summit
  • 34. 2011-2014 © PLUMgrid - Confidential Information Demo 2: Using BPF for a versatile networking application •  Let’s assume that we have a set of applications running on top of a multitenant overlay network Think an Openstack cloud running on top of VxLAN, or an IP VPN running on top of MPLS •  Let’s store statistics of all the endpoints for every “overlay”, and also the endpoints for every “underlay”, in realtime, without latency. Think seeing in realtime the traffic between all VMs of an Openstack cloud (without having to have administrative access), or being able to see the traffic between every CE router, IP phone, server or endpoint connected to the IP VPN •  Write a program that measures the traffic traversing the physical network and dynamically stores measurements of all all metadata independently of whether it’s outer (VxLAN, MPLS) or inner (Ethernet/IP). Then display on demand each level of depth
  • 35. 2011-2014 © PLUMgrid - Confidential Information Demo 2: Using BPF for a versatile networking application Dynamic analytics on a multi-level encapsulation network 35 172.16.1.1/24 192.168.0.1/24 192.168.1.1/24 192.168.3.2/24 192.168.1.2/24 192.168.0.3/24 192.168.3.3/24 172.16.1.2/24 172.16.1.3/24 vxlan 10001 vxlan 10001 vxlan 10002 vxlan 10002 vxlan 10003 vxlan 10003
  • 36. 2011-2014 © PLUMgrid - Confidential Information Our Vision 36 Thank You