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/