SlideShare a Scribd company logo
1 of 27
Download to read offline
Presented by
Date
Event
ODP Project Update
Bill Fischofer
9 February 2015
Linaro Connect HKG15
Session HKG-15-110
● Open source, open contribution framework for portable high-
performance data plane applications
OpenDataPlane - What Is It?
● Common APIs provide for application portability
● Optimized implementations of these APIs provide accelerated
performance on each platform
● Wide architecture support: ARM, MIPS, PowerPC, x86
● Designed to offer portability without sacrificing performance,
allowing wide choice in platform selection to match application
price/performance needs
Application View
OpenDataPlane - The Big Picture
SoC Vendor View
Application
Platform A Platform B Platform C
ODP API
Run on any Platform
Application A Application B Application C
ODP API
SoC Platform
Compete for any Socket
● LNG and its
members are ODP
maintainers and
its upstream
Organization
● Open Source
● Open Contribution
● BSD License
OpenDataPlane System Architecture
Design point: Multi-core network SoCs that can run Linux on at least one core
A framework, not an environment, allowing existing apps to add ODP incrementally
Multiple apps, shared
or dedicated cores
A common framework
Leverages existing SDKs
Real or virtual HW
ODP: Designed to Support Existing Apps
Existing Applications can add
ODP functionality on an
incremental basis
Apps still have access to
platform SDKs if they wish
Apps can access HW
directly if they wish (real or
virtual)
ODP implementations
leverage existing SDKs
ODP APIs
● Common definitions, build tools, and validation tests
● Open contribution, LNG is maintainer and upstream
ODP Implementations
● Developed and maintained by sponsoring owner
● Typically SoC vendor
● Can be open or closed source at implementor’s option
ODP Components
Name Owner/Maintainer Target Platform Architecture
linux-generic
Open contribution,
maintained by LNG
Pure SW, runs on any
Linux kernel. Not a
performance target.
Any
odp-dpdk
Open contribution,
developed by LNG
Intel x86 using DPDK as
SW acceleration layer
Intel x86
odp-netmap
Open contribution,
developed by LNG
Linux + NETMAP
support (experimental)
x86 + ARM
ODP Implementations - 1 of 2
Name Owner/Maintainer Target Platform Architecture
odp-keystone2 Texas Instruments TI Keystone II SoCs ARM Cortex A15
linux-qoriq Freescale Freescale QorIQ SoCs PowerPC
OCTEON Cavium Networks Cavium Octeon SoCs MIPS64
THUNDER Cavium Networks Cavium ThunderX SoC ARMv8
ODP Implementations - 2 of 2
Additional implementations under development by others
API Group Use
Buffers Fixed-sized storage blocks for application use
Classification
Parses and assigns incoming packets to Classes-of-Service (CoS) according to
Pattern Matching Rules (PMRs)
Crypto
Algorithmic offload and acceleration for encryption/decryption of packet and buffer
data
Events
Provide notification of packet arrival, buffered communication, timeouts, and
completions
Packets Manipulation and processing of Ethernet frames and their contents
ODP v1.0 API Groups
API Group Use
PktIO Abstracts logical Input/Output ports for RX/TX processing
Pools Storage management for buffers, packets, timers, and events
Queues Channels that store and deliver events
Scheduler
Handles sequencing and scale-out of event processing to available application
threads
Shared Memory Abstracts bulk memory allocation for ODP internal and application use
ODP v1.0 API Groups
API Group Use
Synchronizers Atomic operations needed for mulitprocessing
Threads Units of parallel execution
Timers Single-shot and periodic notifications of passage of time
ODP v1.0 API Groups
ODP Abstract Types
Used by applications and ODP APIs, defined by ODP
implementations to fit platform needs
● odp_pktio_t
● odp_pmr_t
● odp_pmr_set_t
● odp_pool_t
● odp_queue_t
● odp_shm_t
● odp_buffer_t
● odp_cos_t
● odp_crypto_session_t
● odp_crypto_compl_t
● odp_event_t
● odp_packet_t
● odp_packet_seg_t
ODP Functional Abstraction
ODP APIs define functions, not data structures
Applications specify what they want, implementations
determine how to do those functions optimally on their
platform
Example: odp_packet_t
packet data
(headers + payload + trailers)
headroom tailroom
odp_packet_len()
odp_packet_data() = addressability to packet offset 0
odp_packet_offset() = addressability to specified packet offset
odp_push_head()
odp_pull_head() odp_pull_tail()
odp_push_tail()
Packet Offsets and Segmentation
packet data
(headers + payload + trailers)
headroom tailroom
odp_packet_data() = addressability to packet offset 0
segment 0 segment 1 segment 2
L2 offset
L3 offset
L4 offset
seglen
odp_packet_l2_ptr ()
odp_packet_l2_ptr ()
odp_packet_l2_ptr ()
ODP Concepts: Packet Receive
Ethernet
Ethernet
Ethernet
...
PktIO Classifier
PMRs
Pool
Pool
Pool
Pool
Queue
Queue
Queue
Queue
Class of Service (CoS)
Packet storage Input to
Scheduler
ODP Concepts: Event Scheduling
Queue
Queue
Queue
...
Scheduler
Thread
Thread
...
odp_schedule()
Threads call odp_schedule() to get next event
Engine
Queues store events
Threads invoke engines via ODP APIs
Implementations “wrapper”
engines to interact with rest
of ODP infrastructure
Threads call odp_queue_enq() to add
events to queues to be scheduled for
further processing
ODP Concepts: Packet Transmit
Ethernet
Ethernet
Loopback
...
PktIO
Thread
Thread
Thread
Transmit
Engine
...
Queue
Queue
Queue
...
Back to Ingress
(not in v1.0)
TSRs
ODP Project History - 1 of 2
Tag Release Date Major Features
odp-0.1 December 2013 Initial preview release
odp-0.2 April 2014 Development checkpoint
v0.3.0 October 2014 Development checkpoint for internal use
v0.4.0 8 December 2014 Initial CUNIT test coverage
v0.5.0 16 December 2014 New Packet/buffer APIs, Classification APIs
v0.6.0 22 December 2014 Packet/buffer tests, PktIO tests, Init API changes, Crypto bug fixes
v0.7.0 9 January 2015 New timer APIs and implementation, PktIO functions, bug fixes
ODP Project History - 2 of 2
Tag Release Date Major Features
v0.8.0 16 January 2015 CPUmask, synchronizer tests, bug fixes
v0.9.0 23 January 2015 PktIO loopback, global logging, timer tests, scheduler tests
v0.10.0 30 January 2015 Events, API directory restructure, Debian packaging
v0.11.0 February 2015 Strong typing, Return code normalization, odp_errno, additional test
cases and bug fixes
v1.0 March 2015 Functionally complete, suitable for evaluation and application
development
TBD December 2015 Suitable for production application deployment
Structure and Goals
● Uses CUNIT framework
● Enable verification of conforming ODP implementations
● Provide code coverage and functional API testing
● Restricted to “sunny day” tests for now
ODP Testing and Validation
ODP Test Suite
ODP
Implementation
Pass/Fail
output
Visit opendataplane.org for information
Join the ODP mailing list: lng-odp@lists.linaro.org
Participate in ODP project calls and meetings
• Weekly call held Tuesdays at 15:00 UTC
• Next call, Tuesday 24th February
• Go to uberconference.com/opendataplane
Contribute Code/Tests/Documents/Bug Reports, etc.
Getting Involved
Tuesday
● HKG-15-209: ODP User Experience Roundtable
Wednesday
● HKG-15-301: OVS on ODP Implementation Overview
● HKG-15-305: RT vs. Core Isolation
● HKG-15-309: VLANd - First Release and Next Steps
Other ODP-Related Sessions of Interest
ODP Demos at LNG Demo Thursday
Demo set one:
ODP-Open vSwitch
Benchmarking
Demo Set two:
Performance / Overhead
with full isolation
Demo Set Three:
ODP--Crypto with GPU
For more information, visit:
Thank You
HKG15-110: ODP Project Update

