| module bbf-dot1q-types { |
| yang-version 1.1; |
| namespace "urn:bbf:yang:bbf-dot1q-types"; |
| prefix bbf-dot1qt; |
| |
| organization |
| "Broadband Forum <https://www.broadband-forum.org> |
| Common YANG Work Area"; |
| contact |
| "Comments or questions about this Broadband Forum YANG module |
| should be directed to <mailto:help@broadband-forum.org>. |
| |
| Editor: Nick Hancock, ADTRAN |
| |
| Editor: Ludwig Pauwels, Nokia |
| |
| PS Leader: Joey Boyd, ADTRAN |
| |
| PS Leader: Sowrirajan Padmanabhan, Nokia |
| |
| WA Director: Joey Boyd, ADTRAN |
| |
| WA Director: Sven Ooghe, Nokia"; |
| description |
| "This module contains a collection of YANG definitions for |
| supporting the Broadband Forum requirements on reusable data |
| types as applicable to access network equipment. As such, this |
| module is specific to access network equipment (e.g., |
| BBF-specified Access Nodes and FTTdp DPUs). |
| |
| Specifically, this module defines common types for support of |
| IEEE 802.1Q. |
| |
| Copyright (c) 2017-2021, Broadband Forum |
| |
| Redistribution and use in source and binary forms, with or |
| without modification, are permitted provided that the following |
| conditions are met: |
| |
| 1. Redistributions of source code must retain the above copyright |
| notice, this list of conditions and the following disclaimer. |
| |
| 2. Redistributions in binary form must reproduce the above |
| copyright notice, this list of conditions and the following |
| disclaimer in the documentation and/or other materials |
| provided with the distribution. |
| |
| 3. Neither the name of the copyright holder nor the names of its |
| contributors may be used to endorse or promote products |
| derived from this software without specific prior written |
| permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND |
| CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
| INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
| CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| The above license is used as a license under copyright only. |
| Please reference the Forum IPR Policy for patent licensing terms |
| <https://www.broadband-forum.org/ipr-policy>. |
| |
| Any moral rights which are necessary to exercise under the above |
| license grant are also deemed granted under this license. |
| |
| This version of this YANG module is part of TR-383a4; see |
| the TR itself for full legal notices."; |
| |
| revision 2021-06-02 { |
| description |
| "Amendment 4. |
| * Approval Date: 2021-06-02. |
| * Publication Date: 2021-06-02."; |
| reference |
| "TR-383a4: Common YANG Modules |
| <https://www.broadband-forum.org/technical/download/ |
| TR-383_Amendment-4.pdf>"; |
| } |
| revision 2020-10-13 { |
| description |
| "Amendment 3. |
| * Approval Date: 2020-10-13. |
| * Publication Date: 2020-10-13."; |
| reference |
| "TR-383a3: Common YANG Modules |
| <https://www.broadband-forum.org/technical/download/ |
| TR-383_Amendment-3.pdf>"; |
| } |
| revision 2018-07-13 { |
| description |
| "Amendment 1. |
| * Approval Date: 2018-06-04. |
| * Publication Date: see revision date above."; |
| reference |
| "TR-383: Common YANG Modules |
| <https://www.broadband-forum.org/technical/download/ |
| TR-383_Amendment-1.pdf>"; |
| } |
| revision 2017-05-08 { |
| description |
| "Initial revision. |
| * Approval Date: see revision date above. |
| * Publication Date: 2017-06-02."; |
| reference |
| "TR-383: Common YANG Modules |
| <https://www.broadband-forum.org/technical/download/ |
| TR-383.pdf>"; |
| } |
| |
| identity dot1q-tag-vlan-type { |
| description |
| "Base identity from which all IEEE 802.1Q VLAN tag types are |
| derived."; |
| } |
| |
| identity c-vlan { |
| base dot1q-tag-vlan-type; |
| description |
| "An IEEE 802.1Q Customer VLAN tag, using the 0x8100 |
| Ethertype."; |
| } |
| |
| identity s-vlan { |
| base dot1q-tag-vlan-type; |
| description |
| "An IEEE 802.1Q Service VLAN tag, using a the 0x88a8 Ethertype, |
| originally introduced in IEEE 802.1ad, and incorporated into |
| IEEE 802.1Q-2014."; |
| } |
| |
| typedef dot1q-tag-type { |
| type identityref { |
| base dot1q-tag-vlan-type; |
| } |
| description |
| "Identifies a specific IEEE 802.1Q tag type."; |
| reference |
| "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks"; |
| } |
| |
| typedef vlan-id { |
| type uint16 { |
| range "1..4094"; |
| } |
| description |
| "The type uniquely identifies a VLAN. This is the |
| 12-bit VLAN ID used in the VLAN tag header. |
| The range 1..4094 is defined by the referenced |
| specification."; |
| reference |
| "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks"; |
| } |
| |
| typedef vlan-id-or-0 { |
| type uint16 { |
| range "0..4094"; |
| } |
| description |
| "The type uniquely identifies a VLAN. This is the |
| 12-bit VLAN ID used in the VLAN tag header. |
| The range 1..4094 is defined by the referenced specification. |
| The value 0 allows support of priority-tagged frames."; |
| reference |
| "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks"; |
| } |
| |
| typedef vlan-id-range { |
| type string { |
| pattern '(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-3][0-9][0-9][' |
| + '0-9]|40[0-8][0-9]|409[0-4])([,-]([1-9]|[1-9][0-9]|[' |
| + '1-9][0-9][0-9]|[1-3][0-9][0-9][0-9]|40[0-8][0-9]|' |
| + '409[0-4]))*)?'; |
| } |
| description |
| "A list of VLAN IDs, or non overlapping VLAN ranges, in |
| ascending order, between 1 and 4094. |
| |
| The format of this string can be any of the following: |
| |
| single value |
| Example: '23' |
| comma separated list of values |
| Example: '1,2,100' |
| range of values |
| Example: '1-1000' |
| comma separated list of ranges |
| Example: '1-1000,2001-2999' |
| comma separated list of values and ranges |
| Example: '1-1000,1500,2001-2999'"; |
| } |
| |
| typedef pbit { |
| type uint8 { |
| range "0..7"; |
| } |
| description |
| "Priority Code Point. PCP is a 3-bit field that refers to the |
| class of service applied to a VLAN tagged frame. The |
| field specifies a priority value between 0 and 7, these values |
| can be used by quality of service (QoS) to prioritize |
| different classes of traffic."; |
| reference |
| "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks"; |
| } |
| |
| typedef pbit-list { |
| type string { |
| pattern '([0-7](-[0-7])?(,[0-7](-[0-7])?)*)'; |
| } |
| description |
| "A list of p-bits values, or non overlapping p-bits value |
| ranges, in ascending order. Each p-bits value shall be between |
| 0 and 7. |
| |
| Example: 0,2-4,7 |
| "; |
| } |
| |
| typedef dei { |
| type uint8 { |
| range "0..1"; |
| } |
| description |
| "Drop Eligible Indicator. DEI is a 1-bit field in the VLAN tag. |
| May be used separately or in conjunction with PCP to indicate |
| frames eligible to be dropped in the presence of congestion."; |
| reference |
| "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks"; |
| } |
| |
| typedef ether-type { |
| type uint16; |
| description |
| "The Ethernet Type (or Length) value."; |
| reference |
| "IEEE 802.3-2012: IEEE Standard for Ethernet, clause 3.2.6"; |
| } |
| |
| typedef ether-type-hex { |
| type string { |
| pattern '0x[A-Fa-f0-9]{4}'; |
| } |
| description |
| "The Ethernet Type (or Length) value expressed as a 4 hex digits |
| in the form 0xABCD."; |
| reference |
| "IEEE 802.3-2012: IEEE Standard for Ethernet, clause 3.2.6"; |
| } |
| |
| typedef ether-type-or-acronym { |
| type union { |
| type ether-type; |
| type enumeration { |
| enum any { |
| description |
| "Matches any Ethertype value."; |
| } |
| enum ipv4 { |
| description |
| "Matches the Ethertype value 0x0800 or 0x0806 or |
| 0x8035."; |
| } |
| enum pppoe { |
| description |
| "Matches the Ethertype value 0x8863 or 0x8864."; |
| } |
| enum ipv6 { |
| description |
| "Matches the Ethertype value 0x86DD."; |
| } |
| } |
| type ether-type-hex; |
| } |
| description |
| "This type allows to specify |
| - a specific integer value identifying a particular Ethertype |
| value of frames, |
| - a 'pre-defined' enumeration value identifying one or more |
| specific Ethertype values, |
| - the enumeration value 'any' that identifies all frames."; |
| } |
| } |