mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-10-29 17:22:42 +00:00
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com> Change-Id: I02ed156105736ab538e4d5708d38b497f9479658
193 lines
5.9 KiB
YANG
193 lines
5.9 KiB
YANG
module ietf-network {
|
|
yang-version 1.1;
|
|
namespace "urn:ietf:params:xml:ns:yang:ietf-network";
|
|
prefix nw;
|
|
|
|
import ietf-inet-types {
|
|
prefix inet;
|
|
reference
|
|
"RFC 6991: Common YANG Data Types";
|
|
}
|
|
|
|
organization
|
|
"IETF I2RS (Interface to the Routing System) Working Group";
|
|
|
|
contact
|
|
"WG Web: <https://datatracker.ietf.org/wg/i2rs/>
|
|
WG List: <mailto:i2rs@ietf.org>
|
|
|
|
Editor: Alexander Clemm
|
|
<mailto:ludwig@clemm.org>
|
|
|
|
Editor: Jan Medved
|
|
<mailto:jmedved@cisco.com>
|
|
|
|
Editor: Robert Varga
|
|
<mailto:robert.varga@pantheon.tech>
|
|
|
|
Editor: Nitin Bahadur
|
|
<mailto:nitin_bahadur@yahoo.com>
|
|
|
|
Editor: Hariharan Ananthakrishnan
|
|
<mailto:hari@packetdesign.com>
|
|
|
|
Editor: Xufeng Liu
|
|
<mailto:xufeng.liu.ietf@gmail.com>";
|
|
description
|
|
"This module defines a common base data model for a collection
|
|
of nodes in a network. Node definitions are further used
|
|
in network topologies and inventories.
|
|
|
|
Copyright (c) 2018 IETF Trust and the persons identified as
|
|
authors of the code. All rights reserved.
|
|
|
|
Redistribution and use in source and binary forms, with or
|
|
without modification, is permitted pursuant to, and subject
|
|
to the license terms contained in, the Simplified BSD License
|
|
set forth in Section 4.c of the IETF Trust's Legal Provisions
|
|
Relating to IETF Documents
|
|
(https://trustee.ietf.org/license-info).
|
|
|
|
This version of this YANG module is part of RFC 8345;
|
|
see the RFC itself for full legal notices.";
|
|
|
|
revision 2018-02-26 {
|
|
description
|
|
"Initial revision.";
|
|
reference
|
|
"RFC 8345: A YANG Data Model for Network Topologies";
|
|
}
|
|
|
|
typedef node-id {
|
|
type inet:uri;
|
|
description
|
|
"Identifier for a node. The precise structure of the node-id
|
|
will be up to the implementation. For example, some
|
|
implementations MAY pick a URI that includes the network-id
|
|
as part of the path. The identifier SHOULD be chosen
|
|
such that the same node in a real network topology will
|
|
always be identified through the same identifier, even if
|
|
the data model is instantiated in separate datastores. An
|
|
implementation MAY choose to capture semantics in the
|
|
identifier -- for example, to indicate the type of node.";
|
|
}
|
|
|
|
typedef network-id {
|
|
type inet:uri;
|
|
description
|
|
"Identifier for a network. The precise structure of the
|
|
network-id will be up to the implementation. The identifier
|
|
SHOULD be chosen such that the same network will always be
|
|
identified through the same identifier, even if the data model
|
|
is instantiated in separate datastores. An implementation MAY
|
|
choose to capture semantics in the identifier -- for example,
|
|
to indicate the type of network.";
|
|
}
|
|
|
|
grouping network-ref {
|
|
description
|
|
"Contains the information necessary to reference a network --
|
|
for example, an underlay network.";
|
|
leaf network-ref {
|
|
type leafref {
|
|
path "/nw:networks/nw:network/nw:network-id";
|
|
require-instance false;
|
|
}
|
|
description
|
|
"Used to reference a network -- for example, an underlay
|
|
network.";
|
|
}
|
|
}
|
|
|
|
grouping node-ref {
|
|
description
|
|
"Contains the information necessary to reference a node.";
|
|
leaf node-ref {
|
|
type leafref {
|
|
path "/nw:networks/nw:network[nw:network-id=current()/../"+
|
|
"network-ref]/nw:node/nw:node-id";
|
|
require-instance false;
|
|
}
|
|
description
|
|
"Used to reference a node.
|
|
Nodes are identified relative to the network that
|
|
contains them.";
|
|
}
|
|
uses network-ref;
|
|
}
|
|
|
|
container networks {
|
|
description
|
|
"Serves as a top-level container for a list of networks.";
|
|
list network {
|
|
key "network-id";
|
|
description
|
|
"Describes a network.
|
|
A network typically contains an inventory of nodes,
|
|
topological information (augmented through the
|
|
network-topology data model), and layering information.";
|
|
leaf network-id {
|
|
type network-id;
|
|
description
|
|
"Identifies a network.";
|
|
}
|
|
container network-types {
|
|
description
|
|
"Serves as an augmentation target.
|
|
The network type is indicated through corresponding
|
|
presence containers augmented into this container.";
|
|
}
|
|
list supporting-network {
|
|
key "network-ref";
|
|
description
|
|
"An underlay network, used to represent layered network
|
|
topologies.";
|
|
leaf network-ref {
|
|
type leafref {
|
|
path "/nw:networks/nw:network/nw:network-id";
|
|
require-instance false;
|
|
}
|
|
description
|
|
"References the underlay network.";
|
|
}
|
|
}
|
|
|
|
list node {
|
|
key "node-id";
|
|
description
|
|
"The inventory of nodes of this network.";
|
|
leaf node-id {
|
|
type node-id;
|
|
description
|
|
"Uniquely identifies a node within the containing
|
|
network.";
|
|
}
|
|
list supporting-node {
|
|
key "network-ref node-ref";
|
|
description
|
|
"Represents another node that is in an underlay network
|
|
and that supports this node. Used to represent layering
|
|
structure.";
|
|
leaf network-ref {
|
|
type leafref {
|
|
path "../../../nw:supporting-network/nw:network-ref";
|
|
require-instance false;
|
|
}
|
|
description
|
|
"References the underlay network of which the
|
|
underlay node is a part.";
|
|
}
|
|
leaf node-ref {
|
|
type leafref {
|
|
path "/nw:networks/nw:network/nw:node/nw:node-id";
|
|
require-instance false;
|
|
}
|
|
description
|
|
"References the underlay node itself.";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|