Author: Maros Marsalek (Honeycomb PTL)

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
November 2013 Jan Medved, Reinaldo Penno
Proposal: Model-Driven SAL for the OpenDaylight Controller
COM vs. CORBA.
A component- and message-based architectural style for GUI software
January 2014 Thomas D. Nadeau
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
OpenDaylight: An Open Source SDN for Your OpenStack Cloud Stephan Baucke, Ericsson Kyle Mestery, Cisco Anees Shaikh, IBM Chris Wright,
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt Vpn service Ericsson.
Created by Jan Medved BGP/PCEP update December 2013 Robert Varga.
OpenDaylight Architecture ONF Member Work Day February 12 th, 2015 Colin TSC Chair, OpenDaylight Principal Engineer, Brocade.
Gap Analysis of Simplified Use of Policy Abstractions (SUPA) Presenter: Jun Bi draft-bi-supa-gap-analysis-02 IETF 92 SUPA BoF Dallas, TX March 23, 2015.
Application architectures
PAWN: A Novel Ingestion Workflow Technology for Digital Preservation
ACTN Proposed Protocol Work Dhruv Dhody 91 st Honolulu.
NOV 20, 2014 Abi Varghese Tiju John Mahesh Govind
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Ed Warnicke – Note: Read with animations
1 Connect | Communicate | Collaborate Motivation When utilizing special-purpose networking you need to bring the network into place end-to-end GÉANT services.
EARTH SCIENCE MARKUP LANGUAGE “Define Once Use Anywhere” INFORMATION TECHNOLOGY AND SYSTEMS CENTER UNIVERSITY OF ALABAMA IN HUNTSVILLE.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Network Management Fourteen Meeting. Principles Of Network Management Telecommunications management network (TMN) provides a framework for telecommunications.
David Adams ATLAS ATLAS Distributed Analysis David Adams BNL March 18, 2004 ATLAS Software Workshop Grid session.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
© Hitachi, Ltd All rights reserved. NETCONF Configuration I/F Advertisement by WSDL and XSD Hideki Okita, Tomoyuki Iijima, Yoshifumi Atarashi, Ray.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
Protocol for I2RS I2RS WG IETF #89 London, UK Dean Bogdanovic v0.1.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Comanche A GUI management tool for Apache Daniel López Ridruejo
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Dissuasion, Working Group Scope and Deliverables Lou Berger Pat Thaler
December 30, 2015 Richard Chien Marko Lai Jason Yuan
Controller spin-off proposals
Integration Patterns in BizTalk Server 2004 Integration Patterns Explained What are integration patterns? What patterns does BizTalk Server 2004 provide.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
Created by Jan Medved I2RS Related/Relevant Yang Models Currently in Use March 2014 Robert Varga, Anton Tkacik, Jan Medved.
1 CLASS – Simple NOAA Archive Access Portal SNAAP Eric Kihn and Rob Prentice NGDC CLASS Developers Meeting July 14th, 2008 Simple NOAA Archive Access Portal.
GT3 Index Services Lecture for Cluster and Grid Computing, CSCE 490/590 Fall 2004, University of Arkansas, Dr. Amy Apon.
Azher Mughal / Beraldo Leal Programming OpenFlow Flows for Scientific Profit 1 Azher Mughal / Beraldo Leal SuperComputing 2015.
ECHO Technical Interchange Meeting 2013 Timothy Goff 1 Raytheon EED Program | ECHO Technical Interchange 2013.
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
Test and Performance Integration Group.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
AMSA TO 4 Advanced Technology for Sensor Clouds 09 May 2012 Anabas Inc. Indiana University.
Access Grid Workshop – APAC ‘05 Node Services Development Thomas D. Uram Argonne National Laboratory.
Common Transport Rafael Schloming. Objectives Scaling Engineering Time ● N experts in protocol & language -> 1 protocol expert & N language experts ●
OpenDaylight Hydrogen Release Sept 2, 2013.
SDN Controller/ Orchestration/ FastDataStacks Joel Halpern (Ericsson) Frank Brockners (Cisco)
Introduction  Model contains different kinds of elements (such as hosts, databases, web servers, applications, etc)  Relations between these elements.
Honeycomb + fd.io Ed Warnicke. Fast Data Scope Fast Data Scope: IO Hardware/vHardware cores/threads Processing Classify Transform Prioritize Forward Terminate.
1 Needing an extensible Mount syntax across Schema, Alias, & Peers IETF 95 Eric Voit, Alex Clemm April 4 th 2016.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Only Use FD.io VPP to Achieve high performance service function chaining Yi Intel.
Overlay Network Engine (ONE)
LISP Flow Mapping Service
Multi-layer software defined networking in GÉANT
ODL SFC and VPP Integration
Programmable Overlays with VPP
Honeycomb design and architecture
Open Source distributed document DB for an enterprise
SOFTWARE DESIGN AND ARCHITECTURE
Author: Maros Marsalek (Honeycomb PTL)
ONOS Drake Release September 2015.
Northbound API Dan Shmidt | January 2017
Woojoong Kim Dept. of CSE, POSTECH
Presentation transcript:

