You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
6.4 KiB
193 lines
6.4 KiB
1 year ago
|
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.";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|