ietf-dc-fabric-topology-state@2019-02-25.yang | ietf-dc-fabric-topology-state@2019-02-25.yang-formatted | |||
---|---|---|---|---|
module ietf-dc-fabric-topology-state { | module ietf-dc-fabric-topology-state { | |||
yang-version 1.1; | ||||
yang-version 1.1; | namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology-state"; | |||
namespace | prefix sfabric; | |||
"urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology-state"; | ||||
prefix sfabric; | ||||
import ietf-network-state { | ||||
prefix nws; | ||||
reference | ||||
"RFC 8345: A Data Model for Network Topologies"; | ||||
} | ||||
import ietf-dc-fabric-types { | ||||
prefix fabrictypes; | ||||
reference | import ietf-network-state { | |||
"RFC 8542: A YANG Data Model for Fabric Topology in | prefix nws; | |||
Data Center Networks"; | reference | |||
} | "RFC 8345: A 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 | ||||
"This module contains a collection of YANG definitions for | ||||
fabric state, representing topology that either is learned | ||||
or results from applying topology that has been | ||||
configured per the ietf-dc-fabric-topology model, mirroring | ||||
the corresponding data nodes in this model. | ||||
description | This model mirrors the configuration tree of ietf-dc-fabric | |||
"This module contains a collection of YANG definitions for | -topology but contains only read-only state data. The model | |||
fabric state, representing topology that either is learned | is not needed when the implementation infrastructure supports | |||
or results from applying topology that has been | the Network Management Datastore Architecture (NMDA). | |||
configured per the ietf-dc-fabric-topology model, mirroring | ||||
the corresponding data nodes in this model. | ||||
This model mirrors the configuration tree of ietf-dc-fabric | Copyright (c) 2019 IETF Trust and the persons identified as | |||
-topology but contains only read-only state data. The model | authors of the code. All rights reserved. | |||
is not needed when the implementation infrastructure supports | ||||
the Network Management Datastore Architecture (NMDA). | ||||
Copyright (c) 2019 IETF Trust and the persons identified as | Redistribution and use in source and binary forms, with or | |||
authors of the code. All rights reserved. | 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). | ||||
Redistribution and use in source and binary forms, with or | This version of this YANG module is part of RFC 8542; | |||
without modification, is permitted pursuant to, and subject | see the RFC itself for full legal notices."; | |||
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; | revision 2019-02-25 { | |||
see the RFC itself for full legal notices."; | description | |||
"Initial revision."; | ||||
reference | ||||
"RFC 8542: A YANG Data Model for Fabric Topology in | ||||
Data Center Networks"; | ||||
} | ||||
revision "2019-02-25"{ | //grouping statements | |||
description | ||||
"Initial revision."; | ||||
reference | ||||
"RFC 8542: A YANG Data Model for Fabric Topology in | ||||
Data Center Networks"; | ||||
} | ||||
//grouping statements | grouping fabric-network-type { | |||
grouping fabric-network-type { | description | |||
description "Identify the topology type to be fabric."; | "Identify the topology type to be fabric."; | |||
container fabric-network { | container fabric-network { | |||
presence "indicates fabric Network"; | presence "indicates fabric Network"; | |||
description | description | |||
"The presence of the container node indicates | "The presence of the container node indicates | |||
fabric topology"; | fabric topology"; | |||
} | ||||
} | } | |||
} | ||||
grouping fabric-options { | grouping fabric-options { | |||
description "Options for a fabric"; | description | |||
"Options for a fabric"; | ||||
leaf gateway-mode { | leaf gateway-mode { | |||
type enumeration { | type enumeration { | |||
enum centralized { | enum centralized { | |||
description "The fabric uses centralized | description | |||
gateway, in which gateway is deployed on SPINE | "The fabric uses centralized | |||
node."; | gateway, in which gateway is deployed on SPINE | |||
} | node."; | |||
enum distributed { | ||||
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 { | ||||
type enumeration { | ||||
enum normal { | ||||
description "Normal means no policy is needed | ||||
for all traffic"; | ||||
} | ||||
enum policy-driven { | ||||
description "Policy driven means policy is | ||||
needed for the traffic; otherwise, the traffic | ||||
will be discarded."; | ||||
} | ||||
} | ||||
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. | |||
"Fabric ID"; | 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."; | ||||
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 { | |||
description | ||||
"Link attributes"; | ||||
leaf link-ref { | ||||
type fabrictypes:link-ref; | ||||
description | ||||
"The link that the fabric includes that refers to | ||||
a link in another topology."; | ||||
} | ||||
} | ||||
augment "/nws:networks/nws:network/nws:network-types" { | grouping port-attributes { | |||
description | ||||
"Port attributes"; | ||||
leaf port-ref { | ||||
type fabrictypes:tp-ref; | ||||
description | description | |||
"Introduce a new network type for fabric-based logical | "The port that the fabric includes that refers to | |||
topology"; | a termination-point in another topology."; | |||
uses fabric-network-type; | ||||
} | } | |||
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 "/nws:networks/nws:network/nws:node" { | grouping fabric-attributes { | |||
when "/nws:networks/nws:network/nws:network-types" | description | |||
+"/sfabric:fabric-network"{ | "Attributes of a fabric"; | |||
description "Augmentation parameters apply only for | leaf fabric-id { | |||
networks with fabric topology."; | type fabrictypes:fabric-id; | |||
description | ||||
"Fabric ID"; | ||||
} | ||||
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."; | ||||
} | } | |||
description "Augmentation for fabric nodes."; | leaf max { | |||
container fabric-attributes-state { | type int32; | |||
description | description | |||
"Attributes for a fabric network"; | "The upper-limit VNI."; | |||
uses fabric-attributes; | ||||
} | } | |||
} | } | |||
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 | ||||
augment "/nws:networks/nws:network/nws:network-types" { | ||||
description | ||||
"Introduce a new network type for fabric-based logical | ||||
topology"; | ||||
uses fabric-network-type; | ||||
} | ||||
augment "/nws:networks/nws:network/nws:node" { | ||||
when '/nws:networks/nws:network/nws:network-types' | ||||
+ '/sfabric:fabric-network' { | ||||
description | ||||
"Augmentation parameters apply only for | ||||
networks with fabric topology."; | ||||
} | ||||
description | ||||
"Augmentation for fabric nodes."; | ||||
container fabric-attributes-state { | ||||
description | ||||
"Attributes for a fabric network"; | ||||
uses fabric-attributes; | ||||
} | ||||
} | ||||
} | } | |||
End of changes. 32 change blocks. | ||||
232 lines changed or deleted | 233 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/ |