Author: Maros Marsalek (Honeycomb PTL) VPP management agent Author: Maros Marsalek (Honeycomb PTL)

What is Honeycomb? Management agent for VPP providing northbound interfaces: RESTCONF NETCONF Connected to a custom translation layer handling Accepting configuration request described in YANG on one end and invoking VPP API calls on the other Accepting operational data requests and invoking VPP API calls transforming the result into YANG described data Operational data are handled similarly just in the opposite direction: invoking VPP API calls transforming the result into YANG described data

More information on HC + VPP: https://fd.io/technology Honeycomb and VPP VPP’s low level, high performance, shared memory APIs Exposed as high level NETCONF/YANG or RESTCONF APIs Easily consumable by e.g. Opendaylight controller Bare Metal/ VM/Container Data Plane Management Agent Honeycomb is on top of VPP, using its low level high performance shared memory APIs. Exposing them as high level NETCONF or RESTCONF APIs using YANG models, which are easily consumable by e.g. Opendaylight controller. Demo of an ODL based application talking to VPP through Honeycomb’s NETCONF is linked at the end of presentation (virtual bridge domain application). Data Plane Packet Processing More information on HC + VPP: https://fd.io/technology

Honeycomb - Building on existing components Honeycomb (HC) Builds on existing Opendaylight components and tools: Yangtools – YANG language parser, data tree Md-sal – BA and BI* representation of YANG structures, APIs Netconf – Netconf northbound server Restconf – Restconf northbound server Wired into a special data processing pipeline It is not just an Opendaylight application Yangtools for: yang language parser Data tree (tree like collection optimized for storing YANG structures) as in-memory database Md-sal for BA (java code) representation of YANG structures. In ODL there are 2 forms of data described by YANG (In HC, both forms are used): BI – binding independent – generated code is not used and only DOM like structures represent the data. BA – binding aware – instantiated generated code and MD-SAL APIs (which are implemented by Honeycomb in order to wire with NETCONF, RESTCONF) Netconf for NETCONF northbound server optimized to work with MD-SAL APIs (used completely as is) Restconf for REST northbound server optimized to work with MD-SAL APIs (used completely as is) NOT just an ODL application, it is a different distribution of ODL components + custom implementation for MD-SAL components + wiring to provide special way of data handling (not possible in a regular ODL application) * BA and BI - Binding Aware and Binding Independent java code representation on YANG structures.

Generic design approach Data processing pipeline is completely generic Translation layer is generic and extensible => Making Honeycomb not just VPP specific agent VPP specific translation is a “Honeycomb plugin” We tried to design/develop Honeycomb as generic as possible making it not just VPP specific agent but in the future a framework for Java based agents providing NETCONF/RESTCONF/BGP(maybe) northbounds. All the specific translation functionality is self-contained in plugins for translation layer + their YANG models.

Honeycomb architecture Honeycomb components and their APIs Honeycomb core functionality is split into 2 layers: Data processing layer Pipeline processing data from northbound interfaces down to translation layer Translation layer Invoked by above layer to handle configuration updates or when polling operational state from VPP Specific translation code lives in this layer in a form of extensions/plugins Data processing layer implements OLD’s API called DataBroker (DataBroker is an interface for transactional manipulation of data, exposing CRUD operations). It is BI (binding independent) (generated code is NOT used) and uses just DOM like representation of YANG structures. This makes it generic, since it does not depend on generated code for YANG models. Plus it also enables it to easily wire with existing implementations of NETCONF and RESTCONF northbound servers from Opendaylight. Translation layer exposes Honeycomb’s custom APIs. They are utilizing BA (binding aware) representation of YANG structures (instances of generated Java code from YANG). It is still generic, since the models are brought in with the plugins (implementations of Readers and Writers). Readers and writers APIs are split in terms of APIs, to provide the freedom for plugins in case their YANG models are asymetrical (Config and Operational data are too different). VPP is exposing its standard low level shared memory APIs and JVpp on top of VPP is exposing the same APIs, just available for Java code. Next slides zoom in on each layer..

