SlideShare a Scribd company logo
VOSYSwitch port to ARMv8
Nikolay Nikolaev
Alexander Spyridakis
and ODP integration
Virtual Open Systems Proprietary
 Snabb and VOSYSwitch
 Porting to ARMv8
 DEMO description and performance results
 Further development
Agenda
2
Virtual Open Systems Proprietary
Virtual Open Systems developed a vSwitch solution based on
the open source Snabb network toolkit. It is written in a high-
level scripting language – Lua.
The objective was to create a pure user-space, portable
solution suitable for NFV deployments.
One of the achievements that were created within this
project is “vhost-user” which is now a de-facto standard for
provisioning virtio-net based KVM virtual machines.
Almost all of the code is written in Lua, with some syscalls in
C (now in process of migration to Lua). There is a small
amount of Assembly too.
Introducing VOSYSwitch
3
Virtual Open Systems Proprietary
Lua (/ˈluːə/ LOO-ə, from Portuguese: lua [ˈlu.(w)ɐ] meaning
moon) is a lightweight multi-paradigm programming
language designed primarily for embedded systems and
clients. Lua is cross-platform since it is written in ANSI C,
and has a relatively simple C API.
https://en.wikipedia.org/wiki/Lua_(programming_language)
The Snabb toolkit implements a high speed, user space,
packet processing in Lua. The secret sauce to make it “fast”
is the JIT compiler.
Packet processing in a high-level
language
4
Virtual Open Systems Proprietary
LuaJIT is a multi-architecture (x86, PPC, ARM, MIPS), multi-
platform (Linux, BSD, OSX, Windows) tracing JIT compiler.
Tracing just-in-time compilation is a technique used by
virtual machines to optimize the execution of a program at
runtime. This is done by recording a linear sequence of
frequently executed operations, compiling them to native
machine code and executing them. This is opposed to
traditional just-in-time (JIT) compilers that work on a per-
method basis..
https://en.wikipedia.org/wiki/Tracing_just-in-time_compilation
Packet processing on a high-level
language - continued
5
Virtual Open Systems Proprietary
As most of the software stacks, snabb is composed of several
building blocks
 Snabb core – where the “main” lives
 Library – tools and utilities
 Apps – the building blocks
 Programs – a set of apps chained together
Snabb – the upstream project
6
Virtual Open Systems Proprietary
The available Snabb apps are:
 Intel 82599 10Gbps driver with VMDq support; Solarflare
 Vhost-user and virtio-net on the device side
 Virtio-net driver, for running it in VMs
 Packet filter with connection tracking; Rate limiter
 IP/GRE tunnels
 Learning bridge
 Single process/ single thread
 Linux/x86_64 only
Snabb – the upstream project continued
7
Virtual Open Systems Proprietary
A simple example program to connect a Intel NIC to a VM
with virito
local Intel82599 = require("apps.intel.intel_app").Intel82599
local VhostUser = require("apps.vhost.vhost_user").VhostUser
local c = config.new()
config.app(c, "nic", Intel82599, {pciaddr = "0000:00:01.00"})
config.app(c, "vh1", VhostUser, {socket_path="/tmp/vh1.sock"})
config.link(c, "nic.tx -> vh1.rx")
config.link(c, "vh1.tx -> nic.rx")
engine.configure(c)
engine.main()
Snabb – a simple program
8
Virtual Open Systems Proprietary
Virtual Open Systems created VOSYSwitch solution for the
end user, by amending Snabb features with:
 JSON configuration to define a packet processing graph
 Multi-process, single thread
 OpenStack Mitaka integration
 Performance optimizations (VM2VM)
 Packet scheduler – PQ, FQ, WFQ
 A software switch with VLAN and IGMP support
 RPM/DEB packaging, systemd integration
VOSYSwitch – a vSwitch based on
Snabb
9
Virtual Open Systems Proprietary
Virtual Open Systems is currently working on a number of
new (substantial) features which are to be released this year:
 OpenFlow 1.4 support
 More overlay networks - VxLAN, NSH
 ARM/v8
 ODP
