From f483311a1c98566358ec0a72fb9cf65984c018f0 Mon Sep 17 00:00:00 2001 From: "Scott Mansfield (E)" Date: Tue, 16 Sep 2025 17:21:59 +0200 Subject: [PATCH] AB-2016rev added and ASds yang updated --- standard/ieee/check.sh | 2 +- .../ieee802-dot1ab-lldp@2025-08-15.yang | 765 ++++++++++++++++++ .../ieee802-dot1ab-types@2025-08-15.yang | 151 ++++ .../AB-2016rev/ieee802-types@2025-08-15.yang | 350 ++++++++ .../draft/802.1/ASds/ieee802-dot1as-gptp.yang | 4 +- 5 files changed, 1269 insertions(+), 3 deletions(-) create mode 100644 standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang create mode 100644 standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang create mode 100644 standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang diff --git a/standard/ieee/check.sh b/standard/ieee/check.sh index f48be57c6..4f83c27d8 100755 --- a/standard/ieee/check.sh +++ b/standard/ieee/check.sh @@ -8,7 +8,7 @@ cwd=$(pwd) ietf_dir="standard/ietf" ieee_dir="standard/ieee" -to_check="draft/60802 draft/802.3 draft/802.1/qrev draft/802.1/ASrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AXdz draft/CB-2017-cor1 draft/802.1/DD draft/1588 published/802 published/802.1 published/1588" +to_check="draft/60802 draft/802.3 draft/802.1/qrev draft/802.1/ASrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AB-2016rev draft/802.1/AXdz draft/CB-2017-cor1 draft/802.1/DD draft/1588 published/802 published/802.1 published/1588" # relax constraint for now # add --ietf if you want to do strict IETF checking diff --git a/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang new file mode 100644 index 000000000..14321d55c --- /dev/null +++ b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang @@ -0,0 +1,765 @@ +module ieee802-dot1ab-lldp { + yang-version 1.1; + namespace "urn:ieee:std:802.1AB:yang:ieee802-dot1ab-lldp"; + prefix lldp; + + import ieee802-dot1ab-types { + prefix lldp-types; + } + import ietf-routing { + prefix rt; + } + import ietf-yang-types { + prefix yang; + } + import ietf-interfaces { + prefix if; + } + import ieee802-types { + prefix ieee; + } + + organization + "Institute of Electrical and Electronics Engineers"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "Management Information Base module for LLDP configuration, statistics, + local system data, and remote systems data components. Copyright(C) IEEE + (2025). All rights reserved. This version of this YANG module is part of + IEEE Std 802.1AB-2026; see the standard itself for full legal notices."; + + revision 2025-08-15 { + description + "Published as part of IEEE Std 802.1QAB-2026. + + The following reference statement identifies each referenced IEEE + Standard as updated by applicable amendments."; + reference + "IEEE Std 802.1AB Station and Media Access Control Connectivity Discovery: + IEEE Std 802.1AB-2026."; + } + revision 2022-03-15 { + description + "Published as part of IEEE Std 802.1ABcu."; + reference + "IEEE Std 802.1AB-2016"; + } + + grouping lldp-cfg { + description + "LLDP basic configuration group."; + leaf message-fast-tx { + type uint32 { + range "1..3600"; + } + units "ticks"; + default "1"; + description + "Time interval in timer ticks between transmissions during fast + transmission periods (i.e., txFast is non-zero)."; + reference + "9.1.1, 9.2.5.4 of IEEE Std 802.1AB"; + } + leaf message-tx-hold-multiplier { + type uint32 { + range "2..10"; + } + default "4"; + description + "Multiplier of msg-tx-interval."; + reference + "9.2.5.5 of IEEE Std 802.1AB"; + } + leaf message-tx-interval { + type uint32 { + range "1..3600"; + } + units "ticks"; + default "30"; + description + "Time interval in timer ticks between transmissions during normal + transmission periods (i.e., txFast is zero)."; + reference + "9.1.1, 9.2.5.6 of IEEE Std 802.1AB"; + } + leaf reinit-delay { + type uint32 { + range "1..10"; + } + units "second"; + default "2"; + description + "Amount of delay (in units of seconds) from when admin-status becomes + 'disabled' until re-initialization is attempted."; + reference + "9.2.5.9 of IEEE Std 802.1AB"; + } + leaf tx-credit-max { + type uint32 { + range "1..10"; + } + default "5"; + description + "The maximum number of consecutive LLDPDUs that can be transmitted at + any time."; + reference + "9.2.5.18 of IEEE Std 802.1AB"; + } + leaf tx-fast-init { + type uint32 { + range "1..8"; + } + default "4"; + description + "Initial value for the fast transmitting LLDPPDU."; + reference + "9.2.5.20 of IEEE Std 802.1AB"; + } + leaf notification-interval { + type uint32 { + range "1..3600"; + } + units "second"; + default "30"; + description + "Controls the transmission of LLDP notifications."; + reference + "9.2.5.6 of IEEE Std 802.1AB"; + } + } + + container lldp { + description + "Link Layer Discovery Protocol configuration and operational + information."; + uses lldp-cfg; + container remote-statistics { + config false; + description + "LLDP remote operational statistics data."; + leaf last-change-time { + type yang:timestamp; + description + "The value of sysUpTime object."; + reference + "11.5.1 of IEEE Std 802.1AB: + lldpV2StatsRemTablesLastChangeTime"; + } + leaf remote-inserts { + type yang:zero-based-counter32; + units "table entries"; + description + "The number of times the complete set of information advertised by + a particular MSAP has been inserted into tables contained in + remote-systems-data and lldpExtensions objects."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesInserts"; + } + leaf remote-deletes { + type yang:zero-based-counter32; + units "table entries"; + description + "The number of times the complete set of information advertised by + a particular MSAP has been deleted from tables contained in + remote-systems-data and lldpExtensions objects."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesDeletes"; + } + leaf remote-drops { + type yang:zero-based-counter32; + units "table entries"; + description + "The number of times the complete set of information advertised by + a particular MSAP could not be entered into tables contained in + remote-systems-data and lldpExtensions objects because of + insufficient resources."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesDrops"; + } + leaf remote-ageouts { + type yang:zero-based-counter32; + description + "The number of times the complete set of information advertised by + a particular MSAP has been deleted from tables contained in + remote-systems-data and lldpExtensions objects because the + information timeliness interval has expired."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesAgeouts"; + } + } + container local-system-data { + config false; + description + "LLDP local system operational data."; + leaf chassis-id-subtype { + type ieee:chassis-id-subtype-type; + description + "The type of encoding used to identify the chassis associated with + the local system."; + reference + "8.5.2.2 of IEEE Std 802.1AB"; + } + leaf chassis-id { + type ieee:chassis-id-type; + description + "Chassis component associated with the local system."; + reference + "8.5.2.3 of IEEE Std 802.1AB"; + } + leaf system-name { + type string { + length "0..255"; + } + description + "System name of the local system."; + reference + "8.5.6.2 of IEEE Std 802.1AB"; + } + leaf system-description { + type string { + length "0..255"; + } + description + "System description of the local system."; + reference + "8.5.7.2 of IEEE Std 802.1AB"; + } + leaf system-capabilities-supported { + type lldp-types:system-capabilities-map; + description + "System capabilities are supported on the local system."; + reference + "8.5.8.1 of IEEE Std 802.1AB"; + } + leaf system-capabilities-enabled { + type lldp-types:system-capabilities-map; + description + "System capabilities that are enabled on the local system."; + reference + "8.5.8.2 of IEEE Std 802.1AB"; + } + } + list port { + key "name dest-mac-address"; + description + "LLDP configuration information for a particular port."; + leaf name { + type if:interface-ref; + description + "The port name used to identify the port component (contained in + the local chassis with the LLDP agent) associated with this entry."; + } + leaf dest-mac-address { + type ieee:mac-address; + description + "Destination MAC address. The ieee:mac-address type has a pattern + that allows upper and lower case letters. To avoid issues with + string compairson, it is suggested to only use upper case for the + letters in the hexadecimal numbers. Implementers using code + comparing MAC addresses should note that there is still an issue + with a difference between the IETF mac-address definition and the + IEEE mac-address definition."; + } + leaf admin-status { + type enumeration { + enum tx-only { + value 1; + description + "Transmit LLDP frames only."; + } + enum rx-only { + value 2; + description + "Receive LLDP frames only."; + } + enum tx-and-rx { + value 3; + description + "Transmit and Receive LLDP frames."; + } + enum disabled { + value 4; + description + "Do Not Transmit or Receive LLDP frames."; + } + } + default "tx-and-rx"; + description + "Administrative status of the local LLDP agent."; + reference + "9.2.5.1 of IEEE Std 802.1AB"; + } + leaf notification-enable { + type boolean; + default "false"; + description + "Notification status."; + } + leaf tlvs-tx-enable { + type bits { + bit port-desc { + position 0; + description + "Transmit 'Port Description TLV'."; + } + bit sys-name { + position 1; + description + "Transmit 'System Name TLV'."; + } + bit sys-desc { + position 2; + description + "Transmit 'System Description TLV'."; + } + bit sys-cap { + position 3; + description + "Transmit 'System Capabilities TLV'."; + } + } + description + "LLDP TLVs whose transmission is allowed on the local LLDP agent by + the network management."; + reference + "9.1.1.1 of IEEE Std 802.1AB"; + } + uses lldp-cfg; + list management-address-tx-port { + key "address-subtype man-address"; + description + "Set of ports (represented as a PortList) on which the local system + management address instance will be transmitted."; + leaf address-subtype { + type identityref { + base rt:address-family; + } + description + "Type of address."; + reference + "8.5.9.3 of IEEE Std 802.1AB"; + } + leaf man-address { + type lldp-types:man-addr-type; + description + "Management address associated with this TLV."; + reference + "8.5.9.4 of IEEE Std 802.1AB"; + } + leaf tx-enable { + type boolean; + default "false"; + description + "Transmission enabled status."; + reference + "9.1.1.1 of IEEE Std 802.1AB"; + } + leaf addr-len { + type uint32; + config false; + description + "Length of the management address subtype and the management + address fields in LLDPDUs transmitted by the local LLDP agent."; + reference + "8.5.9.2 of IEEE Std 802.1AB"; + } + leaf if-subtype { + type lldp-types:man-addr-if-subtype; + config false; + description + "Interface numbering method used for defining the interface + number, associated with the local system."; + reference + "8.5.9.5 of IEEE Std 802.1AB"; + } + leaf if-id { + type uint32; + config false; + description + "Interface number for the management address component associated + with the local system."; + reference + "8.5.9.6 of IEEE Std 802.1AB"; + } + } + leaf port-id-subtype { + type ieee:port-id-subtype-type; + config false; + description + "Port identifier encoding used in the associated 'port-id' object."; + reference + "8.5.3.2 of IEEE Std 802.1AB"; + } + leaf port-id { + type ieee:port-id-type; + config false; + description + "Port component associated with a given port in the local system."; + reference + "8.5.3.3 of IEEE Std 802.1AB"; + } + leaf port-desc { + type string { + length "0..255"; + } + config false; + description + "802 LAN station's port description associated with the local + system."; + reference + "8.5.5.2 of IEEE Std 802.1AB"; + } + container tx-statistics { + config false; + description + "LLDP frame transmission statistics for a particular port."; + leaf total-frames { + type yang:counter32; + description + "A count of all LLDP frames transmitted through the port."; + reference + "9.2.7.5 of IEEE Std 802.1AB"; + } + leaf total-length-errors { + type yang:counter32; + description + "A count of all LLDP length errors detected when constructing + LLPDU frames for transmission through the port."; + reference + "9.2.7.8 of IEEE Std 802.1AB"; + } + } + container rx-statistics { + config false; + description + "LLDP frame reception statistics for a particular port."; + leaf total-ageouts { + type yang:zero-based-counter32; + description + "A count of the times that a neighbor’s information is deleted + because of rxInfoTTL timer expiration."; + reference + "9.2.7.1 of IEEE Std 802.1AB"; + } + leaf total-discarded-frames { + type yang:counter32; + description + "A count of all LLDPDUs received and then discarded."; + reference + "9.2.7.2 of IEEE Std 802.1AB"; + } + leaf error-frames { + type yang:counter32; + description + "A count of all LLDPDUs received at the port with one or more + detectable errors."; + reference + "9.2.7.3 of IEEE Std 802.1AB"; + } + leaf total-frames { + type yang:counter32; + description + "A count of all LLDP frames received at the port."; + reference + "9.2.7.4 of IEEE Std 802.1AB"; + } + leaf total-discarded-tlvs { + type yang:counter32; + description + "A count of all TLVs received at the port and discarded for any + reason."; + reference + "9.2.7.6 of IEEE Std 802.1AB"; + } + leaf total-unrecognized-tlvs { + type yang:counter32; + description + "A count of all TLVs not recognized by the receiving LLDP local + agent."; + reference + "9.2.7.7 of IEEE Std 802.1AB"; + } + } + list remote-systems-data { + key "time-mark remote-index"; + config false; + description + "Information about a particular physical network connection."; + leaf time-mark { + type yang:timeticks; + description + "A TimeFilter for this entry."; + reference + "IETF RFC 2021 section 6"; + } + leaf remote-index { + type uint32 { + range "1..2147483647"; + } + description + "Represents an arbitrary local integer value used to identify a + remote system."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2RemIndex"; + } + leaf remote-too-many-neighbors { + type boolean; + description + "Indicates that there are too many neighbors as determined by the + variable tooManyNeighbors."; + reference + "9.2.5.16 of IEEE Std 802.1AB"; + } + leaf remote-changes { + type boolean; + description + "Indicates that there are changes in the remote system's data, as + determined by the variable remoteChanges."; + reference + "9.2.5.10 of IEEE Std 802.1AB"; + } + leaf chassis-id-subtype { + type ieee:chassis-id-subtype-type; + description + "Identify the chassis associated with the remote system."; + reference + "8.5.2.2 of IEEE Std 802.1AB"; + } + leaf chassis-id { + type ieee:chassis-id-type; + description + "Identify the chassis component associated with the remote + system."; + reference + "8.5.2.3 of IEEE Std 802.1AB"; + } + leaf port-id-subtype { + type ieee:port-id-subtype-type; + description + "The type of port identifier encoding used in the associated + 'port-id' object."; + reference + "8.5.3.2 of IEEE Std 802.1AB"; + } + leaf port-id { + type ieee:port-id-type; + description + "Port component associated with the remote system."; + reference + "8.5.3.3 of IEEE Std 802.1AB"; + } + leaf port-desc { + type string { + length "0..255"; + } + description + "Description of the given port associated with the remote system."; + reference + "8.5.5.2 of IEEE Std 802.1AB"; + } + leaf system-name { + type string { + length "0..255"; + } + description + "System name of the remote system."; + reference + "8.5.6.2 of IEEE Std 802.1AB"; + } + leaf system-description { + type string { + length "0..255"; + } + description + "System description of the remote system."; + reference + "8.5.7.2 of IEEE Std 802.1AB"; + } + leaf system-capabilities-supported { + type lldp-types:system-capabilities-map; + description + "Capabilities that are supported on the remote system."; + reference + "8.5.8.1 of IEEE Std 802.1AB"; + } + leaf system-capabilities-enabled { + type lldp-types:system-capabilities-map; + description + "System capabilities that are enabled on the remote system."; + reference + "8.5.8.2 of IEEE Std 802.1AB"; + } + list management-address { + key "address-subtype address"; + description + "Management address information about a particular chassis + component."; + leaf address-subtype { + type identityref { + base rt:address-family; + } + description + "Management address identifier encoding."; + reference + "8.5.9.3 of IEEE Std 802.1AB"; + } + leaf address { + type lldp-types:man-addr-type; + description + "Management address component associated with the remote + system."; + reference + "8.5.9.4 of IEEE Std 802.1AB"; + } + leaf if-subtype { + type lldp-types:man-addr-if-subtype; + description + "Interface numbering method used for defining the interface + number, associated with the remote system."; + reference + "8.5.9.5 of IEEE Std 802.1AB"; + } + leaf if-id { + type uint32; + description + "Interface number regarding the management address component + associated with the remote system."; + reference + "8.5.9.6 of IEEE Std 802.1AB"; + } + } + list remote-unknown-tlv { + key "tlv-type"; + description + "Information about an unrecognized TLV received from a physical + network connection. Entries may be created and deleted in this + table by the agent, if a physical topology discovery process is + active."; + leaf tlv-type { + type uint32 { + range "9..126"; + } + description + "Type of TLV."; + reference + "9.2.8.7.1 of IEEE Std 802.1AB"; + } + leaf tlv-info { + type binary { + length "0..511"; + } + description + "Value extracted from TLV."; + reference + "9.2.8.7.1 of IEEE Std 802.1AB"; + } + } + list remote-org-defined-info { + key "info-identifier info-subtype info-index"; + description + "Information about the unrecognized organizationally defined + information advertised by the remote system."; + leaf info-identifier { + type uint32 { + range "0..16777215"; + } + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID)."; + reference + "8.7.1.3 of IEEE Std 802.1AB"; + } + leaf info-subtype { + type uint32 { + range "1..255"; + } + description + "The subtype of the organizationally defined information + received from the remote system."; + reference + "8.7.1.4 of IEEE Std 802.1AB"; + } + leaf info-index { + type uint32 { + range "1..2147483647"; + } + description + "Arbitrary local integer value."; + } + leaf remote-info { + type binary { + length "0..507"; + } + description + "The organizationally defined information of the remote system."; + reference + "8.7.1.5 of IEEE Std 802.1AB"; + } + } + } + } + } + + notification remote-table-change { + description + "A rem-table-change notification is sent when the value of + remote-table-last-change-time changes. It can be utilized by an NMS to + trigger LLDP remote systems table maintenance polls."; + leaf remote-insert { + type leafref { + path "/lldp:lldp/lldp:remote-statistics/lldp:remote-inserts"; + } + description + "The number of times the complete set of information advertised by a + particular MSAP has been inserted into tables contained in + remote-systems-data and lldpExtensions objects."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesInserts"; + } + leaf remote-delete { + type leafref { + path "/lldp:lldp/lldp:remote-statistics/lldp:remote-deletes"; + } + description + "The number of times the complete set of information advertised by a + particular MSAP has been deleted from tables contained in + remote-systems-data and lldpExtensions objects."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesDeletes"; + } + leaf remote-drops { + type leafref { + path "/lldp:lldp/lldp:remote-statistics/lldp:remote-drops"; + } + description + "The number of times the complete set of information advertised by a + particular MSAP could not be entered into tables contained in + remote-systems-data and lldpExtensions objects because of + insufficient resources."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesDrops"; + } + leaf remote-ageouts { + type leafref { + path "/lldp:lldp/lldp:remote-statistics/lldp:remote-ageouts"; + } + description + "The number of times the complete set of information advertised by a + particular MSAP has been deleted from tables contained in + remote-systems-data and lldpExtensions objects because the + information timeliness interval has expired."; + reference + "11.5.1 of IEEE Std 802.1AB: lldpV2StatsRemTablesAgeouts"; + } + } +} diff --git a/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang new file mode 100644 index 000000000..0d8f5b0dc --- /dev/null +++ b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang @@ -0,0 +1,151 @@ +module ieee802-dot1ab-types { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1ab-types; + prefix lldp-types; + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "Common types used within ieee802-dot1ab-lldp modules. Copyright(C) IEEE + (2025). All rights reserved. This version of this YANG module is part of + IEEE Std 802.1AB-2026; see the standard itself for full legal notices."; + revision 2025-08-15 { + description + "Published as part of IEEE Std 802.1QAB-2026. + + The following reference statement identifies each referenced IEEE + Standard as updated by applicable amendments."; + reference + "IEEE Std 802.1AB Station and Media Access Control Connectivity Discovery: + IEEE Std 802.1AB-2026."; + } + revision 2022-03-15 { + description + "Published as part of IEEE Std 802.1ABcu."; + reference + "IEEE Std 802.1AB-2016"; + } + typedef man-addr-if-subtype { + type enumeration { + enum unknown { + value 1; + description + "Interface is not known."; + } + enum port-ref { + value 2; + description + "Interface based on the port-ref MIB object."; + } + enum system-port-number { + value 3; + description + "Interface based on the system port number."; + } + } + description + "Management address interface subtype."; + reference + "8.5.9.3 of IEEE Std 802.1AB"; + } + typedef man-addr-type { + type string { + pattern "[0-9A-F]{2}([0-9A-F]{2}){0,30}"; + } + description + "Management address associated with the LLDP agent."; + reference + "8.5.9.4 of IEEE Std 802.1AB"; + } + typedef system-capabilities-map { + type bits { + bit other { + position 0; + description + "System has capabilities other than those listed below."; + } + bit repeater { + position 1; + description + "System has repeater capability."; + } + bit bridge { + position 2; + description + "System has bridge capability."; + } + bit wlan-access-point { + position 3; + description + "System has WLAN access point capability."; + } + bit router { + position 4; + description + "System has router capability."; + } + bit telephone { + position 5; + description + "System has telephone capability."; + } + bit docsis-cable-device { + position 6; + description + "System has DOCSIS Cable Device capability."; + reference + "IETF RFC 4639"; + } + bit station-only { + position 7; + description + "System has only station capability."; + } + bit cvlan-component { + position 8; + description + "System has C-VLAN component functionality."; + } + bit svlan-component { + position 9; + description + "System has S-VLAN component functionality."; + } + bit two-port-mac-relay { + position 10; + description + "System has Two-port MAC Relay (TPMR) functionality."; + } + } + description + "This describes system capabilities."; + reference + "8.5.8.1 of IEEE Std 802.1AB"; + } + typedef port-list { + type binary { + length "0..512"; + } + description + "Each octet within this value specifies a set of eight ports, with the + first octet specifying ports 1 through 8, the second octet specifying + ports 9 through 16, etc. Within each octet, the most significant bit + represents the lowest numbered port, and the least significant bit + represents the highest numbered port. Thus, each port of the system is + represented by a single bit within the value of this object. If that + bit has a value of '1' then that port is included in the set of ports; + the port is not included if its bit has a value of '0'."; + reference + "IETF RFC 2674 section 5"; + } +} diff --git a/standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang b/standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang new file mode 100644 index 000000000..88213e87a --- /dev/null +++ b/standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang @@ -0,0 +1,350 @@ +module ieee802-types { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-types; + prefix ieee; + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "This module contains a collection of generally useful derived data + types for IEEE YANG models. + + Copyright (C) IEEE (2025). All rights reserved. + + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; + revision 2025-08-15 { + description + "Published as part of IEEE Std 802.1QAB-2026. + + The following reference statement identifies each referenced IEEE + Standard as updated by applicable amendments."; + reference + "IEEE Std 802.1Q Bridges and Bridged Networks: + IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023. + IEEE Std 802 Overview and Architecture: + IEEE Std 802-2024. + IEEE 802.1AS Timing and Synchronization for Time-Sensitive Applications: + IEEE Std 802.1AS-2026."; + } + revision 2023-10-22 { + description + "Published as part of IEEE Std 802.1Qcw-2023. + + The following reference statement identifies each referenced IEEE + Standard as updated by applicable amendments."; + reference + "IEEE Std 802.1Q Bridges and Bridged Networks: + IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023. + IEEE Std 802 Overview and Architecture: + IEEE Std 802-2014. + IEEE 802.1AS Timing and Synchronization for Time-Sensitive Applications: + IEEE Std 802.1AS-2020."; + } + revision 2022-10-29 { + description + "Published as part of IEEE Std 802.1Q-2022."; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2022-03-16 { + description + "Published as part of IEEE Std 802.1ABcu."; + reference + "IEEE Std 802.1AB-2016"; + } + revision 2020-06-04 { + description + "Published as part of IEEE Std 802.1Qcx-2020. Second version."; + reference + "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data + Model for Connectivity Fault Management."; + } + revision 2018-03-07 { + description + "Published as part of IEEE Std 802.1Q-2018. Initial version."; + reference + "IEEE Std 802.1Q-2018, Bridges and Bridged Networks."; + } + typedef mac-address { + type string { + pattern "[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}"; + } + description + "The mac-address type represents a MAC address in the canonical format + and hexadecimal format specified by IEEE Std 802. The hexadecimal + representation uses uppercase characters."; + reference + "3.1, 8.1 of IEEE Std 802"; + } + typedef chassis-id-subtype-type { + type enumeration { + enum chassis-component { + value 1; + description + "Represents a chassis identifier based on the value of the + entPhysicalAlias object (defined in IETF RFC 2737) for a chassis + component (i.e., an entPhysicalClass value of chassis(3))."; + } + enum interface-alias { + value 2; + description + "Represents a chassis identifier based on the value of the ifAlias + object (defined in IETF RFC 2863) for an interface on the + containing chassis."; + } + enum port-component { + value 3; + description + "Represents a chassis identifier based on the value of the + entPhysicalAlias object (defined in IETF RFC 2737) for a port or + backplane component (i.e., entPhysicalClass value of port(10) or + backplane(4)), within the containing chassis."; + } + enum mac-address { + value 4; + description + "Represents a chassis identifier based on the value of a unicast + source address (encoded in network byte order and IEEE 802.3 + bit significance), of a port on the containing chassis as + defined in IEEE Std 802."; + } + enum network-address { + value 5; + description + "Represents a chassis identifier based on a network address, + associated with a particular chassis. The encoded address is + actually composed of two fields. The first field is a single + octet, representing the IANA AddressFamilyNumbers value for the + specific address type, and the second field is the network address + value."; + } + enum interface-name { + value 6; + description + "Represents a chassis identifier based on the value of the ifName + object (defined in IETF RFC 2863) for an interface on the + containing chassis."; + } + enum local { + value 7; + description + "Represents a chassis identifier based on a locally defined value."; + } + } + description + "The source of a chassis identifier."; + reference + "IEEE Std 802 + IETF RFC 2737 + IETF RFC 2863"; + } + typedef chassis-id-type { + type string { + length "1..255"; + } + description + "The format of a chassis identifier string. Objects of this type are + always used with an associated chassis-id-subtype object, which + identifies the format of the particular chassis-id object + instance. + + If the associated chassis-id-subtype object has a value of + chassis-component, then the octet string identifies a particular + instance of the entPhysicalAlias object (defined in IETF RFC 2737) for + a chassis component (i.e., an entPhysicalClass value of chassis(3)). + + If the associated chassis-id-subtype object has a value of + interface-alias, then the octet string identifies a particular + instance of the ifAlias object (defined in IETF RFC 2863) for an + interface on the containing chassis. If the particular ifAlias object + does not contain any values, another chassis identifier type should be + used. + + If the associated chassis-id-subtype object has a value of + port-component, then the octet string identifies a particular instance + of the entPhysicalAlias object (defined in IETF RFC 2737) for a port + or backplane component within the containing chassis. + + If the associated chassis-id-subtype object has a value of + mac-address, then this string identifies a particular unicast source + address (encoded in network byte order and IEEE 802.3 bit + significance), of a port on the containing chassis as defined in + IEEE Std 802. + + If the associated chassis-id-subtype object has a value of + network-address, then this string identifies a particular network + address, encoded in network byte order, associated with one or more + ports on the containing chassis. The first octet contains the IANA + Address Family Numbers enumeration value for the specific address + type, and octets 2 through N contain the network address value in + network byte order. + + If the associated chassis-id-subtype object has a value of + interface-name, then the octet string identifies a particular instance + of the ifName object (defined in IETF RFC 2863) for an interface on + the containing chassis. If the particular ifName object does not + contain any values, another chassis identifier type should be used. + + If the associated chassis-id-subtype object has a value of local, + then this string identifies a locally assigned Chassis ID."; + reference + "IEEE Std 802 + IETF RFC 2737 + IETF RFC 2863"; + } + typedef port-id-subtype-type { + type enumeration { + enum interface-alias { + value 1; + description + "Represents a port identifier based on the ifAlias MIB object, + defined in IETF RFC 2863."; + } + enum port-component { + value 2; + description + "Represents a port identifier based on the value of + entPhysicalAlias (defined in IETF RFC 2737) for a port component + (i.e., entPhysicalClass value of port(10)), within the containing + chassis."; + } + enum mac-address { + value 3; + description + "Represents a port identifier based on a unicast source address + (encoded in network byte order and IEEE 802.3 bit significance), + which has been detected by the agent and associated with a + particular port (IEEE Std 802)."; + } + enum network-address { + value 4; + description + "Represents a port identifier based on a network address, detected + by the agent and associated with a particular port."; + } + enum interface-name { + value 5; + description + "Represents a port identifier based on the ifName MIB object, + defined in IETF RFC 2863."; + } + enum agent-circuit-id { + value 6; + description + "Represents a port identifier based on the agent-local identifier + of the circuit (defined in RFC 3046), detected by the agent and + associated with a particular port."; + } + enum local { + value 7; + description + "Represents a port identifier based on a value locally assigned."; + } + } + description + "The source of a particular type of port identifier."; + reference + "IEEE Std 802 + IETF RFC 2737 + IETF RFC 2863 + IETF RFC 3046"; + } + typedef port-id-type { + type string { + length "1..255"; + } + description + "The format of a port identifier string. Objects of this type are + always used with an associated port-id-subtype object, which + identifies the format of the particular port-id object instance. + + If the associated port-id-subtype object has a value of + interface-alias, then the octet string identifies a particular + instance of the ifAlias object (defined in IETF RFC 2863). If the + particular ifAlias object does not contain any values, another port + identifier type should be used. + + If the associated port-id-subtype object has a value of + port-component, then the octet string identifies a particular instance + of the entPhysicalAlias object (defined in IETF RFC 2737) for a port + or backplane component. + + If the associated port-id-subtype object has a value of + mac-address, then this string identifies a particular unicast source + address (encoded in network byte order and IEEE 802.3 bit + significance) associated with the port (IEEE Std 802). + + If the associated port-id-subtype object has a value of + network-address, then this string identifies a network address + associated with the port. The first octet contains the IANA + AddressFamilyNumbers enumeration value for the specific address type, + and octets 2 through N contain the networkAddress address value in + network byte order. + + If the associated port-id-subtype object has a value of + interface-name, then the octet string identifies a particular instance + of the ifName object (defined in IETF RFC 2863). If the particular + ifName object does not contain any values, another port identifier + type should be used. + + If the associated port-id-subtype object has a value of + agent-circuit-id, then this string identifies a agent-local identifier + of the circuit (defined in RFC 3046). + + If the associated port-id-subtype object has a value of local, + then this string identifies a locally assigned port ID."; + reference + "IEEE Std 802 + IETF RFC 2737 + IETF RFC 2863 + IETF RFC 3046"; + } + grouping rational-grouping { + description + "Definition of a non-negative rational number."; + leaf numerator { + type uint32; + description + "Numerator of the rational number."; + } + leaf denominator { + type uint32 { + range "1..4294967295"; + } + description + "Denominator of the rational number."; + } + } + grouping ptp-time-grouping { + description + "This grouping specifies a PTP timestamp, represented as a 48-bit + unsigned integer number of seconds and a 32-bit unsigned integer + number of nanoseconds."; + reference + "6.4.3.4 of IEEE Std 802.1AS"; + leaf seconds { + type uint64; + description + "This is the integer portion of the timestamp in units of seconds. + The upper 16 bits are always zero."; + } + leaf nanoseconds { + type uint32; + description + "This is the fractional portion of the timestamp in units of + nanoseconds. This value is always less than 10^9."; + } + } +} diff --git a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang index df0c5242f..deeb30520 100644 --- a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang +++ b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang @@ -759,7 +759,7 @@ module ieee802-dot1as-gptp { if Pdelay_Req messages are not transmitted by this port. The default value for this variable shall be FALSE."; reference - "11.2.19.2.14 of IEEE Std 802.1ASds"; + "11.2.19.2.14 of IEEE Std 802.1AS"; } leaf pdelay-resp-send-disabled { type boolean; @@ -768,7 +768,7 @@ module ieee802-dot1as-gptp { if Pdelay_Resp messages are not transmitted by this port. The default value for this variable shall be FALSE."; reference - "11.2.20.2.6 of IEEE Std 802.1ASds"; + "11.2.20.2.6 of IEEE Std 802.1AS"; } }