This diagram shows Honeycomb’s layer with their major components Also shows how VPP specific translations are in a self contained translation layer extension

Data processing layer Custom DataBroker implementation Config/Operational data trees provide abstraction on top of Translation layer for DataBroker Config data flowing through DataTree storage to the translation layer Operational data polled and translated on demand from the translation layer Context DataTree In addition to configuration, Honeycomb needs to provide a storage for mapping contexts (non deriveable information about YANG <-> VPP mapping) Data processing pipeline is the pipeline from NETCONF/RESTCONF northbounds down to translation layer DataBroker is MD-SAL API that handles all data processing operations. Honeycomb implements a custom one. This isn’t on the diagrams, but: Context DataTree is a special storage provided to translation layer so that plugins can store any non-config information required for their translations e.g. interface name from YANG -> Interface ID in VPP

Honeycomb config write sequence Basically, data are applied to data tree for initial validation Only after they are valid they are passed to translation layer And after translation layer succeeds, data tree root is updated and OK response is sent to user

Honeycomb operational read sequence Bassically, it goes straight to VPP for data and returns to user performing transformations on the fly

Translation layer Composite/tree-like implementation Extensible Separates readers and writers: Readers - responsible for reading operational data subtrees Writers – responsible for writing configuration data subtrees Plugins provide a set of readers and/or writers Readers and writers receive/provide data in BA format Translation layer shelters all the translation code (packaged in plugins) and invokes whatever necessary whenever it is necessary. Translation layer uses separate registries for config and operational. These registries hold all the readers and writers provided by plugins and are called by the data processing layer. For writes, plugins literally just receive data in BA format (instances of Java code generated for yang by yangtools + mdsal + maven plugin) and invoke appropriate VPP calls. For Reads, plugins return data in BA format constructed from whatever VPP returned. Translation layer provides basic framework for readers/writers + lots of utilities, base implementations etc. to make the plugin development easier.

Adding features to Honeycomb Make sure VPP binary APIs exist Define a YANG model for them Often models already exist e.g. ietf models Generate Java bindings for YANG model Write relatively small translation code for translation layer framework ”Wire” the new translation code into HC translation layer This is how Honeycomb features are currently developed… If VPP already provides the APIs, you just need a model then write small code for the translation fitting into Honeycomb’s framework And after updating wiring configuration, Honeycomb has new features Currently all VPP related features live in Honeycomb project, but we would like to get them into dedicated projects later

VPP Java APIs Auto-generated Java APIs for VPP Supports all functionality available via low level VPP APIs Component JVpp is part of VPP build Uses JNI (Java Native interface) Asynchronous Generators vpe.api definition as input Python Honeycomb needs an interface to VPP to actually invoke the calls. That’s where JVpp comes in … it’s JNI based, fully-generated Java code working on top of VPP’s shared memory APIs, making it possible for any JVM application to manage&monitor VPP

Current features - Infrastructure RESTCONF Direct and simple management or monitoring of VPP NETCONF Similar to RESTCONF, but more suitable for controllers e.g. Opendaylight Configuration data to VPP Updating current configuration in VPP Operational data from VPP Reading current state from VPP on demand Persistence & restoration of configuration Covers VPP crashes, Honeycomb crashes or both This is changing “rapidly” but in the time of writing this ppt. NETCONF is more suitable for controllers since its faster and transaction based + ODL does not have RESTCONF southbound plugin at the moment.

Current features – VPP configuration Basic interface management Vhost user interface Tap interface Bridge domain Vxlan tunneling Vlan management This is changing “rapidly” but in the time of writing this ppt Each supports both config and operational data. Enabling full management (CRUD operations) of VPP for these features. Basic interface management enable/disable IP settings Vlan management Subinterface management Tag matching Tag rewrite

What’s next Notifications support Infrastructure Vpp features Notifications support Minimal distribution (with minimal code footprint) BGP L2 ACLs LISP Routes management NSH Vxlan-gpe Some of the items in our backlog we would like to work on in the near future

Links and pointers for Honeycomb Wiki - https://wiki.fd.io/view/Honeycomb POSTMAN request collection - https://wiki.fd.io/view/Honeycomb/Running_Honeycomb#Using_RES TCONF_northbound JIRA - https://jira.fd.io/projects/HONEYCOMB Gerrit - https://gerrit.fd.io/r/#/admin/projects/honeycomb Mailing-list – honeycomb-dev@lists.fd.io IRC channel - #fdio-honeycomb at freenode Virtual bridge domain application demo - https://www.youtube.com/watch?v=vs1XzOOpaCo&feature=youtu.be Wiki provides general information, how to setup and run guides