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
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
Chris Metz, chmetz@cisco.com Daniel Malachovsky, dmalacho@cisco.com Juraj Sebin, jsebin@cisco.com ODL Summit, July 29, 2015
3 ¡
MDSE ¡= ¡Model-‑Driven ¡So0ware ¡Engineering ¡
Source: ¡hTp://www.claise.be/2015/06/ieZ-‑yang-‑modules-‑sta;s;ques/ ¡ ¡
¡
More ¡at: ¡hTp://www.yang-‑central.org/twiki/bin/view/Main/YangTools ¡
New ¡Service ¡or ¡ Network ¡Func;on ¡ YANG ¡ Editor ¡ YANG ¡ Model(s) ¡ YANG ¡ Model(s) ¡ ODL ¡ REST ¡API ¡ YANG ¡ ¡ Valida;on ¡ App(s) ¡
YANGTools ¡
network ¡
YANG ¡Model ¡Skills ¡ HTML5/CSS/Javascript/Python/Java/etc ¡
OpenDaylight#APIs#(REST) #
OpenFlow#Enabled# Devices ## DLUX #
VTN#Coordinator # OpenStack# Neutron # SDNI#Wrapper # DDoS#ProtecJon # Open#vSwitches # AddiJonal#Virtual#&# Physical#Devices # Topology# Processing # DIDM # MD"SAL#/#Yangtools # GBP# Service # SFC # DOCSIS# AbstracJon # VTN# Manager # Plugin20C # LISP# Service # BGP # PCEP # OVSDB # OVSDB # NETCONF # PCMM/ COPS # SNBI # LISP # BGP # PCEP # SNMP # Plugin20C # OpenFlow# # Neutron# Service # SDNI# # Aggregator # Persistence # L2# Switch # TCP" MD5 # SXP # USC # Discovery # IoTDM # IoT # LACP # MAPLE # ALTO # CAPWAP # ReservaJon # TSDR # VPN#Service # NIC # USC#Manager # OPFLEX #Topology# Inventory# FRM#
Network#ApplicaJons# OrchestraJons,#Services# &#Development#
NB#APIs# ApplicaJons# Plugin#Services# Controller#plaVorm# SB#interfaces#&# protocols#plugins#
YANGTools ¡
YANG ¡modules ¡and ¡YANG ¡modeled ¡data ¡
YANG ¡ Model(s) ¡ RESTCONF ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡MD-‑SAL ¡
YANGTools ¡
MD-‑SAL ¡
to ¡support ¡service ¡adapta;on ¡
RESTCONF ¡
(DOM) ¡
ODL ¡
YIN-‑JSON ¡ Conversion ¡ JSON-‑UI ¡ Linkage ¡
YANGUTILS ¡ ¡ Main ¡Module ¡
JSON-‑API ¡ Path ¡Handler ¡
YANG ¡RESTAngular ¡
YANGUI ¡ Main ¡Module ¡
YANGUI ¡ Views ¡ YANGUI ¡ Controllers ¡
ODL ¡
① hTp://localhost:8181/restconf/modules ¡ ¡ ② ¡ ¡ ¡ ¡
{ ¡ ¡ ¡ ¡ ¡"modules": ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"module": ¡[ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡............. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"name": ¡"network-‑topology", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"revision": ¡"2013-‑10-‑21", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"namespace": ¡"urn:TBD:params:xml:ns:yang:network-‑topology" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡.......... ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡] ¡ ¡ ¡ ¡ ¡} ¡ } ¡ 1 2
ODL ¡
③ hTp://localhost:8181/restconf/modules/module/network-‑topology/2013-‑10-‑21/schema ¡ ¡ ④ ¡ ¡ ¡ ¡
3 4
<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. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡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 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡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> ¡
* ¡See ¡pointer ¡in ¡references ¡
#ODSummit ¡