ietf-dc-fabric-types@2019-02-25.yang | ietf-dc-fabric-types@2019-02-25.yang-formatted | |||
---|---|---|---|---|
module ietf-dc-fabric-types { | module ietf-dc-fabric-types { | |||
yang-version 1.1; | ||||
yang-version 1.1; | namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-types"; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-types"; | prefix fabrictypes; | |||
prefix fabrictypes; | ||||
import ietf-network { | ||||
prefix nw; | ||||
reference | import ietf-network { | |||
"RFC 8345: A YANG Data Model for Network Topologies"; | prefix nw; | |||
} | reference | |||
"RFC 8345: A YANG Data Model for Network Topologies"; | ||||
} | ||||
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. | ||||
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 | ||||
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 8542; | ||||
see the RFC itself for full legal notices."; | ||||
revision 2019-02-25 { | ||||
description | description | |||
"This module contains a collection of YANG definitions for | "Initial revision."; | |||
fabric. | reference | |||
"RFC 8542: A YANG Data Model for Fabric Topology | ||||
in Data Center Networks"; | ||||
} | ||||
Copyright (c) 2019 IETF Trust and the persons identified | identity fabric-type { | |||
as authors of the code. All rights reserved. | description | |||
"Base type for fabric networks"; | ||||
} | ||||
Redistribution and use in source and binary forms, with | identity vxlan-fabric { | |||
or without modification, is permitted pursuant to, and | base fabric-type; | |||
subject to the license terms contained in, the Simplified | description | |||
BSD License set forth in Section 4.c of the IETF Trust's | "VXLAN fabric"; | |||
Legal Provisions Relating to IETF Documents | } | |||
(https://trustee.ietf.org/license-info). | ||||
This version of this YANG module is part of RFC 8542; | identity vlan-fabric { | |||
see the RFC itself for full legal notices."; | base fabric-type; | |||
description | ||||
"VLAN fabric"; | ||||
} | ||||
revision "2019-02-25"{ | identity trill-fabric { | |||
description | base fabric-type; | |||
"Initial revision."; | description | |||
reference | "TRILL fabric"; | |||
"RFC 8542: A YANG Data Model for Fabric Topology | } | |||
in Data Center Networks"; | ||||
} | ||||
identity fabric-type { | identity port-type { | |||
description | description | |||
"Base type for fabric networks"; | "Base type for fabric port"; | |||
} | } | |||
identity vxlan-fabric { | identity eth { | |||
base fabric-type; | base port-type; | |||
description | description | |||
"VXLAN fabric"; | "Ethernet"; | |||
} | } | |||
identity vlan-fabric { | identity serial { | |||
base fabric-type; | base port-type; | |||
description | description | |||
"VLAN fabric"; | "Serial"; | |||
} | } | |||
identity trill-fabric { | identity bandwidth { | |||
base fabric-type; | description | |||
description "TRILL fabric"; | "Base for bandwidth"; | |||
} | } | |||
identity port-type { | ||||
description | ||||
"Base type for fabric port"; | ||||
} | ||||
identity eth { | ||||
base port-type; | ||||
description "Ethernet"; | ||||
} | ||||
identity serial { | ||||
base port-type; | ||||
description "Serial"; | ||||
} | ||||
identity bandwidth { | identity bw-1M { | |||
description "Base for bandwidth"; | base bandwidth; | |||
} | description | |||
identity bw-1M { | "1M"; | |||
base bandwidth; | } | |||
description "1M"; | ||||
} | ||||
identity bw-10M { | ||||
base bandwidth; | ||||
description "10Mbps"; | ||||
} | ||||
identity bw-100M { | ||||
base bandwidth; | ||||
description "100Mbps"; | ||||
} | ||||
identity bw-1G { | ||||
base bandwidth; | ||||
description "1Gbps"; | ||||
} | ||||
identity bw-10G { | ||||
base bandwidth; | ||||
description "10Gbps"; | ||||
} | ||||
identity bw-25G { | ||||
base bandwidth; | ||||
description "25Gbps"; | ||||
} | ||||
identity bw-40G { | ||||
base bandwidth; | ||||
description "40Gbps"; | ||||
} | ||||
identity bw-100G{ | ||||
base bandwidth; | ||||
description "100Gbps"; | ||||
} | ||||
identity bw-400G { | ||||
base bandwidth; | ||||
description "400Gbps"; | ||||
} | ||||
identity device-role { | ||||
description "Base for the device role in a fabric."; | ||||
} | ||||
identity spine { | ||||
base device-role; | ||||
description "This is a spine node in a fabric."; | ||||
} | ||||
identity leaf { | ||||
base device-role; | ||||
description "This is a leaf node in a fabric."; | ||||
} | ||||
identity border { | ||||
base device-role; | ||||
description "This is a border node to connect to other | ||||
fabric/network."; | ||||
} | ||||
identity fabric-port-role { | ||||
description "Base for the port's role in a fabric."; | ||||
} | ||||
identity internal { | ||||
base fabric-port-role; | ||||
description "The port is used for devices to access each | ||||
other within a fabric."; | ||||
} | ||||
identity external { | ||||
base fabric-port-role; | ||||
description "The port is used for a fabric to connect to | ||||
outside network."; | ||||
} | ||||
identity access { | ||||
base fabric-port-role; | ||||
description "The port is used for an endpoint to connect | ||||
to a fabric."; | ||||
} | ||||
identity service-capability { | identity bw-10M { | |||
description "Base for the service of the fabric "; | base bandwidth; | |||
} | description | |||
identity ip-mapping { | "10Mbps"; | |||
base service-capability; | } | |||
description "NAT."; | ||||
} | ||||
identity acl-redirect { | ||||
base service-capability; | ||||
description "ACL redirect, which can provide SFC function."; | ||||
} | ||||
identity dynamic-route-exchange { | ||||
base service-capability; | ||||
description "Dynamic route exchange."; | ||||
} | ||||
/* | identity bw-100M { | |||
* Typedefs | base bandwidth; | |||
*/ | description | |||
typedef fabric-id { | "100Mbps"; | |||
type nw:node-id; | } | |||
description | ||||
"An identifier for a fabric in a topology. | identity bw-1G { | |||
This identifier can be generated when composing a fabric. | base bandwidth; | |||
The composition of a fabric can be achieved by defining an | description | |||
RPC, which is left for vendor specific implementation | "1Gbps"; | |||
and not provided in this model."; | } | |||
identity bw-10G { | ||||
base bandwidth; | ||||
description | ||||
"10Gbps"; | ||||
} | ||||
identity bw-25G { | ||||
base bandwidth; | ||||
description | ||||
"25Gbps"; | ||||
} | ||||
identity bw-40G { | ||||
base bandwidth; | ||||
description | ||||
"40Gbps"; | ||||
} | ||||
identity bw-100G { | ||||
base bandwidth; | ||||
description | ||||
"100Gbps"; | ||||
} | ||||
identity bw-400G { | ||||
base bandwidth; | ||||
description | ||||
"400Gbps"; | ||||
} | ||||
identity device-role { | ||||
description | ||||
"Base for the device role in a fabric."; | ||||
} | ||||
identity spine { | ||||
base device-role; | ||||
description | ||||
"This is a spine node in a fabric."; | ||||
} | ||||
identity leaf { | ||||
base device-role; | ||||
description | ||||
"This is a leaf node in a fabric."; | ||||
} | ||||
identity border { | ||||
base device-role; | ||||
description | ||||
"This is a border node to connect to other | ||||
fabric/network."; | ||||
} | ||||
identity fabric-port-role { | ||||
description | ||||
"Base for the port's role in a fabric."; | ||||
} | ||||
identity internal { | ||||
base fabric-port-role; | ||||
description | ||||
"The port is used for devices to access each | ||||
other within a fabric."; | ||||
} | ||||
identity external { | ||||
base fabric-port-role; | ||||
description | ||||
"The port is used for a fabric to connect to | ||||
outside network."; | ||||
} | ||||
identity access { | ||||
base fabric-port-role; | ||||
description | ||||
"The port is used for an endpoint to connect | ||||
to a fabric."; | ||||
} | ||||
identity service-capability { | ||||
description | ||||
"Base for the service of the fabric "; | ||||
} | ||||
identity ip-mapping { | ||||
base service-capability; | ||||
description | ||||
"NAT."; | ||||
} | ||||
identity acl-redirect { | ||||
base service-capability; | ||||
description | ||||
"ACL redirect, which can provide SFC function."; | ||||
} | ||||
identity dynamic-route-exchange { | ||||
base service-capability; | ||||
description | ||||
"Dynamic route exchange."; | ||||
} | ||||
/* | ||||
* Typedefs | ||||
*/ | ||||
typedef fabric-id { | ||||
type nw:node-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."; | ||||
} | ||||
typedef service-capabilities { | ||||
type identityref { | ||||
base service-capability; | ||||
} | } | |||
description | ||||
"Service capability of the fabric"; | ||||
} | ||||
typedef service-capabilities { | typedef port-type { | |||
type identityref { | type identityref { | |||
base service-capability; | base port-type; | |||
} | ||||
description | ||||
"Service capability of the fabric"; | ||||
} | } | |||
description | ||||
"Port type: ethernet or serial or others."; | ||||
} | ||||
typedef port-type { | typedef bandwidth { | |||
type identityref { | type identityref { | |||
base port-type; | base bandwidth; | |||
} | ||||
description "Port type: ethernet or serial or others."; | ||||
} | } | |||
typedef bandwidth { | description | |||
type identityref { | "Bandwidth of the port."; | |||
base bandwidth; | } | |||
} | ||||
description "Bandwidth of the port."; | typedef node-ref { | |||
type instance-identifier; | ||||
description | ||||
"A reference to a node in topology"; | ||||
} | ||||
typedef tp-ref { | ||||
type instance-identifier; | ||||
description | ||||
"A reference to a termination point in topology"; | ||||
} | ||||
typedef link-ref { | ||||
type instance-identifier; | ||||
description | ||||
"A reference to a link in topology"; | ||||
} | ||||
typedef underlay-network-type { | ||||
type identityref { | ||||
base fabric-type; | ||||
} | } | |||
typedef node-ref { | description | |||
type instance-identifier; | "The type of physical network that implements | |||
description "A reference to a node in topology"; | this fabric. Examples are VLAN and TRILL."; | |||
} | ||||
typedef device-role { | ||||
type identityref { | ||||
base device-role; | ||||
} | } | |||
description | ||||
"Role of the device node."; | ||||
} | ||||
typedef tp-ref { | typedef fabric-port-role { | |||
type instance-identifier; | type identityref { | |||
description "A reference to a termination point in topology"; | base fabric-port-role; | |||
} | } | |||
description | ||||
"Role of the port in a fabric."; | ||||
} | ||||
typedef link-ref { | typedef fabric-port-type { | |||
type instance-identifier; | type enumeration { | |||
description "A reference to a link in topology"; | enum layer2interface { | |||
description | ||||
"L2 interface"; | ||||
} | ||||
enum layer3interface { | ||||
description | ||||
"L3 interface"; | ||||
} | ||||
enum layer2Tunnel { | ||||
description | ||||
"L2 tunnel"; | ||||
} | ||||
enum layer3Tunnel { | ||||
description | ||||
"L3 tunnel"; | ||||
} | ||||
} | } | |||
description | ||||
"Fabric port type"; | ||||
} | ||||
typedef underlay-network-type { | grouping fabric-port { | |||
type identityref { | description | |||
base fabric-type; | "Attributes of a fabric port."; | |||
} | leaf name { | |||
description "The type of physical network that implements | type string; | |||
this fabric. Examples are VLAN and TRILL."; | description | |||
"Name of the port."; | ||||
} | } | |||
typedef device-role { | leaf role { | |||
type identityref { | type fabric-port-role; | |||
base device-role; | description | |||
} | "Role of the port in a fabric."; | |||
description "Role of the device node."; | ||||
} | } | |||
typedef fabric-port-role { | leaf type { | |||
type identityref { | type fabric-port-type; | |||
base fabric-port-role; | description | |||
} | "Type of the port"; | |||
description "Role of the port in a fabric."; | ||||
} | } | |||
leaf device-port { | ||||
typedef fabric-port-type { | type tp-ref; | |||
type enumeration { | description | |||
enum layer2interface { | "The device port it mapped to."; | |||
description "L2 interface"; | ||||
} | ||||
enum layer3interface { | ||||
description "L3 interface"; | ||||
} | ||||
enum layer2Tunnel { | ||||
description "L2 tunnel"; | ||||
} | ||||
enum layer3Tunnel { | ||||
description "L3 tunnel"; | ||||
} | ||||
} | ||||
description | ||||
"Fabric port type"; | ||||
} | } | |||
choice tunnel-option { | ||||
grouping fabric-port { | description | |||
description | "Tunnel options to connect two fabrics. | |||
"Attributes of a fabric port."; | It could be L2 Tunnel or L3 Tunnel."; | |||
leaf name { | ||||
type string; | ||||
description "Name of the port."; | ||||
} | ||||
leaf role { | ||||
type fabric-port-role; | ||||
description "Role of the port in a fabric."; | ||||
} | ||||
leaf type { | ||||
type fabric-port-type; | ||||
description "Type of the port"; | ||||
} | ||||
leaf device-port { | ||||
type tp-ref; | ||||
description "The device port it mapped to."; | ||||
} | ||||
choice tunnel-option { | ||||
description "Tunnel options to connect two fabrics. | ||||
It could be L2 Tunnel or L3 Tunnel."; | ||||
} | ||||
} | } | |||
} | ||||
} | } | |||
End of changes. 35 change blocks. | ||||
245 lines changed or deleted | 311 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/ |