• No results found

Information Models, Data Models, and YANG. IETF 86, Orlando,

N/A
N/A
Protected

Academic year: 2021

Share "Information Models, Data Models, and YANG. IETF 86, Orlando,"

Copied!
12
0
0

Loading.... (view fulltext now)

Full text

(1)

Information Models, Data Models, and YANG

urgen Sch¨

onw¨

alder

(2)

Information Models (RFC 3444)

B Information Models are used to model managed objects at a

conceptual level, independent of any specific protocols used to

transport the data (protocol agnostic).

B The degree of specificity (or detail) of the abstractions

defined in the information modeldepends on the modeling needs of its designers.

B In order to make the overall design as clear as possible, information models should hide protocol and implementation details.

B Information models focus on relationships between managed objects.

B Information models are often represented in Unified Modeling

Language (class) diagrams, but there are also informal

(3)

Data Models (RFC 3444)

B Data Models are defined at a lower level of abstraction and includemany details (compared to information models).

B They are intended for implementors and include implementation- and protocol-specific constructs.

B Data models are often represented in formal data definition

languages that are specific to the management protocol being

(4)

Information Models vs. Data Models

conceptual/abstract model for designers and operators

concrete/detailed model for implementors

DM DM

DM

IM

B Since conceptual models can be implemented in different ways, multiple data models can be derived from a single Information Model.

B Although information models and data models serve different purposes, it is not always easy to decide which detail belongs to an information model and which belongs to a data model.

B Similarily, it is sometimes difficult to determine whether an abstraction belongs to an information model or a data model.

(5)

IMs and DMs in the Real World

SMIv2 Information Model OMG IDL Definitions BER Instance Data XSD XML BER Module Module YANG Module MIB PIP Module

Interface Data Model Information Model

SPPI

Instances

MIB Provisioning

Variables DocumentsXML

B The architecture for differentiated services (RFC 2475) is an example for an informal definition of the DiffServ information model. The DiffServ MIB module (RFC 3289) and the

DiffServ PIP module (RFC 3317) are examples of data models conforming to the DiffServ information model.

B The IPFIX configuration specification (RFC 6728) contains both an information model and a data model.

(6)

So what is YANG?

YANG is a data modeling language used to model configuration and state data manipulated by the NETCONF protocol,

NETCONF remote procedure calls, and NETCONF notifications.

B hierarchical configuration/state data models

B reusable types and groupings

B data model extensibility through augmentations

B supports the definition of operations (RPCs)

B formal constraints for configuration validation

B data model modularity through features / sub-modules

B versioning rules and development support

B well defined ways to extend the language

(7)

Even more reasons to use YANG. . .

B produced and maintained by the IETF

B tool support (written by people active in the IETF)

B growing set of (reusable) definitions (typedefs, groupings)

B support via YANG doctors

B JSON encodings possible (currently not used by NETCONF)

B flexibility and extensibility

For a more detailed technical introduction to NETCONF and YANG, see the IETF 84 tutorial available on the IETF EDU pages:

(8)

Defining YANG Data Models – I

B Start by identifying the basic concepts that need to be modeled, give those concepts good names, and identify relationships between them.

B Sketch the structure of the data model; if necessary break things into meaningful pieces (different modules or

submodules, consider defining features for optional things).

B Use tools to generate summaries like YANG tree diagrams since they help to understand the structure of a larger data model (existing tools usually work fine with somewhat incomplete data model definitions).

B Include the generated diagrams as supporting documentation into the specification.

B Write example data instances in XML and validate them against the model; make sure you like the instance data and consider including some of the examples in the documentation.

(9)

Defining YANG Data Models – II

B Sometimes it is useful to factor out reusable components (e.g., type definitions or groupings).

B Sometimes a modeled function or data type is rather generic and not WG specific (talk with YANG doctors – they might help getting the definition into the “right” place).

B For type definitions, think about canonical representations if certain values may have multiple representations.

B Do not over constrain data models (be careful with when and

must statements); design for exensibility by both future standards and vendor-specific extensions.

B Manage your namespaces and be consistent with your naming conventions.

B Use tools to validate your data model (and sample data instances), pick tool options that ensure compliance to IETF rules (which are a bit more strict than YANG itself).

(10)

YANG Tree Diagrams

Tree diagrams summarize the hierarchical structure of YANG data models:

B Brackets “[“ and “]” enclose list keys.

B Abbreviations before data node names: “rw” means configuration (read-write) and “ro” state data (read-only).

B Symbols after data node names: “?” means an optional node and “*” denotes a “leaf-list”.

B Parentheses enclose choice and case nodes, and case nodes are also marked with a colon (“:”).

B Ellipsis (“...”) stands for contents of subtrees that are not shown.

(11)

YANG Tree Diagram Example

module: foo +--rw mycontainer

+--rw mylist [mykey] +--rw mykey string +--rw (alternative)? | +--:(simple)

| | +--rw simple? uint8 | +--:(multi)

| +--rw multivalued* string +--ro state enumeration

module foo {

container mycontainer { list mylist {

key mykey;

leaf mykey { type string; } choice alternative {

case simple {

leaf "simple" { type uint8; } }

case multi {

leaf-list "multivalued" { type string; } }

}

leaf "state" { config false; mandatory true; type enumeration; } }

} }

(12)

References

A. Pras and J. Sch¨onw¨alder.

On the Difference between Information Models and Data Models.

RFC 3444, University of Twente, University of Osnabrueck, January 2003.

M. Bjorklund.

YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF).

RFC 6020, Tail-f Systems, October 2010.

J. Sch¨onw¨alder.

Common YANG Data Types.

RFC 6021, Jacobs University, October 2010.

A. Bierman.

Guidelines for Authors and Reviewers of YANG Data Model Documents.

References

Related documents

     Disposal Procedures:  Provide disposal procedures or indicate where these procedures can be found in the Plan or Field Standards.    

In a section of the 1947 program document that addressed “Subject Matter in Enterprise Work,” the department demanded that teachers attend to the adequate coverage of subject

(d) Each person who dismantles, removes or suffers the destruction of a structure that is the subject of a notice under GCAR shall notify the Director General in writing, within 5

Providers Badalona Serveis Assistenci als (BSA) Objectives: protect human life & health, improve cost- efficiency and best-practices, improve welfare citizens Activities:

• An interdisciplinary field that deals with how computers can be made to gain high- level understanding from digital images or videos..

Preliminary tests conducted using the standard Augmented Dickey-Fuller (ADF) procedure indicates the unemployment series is nonstationary in line with the literature (estimate

Motivated by the lack of suitable long-memory estima- tion methods that deal naturally with sampling irregularity or missingness, which often occur in climate science data col-

Most current methods used for measuring blood circulation are only capable of measuring blood velocity, which may not be representative of total volume blood ow.. Various