| 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/ | ||||