VOSYSwitch – work in progress
10
Virtual Open Systems Proprietary
The previous example implemented in VOSYSwitch’s JSON:
{
"switch1" : {
"core" : "0x1",
"devices" : {
"igb1" : {
"type" : "EthPCI",
"args" : {"pciaddr" : "0000:XX:00.1"},
"links" : { "tx": "vh1.rx"}
},
"vh1" : {
"type" : "VhostUser",
"args" : {"socket_path" : "/tmp/vh1.sock"},
"links" : { "tx": "igb1.rx"}
}
}
}
}
VOSYSwitch – JSON configuration
example
11
VM
virtio
vhost-user
TXRX
RXTX
Virtual Open Systems Proprietary
More complex topologies within the same configuration:
VOSYSwitch – more examples
12
vhost-user
rate
limiter
packet
filter
vhost-user
packet
filter rate
limiter
vhost-user
Core 1 Core 2
Virtual Open Systems Proprietary
Ixia RFC2544, simple vSwitch with 2 interfaces on the host
VOSYSwitch – performance on x86_64
13
64 128 256 512 768 1024 1280 1518
0
5000
10000
15000
20000
25000
Host switching throughput performance (RFC2544)
2_host_swtch
0.0004% Loss Tolerance
0.01% Loss Tolerance
5% Loss Tolerance
Packet Size (Bytes)
Throughput(Mbps)
VOSYSwitch
Virtual Open Systems Proprietary
 Snabb and VOSYSwitch
 Porting to ARMv8
 DEMO description and performance results
 Further development
Agenda
14
Virtual Open Systems Proprietary
The porting effort started with a lot of low-level details:
 LuaJIT limitations:
– AArch64 - interpeter
– AArch32 – ARMv7 full support
– 47bit VA limitation (LuaJIT/issues/49)
 Snabb limitations (VA/PA conversion by mask)
 64k vs 4k pages
– AArch32 compat mode
 SSE/AVX port to NEON
 gcc-armhf -march=armv8-a+crc
VOSYSwitch port to ARMv8 -
challenges
15
Virtual Open Systems Proprietary
The initial effort was done with linux-generic on x86. Mostly
without problems.
 Modules used odp_pool, odp_packet, odp_pktio
 API inconsistencies, even in the same API level
• #define ODP_EVENT_INVALID _odp_cast_scalar(odp_event_t, 0xffffffff)
• #define ODP_EVENT_INVALID _odp_cast_scalar(odp_event_t, NULL)//in ODP-DPK
 Inline functions in the API headers
 platform/linux-dpdk/include/odp/packet.h
static inline uint32_t odp_packet_len(odp_packet_t pkt) {
return *(uint32_t *)(void *)((char *)pkt + pkt_len_offset);
}
VOSYSwitch – ODP adoption
16
Virtual Open Systems Proprietary
DPDK’s ARM support is still not mature enough. The main
ODP-DPDK development was done in x86. Some of the issues
found:
 odp_pktio_send() implementation returns -1 when no
packets have been sent which is considered an error on
ODP side, but not on DPDK side.
 -msse4.2 – This code was never compiled for ARM?
 virtio-net driver for ARM
 dpdk_memcpy on arm/arm64 is a #define, so this does not
work:
return (*dpdk_memcpy)(dst, src, num);
ODP-DPDK compilation on ARMv8
17
Virtual Open Systems Proprietary
 Snabb and VOSYSwitch
 Porting to ARMv8
 DEMO description and performance results
 Further development
Agenda
18
Virtual Open Systems Proprietary
By Leveraging the ODP API, VOSYSwitch achieved very
important goals.
 Extend the number of supported platforms:
– ODP-linux-generic
– ODP-DPDK
– ODP-NADK
 Single binary running on multiple hosts
– VOSYSwitch for ARM running on both LS2085A and
Juno board
 Single binary can access multiple HW resources at once,