More Related Content

What's hot

Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
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
 

What's hot (20)

Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
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
 
BKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing HadoopBKK16-400B ODPI - Standardizing Hadoop
BKK16-400B ODPI - Standardizing Hadoop
 
Hotplug and Virtio - Tetsuya Mukawa
Hotplug and Virtio - Tetsuya MukawaHotplug and Virtio - Tetsuya Mukawa
Hotplug and Virtio - Tetsuya Mukawa
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
 
OpenDataPlane - Bill Fischofer
OpenDataPlane - Bill FischoferOpenDataPlane - Bill Fischofer
OpenDataPlane - Bill Fischofer
 
P4 to OpenDataPlane Compiler - BUD17-304
P4 to OpenDataPlane Compiler - BUD17-304P4 to OpenDataPlane Compiler - BUD17-304
P4 to OpenDataPlane Compiler - BUD17-304
 
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-305B ILP32 Performance on AArch64
BKK16-305B ILP32 Performance on AArch64BKK16-305B ILP32 Performance on AArch64
BKK16-305B ILP32 Performance on AArch64
 
OpenDataPlane Project
OpenDataPlane ProjectOpenDataPlane Project
OpenDataPlane Project
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using Openflow
 
CentOS NFV SIG Introduction and Update
CentOS NFV SIG Introduction and UpdateCentOS NFV SIG Introduction and Update
CentOS NFV SIG Introduction and Update
 
