ODP Launch Overview
www.linaro.org
Networking Trends
•
Networking silicon vendors have evolved data plane SDKs for years
o OEMs have pushed for a more common data plane interface for nearly as long o No cross industry group has sanctioned a common interface on diverse silicon o Network Functions Virtualization (NFV) initiative further spotlights the importance
of standard interfaces
•
Group of 12 networking stakeholders surveyed open source landscape
o Many interesting cross platform projects with merits & disadvantages
Netmap, PF-Ring, UIO and others
o Also investigated vendor-specific SDKs
Consensus:
No ideal, “one-size fits all” implementation for diverse
www.linaro.org
• All designed and highly optimized for the specific vendor’s silicon they were intended for…with no practical provision to have the industry port them to other vendor silicon
Some Proprietary Networking SDKs
Vendor Run Time Env Hardware Year of
introduction
Broadcom HyperExec, NetOS XLR/XLS/XLP 2004 Cavium Simple Executive OCTEON 2005 Freescale Light Weight Executive (LWE) QorIQ 2009
Intel DPDK X86+Intel NIC 2009
Tilera Zero-Overhead Linux (ZOL), Bare Metal Environment(BME), Netlib
www.linaro.org
But, we all agree that…
•
A free, open source, cross-platform data plane interface is needed
•
Must be truly open source, open contribution & open collaboration
o Multi-stakeholder, completely open to any relevant architecture desired by the industry
•
Like the OpenGL model: A software API at a higher level of
abstraction, offering flexibility of implementations that suit diverse
needs.
o A common API, but with multiple underlying implementations, each highly optimized for the intended hardware it was designed for
•
The Linaro non-profit, open source, software engineering
organization is launching just such a collaboration…
www.linaro.org
•
Organization created to enable collaboration in optimizing open source
software for ARM-based System-on-Chips
•
Addresses under-resourced projects and contributes optimizations
•
Distributions pull code
directly from upstream
•
Produces validated kernels
and tools leveraged by all
•
Provides framework for
open collaboration
o Linaro members
o Community and Open Source
developers
•
3+ Years & 180+ Engineers
•
#3 kernel contributor
Linaro – Organization & Contributions
Upstream Projects
kernel.org gnu.org AOSP…
Linaro
Engineering team from Linaro & Members
Distributions pull from upstream Supported Kernels &
www.linaro.org
LEG Members
•
Formed in November 2012
•
Working on core open-source software
for ARM servers
o Boot architecture – UEFI/ACPI o Virtualization – KVM/Xen
o ARMv8 bringup & optimization
o LAMP, OpenJDK, Hadoop, OpenStack
•
Reduces costs, eliminates fragmentation,
accelerates
time to market
•
Enables members to focus on innovation
and differentiated value-add
•
Server platforms will play a significantly
bigger role in next generation networks
Linaro Enterprise Group (LEG)
www.linaro.org
•
Formed in February 2013
•
Working on core open-source
software for networking equipment
•
Leverages Linaro’s shared
engineering model
•
Delivering Linux software for next
generation low-power hardware
o Data Plane interfaces & frameworks o Real Time Support
o Virtualization for networking equipment o Multi-core SoC Power management o Mixed-endian legacy code support
Linaro Networking Group (LNG)
http://www.linaro.org/engineering/lng
LNG Members
www.linaro.org
ODP Requirements I
•
Hardware abstraction without diminishing innovation
o Abstract, not expose, the hardware- innovation, not lowest common denominator
•
Event based programming model abstraction for handling IO
o Logical queue-based interface
o Supports packet flows, physical/virtual network interfaces, accelerators, SW endpoints o Events represent different types of data that should be processed: packets, timers,
baseband data, HW notifications, SW messages...
•
Supports different I/O load balancing approaches
o Enables implicit synchronisation and mutual exclusion between threads
o Use as many (or few) cores as traffic load and SLA’s require and use them efficiently.
•
Demonstrated cross-platform support for multiple architectures,
www.linaro.org
•
Supports scheduler based IO model
o Enables scheduling of IO events using different algorithms and knowledge of work in
progress
o Support for both HW and SW based schedulers
•
Open standard, open source code, open contribution
o Should be designed and developed by a representative cross section of stakeholders
•
Scalable and elastic timer support
o Support vast number of timers, associated with flows, not locked to cores
•
Power/performance management
o API’s for applications to monitor traffic load and latencies: if supported by the hardware o Support adding/removing worker threads (cores), yielding to host OS
•
vSwitch integration
o Efficient and robust vSwitch integration, with hardware acceleration, if supported
www.linaro.org
High Level Architecture of ODP
ODP embraces and extends existing proprietary, optimized vendor-specific hardware blocks and software libraries to provide interoperability with minimal overhead
Generic Linux App Generic Linux App ODP App ODP App ODP App
ODP
Vendor specific hardware blocks and software libraries
SoC
Linux
www.linaro.org
•
Event Machine
o Event-based I/O object handling paradigm and application interface
•
SoC Abstraction
o Portable APIs for access to SoC resources, accelerators etc
•
Bare Metal Linux
o Minimal overhead and deterministic execution in Linux user space
The Pillars of ODP
EM
SoCA BML
www.linaro.org
Example Logical View of Packet Processing Flow
Ingress interfaces Scheduler* Thread Thread Thread Thread queue queue queue queue queue Classifier* queue queue queue Crypto Axel queue queue queue queue queue queue queue queue Scheduler/ Shaper* Egress interfaces
Wirespeed domain Non-wirespeed domain Wirespeed domain
www.linaro.org
•
The team is working on architectural documents, a white paper,
establishing an early prototype and then outlining a roadmap
o Architecture Preview available on www.opendataplane.org o Initial specification to be published by end of 2013
•
Before settling on APIs, organic proof points on multiple platforms
of different CPU architectures will be developed and integrated
o Existing SoC SDKs will be integrated as part of these proof points
•
The project will release incremental builds progressing over several
quarters
o All work after and including the 0.1 initial release will be open for contribution by the entire community
More about Linaro: http://www.linaro.org/about/
More about Linaro engineering: http://www.linaro.org/engineering/
How to join: http://www.linaro.org/about/how-to-join