i.e. DPAA2 + Intel DPDK
VOSYSwitch – ODP integration
19
Virtual Open Systems Proprietary
VOSYSwitch running on LS2085ARDB
20
DPAA2
VM
odp-dpdk
VOSYSwitch
packet filter
VM
odp-dpdk
OFP
NGiNX-OFP
VOSYSwitch vSwitch
odp-nadkodp-generic
10Gbps
pktgen
httperf
Virtual Open Systems Proprietary
VOSYSwitch – vSwitch JSON
21
{
"switch1" : {
"core" : "0",
"devices" : {
...
}
}
"switch2" : {
"core" : "1",
"devices" : {
"vh_fw_out" : {
"type" : "VhostUser",
"args" : {"socket_path" : "/tmp/vh_fw_out.sock", "is_server" : true},
"links" : { "tx": "odp0.rx"}
},
"odp0" : {
"type" : "EthODP",
"args" : {"ifname" : "dpni-0", "platform" : "nadk"},
"links" : { "tx": "vh_fw_out.rx"}
}
}
}
}
Virtual Open Systems Proprietary
VOSYSwitch – packet filter JSON
22
{
"switch1" : {
"core" : "0x1",
"devices" : {
"odp_in" : {
"type" : "EthODP",
"args" : {"ifname" : "0", "platform" : "dpdk", "platform_params" : "-m32"},
"links" : { "tx": "odp_out.rx"}
},
"fw" : {
"type" : "Firewall",
"args" : {"filter" : "arp or icmp or tcp port 80", "state_table" : true},
"links" : {"tx" : "odp_in.rx"}
},
"odp_out" : {
"type" : "EthODP",
"args" : {"ifname" : "1", "platform" : "dpdk", "platform_params" : "-m32"},
"links" : { "tx": "fw.rx"}
}
}
}
}
Virtual Open Systems Proprietary
Using the Apache Bench tool to get the number of
connections per second which the demo infrastructure can
handle. Using 10 parallel streams we are able to handle 5000
connections, using single two dual core VNFs and a single
core vSwitch.
 ab -n 10000 -c 1 100.0.0.4/
– 1500 conn/s
 ab -n 10000 -c 10 100.0.0.4/
– 5000 conn/s
DEMO performance results
23
Virtual Open Systems Proprietary
 Snabb and VOSYSwitch
 Porting to ARMv8
 DEMO description and performance results
 Further development
Agenda
24
Virtual Open Systems Proprietary
ODP API proved to be very flexible and more parts of it will
be adopted.
 ODP_CRYPTO
 ODP_QUEUE, ODP_SCHEDULER
 ODP_CLASSIFICATION
VOSYSwitch – next steps for ARMv8
and ODP
25
Virtual Open Systems is already investigating into a better
LuaJIT support for ARMv8. It is becoming a major supported
platform in VOSYSwitch and bringing the best performance
and experience out of it is a major goal.
Virtual Open Systems Confidential & Proprietary
VOSYSwitch Roadmap
VOSYSwitch 16.06
OpenFlow 1.5,
VXLAN, GRO, etc.
VOSYSwitch 16.03
ARMv8 support, ODP,
OFP, link aggregation
Q4 2017Q4 2015
Custom related development services and support
Products
Services
VOSYSwich 15.12
VMtoVM, IPv6 GRE tunnels, filtering,
traffic limiter, OpenStack Mitaka
support, QoS, VLAN and IGMP,
40Gbps Ethernet support, etc.
VOSCON 16.12
VOSYSwitch 16.06
FPGA, GPU and DSP
acceleration support
for VNFs
Q2 2016Q1 2016
VOSCON 17.06
Multitenancy support
vTPM and RT, HA
Q4 2016
Virtual Open Systems Proprietary
Could we get some of these in the future:
 Tunneling interfaces offload – VxLAN, GRE
 OpenFlow switch
ODP future suggestions
27
Virtual Open Systems Proprietary
Questions
28
See our demo
In the LNG room
and on
www.virtualopensystems.com
n.nikolaev@virtualopensystems.com
a.spyridakis@virtualopensystems.com
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration

More Related Content

What's hot

LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVA
Linaro
 
BKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingBKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance Testing
Linaro
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
Linaro
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
Linaro
 
BKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVABKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVA
Linaro
 
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening KeynoteBKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
Linaro
 
LAS16-305: Smart City Big Data Visualization on 96Boards
LAS16-305: Smart City Big Data Visualization on 96BoardsLAS16-305: Smart City Big Data Visualization on 96Boards
LAS16-305: Smart City Big Data Visualization on 96Boards
Linaro
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
Linaro
 
LAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testing
Linaro
 
BKK16-207 VLANd in LAVA
BKK16-207 VLANd in LAVABKK16-207 VLANd in LAVA
BKK16-207 VLANd in LAVA
Linaro
 
Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120
Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120
Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120
Linaro
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Linaro
 
BKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing HadoopBKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing Hadoop
Linaro
 
Kernel Proc Connector and Containers
Kernel Proc Connector and ContainersKernel Proc Connector and Containers
Kernel Proc Connector and Containers
Kernel TLV
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
Linaro
 
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
Kernel TLV
 
P4 to OpenDataPlane Compiler - BUD17-304
P4 to OpenDataPlane Compiler - BUD17-304P4 to OpenDataPlane Compiler - BUD17-304
P4 to OpenDataPlane Compiler - BUD17-304
Linaro
 
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
Linaro
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
Linaro
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profit
linuxlab_conf
 

What's hot (20)

LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVA
 
BKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingBKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance Testing
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
 
BKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVABKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVA
 
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening KeynoteBKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
 
LAS16-305: Smart City Big Data Visualization on 96Boards
LAS16-305: Smart City Big Data Visualization on 96BoardsLAS16-305: Smart City Big Data Visualization on 96Boards
LAS16-305: Smart City Big Data Visualization on 96Boards
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
 
LAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testing
 
BKK16-207 VLANd in LAVA
BKK16-207 VLANd in LAVABKK16-207 VLANd in LAVA
BKK16-207 VLANd in LAVA
 
Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120
Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120
Linux-wpan: IEEE 802.15.4 and 6LoWPAN in the Linux Kernel - BUD17-120
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
 
BKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing HadoopBKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing Hadoop
 
Kernel Proc Connector and Containers
Kernel Proc Connector and ContainersKernel Proc Connector and Containers
Kernel Proc Connector and Containers
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
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
 
P4 to OpenDataPlane Compiler - BUD17-304
P4 to OpenDataPlane Compiler - BUD17-304P4 to OpenDataPlane Compiler - BUD17-304
P4 to OpenDataPlane Compiler - BUD17-304
 
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profit
 

Similar to BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration

Simplify Networking for Containers
Simplify Networking for ContainersSimplify Networking for Containers
Simplify Networking for Containers
LinuxCon ContainerCon CloudOpen China
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
Hajime Tazaki
 
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
 
Docker Multi Host Networking, Rachit Arora, IBM
Docker Multi Host Networking, Rachit Arora, IBMDocker Multi Host Networking, Rachit Arora, IBM
Docker Multi Host Networking, Rachit Arora, IBM
Neependra Khare
 
An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)
Mario Cho
 
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
Open-NFP
 
Vert.x devoxx london 2013
Vert.x devoxx london 2013Vert.x devoxx london 2013
Vert.x devoxx london 2013
Stuart (Pid) Williams
 
OSv at Usenix ATC 2014
OSv at Usenix ATC 2014OSv at Usenix ATC 2014
OSv at Usenix ATC 2014
Don Marti
 
Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Igalia
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
openflow
 
mSwitch: A Highly-Scalable, Modular Software Switch
mSwitch: A Highly-Scalable, Modular Software SwitchmSwitch: A Highly-Scalable, Modular Software Switch
mSwitch: A Highly-Scalable, Modular Software Switch
micchie
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
Matt Ray
 
OVS-LinuxCon 2013.pdf
OVS-LinuxCon 2013.pdfOVS-LinuxCon 2013.pdf
OVS-LinuxCon 2013.pdf
DanielHanganu2
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
Yongyoon Shin
 
June Boston openStack Summit: Preparing quantum for the data center
June Boston openStack Summit: Preparing quantum for the data centerJune Boston openStack Summit: Preparing quantum for the data center
June Boston openStack Summit: Preparing quantum for the data center
Kamesh Pemmaraju
 
Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015
Boris Adryan
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
Fabio Fumarola
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane
Michelle Holley
 

Similar to BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration (20)

Simplify Networking for Containers
Simplify Networking for ContainersSimplify Networking for Containers
Simplify Networking for Containers
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
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?
 
Docker Multi Host Networking, Rachit Arora, IBM
Docker Multi Host Networking, Rachit Arora, IBMDocker Multi Host Networking, Rachit Arora, IBM
Docker Multi Host Networking, Rachit Arora, IBM
 
An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)
 
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
 
