netconf and yang integration in onos southbound interface
play

NETCONF and YANG integration in ONOS Southbound Interface Andrea - PowerPoint PPT Presentation

NETCONF and YANG integration in ONOS Southbound Interface Andrea Campanella, ON.Lab ONS 2016 -- ONOS Mini Summit #ONOSProject Outline Looking Ahead Why NETCONF and YANG in ONOS Q&A ONOS Architecture Documentation


  1. NETCONF and YANG integration in ONOS Southbound Interface Andrea Campanella, ON.Lab ONS 2016 -- ONOS Mini Summit #ONOSProject

  2. Outline • Looking Ahead • Why NETCONF and YANG in ONOS • Q&A • ONOS Architecture • Documentation • Implementation goals and challenges • NETCONF in ONOS • Utilities for YANG • Driver: tying everything together • Accomplishments #ONOSProject 2

  3. Why NETCONF? • Broaden ONOS device configuration capabilities • enable high-level, protocol-agnostic interaction with devices • Simple but powerful configuration and management protocol • RPC operations and device notifications • XML-defined messages • robust transactions for multiple devices • Support multiple device families from different vendors • IETF standard #ONOSProject 3

  4. Why YANG ? • Device information and data model • configuration and state description • High-level human readable YANG: leaf host-name { language type string; • Modularity and extensibility description "Hostname for this system"; } • Natural choice for NETCONF • one-to-one NETCONF XML mapping XML: <host-name>my.example.com</host-name> • Widespread adoption • IETF defined data model language #ONOSProject 4

  5. ONOS Architecture • Scalability, High Availability & Performance • sustain demands of service provider networks Apps • Northbound & Southbound abstractions, modularity NB Core API • allow customization without changing the core code-base ONOS Distributed Core • Protocol and device model independency SB Core API • avoid protocol or model specifics and dependencies in the core Protocols and Drivers • hidden complexity to upper layers • testability, extensibility, customization #ONOSProject 5

  6. NETCONF, YANG Implementation Goals • Clean abstraction to upper layers. • Maintain separation of concerns Protocol ONOS Core • avoid other types of communication AdapterService -> use existing SB architecture • Technology and protocol independency Adapter Protocols and Drivers • no YANG/NETCONF in ONOS core. • On-demand use and activation • Core stays independent This is where the specifics are contained #ONOSProject 6

  7. Implementation Challenges • Translate YANG model to XML • No standard content for NETCONF payload <rpc message-id="1" xmlns= "urn:ietf: • the standard YANG IETF models are params:xml:ns:NETCONF:base:1.0"> not used ? • always per-device models. • models overlap on features </rpc> • Lack of adequate tools for YANG • not general or standalone • not flexible enough #ONOSProject 7

  8. NETCONF Protocol library • NETCONF protocol • self contained bundle Interfaces • on demand activation Other Default • Interaction via interfaces implementation implementation • Modularity and extensibility • different transport protocol • different message handling SSH • NETCONF over SSH • secure and reliable • defined in RFC 6242 #ONOSProject 8

  9. NETCONF SubController • Java future with message-ids • Request-reply mechanism Netconf NetconfController.java DeviceProvider.java • enable both synchronous and asynchronous communication NetconfDevice.java • Listener mechanism for messages • device generated SSH NetconfSession.java state • notifications, alarms, shut-down • Manages devices and connections SSH protocol • SSH session and connection • maintained state • periodical retry #ONOSProject 9

  10. New YANG utility implementation • YANG to XML skeleton conversion • onos-convert-YANG bash script • decoupled from ONOS controller • YANG XML Utility • YangXmlUtils.java • encoding-decoding facility • hides language complexity • Stepstone for future YANG to JAVA generator #ONOSProject 10

  11. ONOS driver architecture outline • Device specific driver <driver name="default"manufacturer="ON.Lab" hwVersion="0.0.1" swVersion="0.0.1"> • encapsulate specific logic and code <behaviour api=InterfacePath • collection of behaviors impl=ImpementationPath /> • on-demand activation </driver> • Abstraction via behaviors • define capabilities offered by the device App • provide logic for operations • ports,controller,flowrule,power … ONOS Driver Driver • Encapsulate interaction • protocol Protocol Protocol • information #ONOSProject 11

  12. NETCONF Drivers: tying everything together • YANG, device information and NETCONF • YANG Utils • YANG XML utilities File.yang App • payload generation Drivers • NETCONF onos-yang -converter ONOS - • device specific calls runtime • proper payload Xml Skeleton YangXmlUtils • Abstraction of specific steps NetconfSession • operation results are returned #ONOSProject 12

  13. Accomplishments • Use of NETCONF and YANG in drivers • well-defined interface • protocol and drivers on demand activation • extensibility • Abstraction in Core maintained • no auto-generated code • no protocol or device specific logic • Ease of use • device isolation • simple interaction with multiple and different devices • stepstone YANG tool for drivers #ONOSProject 13

  14. Final comments: looking ahead • YANG to Java conversion • parser and translator • Continue to make management plane easy and accessible • simple device and network configuration • abstract device access • Define standard set of device commands • use standard IETF models • common YANG models #ONOSProject 14

  15. Q&A #ONOSProject 15

  16. Documentation • Get Started with ONOS • ONOS NETCONF wiki • ONOS YANG Southbound utilities wiki • Future YANG to Java implementation • ONOS architecture • NETCONF RFC 6241 • NETCONF over SSH RFC 6242 • YANG RFC 6020 #ONOSProject 16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend