ietf-dc-fabric-topology@2019-02-25.yang   ietf-dc-fabric-topology@2019-02-25.yang-formatted 
module ietf-dc-fabric-topology { module ietf-dc-fabric-topology {
yang-version 1.1;
yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology";
namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology"; prefix fabric;
prefix fabric;
import ietf-network {
prefix nw;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-topology {
prefix nt;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-dc-fabric-types {
prefix fabrictypes;
reference import ietf-network {
"RFC 8542: A YANG Data Model for Fabric Topology in prefix nw;
Data Center Networks"; reference
} "RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-topology {
prefix nt;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-dc-fabric-types {
prefix fabrictypes;
reference
"RFC 8542: A YANG Data Model for Fabric Topology in
Data Center Networks";
}
organization organization
"IETF I2RS (Interface to the Routing System) Working Group"; "IETF I2RS (Interface to the Routing System) Working Group";
contact
contact
"WG Web: <https://datatracker.ietf.org/wg/i2rs/> "WG Web: <https://datatracker.ietf.org/wg/i2rs/>
WG List: <mailto:i2rs@ietf.org> WG List: <mailto:i2rs@ietf.org>
Editor: Yan Zhuang Editor: Yan Zhuang
<mailto:zhuangyan.zhuang@huawei.com> <mailto:zhuangyan.zhuang@huawei.com>
Editor: Danian Shi Editor: Danian Shi
<mailto:shidanian@huawei.com>"; <mailto:shidanian@huawei.com>";
description
description
"This module contains a collection of YANG definitions for "This module contains a collection of YANG definitions for
fabric. fabric.
Copyright (c) 2019 IETF Trust and the persons identified
as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with Copyright (c) 2019 IETF Trust and the persons identified
or without modification, is permitted pursuant to, and as authors of the code. All rights reserved.
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 8542; Redistribution and use in source and binary forms, with
see the RFC itself for full legal notices."; 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).
revision "2019-02-25"{ This version of this YANG module is part of RFC 8542;
description see the RFC itself for full legal notices.";
"Initial revision.";
reference
"RFC 8542: A YANG Data Model for Fabric Topology
in Data Center Networks";
}
//grouping statements revision 2019-02-25 {
grouping fabric-network-type { description
description "Identify the topology type to be fabric."; "Initial revision.";
container fabric-network { reference
presence "indicates fabric Network"; "RFC 8542: A YANG Data Model for Fabric Topology
description in Data Center Networks";
"The presence of the container node indicates }
fabric topology";
}
}
grouping fabric-options { //grouping statements
description "Options for a fabric";
leaf gateway-mode { grouping fabric-network-type {
type enumeration { description
enum centralized { "Identify the topology type to be fabric.";
description "The Fabric uses centralized container fabric-network {
gateway, in which gateway is deployed on SPINE presence "indicates fabric Network";
node."; description
} "The presence of the container node indicates
enum distributed { fabric topology";
description "The Fabric uses distributed }
gateway, in which gateway is deployed on LEAF }
node.";
}
}
default "distributed";
description "Gateway mode of the fabric";
}
leaf traffic-behavior { grouping fabric-options {
type enumeration { description
enum normal { "Options for a fabric";
description "Normal means no policy is needed leaf gateway-mode {
for all traffic"; type enumeration {
} enum centralized {
enum policy-driven { description
description "Policy driven means policy is "The Fabric uses centralized
needed for the traffic; otherwise, the traffic gateway, in which gateway is deployed on SPINE
will be discarded."; node.";
}
}
default "normal";
description "Traffic behavior of the fabric";
} }
enum distributed {
leaf-list capability-supported { description
type fabrictypes:service-capabilities; "The Fabric uses distributed
description gateway, in which gateway is deployed on LEAF
"It provides a list of supported services of the node.";
fabric. The service-capabilities is defined as
identity-ref. Users can define more services
by defining new identities.";
} }
}
default "distributed";
description
"Gateway mode of the fabric";
} }
leaf traffic-behavior {
grouping device-attributes { type enumeration {
description "device attributes"; enum normal {
leaf device-ref { description
type fabrictypes:node-ref; "Normal means no policy is needed
description for all traffic";
"The device that the fabric includes that refers
to a node in another topology.";
} }
leaf-list role { enum policy-driven {
type fabrictypes:device-role; description
default fabrictypes:leaf; "Policy driven means policy is
description needed for the traffic; otherwise, the traffic
"It is a list of device-roles to represent the roles will be discarded.";
that a device plays within a POD, such as SPINE,
LEAF, Border, or Border-Leaf.
The device-role is defined as identity-ref. If more
than 2 stages are used for a POD, users can
define new identities for the device-role.";
} }
}
default "normal";
description
"Traffic behavior of the fabric";
} }
leaf-list capability-supported {
grouping link-attributes { type fabrictypes:service-capabilities;
description "Link attributes"; description
leaf link-ref { "It provides a list of supported services of the
type fabrictypes:link-ref; fabric. The service-capabilities is defined as
description identity-ref. Users can define more services
"The link that the fabric includes that refers to by defining new identities.";
a link in another topology.";
}
} }
}
grouping port-attributes { grouping device-attributes {
description "Port attributes"; description
leaf port-ref { "device attributes";
type fabrictypes:tp-ref; leaf device-ref {
description type fabrictypes:node-ref;
"The port that the fabric includes that refers to description
a termination-point in another topology."; "The device that the fabric includes that refers
} to a node in another topology.";
leaf port-type {
type fabrictypes:port-type;
description
"Port type is defined as identity-ref. If current
types include ethernet or serial. If more types
are needed, developers can define new identities.";
}
leaf bandwidth {
type fabrictypes:bandwidth;
description
"Bandwidth of the port. It is defined as identity-ref.
If more speeds are introduced, developers can define
new identities for them. Current speeds include 1M, 10M,
100M, 1G, 10G, 25G, 40G, 100G, and 400G.";
}
} }
leaf-list role {
grouping fabric-attributes { type fabrictypes:device-role;
description "Attributes of a fabric"; default "fabrictypes:leaf";
description
leaf fabric-id { "It is a list of device-roles to represent the roles
type fabrictypes:fabric-id; that a device plays within a POD, such as SPINE,
description LEAF, Border, or Border-Leaf.
"An identifier for a fabric in a topology. The device-role is defined as identity-ref. If more
This identifier can be generated when composing a fabric. than 2 stages are used for a POD, users can
The composition of a fabric can be achieved by defining an define new identities for the device-role.";
RPC, which is left for vendor-specific implementation and
not provided in this model.";
}
leaf name {
type string;
description
"Name of the fabric";
}
leaf type {
type fabrictypes:underlay-network-type;
description
"The type of physical network that implements this
fabric. Examples are VLAN and TRILL.";
}
container vni-capacity {
description "The range of the VXLAN Network Identifier
(VNI) defined in RFC 7348 that the POD uses.";
leaf min {
type int32;
description
"The lower-limit VNI.";
}
leaf max {
type int32;
description
"The upper-limit VNI.";
}
}
leaf description {
type string;
description
"Description of the fabric";
}
container options {
description "Options of the fabric";
uses fabric-options;
}
list device-nodes {
key device-ref;
description "Device nodes that are included in a fabric.";
uses device-attributes;
}
list device-links {
key link-ref;
description "Links that are included within a fabric.";
uses link-attributes;
}
list device-ports {
key port-ref;
description "Ports that are included in the fabric.";
uses port-attributes;
}
} }
}
// augment statements grouping link-attributes {
augment "/nw:networks/nw:network/nw:network-types" {
description description
"Introduce a new network type for fabric-based topology"; "Link attributes";
leaf link-ref {
type fabrictypes:link-ref;
description
"The link that the fabric includes that refers to
a link in another topology.";
}
}
uses fabric-network-type; grouping port-attributes {
description
"Port attributes";
leaf port-ref {
type fabrictypes:tp-ref;
description
"The port that the fabric includes that refers to
a termination-point in another topology.";
} }
leaf port-type {
type fabrictypes:port-type;
description
"Port type is defined as identity-ref. If current
types include ethernet or serial. If more types
are needed, developers can define new identities.";
}
leaf bandwidth {
type fabrictypes:bandwidth;
description
"Bandwidth of the port. It is defined as identity-ref.
If more speeds are introduced, developers can define
new identities for them. Current speeds include 1M, 10M,
100M, 1G, 10G, 25G, 40G, 100G, and 400G.";
}
}
augment "/nw:networks/nw:network/nw:node" { grouping fabric-attributes {
when "/nw:networks/nw:network/nw:network-types/" description
+"fabric:fabric-network"{ "Attributes of a fabric";
leaf fabric-id {
type fabrictypes:fabric-id;
description
"An identifier for a fabric in a topology.
This identifier can be generated when composing a fabric.
The composition of a fabric can be achieved by defining an
RPC, which is left for vendor-specific implementation and
not provided in this model.";
}
leaf name {
type string;
description
"Name of the fabric";
}
leaf type {
type fabrictypes:underlay-network-type;
description
"The type of physical network that implements this
fabric. Examples are VLAN and TRILL.";
}
container vni-capacity {
description
"The range of the VXLAN Network Identifier
(VNI) defined in RFC 7348 that the POD uses.";
leaf min {
type int32;
description description
"Augmentation parameters apply only for networks "The lower-limit VNI.";
with fabric topology";
} }
description "Augmentation for fabric nodes created by leaf max {
fabric topology."; type int32;
description
"The upper-limit VNI.";
}
}
leaf description {
type string;
description
"Description of the fabric";
}
container options {
description
"Options of the fabric";
uses fabric-options;
}
list device-nodes {
key "device-ref";
description
"Device nodes that are included in a fabric.";
uses device-attributes;
}
list device-links {
key "link-ref";
description
"Links that are included within a fabric.";
uses link-attributes;
}
list device-ports {
key "port-ref";
description
"Ports that are included in the fabric.";
uses port-attributes;
}
}
container fabric-attributes { // augment statements
description
"Attributes for a fabric network";
uses fabric-attributes; augment "/nw:networks/nw:network/nw:network-types" {
} description
"Introduce a new network type for fabric-based topology";
uses fabric-network-type;
}
augment "/nw:networks/nw:network/nw:node" {
when '/nw:networks/nw:network/nw:network-types/'
+ 'fabric:fabric-network' {
description
"Augmentation parameters apply only for networks
with fabric topology";
}
description
"Augmentation for fabric nodes created by
fabric topology.";
container fabric-attributes {
description
"Attributes for a fabric network";
uses fabric-attributes;
} }
}
augment "/nw:networks/nw:network/nw:node/nt:termination-point" { augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
when "/nw:networks/nw:network/nw:network-types/" when '/nw:networks/nw:network/nw:network-types/'
+"fabric:fabric-network" { + 'fabric:fabric-network' {
description description
"Augmentation parameters apply only for networks "Augmentation parameters apply only for networks
with fabric topology"; with fabric topology";
}
description "Augmentation for port on fabric.";
container fport-attributes {
config false;
description
"Attributes for fabric ports";
uses fabrictypes:fabric-port;
}
} }
description
"Augmentation for port on fabric.";
container fport-attributes {
config false;
description
"Attributes for fabric ports";
uses fabrictypes:fabric-port;
}
}
} }
 End of changes. 35 change blocks. 
254 lines changed or deleted 247 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/