This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces
Version: 2019-01-31
module openconfig-vlan-types { yang-version 1; namespace "http://openconfig.net/yang/vlan-types"; prefix oc-vlan-types; import openconfig-extensions { prefix oc-ext; } organization "OpenConfig working group"; contact "OpenConfig working group netopenconfig@googlegroups.com"; description "This module defines configuration and state variables for VLANs, in addition to VLAN parameters associated with interfaces"; revision "2019-01-31" { description "Add TPID_ANY wildcard match and a QinQ list type."; reference "3.1.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "3.0.1"; } revision "2018-02-14" { description "Fix bug with name of 802.1ad identity."; reference "3.0.0"; } revision "2017-07-14" { description "Move top-level vlan data to network-instance; Update identities to comply to style guide; fixed pattern quoting; corrected trunk vlan types; added TPID config to base interface."; reference "2.0.0"; } revision "2016-05-26" { description "OpenConfig public release"; reference "1.0.2"; } oc-ext:openconfig-version "3.1.0"; oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity TPID_TYPES { description "Base identity for TPID values that can be matched or that override the VLAN ethertype value"; } identity TPID_0X8100 { base TPID_TYPES; description "Default TPID value for 802.1q single-tagged VLANs."; } identity TPID_0X88A8 { base TPID_TYPES; description "TPID value for 802.1ad provider bridging, QinQ or stacked VLANs."; } identity TPID_0X9100 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_0X9200 { base TPID_TYPES; description "Alternate TPID value."; } identity TPID_ANY { base TPID_TYPES; description "A wildcard that matches any of the generally used TPID values for singly- or multiply-tagged VLANs. Equivalent to matching any of TPID_0X8100, TPID_0X88A8, TPID_0X9100 and TPID_0x9200. This value is only applicable where the TPID of a packet is being matched."; } typedef vlan-id { type uint16 { range "1..4094"; } description "Type definition representing a single-tagged VLAN"; } typedef vlan-range { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' + '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' + '[1-9])$'; } description "Type definition representing a range of single-tagged VLANs. A range is specified as x..y where x and y are valid VLAN IDs (1 <= vlan-id <= 4094). The range is assumed to be inclusive, such that any VLAN-ID matching x <= VLAN-ID <= y falls within the range."; } typedef qinq-id { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } description "Type definition representing a single double-tagged/QinQ VLAN identifier. The format of a QinQ VLAN-ID is x.y where X is the 'outer' VLAN identifier, and y is the 'inner' VLAN identifier. Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094) with the exception that y may be equal to a wildcard (*). In cases where y is set to the wildcard, this represents all inner VLAN identifiers where the outer VLAN identifier is equal to x."; } typedef qinq-id-range { type union { type string { pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.' + '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])|\*)$'; } type string { pattern '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9]))\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])\.\.' + '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' + '[1-9][0-9]{1,2}|[1-9])$'; } } description "A type definition representing a range of double-tagged/QinQ VLAN identifiers. The format of a QinQ VLAN-ID range can be specified in two formats. Where the range is outer VLAN IDs the range is specified as x..y.z. In this case outer VLAN identifiers meeting the criteria x <= outer-vlan-id <= y are accepted if and only if the inner VLAN-ID is equal to y - or any inner-tag if the wildcard is specified. Alternatively the ange can be specified as x.y..z. In this case only VLANs with an outer-vlan-id qual to x are accepted (x may again be the wildcard). Inner VLANs are accepted if they meet the inequality y <= inner-vlan-id <= z."; } typedef vlan-mode-type { type enumeration { enum "ACCESS" { value 0; description "Access mode VLAN interface (No 802.1q header)"; } enum "TRUNK" { value 1; description "Trunk mode VLAN interface"; } } description "VLAN interface mode (trunk or access)"; } typedef vlan-ref { type union { type vlan-id; type string; } description "Reference to a VLAN by name or id"; } typedef vlan-stack-action { type enumeration { enum "PUSH" { value 0; description "Push a VLAN onto the VLAN stack."; } enum "POP" { value 1; description "Pop a VLAN from the VLAN stack."; } enum "SWAP" { value 2; description "Swap the VLAN at the top of the VLAN stack."; } } description "Operations that can be performed on a VLAN stack."; } } // module openconfig-vlan-types
© 2023 YumaWorks, Inc. All rights reserved.