Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
NETMOD Architecture Phil Shafer [email protected] IETF 72 Components of NETMOD • YANG – Data modeling language and semantics – Hierarchy of nodes – Constraints on those nodes • Mapping rules of YANG to XML – Content on the wire • YIN (XML-based syntax for YANG) – Semantically equivalent, fully reversible, XML-based syntax • Same content, different format: more "<"s and ">"s – YIN is simply the data model in an XML syntax • Can be manipulated using existing XML tools (e.g., XSLT) • Mapping rules of YANG to DSDL – Including annotations for DSDL to preserve top-level semantics • Standard type library for use by YANG – yang-types.yang in draft-netmod-yang Building Network Mgmt Solutions with YANG • NETCONF content defines two players: • Clients (Managers, Applications) • Servers (Agents, Devices) • NETCONF content can be handled in two ways: • Specific: hardcoded • Generic: driven by meta-data • YANG modules define machine-readable, human-oriented models which support the needs of all four areas Where does YANG fit? Tells the app developer what the data can be modeled Specific App Generic App Tells the app's XML handler how to parse/build content Defines XML on the wire Generic Device Tells the device parser how to parse/build content Specific Device Tells the device developer what the model requires Things you can generate from YANG • IDL Code generators (stubs) – Structure/Object definitions – Serializers, deserializers, etc – Specific code to enforce constraints • Database table definitions (SQL "create table" statements) • Meta-data – Drive CLI operation (completion, validation, etc) – Drive database instance creation • Documentation – API Docs – Release notes • UI Definitions – Support for Web pages • XSLT, XUL, SVG, VRML Building Network Mgmt Solutions with YANG Some selected use cases: 1) 2) 3) 4) Device developer / native implementation On-device DSDL validation Generic browser VPN application developer First Step: Write the YANG Module YANG Modules • Models are written in YANG • Both standard and proprietary content are supported • YANG is canonical form of model Use Case #1: Device developer YANG Modules • Developer reads the models • Write code to support the model – Uses model's hierarchy – Enforces model's constraints Device Impl • Transforms model view into device implementation, if needed Use Case #2: On-device DSDL validation YANG Modules Config DSDL Schema Files Device • Compile YANG using toolset • Generate DSDL schema files • Device uses schema to validate configuration data – As data arrives in NETCONF operations, it can be checked – At validation time (commit), the entire config can be validated • DSDL can enforce hierarchy and many YANG constraints Use Case #3: Generic Browser YANG Modules YIN files App Config XSLT files • Compile YANG using toolset • Generate YIN files • Use XSLT to transform YIN into XSLT files • Use XSLT files to generate web pages for web-based config browser – Config -> [XSLT] -> XHTML Use Case #4: VPN Application YANG Modules • Developer reads the models • Write code to support the model – Uses model's hierarchy – Enforces model's constraints VPN App Impl • Transforms model into user-oriented view of VPNs • Uses generic YANG/ NETCONF library to send/recv data from the device, but uses VPN-cognoscent code to manipulate config data Deliverables • Architecture document • Informational RFC • YANG data modeling language and semantics – P roposed Standard • Mapping rules of YANG to XML – Proposed Standard • YIN (XML-based syntax for YANG) – Proposed Standard • Mapping rules of YANG to DSDL – Proposed Standard • Standard type library for use by YANG – Proposed Standard