Clang: More than just a C/C++ Compiler
Clang: More than just a C/C++ CompilerClang: More than just a C/C++ Compiler
Clang: More than just a C/C++ Compiler
 
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...
 
BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcher
 
Bluetooth LE: User Experience with iOS
Bluetooth LE: User Experience with iOSBluetooth LE: User Experience with iOS
Bluetooth LE: User Experience with iOS
 
LAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoS
 
BKK16-502 Suspend to Idle
BKK16-502 Suspend to IdleBKK16-502 Suspend to Idle
BKK16-502 Suspend to Idle
 

Similar to HKG15-110: ODP Project Update

Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
Andrea Gallo
 
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre..."APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
Edge AI and Vision Alliance
 
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
chalermpany
 
Pro smartbooksquestions
Pro smartbooksquestionsPro smartbooksquestions
Pro smartbooksquestions
yoummr
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
Tim Burks
 

Similar to HKG15-110: ODP Project Update (20)

Summit 16: ARM Mini-Summit - OpenDataPlane Monarch Release - Linaro
Summit 16: ARM Mini-Summit -   OpenDataPlane Monarch Release - LinaroSummit 16: ARM Mini-Summit -   OpenDataPlane Monarch Release - Linaro
Summit 16: ARM Mini-Summit - OpenDataPlane Monarch Release - Linaro
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
 
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?
 
5 pipeline arch_rationale
5 pipeline arch_rationale5 pipeline arch_rationale
5 pipeline arch_rationale
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
 
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre..."APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
 
Open Networking through Programmability
Open Networking through ProgrammabilityOpen Networking through Programmability
Open Networking through Programmability
 
OPEN NETWORK OPERATING SYSTEM.PPTX
OPEN NETWORK OPERATING SYSTEM.PPTXOPEN NETWORK OPERATING SYSTEM.PPTX
OPEN NETWORK OPERATING SYSTEM.PPTX
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
 
OpenDaylight Openflow & OVSDB use cases ODL summit 2016
OpenDaylight Openflow & OVSDB use cases ODL summit 2016OpenDaylight Openflow & OVSDB use cases ODL summit 2016
OpenDaylight Openflow & OVSDB use cases ODL summit 2016
 
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
 
Open daylight openstack_meetup_20140218
Open daylight openstack_meetup_20140218Open daylight openstack_meetup_20140218
Open daylight openstack_meetup_20140218
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
Pro smartbooksquestions
Pro smartbooksquestionsPro smartbooksquestions
Pro smartbooksquestions
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
 
Enforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code GenerationEnforcing API Design Rules for High Quality Code Generation
Enforcing API Design Rules for High Quality Code Generation
 
OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinar
 

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
 
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
 
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
 
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-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- 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-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

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

HKG15-110: ODP Project Update

  • 1. Presented by Date Event ODP Project Update Bill Fischofer 9 February 2015 Linaro Connect HKG15 Session HKG-15-110
  • 2. ● Open source, open contribution framework for portable high- performance data plane applications OpenDataPlane - What Is It? ● Common APIs provide for application portability ● Optimized implementations of these APIs provide accelerated performance on each platform ● Wide architecture support: ARM, MIPS, PowerPC, x86 ● Designed to offer portability without sacrificing performance, allowing wide choice in platform selection to match application price/performance needs
  • 3. Application View OpenDataPlane - The Big Picture SoC Vendor View Application Platform A Platform B Platform C ODP API Run on any Platform Application A Application B Application C ODP API SoC Platform Compete for any Socket
  • 4. ● LNG and its members are ODP maintainers and its upstream Organization ● Open Source ● Open Contribution ● BSD License
  • 5. OpenDataPlane System Architecture Design point: Multi-core network SoCs that can run Linux on at least one core A framework, not an environment, allowing existing apps to add ODP incrementally Multiple apps, shared or dedicated cores A common framework Leverages existing SDKs Real or virtual HW
  • 6. ODP: Designed to Support Existing Apps Existing Applications can add ODP functionality on an incremental basis Apps still have access to platform SDKs if they wish Apps can access HW directly if they wish (real or virtual) ODP implementations leverage existing SDKs
  • 7. ODP APIs ● Common definitions, build tools, and validation tests ● Open contribution, LNG is maintainer and upstream ODP Implementations ● Developed and maintained by sponsoring owner ● Typically SoC vendor ● Can be open or closed source at implementor’s option ODP Components
  • 8. Name Owner/Maintainer Target Platform Architecture linux-generic Open contribution, maintained by LNG Pure SW, runs on any Linux kernel. Not a performance target. Any odp-dpdk Open contribution, developed by LNG Intel x86 using DPDK as SW acceleration layer Intel x86 odp-netmap Open contribution, developed by LNG Linux + NETMAP support (experimental) x86 + ARM ODP Implementations - 1 of 2
  • 9. Name Owner/Maintainer Target Platform Architecture odp-keystone2 Texas Instruments TI Keystone II SoCs ARM Cortex A15 linux-qoriq Freescale Freescale QorIQ SoCs PowerPC OCTEON Cavium Networks Cavium Octeon SoCs MIPS64 THUNDER Cavium Networks Cavium ThunderX SoC ARMv8 ODP Implementations - 2 of 2 Additional implementations under development by others
  • 10. API Group Use Buffers Fixed-sized storage blocks for application use Classification Parses and assigns incoming packets to Classes-of-Service (CoS) according to Pattern Matching Rules (PMRs) Crypto Algorithmic offload and acceleration for encryption/decryption of packet and buffer data Events Provide notification of packet arrival, buffered communication, timeouts, and completions Packets Manipulation and processing of Ethernet frames and their contents ODP v1.0 API Groups
  • 11. API Group Use PktIO Abstracts logical Input/Output ports for RX/TX processing Pools Storage management for buffers, packets, timers, and events Queues Channels that store and deliver events Scheduler Handles sequencing and scale-out of event processing to available application threads Shared Memory Abstracts bulk memory allocation for ODP internal and application use ODP v1.0 API Groups
  • 12. API Group Use Synchronizers Atomic operations needed for mulitprocessing Threads Units of parallel execution Timers Single-shot and periodic notifications of passage of time ODP v1.0 API Groups
  • 13. ODP Abstract Types Used by applications and ODP APIs, defined by ODP implementations to fit platform needs ● odp_pktio_t ● odp_pmr_t ● odp_pmr_set_t ● odp_pool_t ● odp_queue_t ● odp_shm_t ● odp_buffer_t ● odp_cos_t ● odp_crypto_session_t ● odp_crypto_compl_t ● odp_event_t ● odp_packet_t ● odp_packet_seg_t
  • 14. ODP Functional Abstraction ODP APIs define functions, not data structures Applications specify what they want, implementations determine how to do those functions optimally on their platform
  • 15. Example: odp_packet_t packet data (headers + payload + trailers) headroom tailroom odp_packet_len() odp_packet_data() = addressability to packet offset 0 odp_packet_offset() = addressability to specified packet offset odp_push_head() odp_pull_head() odp_pull_tail() odp_push_tail()
  • 16. Packet Offsets and Segmentation packet data (headers + payload + trailers) headroom tailroom odp_packet_data() = addressability to packet offset 0 segment 0 segment 1 segment 2 L2 offset L3 offset L4 offset seglen odp_packet_l2_ptr () odp_packet_l2_ptr () odp_packet_l2_ptr ()
  • 17. ODP Concepts: Packet Receive Ethernet Ethernet Ethernet ... PktIO Classifier PMRs Pool Pool Pool Pool Queue Queue Queue Queue Class of Service (CoS) Packet storage Input to Scheduler
  • 18. ODP Concepts: Event Scheduling Queue Queue Queue ... Scheduler Thread Thread ... odp_schedule() Threads call odp_schedule() to get next event Engine Queues store events Threads invoke engines via ODP APIs Implementations “wrapper” engines to interact with rest of ODP infrastructure Threads call odp_queue_enq() to add events to queues to be scheduled for further processing
  • 19. ODP Concepts: Packet Transmit Ethernet Ethernet Loopback ... PktIO Thread Thread Thread Transmit Engine ... Queue Queue Queue ... Back to Ingress (not in v1.0) TSRs
  • 20. ODP Project History - 1 of 2 Tag Release Date Major Features odp-0.1 December 2013 Initial preview release odp-0.2 April 2014 Development checkpoint v0.3.0 October 2014 Development checkpoint for internal use v0.4.0 8 December 2014 Initial CUNIT test coverage v0.5.0 16 December 2014 New Packet/buffer APIs, Classification APIs v0.6.0 22 December 2014 Packet/buffer tests, PktIO tests, Init API changes, Crypto bug fixes v0.7.0 9 January 2015 New timer APIs and implementation, PktIO functions, bug fixes
  • 21. ODP Project History - 2 of 2 Tag Release Date Major Features v0.8.0 16 January 2015 CPUmask, synchronizer tests, bug fixes v0.9.0 23 January 2015 PktIO loopback, global logging, timer tests, scheduler tests v0.10.0 30 January 2015 Events, API directory restructure, Debian packaging v0.11.0 February 2015 Strong typing, Return code normalization, odp_errno, additional test cases and bug fixes v1.0 March 2015 Functionally complete, suitable for evaluation and application development TBD December 2015 Suitable for production application deployment
  • 22. Structure and Goals ● Uses CUNIT framework ● Enable verification of conforming ODP implementations ● Provide code coverage and functional API testing ● Restricted to “sunny day” tests for now ODP Testing and Validation ODP Test Suite ODP Implementation Pass/Fail output
  • 23. Visit opendataplane.org for information Join the ODP mailing list: lng-odp@lists.linaro.org Participate in ODP project calls and meetings • Weekly call held Tuesdays at 15:00 UTC • Next call, Tuesday 24th February • Go to uberconference.com/opendataplane Contribute Code/Tests/Documents/Bug Reports, etc. Getting Involved
  • 24. Tuesday ● HKG-15-209: ODP User Experience Roundtable Wednesday ● HKG-15-301: OVS on ODP Implementation Overview ● HKG-15-305: RT vs. Core Isolation ● HKG-15-309: VLANd - First Release and Next Steps Other ODP-Related Sessions of Interest
  • 25. ODP Demos at LNG Demo Thursday Demo set one: ODP-Open vSwitch Benchmarking Demo Set two: Performance / Overhead with full isolation Demo Set Three: ODP--Crypto with GPU
  • 26. For more information, visit: Thank You