Complex Types and Typed Instance Identifiers as YANG Extension

Slides:



Advertisements
Similar presentations
Final and Abstract Classes
Advertisements

Chapter 7 System Models.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
Service Oriented Architecture Reference Model
DC Architecture WG meeting Monday Sept 12 Slot 1: Slot 2: Location: Seminar Room 4.1.E01.
© 2006 Open Grid Forum INFOD Extended Specifications OGF21, Seattle, WA, USA
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
XBRL Versioning Committee of European Banking Supervisors XBRL Network Vice-Chair VWG Katrin Schmehl Amsterdam, th European Banking Supervisors.
0 - 0.
ALGEBRAIC EXPRESSIONS
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
ADDING INTEGERS 1. POS. + POS. = POS. 2. NEG. + NEG. = NEG. 3. POS. + NEG. OR NEG. + POS. SUBTRACT TAKE SIGN OF BIGGER ABSOLUTE VALUE.
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Introduction to Relational Database Systems 1 Lecture 4.
The ANSI/SPARC Architecture of a Database Environment
Relational operators 1 Lecture 7 Relational Operators.
Relational data integrity
Andy Powell, Eduserv Foundation Feb 2007 The Dublin Core Abstract Model – a packaging standard?
Programming Language Concepts
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
Lilian Blot Announcements Teaching Evaluation Form week 9 practical session Formative Assessment week 10 during usual practical sessions group 1 Friday.
ITEC200 Week04 Lists and the Collection Interface.
ADTs unsorted List and Sorted List
Eiffel: Analysis, Design and Programming Bertrand Meyer (Nadia Polikarpova) Chair of Software Engineering.
ABC Technology Project
1 Complex Types and Typed Instance Identifiers IETF #75 NETMOD WG
Aligning Business and IT Models in Service-Oriented Architectures using BPMN and SoaML Brian Elvesæter, Dima Panfilenko, Sven Jacobi & Christian Hahn MDI2010.
1 Directed Depth First Search Adjacency Lists A: F G B: A H C: A D D: C F E: C D G F: E: G: : H: B: I: H: F A B C G D E H I.
Code Correctness, Readability, Maintainability Svetlin Nakov Telerik Corporation
the Entity-Relationship (ER) Model
Lecture plan Outline of DB design process Entity-relationship model
Past Tense Probe. Past Tense Probe Past Tense Probe – Practice 1.
Properties of Exponents
Proposed update of Technical Guidance for INSPIRE Download services based on SOS Matthes Rieke, Dr. Albert Remke (m.rieke, 52°North.
Addition 1’s to 20.
25 seconds left…...
Test B, 100 Subtraction Facts
11 = This is the fact family. You say: 8+3=11 and 3+8=11
Week 1.
Rizwan Rehman Centre for Computer Studies Dibrugarh University
1 Unit 1 Kinematics Chapter 1 Day
Chapter 13 – Introduction to Classes
YANG Boot Camp The YANG Gang IETF 71. YANG Boot Camp The YANG Gang IETF 71.
Lists vs. Structures CS 5010 Program Design Paradigms “Bootcamp” Lesson 6.1 © Mitchell Wand, This work is licensed under a Creative Commons Attribution-NonCommercial.
Object-Oriented Programming
Object-Oriented Programming Python. OO Paradigm - Review Three Characteristics of OO Languages –Inheritance It isn’t necessary to build every class from.
ISO DSDL ISO – Document Schema Definition Languages (DSDL) Martin Bryan Convenor, JTC1/SC18 WG1.
YANG in a Nutshell The YANG Gang IETF 71. YANG has... A reasonable self-contained specification A focus on readers and reviewers Text-based , patch,
Sheet 1XML Technology in E-Commerce 2001Lecture 2 XML Technology in E-Commerce Lecture 2 Logical and Physical Structure, Validity, DTD, XML Schema.
Kalua – A DML for NETCONF
1 Complex Types and Typed Instance Identifiers IETF #76 NETMOD WG
Representing Netconf Data Models using Document Schema Definition Languages (DSDL) Rohan Mahy Sharon Chisholm Lada Lhotka IETF 72 - Dublin.
Abierman-netconf-mar07 1 NETCONF WG 68 th IETF Prague, CZ March 19, 2007.
Using XML Schema to define NETCONF Content Sharon Chisholm Alex Clemm TJ Tjong
Kalua DML Examples
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
YANG Roque Gagliano.
Subscribing to YANG datastore push updates draft-netconf-yang-push-00 IETF #94 Yokohama A. Clemm A. Gonzalez Prieto
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Partial Locking of a Datastore in NETCONF
Post WG LC NMDA datastore architecture draft
A YANG Data Model for Microwave Radio Link draft-mwdt-ccamp-mw-yang-01
NETMOD WG IETF 104 (Prague)
Presentation transcript:

Complex Types and Typed Instance Identifiers as YANG Extension IETF #77 NETMOD WG bernd.linowski.ext@nsn.com mehmet.ersue@nsn.com s.kuryla@jacobs-university.de

Complex Types Motivation Improvements of Language Abstractions Top-down modeling: first abstract entities and then concrete refinements Enables alignment with other SDO's resource models with 1:1 mapping Improvements of Language Abstractions Enables recursive data structures of arbitrary depth Allows extending of self-contained type definitions with rich inner structure Simplifies concept refinement and avoids e.g. huge choice-statements with complex branches Avoids improper usage of abstract concepts based on type-safe modeling

1:1 Mapping to Other Languages NSN O2ML Complex types Blueprint for instances ct:complex-type Equipment { ct:extends PyhsicalContainer; ct:abstract true; leaf installStatus { … } ct:instance-list equipment { type Equipment; } ct:complex-type Card { ct:extends Equipment; … Complex type instances single list Complex types Extensions

New since IETF 76 Complex type can be defined where groupings can be defined Own namespace for complex types Refinement of base type elements Defined support for augmentation of complex types instantiations deviations of complex type instantiations No "config" inside a complex type

Improvements for v02 Agreed with M. Björklund: Proposed by S. Kuryla: Additions of data node in complex type instantiations (instead of ‘augment “.” ’) Use of “instance-type” to refer to complex types Proposed by S. Kuryla: Unrestricted augmentation & deviation of complex type instance trees

Demo: Complex Types in pyang pyang with complex type support available: Validation of complex type definitions complex type instantiations YANG  YIN transformation Extension contributed as pyang plug-in (get pyang snapshot and extension from: http://code.google.com/p/pyang-ct/)

Further steps pyang plug-ins mapping to XSD and RelaxNG libsmi implementation on the way (available end of April) We welcome any comments and discussion! Is this work useful for the WG? Proceed as standard track WG item?

Open Issues Extension of recursive data structures Is augmentation of recursive data structures at all levels needed?

Thank You! Questions?

Advanced Use of Complex Types ct:complex-type Chassis { ct:extends EquipmentHolder; container chassisInfo { config false; leaf numberOfSlots { type uint16; } leaf occupiedSlots { type uint16; } leaf height {type unit16;} leaf width {type unit16;} } ct:instance-list chassis { type Chassis; augment "chassisInfo" { leaf modelId { type string; } deviation “chassis/chassisInfo/occupiedSlots” { deviate not-supported; Augmentation of a complex type instance Deviation definition for a complex type instance 10

Agreed Improvements References via ct:instance-type ct:complex-type EquipmentHolder { // … ct:instance-list holder { type EquipmentHolder; } } ct:complex-type Chassis { ct:extends EquipmentHolder; container chassisInfo { config false; leaf numberOfSlots { type uint16; } // … ct:instance-list chassis { ct:instance-type Chassis; leaf inMaintenance {type boolean; } References via ct:instance-type Addition of data node to a complex type instance 11

Suggested Improvements ct:complex-type EquipmentHolder { // … ct:instance-list holder { type EquipmentHolder; } } ct:complex-type Chassis { ct:extends EquipmentHolder; container chassisInfo { config false; leaf numberOfSlots { type uint16; } // … ct:instance-list chassis { ct:instance-type Chassis; augment “holder/holder” { leaf plugIn {config false; type boolean; } } deviation “chassis/holder/holder/occupiedSlots” { deviate delete; Augmentation of a recursively contained complex type instance (open issue - not implemented yet) Deviation definition for a recursively contained complex type instance Support for all kinds of deviations 12

Complex Types and Typed Instance Identifiers module complex-types { // … prefix "ct"; extension complex-type { description "Defines a complex-type."; reference "chapter 2.2., complex-type extension statement"; argument type-identifier { yin-element true; } extension extends { description "Defines the base type of a complex-type."; reference "chapter 2.5., extends extension statement"; argument base-type-identifier { // …. feature complex-types { description "This feature indicates that the agent supports complex types and instance identifiers."; Specified in form of a YANG module: Extension definitions Feature indicating complex type support

Recursive Structures in Model and Payload Complex type nesting ct:complex-type EquipmentHolder { ct:extends ManagedHardware; ct:abstract true; ct:instance-list equipment { ct:instance- type Equipment; } ct:instance-list holder { ct:instance-type EquipmentHolder; Recursive containment with unknown depth

Recursive Structures in Model and Payload <holder> <objectId>Rack-A2</objectId> … <objectId>Subrack-1</objectId> <equipment> <objectId>Card-1</objectId> </equipment> <objectId>Backplane-A</objectId> </holder> <holder> // … more holders NETCONF payload reflects instance nesting Simple filter to select sub-tree under a particular tree node <filter type="subtree"> <top xmlns="http://example.com/hw"> <holder> <objectId>Rack-A2</objectId> </holder> </top> </filter>

Base Type Substitution ct:complex-type PhysicalPort { ct:abstract true; key portNumber; leaf portNumber { type int32; mandatory true; } } ct:complex-type Card { ct:instance-list port { ct:instance-type PhysicalPort; … ct:complex-type PluginModule { ct:instance-list port { Derived complex-type: ct:complex-type ExtPhysicalPort { ct:extends PhysicalPort; } Substitution of base type instance with derived type instances wherever the base type is used no need to know all places it is used

Rich Type Definitions Definition of abstract types enforce common attributes must be extended to be instantiated ct:complex-type PhysicalPort { ct:abstract true; key portNumber; leaf portNumber { type int32; mandatory true; } } ct:complex-type Card { ct:instance-list port { ct:instance-type PhysicalPort; ct:complex-type PluginModule { ct:instance-list port { Definition of types with a key no need to add key definitions at every place of use

Type Information In Payload <holder> <objectId>R31s2</objectId> <ct:type>hw:Slot</ct:type> <slotNumber>1</slotNumber> <ymi:type>hw:EquipmentHolder</ymi:type> <equipment> <objectId>ATM-45252</objectId> <ct:type>hw:STMCard</ct:type> <level>16</level> <ct:type>hw:Card</ct:type> <usedSlots>1</usedSlots> <installed>true</installed> <version>A2</version> <redundancy>1</redundancy> <serialNumber>A-778911-b</serialNumber> <commonName>ATM-ADM 2</commonName> </equipment> <serialNumber>T-K4733890x45</serialNumber> <commonName>CU-Slot</commonName> </holder> Use of predefined set of properties controlled by a type Type information in the payload Enables handling of unknown derived types Does not require explicit type codes Filtering types including derived types

Instance Identifiers Restricted by Type ct:complex-type PhysicalPort { ct:extends ManagedHardware; leaf portNumber { type int32; mandatory true; } } ct:complex-type PhysicalLink { leaf-list connectedPort { type instance-identifier { ct:instance-type PhysicalPort; min-elements 2; Constrains what type of entity may be identified Allows to refer to instances of referred type derived types added later