netconfcentral logo

ietf-trill@2015-12-21



  module ietf-trill {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-trill";

    prefix trill;

    organization "IETF TRILL Working Group";

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

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

  Editor: Weiguo Hao
          <mailto:haoweiguo@huawei.com>";

    description "TRILL Yang Module";

    revision "2015-12-21" {
      description
        "04 version, as per RFC6325";
      reference
        "draft-ietf-trill-yang-04";

    }


    typedef port-mode {
      type enumeration {
        enum "access" {
          value 0;
          description "Access Port";
        }
        enum "p2p" {
          value 1;
          description "P2P Hello Link";
        }
        enum "trunk" {
          value 2;
          description "Trunk Port";
        }
        enum "hybrid" {
          value 3;
          description
            "Both Trunk and Access Port";
        }
      }
      description "TRILL port mode type";
    }

    typedef drb-state {
      type enumeration {
        enum "non-drb" {
          value 0;
          description "Non-DRB Port";
        }
        enum "drb" {
          value 1;
          description "DRB Port";
        }
        enum "down" {
          value 2;
          description "Down Port";
        }
        enum "suspended" {
          value 3;
          description "Suspended Port";
        }
      }
      description
        "TRILL DRB port state type.";
    }

    typedef peer-state {
      type enumeration {
        enum "report" {
          value 0;
          description "report state";
        }
        enum "detect" {
          value 1;
          description "detect state";
        }
        enum "down" {
          value 2;
          description "down state";
        }
        enum "2way" {
          value 3;
          description "2way state";
        }
      }
      description
        "TRILL neighbour state type.";
    }

    typedef authen-mode {
      type enumeration {
        enum "simple" {
          value 0;
          description
            "Indicates that the password is transmitted
        in plaintext";
        }
        enum "md5" {
          value 1;
          description
            "Indicates that the password is transmitted
        after encryption by MD5.";
        }
        enum "keychain" {
          value 2;
          description
            "Indicates that the password is a keychain
        which varies with time.";
        }
      }
      description
        "TRILL authentication mode.";
    }

    grouping authen-para {
      description
        "TRILL protocol authentication configurations.";
      leaf authen-mode {
        type authen-mode;
        description "authentication-mode ";
      }

      leaf cipher-or-plain {
        type boolean;
        description
          "0 indicates that the password is in ciphertext,
      1 indicates that the password is in plaintext";
      }

      leaf password-key {
        type string;
        description
          "The value is a string of case-sensitive
      characters, spaces not supported. The password range varies
      with the authentication mode. When the authentication mode
      is simple, the value is a string of 1 to 16 characters
      in simple text, or a string of 32 characters in ciphertext.
      When the authentication mode is md5, the value is a string
      of 1 to 255 characters in simple text, or a string of 32 to
392
      characters in ciphertext.";
      }

      leaf password {
        type string;
        description
          "The value is a string of case-sensitive
characters,
      spaces not supported. The password range varies with the
      authentication mode. When the authentication mode is simple,
      the password ranges from 1 to 16 characters. When the
      authentication mode is md5, the password ranges
      from 1 to 255 characters.";
      }

      leaf keychain {
        type string;
        description
          "The name is keychain name which is a string
      of 1 to 47 case-insensitive characters, spaces not supported.";
      }
    }  // grouping authen-para

    typedef conflict-state {
      type enumeration {
        enum "S" {
          value 0;
          description "Nickname suspended";
        }
        enum "A" {
          value 1;
          description "Nickname advertised";
        }
      }
      description "Nickname conflict state.";
    }

    typedef static-flag {
      type enumeration {
        enum "S" {
          value 0;
          description "Manually configured";
        }
        enum "D" {
          value 1;
          description "Dynamic generated";
        }
      }
      description
        "Static or dynamic nickname flag.";
    }

    container trill-site {
      description
        "Trill all configuration and display information";
      leaf max-loadbalance-num {
        type uint8 {
          range "1..max";
        }
        default "32";
        description
          "The maximum number of equal-cost
      routes for load-balancing.";
      }

      leaf bandwidth-reference {
        type uint32 {
          range "1..2147483648";
        }
        default "20000000";
        description
          "Sets the bandwidth reference value
      for a TRILL interface. Unit:M bit/s.
      Cost of the interface = Bandwidth reference
      value/Interface bandwidth";
      }

      leaf native-confidence {
        type uint8;
        default "32";
        description
          "The confidence in { MAC, VLAN, local port }
      triples learned from locally received native frames";
      }

      leaf remote-confidence {
        type uint8;
        default "32";
        description
          "The confidence in { MAC, VLAN, remote RBridge}
      triples learned from decapsulating frames";
      }

      leaf min-link-mtu {
        type uint16 {
          range "1..max";
        }
        default "1470";
        description "Minimum link MTU";
      }

      leaf mtu-probes {
        type uint8 {
          range "1..max";
        }
        default "3";
        description
          "The number of failed MTU-probes";
      }

      container lsp-timer {
        description
          "LSP timer configuration";
        leaf lspLife {
          type uint16 {
            range "2..max";
          }
          default "1200";
          description
            "LSP aging timer.Unit:Second";
        }

        leaf lsp-refresh {
          type uint16 {
            range "1..65534";
          }
          default "900";
          description
            "LSP refresh timer.Unit:Second";
        }

        leaf lsp-generation {
          type uint8 {
            range "1..120";
          }
          default "2";
          description
            "LSP generate timer.Unit:Second";
        }
      }  // container lsp-timer

      container lsp-snp-authen {
        description
          "Authentication information for LSPs and SNPs";
        uses authen-para;
      }  // container lsp-snp-authen

      container tree-para {
        description
          "Distribution tree configuration";
        leaf nick-number {
          type uint16 {
            range "1..256";
          }
          default "1";
          description "Nickname number";
        }

        leaf tree-number {
          type uint16 {
            range "1..max";
          }
          default "1";
          description
            "Distribution tree number";
        }
      }  // container tree-para

      leaf-list net-entity {
        type string;
        description "TRILL network entity";
      }

      container nicknames {
        description
          "All Nicknames and the associated properties";
        list nickname {
          key "nickName";
          description
            "Each nickname and the associated property";
          leaf nickName {
            type uint16 {
              range "1..65471";
            }
            description "Nickname value";
          }

          leaf priority {
            type uint8 {
              range "128..max";
            }
            default "192";
            description "Nickname priority";
          }

          leaf root-priority {
            type uint16 {
              range "1..max";
            }
            default "32768";
            description
              "Nickname root priority";
          }
        }  // list nickname
      }  // container nicknames

      container trill-ports {
        description
          "All TRILL port configurations";
        list trill-port {
          key "ifName";
          description
            "Each TRILL port configuration";
          leaf ifName {
            type string;
            description "trill interface";
          }

          leaf port-mode {
            type port-mode;
            default "p2p";
            description "TRILL port mode";
          }

          container hello-authen {
            description
              "Authentication information for Hellos";
            uses authen-para;
          }  // container hello-authen

          leaf csnp-timer {
            type uint16 {
              range "1..max";
            }
            default "10";
            description "Csnp-timer value";
          }

          leaf hello {
            type uint8 {
              range "3..max";
            }
            default "10";
            description "Hello timer value";
          }

          leaf holding-multiplier {
            type uint16 {
              range "3..1000";
            }
            default "3";
            description
              "Holding-multiplier timer value";
          }

          leaf lsp-retransmit {
            type uint16 {
              range "1..300";
            }
            default "5";
            description
              "Lsp retransmit timers";
          }

          container lsp-throttle {
            description
              "TRILL LSP throttle configuration.";
            leaf throttleInterval {
              type uint16 {
                range "1..10000";
              }
              default "50";
              description
                "The interval timer between
            two LSP messages.Unit:ms";
            }

            leaf count-number {
              type uint16 {
                range "1..1000";
              }
              default "10";
              description
                "The max messages number being
            sent each time.Unit:ms";
            }
          }  // container lsp-throttle

          leaf inhibition-timer {
            type uint8 {
              range "0..30";
            }
            default "30";
            description
              "The inhibition time for the port
          when root bridge changes.Unit:Second";
          }

          container drb-config {
            description
              "TRILL DRB negotiation parameter";
            leaf drb-priority {
              type uint8 {
                range "0..127";
              }
              default "64";
              description "Drb priority";
            }

            leaf holding-timer {
              type uint8 {
                range "3..255";
              }
              default "10";
              description "Holding timer";
            }
          }  // container drb-config

          leaf mac-learning-flag {
            type boolean;
            default "true";
            description
              "if learning MAC address from locally
          received native frames";
          }

          leaf trill-frame-receive-flag {
            type boolean;
            default "false";
            description
              "if receiving of TRILL frames from
          non IS-IS adjacency";
          }

          leaf cost {
            type uint32 {
              range "0..16777215";
            }
            default "0";
            description "link cost";
          }

          leaf enabled-vlans {
            type binary {
              length "1..512";
            }
            description "Enabled vlans";
          }

          leaf announcing-vlans {
            type binary {
              length "1..512";
            }
            description "Announcing vlans";
          }

          leaf forwarding-vlans {
            type binary {
              length "1..512";
            }
            description "Forwarding vlans";
          }

          leaf designated-vlan {
            type uint16 {
              range "1..4096";
            }
            description "Designated vlans";
          }
        }  // list trill-port
      }  // container trill-ports

      container vlan-para {
        description "All VLAN parameters";
        list vlan-config {
          key "vlan-id";
          description "Each VLAN parameter";
          leaf vlan-id {
            type uint16 {
              range "1..4096";
            }
            description "Vlan Id";
          }

          leaf participation-flag {
            type boolean;
            default "false";
            description "Participation flag";
          }

          leaf priority {
            type uint8 {
              range "0..127";
            }
            default "64";
            description "Vlan priority";
          }

          leaf holdingTimer {
            type uint8 {
              range "3..max";
            }
            default "10";
            description "Holding timer";
          }
        }  // list vlan-config
      }  // container vlan-para

      container trill-route-infos {
        description
          "All TRILL unicast route informations";
        list trill-route-info {
          key "nickname nexthop";
          config false;
          description
            "Each TRILL unicast route information";
          leaf nickname {
            type uint32;
            config false;
            description
              "Dest nickname for the route";
          }

          leaf cost {
            type uint32;
            config false;
            description
              "The link cost to the nickname";
          }

          leaf out-interface {
            type string;
            config false;
            description
              "Out interface to the nickname";
          }

          leaf out-vlan {
            type uint32;
            config false;
            description
              "Out vlan on the out interface";
          }

          leaf nexthop {
            type string;
            config false;
            description
              "Next hop to the nickname";
          }

          leaf hop-count {
            type uint32;
            config false;
            description
              "Hop count to the nickname";
          }
        }  // list trill-route-info
      }  // container trill-route-infos

      container trill-mroute-infos {
        description
          "TRILL multicast route information";
        list trill-mroute-info {
          key "vlan root-nickname";
          config false;
          description
            "Distribution pruning tree route table;
       For non-pruning tree, VLAN is set to be 0XFFFF";
          leaf vlan {
            type uint16;
            description "CE vlan";
          }

          leaf root-nickname {
            type uint16;
            description "Root nickname";
          }

          leaf hop-count {
            type uint16;
            description "Hop count";
          }

          list trill-mroute-outinterface-info {
            key "out-interface out-vlan";
            description
              "The out interface and out vlan for a multicast
route";
            leaf out-interface {
              type string;
              description "Out interface";
            }

            leaf out-vlan {
              type uint32;
              description "Out vlan";
            }
          }  // list trill-mroute-outinterface-info
        }  // list trill-mroute-info
      }  // container trill-mroute-infos

      container trill-rpf-check-infos {
        description
          "All TRILL RPF check information";
        list trill-rpf-check-info {
          key "ingress-nickname tree-nickname";
          config false;
          description
            "Each TRILL RPF check information";
          leaf ingress-nickname {
            type uint16;
            description "Ingress nickname";
          }

          leaf tree-nickname {
            type uint16;
            description "Tree nickname";
          }

          leaf interface-name {
            type string;
            description "Interface name";
          }

          leaf neighbor-mac {
            type string;
            description "Neighbour Mac";
          }

          leaf out-vlan {
            type uint16;
            description "Out vlan";
          }
        }  // list trill-rpf-check-info
      }  // container trill-rpf-check-infos

      container trill-peer-infos {
        description
          "All TRILL peer informations";
        list trill-peer-info {
          key "host-name circuit-id";
          config false;
          description
            "Each TRILL peer information";
          leaf host-name {
            type string;
            description "Peer RBridge name";
          }

          leaf interface-name {
            type string;
            description "Interface name";
          }

          leaf circuit-id {
            type string;
            description "Circuit Id";
          }

          leaf status {
            type peer-state;
            description "Peer status";
          }

          leaf holdTime {
            type uint32;
            description "Hold time";
          }

          leaf priority {
            type string;
            description "Priority";
          }
        }  // list trill-peer-info
      }  // container trill-peer-infos

      container trill-lsdb-infos {
        description
          "All TRILL LSDB information";
        list trill-lsdb-info {
          key "lspid";
          config false;
          description
            "Each TRILL LSDB information";
          leaf lspid {
            type string;
            description "Lspid";
          }

          leaf sequence-number {
            type string;
            description "Sequence number";
          }

          leaf checksum {
            type string;
            description "Checksum";
          }

          leaf lsp-length {
            type uint32 {
              range "0..2000";
            }
            description "Lsp length";
          }

          leaf lsp-flags {
            type bits {
              bit attbit {
                position 0;
                description
                  "TRILL lsp attribute flag";
              }
              bit partition-bit {
                position 1;
                description
                  "TRILL lsp partition flag";
              }
              bit overload-bit {
                position 2;
                description
                  "TRILL lsp position flag";
              }
            }
            default "attbit";
            description "TRILL lsp flags";
          }

          leaf holdtime {
            type string;
            description "Hold time";
          }

          leaf local-lsp {
            type boolean;
            description "Local lsp";
          }
        }  // list trill-lsdb-info
      }  // container trill-lsdb-infos

      container trill-nickname-infos {
        description
          "All Trill nickname information";
        list trill-nickname-info {
          key "nickname systemid";
          config false;
          description
            "Each Trill nickname information";
          leaf nickname {
            type uint32;
            description "Nickname";
          }

          leaf priority {
            type uint32;
            description "Priority";
          }

          leaf root-priority {
            type uint32;
            description "Root priority";
          }

          leaf systemid {
            type string;
            description "SystemId";
          }

          leaf conflict-state {
            type conflict-state;
            description "Conflict state";
          }

          leaf static-flag {
            type static-flag;
            description "Static flag";
          }

          leaf is-local {
            type boolean;
            description "Is local flag";
          }
        }  // list trill-nickname-info
      }  // container trill-nickname-infos

      container trill-statistics {
        config false;
        description "Trill statistics";
        container interface-stat {
          description
            "Trill up and down interface number";
          leaf up-num {
            type uint32;
            description
              "Trill up interface number";
          }

          leaf down-num {
            type uint32;
            description
              "Trill down interface number";
          }
        }  // container interface-stat

        container pktstatistics {
          description
            "Trill packet statistics";
          leaf report-num {
            type uint32;
            description
              "Trill interface number in report state";
          }

          leaf detect-num {
            type uint32;
            description
              "Trill interface number in detect state";
          }

          leaf twoway-num {
            type uint32;
            description
              "Trill interface number in two way state";
          }
        }  // container pktstatistics

        leaf unicast-routes-num {
          type uint32;
          description
            "Trill unicast route number";
        }

        leaf multicast-routes-num {
          type uint32;
          description
            "Trill multicast route number";
        }

        leaf rpf-entrys-num {
          type uint32;
          description
            "Trill RPF entry number";
        }

        leaf remote-nicknames-num {
          type uint32;
          description
            "Trill remote nickname number";
        }

        leaf lsdb-lsps-num {
          type uint32;
          description "Trill LSP number";
        }

        leaf self-lsps-num {
          type uint32;
          description
            "Trill self generated LSP number";
        }

        leaf multicast-trees-num {
          type uint32;
          description
            "Trill distribution tree tree number";
        }

        leaf unicast-nodes-num {
          type uint32;
          description
            "Trill unicast node number";
        }

        leaf multicast-nodes-num {
          type uint32;
          description
            "Trill multicast node number";
        }
      }  // container trill-statistics

      container pkt-statistics {
        description "All packet statistics";
        list pkt-statistic {
          key "interface-name";
          config false;
          description
            "Each packet statistic";
          leaf interface-name {
            type string;
            description "Interface name";
          }

          leaf sent-hellos-num {
            type uint32;
            description
              "The number of the sent TRILL hello";
          }

          leaf recved-hellos-num {
            type uint32;
            description
              "The number of the received TRILL hello";
          }

          leaf sent-lsps-num {
            type uint32;
            description
              "The number of the sent LSP number";
          }

          leaf recved-lsps-num {
            type uint32;
            description
              "The number of the received TRILL LSP";
          }

          leaf sent-csnps-num {
            type uint32;
            description
              "The number of the sent CSNP number";
          }

          leaf recved-csnps-num {
            type uint32;
            description
              "The number of the received CSNP number";
          }

          leaf sent-psnps-num {
            type uint32;
            description
              "The number of the sent PSNP number";
          }

          leaf recved-psnps-num {
            type uint32;
            description
              "The number of the received PSNP number";
          }

          leaf lsp-retransmissions-num {
            type uint32;
            description
              "The number of the retransmitted LSP number";
          }

          leaf drb-elections-num {
            type uint32;
            description
              "The number of the DRB election number";
          }
        }  // list pkt-statistic
      }  // container pkt-statistics
    }  // container trill-site
  }  // module ietf-trill