netconfcentral logo

ietf-if-l3-vlan@2017-10-30



  module ietf-if-l3-vlan {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-if-l3-vlan";

    prefix if-l3-vlan;

    import ietf-interfaces {
      prefix if;
    }
    import iana-if-type {
      prefix ianaift;
    }
    import ieee802-dot1q-types {
      prefix dot1q-types;
    }
    import ietf-interfaces-common {
      prefix if-cmn;
    }

    organization
      "IETF NETMOD (NETCONF Data Modeling Language) Working Group";

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

     WG Chair: Lou Berger
               <mailto:lberger@labn.net>

     WG Chair: Kent Watsen
               <mailto:kwatsen@juniper.net>

     Editor:   Robert Wilton
               <mailto:rwilton@cisco.com>";

    description
      "This YANG module models L3 VLAN sub-interfaces";

    revision "2017-10-30" {
      description "Latest draft revision";
      reference
        "Internet-Draft draft-ietf-netmod-sub-intf-vlan-model-03";

    }


    augment /if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type {
      when
        "derived-from-or-self(../if:type,
                              'ianaift:ethernetCsmacd') or
         derived-from-or-self(../if:type,
                              'ianaift:ieee8023adLag') or
         derived-from-or-self(../if:type,
                              'if-cmn:ethSubInterface')" {
        description
          "Applies only to Ethernet-like interfaces and
         sub-interfaces";
      }
      description
        "Augment the generic interface encapsulation with an
       basic 802.1Q VLAN encapsulation for sub-interfaces.";
      container dot1q-vlan {
        must
          'count(../../if-cmn:forwarding-mode) = 0 or '
            + 'derived-from-or-self(../../if-cmn:forwarding-mode,'
            + '"if-cmn:layer-3-forwarding")' {
          error-message
            "If the interface forwarding-mode leaf is set then it
               must be set to an identity that derives from
               layer-3-forwarding";
          description
            "The forwarding-mode leaf on an interface can
               optionally be used to enforce consistency of
               configuration";
        }
        description
          "Match VLAN tagged frames with specific VLAN Ids";
        container outer-tag {
          presence
            "The outermost VLAN tag exists";
          description
            "Classifies traffic using the outermost VLAN tag on the
             frame.";
          uses dot1q-types:dot1q-tag-classifier-grouping;
        }  // container outer-tag

        container second-tag {
          must
            '../outer-tag/tag-type = "dot1q-types:s-vlan" and '
              + 'tag-type = "dot1q-types:c-vlan"' {
            error-message
              "When matching two tags, the outermost tag must be
               specified and of S-VLAN type and the second outermost
               tag must be of C-VLAN tag type";
            description
              "For IEEE 802.1Q interoperability, when matching two
               tags, it is required that the outermost tag exists and
               is an S-VLAN, and the second outermost tag is a
               C-VLAN";
          }
          presence
            "The second outermost VLAN tag exists";
          description
            "Classifies traffic using the second outermost VLAN tag
             on the frame.";
          uses dot1q-types:dot1q-tag-classifier-grouping;
        }  // container second-tag
      }  // container dot1q-vlan
    }
  }  // module ietf-if-l3-vlan