Vert.x devoxx london 2013
Vert.x devoxx london 2013Vert.x devoxx london 2013
Vert.x devoxx london 2013
 
OSv at Usenix ATC 2014
OSv at Usenix ATC 2014OSv at Usenix ATC 2014
OSv at Usenix ATC 2014
 
Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
mSwitch: A Highly-Scalable, Modular Software Switch
mSwitch: A Highly-Scalable, Modular Software SwitchmSwitch: A Highly-Scalable, Modular Software Switch
mSwitch: A Highly-Scalable, Modular Software Switch
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
OVS-LinuxCon 2013.pdf
OVS-LinuxCon 2013.pdfOVS-LinuxCon 2013.pdf
OVS-LinuxCon 2013.pdf
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
 
June Boston openStack Summit: Preparing quantum for the data center
June Boston openStack Summit: Preparing quantum for the data centerJune Boston openStack Summit: Preparing quantum for the data center
June Boston openStack Summit: Preparing quantum for the data center
 
Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane
 

More from Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Linaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Linaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Linaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
Linaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
Linaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
Linaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 

More from Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Recently uploaded

Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 

Recently uploaded (20)

Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 

BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration

  • 1. VOSYSwitch port to ARMv8 Nikolay Nikolaev Alexander Spyridakis and ODP integration
  • 2. Virtual Open Systems Proprietary  Snabb and VOSYSwitch  Porting to ARMv8  DEMO description and performance results  Further development Agenda 2
  • 3. Virtual Open Systems Proprietary Virtual Open Systems developed a vSwitch solution based on the open source Snabb network toolkit. It is written in a high- level scripting language – Lua. The objective was to create a pure user-space, portable solution suitable for NFV deployments. One of the achievements that were created within this project is “vhost-user” which is now a de-facto standard for provisioning virtio-net based KVM virtual machines. Almost all of the code is written in Lua, with some syscalls in C (now in process of migration to Lua). There is a small amount of Assembly too. Introducing VOSYSwitch 3
  • 4. Virtual Open Systems Proprietary Lua (/ˈluːə/ LOO-ə, from Portuguese: lua [ˈlu.(w)ɐ] meaning moon) is a lightweight multi-paradigm programming language designed primarily for embedded systems and clients. Lua is cross-platform since it is written in ANSI C, and has a relatively simple C API. https://en.wikipedia.org/wiki/Lua_(programming_language) The Snabb toolkit implements a high speed, user space, packet processing in Lua. The secret sauce to make it “fast” is the JIT compiler. Packet processing in a high-level language 4
  • 5. Virtual Open Systems Proprietary LuaJIT is a multi-architecture (x86, PPC, ARM, MIPS), multi- platform (Linux, BSD, OSX, Windows) tracing JIT compiler. Tracing just-in-time compilation is a technique used by virtual machines to optimize the execution of a program at runtime. This is done by recording a linear sequence of frequently executed operations, compiling them to native machine code and executing them. This is opposed to traditional just-in-time (JIT) compilers that work on a per- method basis.. https://en.wikipedia.org/wiki/Tracing_just-in-time_compilation Packet processing on a high-level language - continued 5
  • 6. Virtual Open Systems Proprietary As most of the software stacks, snabb is composed of several building blocks  Snabb core – where the “main” lives  Library – tools and utilities  Apps – the building blocks  Programs – a set of apps chained together Snabb – the upstream project 6
  • 7. Virtual Open Systems Proprietary The available Snabb apps are:  Intel 82599 10Gbps driver with VMDq support; Solarflare  Vhost-user and virtio-net on the device side  Virtio-net driver, for running it in VMs  Packet filter with connection tracking; Rate limiter  IP/GRE tunnels  Learning bridge  Single process/ single thread  Linux/x86_64 only Snabb – the upstream project continued 7
  • 8. Virtual Open Systems Proprietary A simple example program to connect a Intel NIC to a VM with virito local Intel82599 = require("apps.intel.intel_app").Intel82599 local VhostUser = require("apps.vhost.vhost_user").VhostUser local c = config.new() config.app(c, "nic", Intel82599, {pciaddr = "0000:00:01.00"}) config.app(c, "vh1", VhostUser, {socket_path="/tmp/vh1.sock"}) config.link(c, "nic.tx -> vh1.rx") config.link(c, "vh1.tx -> nic.rx") engine.configure(c) engine.main() Snabb – a simple program 8
  • 9. Virtual Open Systems Proprietary Virtual Open Systems created VOSYSwitch solution for the end user, by amending Snabb features with:  JSON configuration to define a packet processing graph  Multi-process, single thread  OpenStack Mitaka integration  Performance optimizations (VM2VM)  Packet scheduler – PQ, FQ, WFQ  A software switch with VLAN and IGMP support  RPM/DEB packaging, systemd integration VOSYSwitch – a vSwitch based on Snabb 9
  • 10. Virtual Open Systems Proprietary Virtual Open Systems is currently working on a number of new (substantial) features which are to be released this year:  OpenFlow 1.4 support  More overlay networks - VxLAN, NSH  ARM/v8  ODP VOSYSwitch – work in progress 10
  • 11. Virtual Open Systems Proprietary The previous example implemented in VOSYSwitch’s JSON: { "switch1" : { "core" : "0x1", "devices" : { "igb1" : { "type" : "EthPCI", "args" : {"pciaddr" : "0000:XX:00.1"}, "links" : { "tx": "vh1.rx"} }, "vh1" : { "type" : "VhostUser", "args" : {"socket_path" : "/tmp/vh1.sock"}, "links" : { "tx": "igb1.rx"} } } } } VOSYSwitch – JSON configuration example 11 VM virtio vhost-user TXRX RXTX
  • 12. Virtual Open Systems Proprietary More complex topologies within the same configuration: VOSYSwitch – more examples 12 vhost-user rate limiter packet filter vhost-user packet filter rate limiter vhost-user Core 1 Core 2
  • 13. Virtual Open Systems Proprietary Ixia RFC2544, simple vSwitch with 2 interfaces on the host VOSYSwitch – performance on x86_64 13 64 128 256 512 768 1024 1280 1518 0 5000 10000 15000 20000 25000 Host switching throughput performance (RFC2544) 2_host_swtch 0.0004% Loss Tolerance 0.01% Loss Tolerance 5% Loss Tolerance Packet Size (Bytes) Throughput(Mbps) VOSYSwitch
  • 14. Virtual Open Systems Proprietary  Snabb and VOSYSwitch  Porting to ARMv8  DEMO description and performance results  Further development Agenda 14
  • 15. Virtual Open Systems Proprietary The porting effort started with a lot of low-level details:  LuaJIT limitations: – AArch64 - interpeter – AArch32 – ARMv7 full support – 47bit VA limitation (LuaJIT/issues/49)  Snabb limitations (VA/PA conversion by mask)  64k vs 4k pages – AArch32 compat mode  SSE/AVX port to NEON  gcc-armhf -march=armv8-a+crc VOSYSwitch port to ARMv8 - challenges 15
  • 16. Virtual Open Systems Proprietary The initial effort was done with linux-generic on x86. Mostly without problems.  Modules used odp_pool, odp_packet, odp_pktio  API inconsistencies, even in the same API level • #define ODP_EVENT_INVALID _odp_cast_scalar(odp_event_t, 0xffffffff) • #define ODP_EVENT_INVALID _odp_cast_scalar(odp_event_t, NULL)//in ODP-DPK  Inline functions in the API headers  platform/linux-dpdk/include/odp/packet.h static inline uint32_t odp_packet_len(odp_packet_t pkt) { return *(uint32_t *)(void *)((char *)pkt + pkt_len_offset); } VOSYSwitch – ODP adoption 16
  • 17. Virtual Open Systems Proprietary DPDK’s ARM support is still not mature enough. The main ODP-DPDK development was done in x86. Some of the issues found:  odp_pktio_send() implementation returns -1 when no packets have been sent which is considered an error on ODP side, but not on DPDK side.  -msse4.2 – This code was never compiled for ARM?  virtio-net driver for ARM  dpdk_memcpy on arm/arm64 is a #define, so this does not work: return (*dpdk_memcpy)(dst, src, num); ODP-DPDK compilation on ARMv8 17
  • 18. Virtual Open Systems Proprietary  Snabb and VOSYSwitch  Porting to ARMv8  DEMO description and performance results  Further development Agenda 18
  • 19. Virtual Open Systems Proprietary By Leveraging the ODP API, VOSYSwitch achieved very important goals.  Extend the number of supported platforms: – ODP-linux-generic – ODP-DPDK – ODP-NADK  Single binary running on multiple hosts – VOSYSwitch for ARM running on both LS2085A and Juno board  Single binary can access multiple HW resources at once, i.e. DPAA2 + Intel DPDK VOSYSwitch – ODP integration 19
  • 20. Virtual Open Systems Proprietary VOSYSwitch running on LS2085ARDB 20 DPAA2 VM odp-dpdk VOSYSwitch packet filter VM odp-dpdk OFP NGiNX-OFP VOSYSwitch vSwitch odp-nadkodp-generic 10Gbps pktgen httperf
  • 21. Virtual Open Systems Proprietary VOSYSwitch – vSwitch JSON 21 { "switch1" : { "core" : "0", "devices" : { ... } } "switch2" : { "core" : "1", "devices" : { "vh_fw_out" : { "type" : "VhostUser", "args" : {"socket_path" : "/tmp/vh_fw_out.sock", "is_server" : true}, "links" : { "tx": "odp0.rx"} }, "odp0" : { "type" : "EthODP", "args" : {"ifname" : "dpni-0", "platform" : "nadk"}, "links" : { "tx": "vh_fw_out.rx"} } } } }
  • 22. Virtual Open Systems Proprietary VOSYSwitch – packet filter JSON 22 { "switch1" : { "core" : "0x1", "devices" : { "odp_in" : { "type" : "EthODP", "args" : {"ifname" : "0", "platform" : "dpdk", "platform_params" : "-m32"}, "links" : { "tx": "odp_out.rx"} }, "fw" : { "type" : "Firewall", "args" : {"filter" : "arp or icmp or tcp port 80", "state_table" : true}, "links" : {"tx" : "odp_in.rx"} }, "odp_out" : { "type" : "EthODP", "args" : {"ifname" : "1", "platform" : "dpdk", "platform_params" : "-m32"}, "links" : { "tx": "fw.rx"} } } } }
  • 23. Virtual Open Systems Proprietary Using the Apache Bench tool to get the number of connections per second which the demo infrastructure can handle. Using 10 parallel streams we are able to handle 5000 connections, using single two dual core VNFs and a single core vSwitch.  ab -n 10000 -c 1 100.0.0.4/ – 1500 conn/s  ab -n 10000 -c 10 100.0.0.4/ – 5000 conn/s DEMO performance results 23
  • 24. Virtual Open Systems Proprietary  Snabb and VOSYSwitch  Porting to ARMv8  DEMO description and performance results  Further development Agenda 24
  • 25. Virtual Open Systems Proprietary ODP API proved to be very flexible and more parts of it will be adopted.  ODP_CRYPTO  ODP_QUEUE, ODP_SCHEDULER  ODP_CLASSIFICATION VOSYSwitch – next steps for ARMv8 and ODP 25 Virtual Open Systems is already investigating into a better LuaJIT support for ARMv8. It is becoming a major supported platform in VOSYSwitch and bringing the best performance and experience out of it is a major goal.
  • 26. Virtual Open Systems Confidential & Proprietary VOSYSwitch Roadmap VOSYSwitch 16.06 OpenFlow 1.5, VXLAN, GRO, etc. VOSYSwitch 16.03 ARMv8 support, ODP, OFP, link aggregation Q4 2017Q4 2015 Custom related development services and support Products Services VOSYSwich 15.12 VMtoVM, IPv6 GRE tunnels, filtering, traffic limiter, OpenStack Mitaka support, QoS, VLAN and IGMP, 40Gbps Ethernet support, etc. VOSCON 16.12 VOSYSwitch 16.06 FPGA, GPU and DSP acceleration support for VNFs Q2 2016Q1 2016 VOSCON 17.06 Multitenancy support vTPM and RT, HA Q4 2016
  • 27. Virtual Open Systems Proprietary Could we get some of these in the future:  Tunneling interfaces offload – VxLAN, GRE  OpenFlow switch ODP future suggestions 27
  • 28. Virtual Open Systems Proprietary Questions 28 See our demo In the LNG room and on www.virtualopensystems.com n.nikolaev@virtualopensystems.com a.spyridakis@virtualopensystems.com