netconfcentral logo

ietf-dc-fabric-topology

HTML

ietf-dc-fabric-topology@2019-02-25



  module ietf-dc-fabric-topology {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology";

    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
        "RFC 8542: A YANG Data Model for Fabric Topology in
        Data-Center Networks";


    }

    organization
      "IETF I2RS (Interface to the Routing System) Working Group";

    contact
      "WG Web:    <https://datatracker.ietf.org/wg/i2rs/>
     WG List:   <mailto:i2rs@ietf.org>

     Editor:    Yan Zhuang
                <mailto:zhuangyan.zhuang@huawei.com>

     Editor:    Danian Shi
                <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 "Initial revision.";
      reference
        "RFC 8542: A YANG Data Model for Fabric Topology
        in Data-Center Networks";

    }


    grouping fabric-network-type {
      description
        "Identify the topology type to be fabric.";
      container fabric-network {
        presence "indicates fabric Network";
        description
          "The presence of the container node indicates
         fabric topology";
      }  // container fabric-network
    }  // grouping fabric-network-type

    grouping fabric-options {
      description "Options for a fabric";
      leaf gateway-mode {
        type enumeration {
          enum "centralized" {
            value 0;
            description
              "The Fabric uses centralized
             gateway, in which gateway is deployed on SPINE
             node.";
          }
          enum "distributed" {
            value 1;
            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" {
            value 0;
            description
              "Normal means no policy is needed
             for all traffic";
          }
          enum "policy-driven" {
            value 1;
            description
              "Policy driven means policy is
             needed for the traffic; otherwise, the traffic
             will be discarded.";
          }
        }
        default "normal";
        description
          "Traffic behavior of the fabric";
      }

      leaf-list capability-supported {
        type fabrictypes:service-capabilities;
        description
          "It provides a list of supported services of the
         fabric.  The service-capabilities is defined as
         identity-ref.  Users can define more services
         by defining new identities.";
      }
    }  // grouping fabric-options

    grouping device-attributes {
      description "device attributes";
      leaf device-ref {
        type fabrictypes:node-ref;
        description
          "The device that the fabric includes that refers
         to a node in another topology.";
      }

      leaf-list role {
        type fabrictypes:device-role;
        default "fabrictypes:leaf";
        description
          "It is a list of device roles to represent the roles
         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.";
      }
    }  // grouping device-attributes

    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.";
      }
    }  // grouping link-attributes

    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.  The 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.";
      }
    }  // grouping port-attributes

    grouping fabric-attributes {
      description "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 "The lower-limit VNI.";
        }

        leaf max {
          type int32;
          description "The upper-limit VNI.";
        }
      }  // container vni-capacity

      leaf description {
        type string;
        description
          "Description of the fabric";
      }

      container options {
        description "Options of the fabric";
        uses fabric-options;
      }  // container options

      list device-nodes {
        key "device-ref";
        description
          "Device nodes that are included in a fabric.";
        uses device-attributes;
      }  // list device-nodes

      list device-links {
        key "link-ref";
        description
          "Links that are included within a fabric.";
        uses link-attributes;
      }  // list device-links

      list device-ports {
        key "port-ref";
        description
          "Ports that are included in the fabric.";
        uses port-attributes;
      }  // list device-ports
    }  // grouping 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;
      }  // container fabric-attributes
    }

    augment /nw:networks/nw:network/nw:node/nt:termination-point {
      when
        '/nw:networks/nw:network/nw:network-types/'
          + 'fabric:fabric-network' {
        description
          "Augmentation parameters apply only for networks
         with fabric topology";
      }
      description
        "Augmentation for port on fabric.";
      container fport-attributes {
        config false;
        description
          "Attributes for fabric ports";
        uses fabrictypes:fabric-port;
      }  // container fport-attributes
    }
  }  // module ietf-dc-fabric-topology

Summary

  
  
Organization IETF I2RS (Interface to the Routing System) Working Group
  
Module ietf-dc-fabric-topology
Version 2019-02-25
File ietf-dc-fabric-topology@2019-02-25.yang
  
Prefix fabric
Namespace urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology
  
Cooked /cookedmodules/ietf-dc-fabric-topology/2019-02-25
YANG /src/ietf-dc-fabric-topology@2019-02-25.yang
XSD /xsd/ietf-dc-fabric-topology@2019-02-25.xsd
  
Abstract This module contains a collection of YANG definitions for fabric. Copyright (c) 2019 IETF Trust and the persons identified as a...
  
Contact
WG Web:    <https://datatracker.ietf.org/wg/i2rs/>
WG List:   <mailto:i2rs@ietf.org>

Editor:    Yan Zhuang
	   <mailto:zhuangyan.zhuang@huawei.com>

Editor:    Danian Shi
	   <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.

Groupings

Grouping Objects Abstract
device-attributes device-ref role device attributes
fabric-attributes fabric-id name type vni-capacity description options device-nodes device-links device-ports Attributes of a fabric
fabric-network-type fabric-network Identify the topology type to be fabric.
fabric-options gateway-mode traffic-behavior capability-supported Options for a fabric
link-attributes link-ref Link attributes
port-attributes port-ref port-type bandwidth Port attributes