• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LCA14: LCA14-209: ODP Project Update
 

LCA14: LCA14-209: ODP Project Update

on

  • 216 views

Resource: LCA14

Resource: LCA14
Name: LCA14-209: ODP Project Update
Date: 04-03-2014
Speaker: Bill Fischofer
Video: https://www.youtube.com/watch?v=jXKfL9qLazg

Statistics

Views

Total Views
216
Views on SlideShare
216
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    LCA14: LCA14-209: ODP Project Update LCA14: LCA14-209: ODP Project Update Presentation Transcript

    • Tue-4-Mar, 12:10pm, Bill Fischofer. LCA14-209: ODP project update
    • Brief intro and overview of ODP Where we’ve been Where we’re going Other ODP sessions of interest at LCA 14 Topics for Today
    • Introduction and Overview
    • What Is OpenDataPlane? • Open Source cross-platform framework for data plane applications • Common API for application portability • Multiple implementations tuned to different platforms for performance • Result: Easy app portability and performance Application Environment • Applications run in Linux user space with essentially zero system overhead OpenDataPlane Project Intro
    • Highly Regular Processing Loads • Simple operations on packets, just lots of them Highly Scalable • Networking is a prime example of an “embarrassingly parallel” problem domain • Natural fit for multi-core processing Extreme Performance Requirements • At 100Gb/s speeds, need to process 10s of millions of packets per second with minimal latency • Fertile domain for hardware offload and acceleration Data Plane Application Characteristics
    • • OpenDataPlane System Architecture Design point: Multi-core network SoCs that can run Linux on at least one core
    • Architecture • System view of ODP • Provides overall definition of components and relationships APIs • Programmer’s view of ODP • Provides a portable platform-independent framework for data plane applications • Assumes applications written in C99 and running in Linux user space or “bare metal” Linux Implementation • An embodiment of the ODP framework on a platform • Maps ODP APIs to underlying platform HW acceleration and offload capabilities for performance ODP Concepts and Components
    • ODP Design/Development Methodology Architecture APIs Implementations Iteration as multiple efficient implementations help refine architecture Stable Release 1.0 when multiple efficient implementations validated for variety of different network SoCs
    • Open Event Machine • Open Source project by NSN • See http://sourceforge.net/projects/eventmachine/ Linux NO_HZ extensions • Enable cores to be completely dedicated to ODP threads--effectively achieving “Bare Metal Linux” • Work being done by LNG (Viresh Kumar) • Results to date very promising SoC Abstraction • Separation of APIs from Implementations ODP Building Blocks
    • Queue-based event-driven programming model Run to completion Automatic scale out with number of available cores Key ODP Concepts Inherited from OpenEM
    • Use • Enable communication between entities • Hold packets, work requests, completion notifications, etc., based on the queue type • Used directly by apps and indirectly via a scheduler Key Queue Operations • odp_queue_create(name, type, params) • odp_queue_enq(queue_id, buffer) • odp_queue_deq(queue_id) • odp_queue_type(queue_id) ODP Queues
    • Example ODP Queue Usage Model ODP queue concepts inherited from Open EM Queues may be owned by HW or SW, depending on implementation Implementations may impose limits on number of queues or their sizes
    • Threads are bound to cores • Ideally 1-to-1 if sufficient cores available, but threads may share cores in smaller configurations Threads request work from a scheduler (HW or SW) • When work is received, thread processes it until: • Work is complete • Work must invoke an asynchronous service • In both cases once work is received it is processed without interruption until the work unit is complete Run to Completion
    • Automatic Scale Out Events Queue Queue Queue Queue Queue Queue Queue Thread Thread Scheduler HW or SW Threads access queued events via a scheduler that distributes them to threads or groups of threads according to a scheduling policy. Permits events to be scaled out to available cores without explicit application coding Threads may also interact with queues directly (application choice)
    • ODP Packet Processing Model
    • Where We’ve Been
    • October 2013 • ODP Project announced at LCU13 Santa Clara December 2013 • ODP Public Preview Release (v0.1) January 2014 • Redesigned OpenDataPlane.org web site launched March 2014 • ODP v0.2 planned for release Project History
    • ODP v0.1 Contents ● Threads ● Atomics and counters ● Buffers and Buffer Pools ● Basic Packet I/O, queue support ● Pure SW implementation: linux-generic ● Initial Documentation ○ Doxygen ○ PDF docs ● Public git repository ○ git://git.linaro.org/lng/odp.git ● Project web site ○ www.OpenDataPlane.org 4Q13 Activity and Deliverables
    • ODP v0.2 Additional Contents ● Packet parsing ● Atomic, Parallel, and Ordered Queues ● Timer support ● Linux NO_HZ improvements for core dedication ○ Proof of concept, ready for upstreaming work to begin ● Reference Implementations ○ Enhanced linux-generic with Netmap acceleration ○ Texas Instruments Keystone II SoC ● Enhanced project web site ● Demo applications using ODP ○ libpcap and Wireshark ○ OpenVPN 1Q14 Activity and Deliverables
    • Where We’re Going
    • ● Add 2nd and 3rd SoC reference implementations ● Begin performance tuning work ● Variant scheduler models (push / pull) ● Crypto/RNG APIs ● Additional accelerator functions (e.g., DPI, compression) ● Classification support ● Refine ODP architecture ● Non-trivial applications (e.g., NAT gateway, Snort, ClamAV, nDPI) ○ API Function/Performance validation ○ Testbench/showcase for demos Goals for Rest of 2014 - 2Q14
    • ● Next stage linux-generic reference implementation ○ Context management for stateful processing ○ Control plane interaction (Open Daylight) ● Add 4th SoC reference implementation ● Performance metrics / tuning for apps. Present results at LCU14. Goals for Rest of 2014 - 3Q14
    • ● Add 5th SoC reference implementation ● QoS additions ● Bring all implementations and docs to a full Release 1.0 level ● Release ODP v1.0 Goals for Rest of 2014 - 4Q14
    • World Domination! 2015 and Beyond
    • Thursday morning ● ODP Application Example Walkthrough Thursday afternoon ● ODP User Experience Roundtable Friday afternoon ● ODP Demos Other ODP Sessions at LCA 14
    • Thank You
    • More about Linaro Connect: http://connect.linaro.org More about Linaro: http://www.linaro.org/about/ More about Linaro engineering: http://www.linaro.org/engineering/ Linaro members: www.linaro.org/members