yang user interface yangui in opendaylight
play

YANG User Interface (YANGUI) in OpenDaylight Chris Metz, - PowerPoint PPT Presentation

YANG User Interface (YANGUI) in OpenDaylight Chris Metz, chmetz@cisco.com Daniel Malachovsky, dmalacho@cisco.com Juraj Sebin, jsebin@cisco.com ODL Summit, July 29, 2015 Contents Setup & Problem Statement YANGUI


  1. YANG User Interface (YANGUI) in OpenDaylight Chris Metz, chmetz@cisco.com Daniel Malachovsky, dmalacho@cisco.com Juraj Sebin, jsebin@cisco.com ODL Summit, July 29, 2015

  2. Contents • Setup ¡& ¡Problem ¡Statement ¡ • YANGUI ¡Architecture ¡and ¡Func;ons ¡ • Observa;ons ¡ • YANGUI ¡Live ¡Demo ¡ • Summary ¡& ¡References ¡

  3. Setup (1) – Models and YANG • YANG ¡-­‑ ¡data ¡model ¡language ¡for ¡configura;on, ¡state ¡data, ¡opera;ons ¡and ¡ no;fica;ons ¡for ¡network ¡elements ¡and ¡services ¡ • Value ¡in ¡model-­‑driven ¡soKware ¡engineering ¡(i.e. ¡code ¡derived ¡from ¡ models) ¡ • Orchestra;on/Controller ¡vehicles ¡becoming ¡model-­‑driven ¡ • Evolving ¡SDN/NFV ¡apps ¡employing ¡service ¡and ¡device ¡models ¡ • Vendor ¡implementa;ons ¡ ¡ ¡ MDSE ¡= ¡Model-­‑Driven ¡So0ware ¡Engineering ¡ 3 ¡

  4. Setup (2) – YANG has become a defacto Industry Standard Source: ¡hTp://www.claise.be/2015/06/ieZ-­‑yang-­‑modules-­‑sta;s;ques/ ¡ ¡

  5. Setup (3) – Some YANG Tools for App Developers Yang ¡Plug-­‑in ¡for ¡Sublime ¡Text ¡Editor ¡ • hTps://github.com/apackeer/sublime-­‑yang-­‑syntax ¡ • • YANG ¡Model ¡documenta;on ¡and ¡valida;on ¡tools ¡wriTen ¡in ¡Python ¡ • hTps://github.com/mbj4668/pyang ¡ • Yang ¡Plug-­‑in ¡for ¡Eclipse ¡IDE ¡ • hTps://github.com/xored/yang-­‑ide/wiki/Setup-­‑and-­‑build ¡ ¡ More ¡at: ¡hTp://www.yang-­‑central.org/twiki/bin/view/Main/YangTools ¡

  6. SetUp (4) – App Developers in ODL YANG ¡Model ¡Skills ¡ HTML5/CSS/Javascript/Python/Java/etc ¡ New ¡Service ¡or ¡ App(s) ¡ Network ¡Func;on ¡ REST ¡API ¡ YANG ¡ YANG ¡ YANG ¡ ODL ¡ YANGTools ¡ Editor ¡ Model(s) ¡ Model(s) ¡ YANG ¡ ¡ network ¡ Valida;on ¡

  7. Problem Statement • Exis;ng ¡yang ¡tools ¡are ¡mostly ¡confined ¡to ¡model ¡edi;ng ¡and ¡valida;on. ¡ ODL ¡app ¡developers ¡to ¡a ¡large ¡extent ¡need ¡to ¡work ¡with ¡both ¡YANG ¡ models ¡and ¡REST ¡APIs ¡(amongst ¡other ¡programming ¡skills) ¡ • What ¡is ¡needed ¡is ¡an ¡MDSE ¡approach ¡for ¡app ¡development ¡in ¡the ¡ODL ¡ environment. ¡Requirements: ¡ • Simplify ¡model ¡valida;on ¡and ¡REST ¡API ¡exposure ¡ • Efficient ¡REST ¡API ¡organiza;on ¡and ¡access ¡ • Dynamically ¡generated ¡WEB-­‑based ¡User ¡Interface ¡ • Need ¡to ¡demys;fy ¡the ¡“connec;on” ¡between ¡YANG ¡models ¡and ¡ODL ¡ Applica;ons ¡ ¡ ¡ ¡ ¡ ¡ ¡

  8. Solution: YANGUI Application for OpenDaylight # Network#ApplicaJons# DLUX # OrchestraJons,#Services# &#Development# OpenStack# DDoS#ProtecJon # SDNI#Wrapper # VTN#Coordinator # Neutron # AAA"#AuthN#Filter # NB#APIs# OpenDaylight#APIs#(REST) # Topology# Inventory# FRM# Neutron# GBP# SDNI# # L2# VTN# ApplicaJons# NIC # ReservaJon # VPN#Service # SFC # ALTO # DIDM # Aggregator # Manager # Service # Service # Switch # MAPLE # Topology# DOCSIS# BGP # LISP# TCP" Plugin#Services# Discovery # Plugin20C # OVSDB # IoTDM # USC#Manager # LACP # Processing # AbstracJon # PCEP # MD5 # Service # Controller#plaVorm# MD"SAL#/#Yangtools # Persistence # TSDR # SB#interfaces#&# OpenFlow# PCMM/ BGP # LISP # NETCONF # SNBI # Plugin20C # SNMP # OVSDB # IoT # USC # CAPWAP # SXP # OPFLEX # protocols#plugins# # COPS # PCEP # OpenFlow#Enabled# AddiJonal#Virtual#&# Open#vSwitches # Devices # Physical#Devices #

  9. What is YANGUI? • ODL ¡DLUX-­‑based ¡Applica;on ¡designed ¡to ¡simplify ¡and ¡facilitate ¡applica;on ¡ development ¡and ¡tes;ng ¡ • Generates ¡and ¡renders ¡a ¡simple ¡UI ¡based ¡on ¡YANG ¡models ¡loaded ¡into ¡ ODL ¡ ¡ • Features ¡ • Developed ¡and ¡supported ¡in ¡DLUX ¡UI ¡framework ¡ • Karaf ¡install ¡ • Model ¡valida;on ¡ • Lists/executes ¡RESTCONF ¡APIs ¡ • Supports ¡API ¡request ¡history, ¡collec;ons, ¡paramateriza;on ¡and ¡JSON ¡display ¡

  10. RESTCONF ¡ YANGUI ODL Components MD-­‑SAL ¡'s ¡RESTful ¡interfaces ¡ • Generates ¡REST ¡URL ¡from ¡YANG ¡modules ¡ • Validates ¡data ¡against ¡schema ¡ • Translates ¡data ¡to ¡MD-­‑SAL ¡internal ¡format ¡ • (DOM) ¡ MD-­‑SAL ¡ core ¡of ¡controller ¡ • provides ¡request ¡rou;ng ¡and ¡infrastructure ¡ • to ¡support ¡service ¡adapta;on ¡ RESTCONF ¡ YANGTools ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡MD-­‑SAL ¡ YANGTools ¡ reads ¡and ¡processes ¡YANG ¡modules. ¡ • Set ¡of ¡libraries ¡MD-­‑SAL ¡uses ¡to ¡process ¡ • YANG ¡modules ¡and ¡YANG ¡modeled ¡data ¡ translates ¡YANG ¡modules ¡to ¡YIN ¡forma ¡ YANG ¡ • Model(s) ¡

  11. YANGUI App Architecture YANGUI ¡ YANGUI ¡ YANGUI ¡ Views ¡ Main ¡Module ¡ Controllers ¡ JSON-­‑UI ¡ YANGUTILS ¡ ¡ JSON-­‑API ¡ Linkage ¡ Main ¡Module ¡ Path ¡Handler ¡ YIN-­‑JSON ¡ YANG ¡RESTAngular ¡ Conversion ¡ ODL ¡

  12. How does the YANGUI App Retrieve the Models from ODL? (1) ① hTp://localhost:8181/restconf/modules ¡ ¡ ② ¡ ¡ ¡ { ¡ ¡ ¡ ¡ ¡"modules": ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"module": ¡[ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡............. ¡ ¡ ¡ 1 2 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"name": ¡"network-­‑topology", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"revision": ¡"2013-­‑10-­‑21", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"namespace": ¡"urn:TBD:params:xml:ns:yang:network-­‑topology" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡.......... ¡ ODL ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡] ¡ ¡ ¡ ¡ ¡} ¡ } ¡

  13. How does the YANGUI App Retrieve the Models from ODL? (2) ③ hTp://localhost:8181/restconf/modules/module/network-­‑topology/2013-­‑10-­‑21/schema ¡ ¡ ④ <module ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡xmlns="urn:ieZ:params:xml:ns:yang:yin:1" ¡ ¡ ¡ ¡ ¡ ¡xmlns:nt="urn:TBD:params:xml:ns:yang:network-­‑topology" ¡ ¡ ¡ ¡ ¡ ¡xmlns:inet="urn:ieZ:params:xml:ns:yang:ieZ-­‑inet-­‑types" ¡name="network-­‑topology"> ¡ ¡ ¡ ¡ ¡<yang-­‑version ¡value="1"></yang-­‑version> ¡ ¡ ¡ ¡ ¡<namespace ¡uri="urn:TBD:params:xml:ns:yang:network-­‑topology"></namespace> ¡ ¡ ¡ ¡ ¡... ¡ ¡ ¡ ¡ ¡<descrip;on> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<text>This ¡module ¡defines ¡a ¡model ¡for ¡the ¡topology ¡of ¡a ¡network. ¡ 3 4 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Key ¡design ¡decisions ¡are ¡as ¡follows: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡A ¡topology ¡consists ¡of ¡a ¡set ¡of ¡nodes ¡and ¡links. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Links ¡are ¡point-­‑to-­‑point ¡and ¡unidirec;onal. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Bidirec;onal ¡connec;ons ¡need ¡to ¡be ¡represented ¡through ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡two ¡separate ¡links. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Mul;point ¡connec;ons, ¡broadcast ¡domains ¡etc ¡can ¡be ¡represented ¡ ODL ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡through ¡a ¡hierarchy ¡of ¡nodes, ¡then ¡connec;ng ¡nodes ¡at ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡upper ¡layers ¡of ¡the ¡hierarchy.</text> ¡ ¡ ¡ ¡ ¡</descrip;on> ¡ ¡ ¡ ¡ ¡<revision ¡date="2013-­‑10-­‑21"></revision> ¡ ¡ ¡ ¡ ¡<typedef ¡name="link-­‑id"></typedef> ¡ ¡ ¡ ¡ ¡<typedef ¡name="link-­‑ref"></typedef> ¡ ¡ ¡ ¡ ¡<typedef ¡name="node-­‑id"></typedef> ¡ ¡ ¡ ¡ ¡... ¡ </module> ¡

  14. YANGUI Flow Diagrams (1) – Prep/ Conversion

  15. YANGUI Flow Diagram (2) – Complete Processing

Recommend


More recommend