OpenDaylight Update November 2013 Jan Medved, Reinaldo Penno Created by Jan Medved www.opendaylight.org Agenda Intro to Opendaylight Hydrogen Release Major Feature: Model Driven Service Abstraction Layer (SAL) Asks from Netconf and Yang Created by Jan Medved www.opendaylight.org 2 What is OpenDaylight An OpenSource Project to build an ecosystem of OpenSource SDN software Multi-project Multi-vendor Created by Jan Medved www.opendaylight.org 3 OpenDaylight Project Goals Code: To create a robust, extensible, open source code base that covers the major common components required to build an SDN solution Acceptance: To get broad industry acceptance amongst vendors and users Community: To have a thriving and growing technical community contributing to the code base, using the code in commercial products, and adding value above, below and around. Created by Jan Medved www.opendaylight.org 4 Broad Industry Support for OpenDaylight Created by Jan Medved www.opendaylight.org 5 Created by Jan Medved www.opendaylight.org 6 Moving to Model-Driven SAL REST API NB Plugin 1 REST API … NB Plugin 2 REST API SB Model SB Model NB Plugin 2 NB Model NB Model Java NB Model API Java abstract NB API Java plugin NB API REST API Adaptation Plugin NB Plugin 1 Provides Contains routing info AD-SAL Java plugin SB API SB-Plugin 1 … SB Model Data Adaptation Request Routing SB-Plugin 2 Provides NB Model Data Java SB Model API SB Model Controller SB-Plugin 1 Module sal-flow { namespace "urn:opendaylight:flow:service"; prefix flow; import yang-ext {prefix ext;} importopendaylight-inventory {prefix inv;} ... SAL: Service Abstraction Layer typedef flow-table-ref { type instance-identifier; } • • grouping node-flow { leaf node { ext:context-reference "inv:node-context"; type inv:node-ref; } leaf flow-table { type flow-table-ref; } uses types:flow; } AD-SAL: “API-Driven” SAL MD-SAL: “Model-Driven” SAL rpc add-flow { input { uses node-flow; } } rpc update-flow { ... } Created by Jan... Medved Model } … MD-SAL Provides SB Model SB-Plugin 2 Controller API Yang Tools Plugin www.opendaylight.org 8 Plugin Moving to Model-Driven SAL Applications Internal Plugin NB REST API NB REST API NB REST API NB API NB API Transformer/ Adapter Platform Service Plugin Network Service Plugin NETCONF RESTCONF JAVA SAL APIs (Generated) Network Topology … NE Tunnels Links Nodes EndPoints NE Flows … …Table Table … Config Table … Flow Stats … Flow Flow NE System Table Config Stats Table Paths NE Flow MD-SAL Flow Flow JAVA SAL APIs (Generated) BGP-LS … PCEP OF x.y OfConfig / OVSDB NETCONF RESTCONF Network Elements Created by Jan Medved www.opendaylight.org Yang Models used in ODL Yang Extensions Common Base Types: Services: IETF (ietf-types, inet-types), Common base flow types, l2 types, IEEE754 floating point types Topology, Inventory, Flow Programming Services, Affinity Service Protocols: OpenFlow, BGP/BGP-LS, PCEP https://wiki.opendaylight.org/view/YANG_Tools:Available_Models Created by Jan Medved www.opendaylight.org 11 Standardization Asks Controller’s NB API: Address Space: the whole network as opposed to an NE Policies (access, address space remaps, views, request routing) Application requirements: I2RS (defining requirements) NETCONF: RESTConf Efficient binary encoding (e.g. draft-varga-netconf-exicapability) JSON encoding Query language Created by Jan Medved www.opendaylight.org 12 Standardization Asks (Yang) Yang ODL extensions (e.g. request routing, Java API generation) Yang programming language bindings (Java, Python, ...) Standard Service Models: Example: VPNs, DDoS, QoS, Topology, ... Standard Device Models: Example: IP, ACL, RIB, WADL/RSDL for RESTCONF clients Yang as IDL Created by Jan Medved www.opendaylight.org 13 Thank you Created by Jan Medved www.opendaylight.org 14 Resources More information and to join: wiki.opendaylight.org Keep informed and join the conversation IRC: #opendaylight on Freenone Open mailing lists: lists.opendaylight.org @openDaylightSDN #OpenDaylight Created by Jan Medved www.opendaylight.org 15