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 ¡Architecture ¡and ¡Func;ons ¡ • Observa;ons ¡ • YANGUI ¡Live ¡Demo ¡ • Summary ¡& ¡References ¡
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 ¡
Setup (2) – YANG has become a defacto Industry Standard Source: ¡hTp://www.claise.be/2015/06/ieZ-‑yang-‑modules-‑sta;s;ques/ ¡ ¡
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 ¡
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 ¡
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 ¡ ¡ ¡ ¡ ¡ ¡ ¡
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 #
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 ¡
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) ¡
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 ¡
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 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡] ¡ ¡ ¡ ¡ ¡} ¡ } ¡
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> ¡
YANGUI Flow Diagrams (1) – Prep/ Conversion
YANGUI Flow Diagram (2) – Complete Processing
Recommend
More recommend