netconfcentral logo

ietf-fabric-topology

HTML

ietf-fabric-topology@2017-11-29



  module ietf-fabric-topology {

    yang-version 1.1;

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

    prefix fabric;

    import ietf-network {
      prefix nw;
    }
    import ietf-network-topology {
      prefix nt;
    }
    import ietf-fabric-types {
      prefix fabrictype;
    }

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

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

 WG Chair:  Susan Hares
            <mailto:shares@ndzh.com>

 WG Chair:  Russ White
            <mailto:russ@riw.us>

 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) 2016 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(http://trustee.ietf.org/license-info).

    This version of this YANG module is part of
    draft-zhuang-i2rs-yang-dc-fabric-network-topology;
    see the RFC itself for full legal notices.";

    revision "2017-11-29" {
      description "fix comments";
      reference
        "draft-ietf-i2rs-yang-dc-fabric-network-topology-02";

    }

    revision "2017-11-21" {
      description "fix warnings.";
      reference
        "draft-ietf-i2rs-yang-dc-fabric-network-topology-01";

    }

    revision "2017-06-29" {
      description
        "update to NMDA compliant format";
      reference
        "draft-zhuang-i2rs-yang-dc-fabric-network-topology-04";

    }

    revision "2017-03-10" {
      description
        "remove the rpcs and add extra attributes";
      reference
        "draft-zhuang-i2rs-yang-dc-fabric-network-topology-03";

    }

    revision "2016-09-29" {
      description
        "Initial revision of fabric topology.";
      reference
        "draft-zhuang-i2rs-yang-dc-fabric-network-topology-02";

    }


    identity fabric-context {
      base 
      description
        "identity of fabric context";
    }

    typedef fabric-id {
      type nw:node-id;
      description
        "An identifier for a fabric in a topology.
        The identifier is generated by compose-fabric RPC.";
    }

    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
              "centerilized gateway";
          }
          enum "distributed" {
            value 1;
            description
              "distributed gateway";
          }
        }
        default "distributed";
        description "gateway mode";
      }

      leaf traffic-behavior {
        type enumeration {
          enum "normal" {
            value 0;
            description "normal";
          }
          enum "policy-driven" {
            value 1;
            description "policy driven";
          }
        }
        default "normal";
        description
          "traffic behavior of the fabric";
      }

      leaf-list capability-supported {
        type fabrictype:service-capabilities;
        description
          "supported services of the fabric";
      }
    }  // grouping fabric-options

    grouping device-attributes {
      description "device attributes";
      leaf device-ref {
        type fabrictype:node-ref;
        description
          "the device it includes to";
      }

      leaf role {
        type fabrictype:device-role;
        default "LEAF";
        description "role of the node";
      }
    }  // grouping device-attributes

    grouping link-attributes {
      description "link attributes";
      leaf link-ref {
        type fabrictype:link-ref;
        description "the link it includes";
      }
    }  // grouping link-attributes

    grouping port-attributes {
      description "port attributes";
      leaf port-ref {
        type fabrictype:tp-ref;
        description "port reference";
      }

      leaf port-type {
        type identityref {
          base fabrictype:port-type;
        }
        description
          "port type: ethernet or serial or others";
      }

      leaf bandwidth {
        type identityref {
          base fabrictype:bandwidth;
        }
        description "bandwidth on the port";
      }
    }  // grouping port-attributes

    grouping fabric-attributes {
      description "attributes of a fabric";
      leaf fabric-id {
        type fabric-id;
        description "fabric id";
      }

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

      leaf type {
        type fabrictype:underlay-network-type;
        description
          "The type of physical network that implements
          this fabric.Examples are vlan, and trill.";
      }

      container vni-capacity {
        description
          "number of vnis the fabric has";
        leaf min {
          type int32;
          description "vni min capacity";
        }

        leaf max {
          type int32;
          description "vni max capacity";
        }
      }  // 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
          "include device nodes in the fabric";
        uses device-attributes;
      }  // list device-nodes

      list device-links {
        key "link-ref";
        description
          "include device links within the fabric";
        uses link-attributes;
      }  // list device-links

      list device-ports {
        key "port-ref";
        description
          "include device ports within the fabric";
        uses port-attributes;
      }  // list device-ports
    }  // grouping fabric-attributes

    augment /nw:networks/nw:network/nw:network-types {
      description
        "Introduce new network type for Fabric-based logical 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 faas.";
      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 fabrictype:fabric-port;
      }  // container fport-attributes
    }
  }  // module ietf-fabric-topology

Summary

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

WG Chair:  Susan Hares
	   <mailto:shares@ndzh.com>

WG Chair:  Russ White
	   <mailto:russ@riw.us>

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) 2016 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(http://trustee.ietf.org/license-info).

This version of this YANG module is part of
draft-zhuang-i2rs-yang-dc-fabric-network-topology;
see the RFC itself for full legal notices.

Typedefs

Typedef Base type Abstract
fabric-id string An identifier for a fabric in a topology. The identifier is generated by compose-fabric RPC.

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