From 22550a53bddbd858b7cb1ec763bcb53cee9434de Mon Sep 17 00:00:00 2001 From: samans Date: Tue, 24 Sep 2024 03:12:17 -0400 Subject: [PATCH] ASds, AXdz, and DC updated --- standard/ieee/check.sh | 2 +- .../draft/802.1/ASds/check_pyang_extra_flags | 2 +- .../draft/802.1/ASds/ieee802-dot1as-hd.yang | 5 +- .../draft/802.1/AXdz/ieee802-dot1ax-drni.yang | 635 ++++++++++++ .../802.1/AXdz/ieee802-dot1ax-linkagg.yang | 959 ++++++++++++++++++ .../802.1/AXdz/ieee802-dot1ax-types.yang | 342 +++++++ .../draft/802.1/DC/ieee802-dot1dc-ats-if.yang | 198 ++-- .../802.1/DC/ieee802-dot1dc-cbsa-if.yang | 116 +-- .../draft/802.1/DC/ieee802-dot1dc-gfqos.yang | 312 +++--- .../DC/ieee802-dot1dc-preemption-if.yang | 124 +-- .../802.1/DC/ieee802-dot1dc-psfp-sys.yang | 128 +-- .../802.1/DC/ieee802-dot1dc-sched-if.yang | 114 +-- 12 files changed, 2438 insertions(+), 499 deletions(-) create mode 100755 standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-drni.yang create mode 100755 standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-linkagg.yang create mode 100755 standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-types.yang diff --git a/standard/ieee/check.sh b/standard/ieee/check.sh index 57451bb85..8bd6f622b 100755 --- a/standard/ieee/check.sh +++ b/standard/ieee/check.sh @@ -9,7 +9,7 @@ ietf_dir="standard/ietf" ieee_dir="standard/ieee" #draft/802.1/DC removed until fixed -to_check="draft/60802 draft/qrev draft/802.1/ASdm draft/802.1/ASdn draft/802.1/ASds draft/802.1/Qdd draft/802.1/Qdx draft/802.1/Qdy draft/1588 draft/802 published/802 published/802.1 published/1588" +to_check="draft/60802 draft/802.1/qrev draft/802.1/ASdm draft/802.1/ASdn draft/802.1/ASds draft/802.1/AXdz draft/802.1/Qdd draft/802.1/Qdx draft/802.1/Qdy draft/1588 draft/802 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/ASds/check_pyang_extra_flags b/standard/ieee/draft/802.1/ASds/check_pyang_extra_flags index 8f31f3a5e..4f58805a5 100644 --- a/standard/ieee/draft/802.1/ASds/check_pyang_extra_flags +++ b/standard/ieee/draft/802.1/ASds/check_pyang_extra_flags @@ -1 +1 @@ - -p ../ASdn + -p ../ASdm -p ../ASdn diff --git a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang index 62d875253..e3944ea2f 100644 --- a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang +++ b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang @@ -9,6 +9,9 @@ module ieee802-dot1as-hd { import ieee802-dot1as-gptp { prefix dot1as-gptp; } + import ieee802-dot1as-hs { + prefix dot1as-hs; + } organization "IEEE 802.1 Working Group"; @@ -38,7 +41,7 @@ module ieee802-dot1as-hd { This version of this YANG module is part of IEEE Std 802.1AS; see the standard itself for full legal notices."; - revision 2024-06-11 { + revision 2024-07-25 { description "Published as part of IEEE Std 802.1ASds-2024. Initial version."; diff --git a/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-drni.yang b/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-drni.yang new file mode 100755 index 000000000..80d577875 --- /dev/null +++ b/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-drni.yang @@ -0,0 +1,635 @@ +module ieee802-dot1ax-drni { + yang-version 1.1; + namespace "urn:ieee:params:xml:ns:yang:ieee802-dot1ax-drni"; + prefix "dot1ax-drni"; + + import ieee802-dot1ax-types { + prefix "ax"; + } + import ieee802-dot1ax-linkagg { + prefix "dot1ax"; + } + import ieee802-types { + prefix "ieee"; + } + import ietf-yang-types { + prefix "yang"; + } + import ietf-interfaces { + prefix "if"; + } + + organization + "Institute of Electrical and Electronics Engineers"; + + contact + "Web URL: http://www.ieee802.org/1/ + + Working Group Chair: + Glenn Parsons + glenn.parsons@ericsson.com + + Editor: + Stephen Haddock + shaddock@stanfordalumni.org"; + + description + "This YANG module describes the configuration model for a + Distributed Resilient Network Interface (DRNI) as specified + in 802.1AX. + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1AX; + see the standard itself for full legal notices."; + + revision "2024-06-05" { + description + "For task group ballot on draft 0.1"; + reference + "IEEE 802.1AX-2020, Link Aggregation."; + } + revision "2024-05-04" { + description + "Initial Version."; + reference + "IEEE 802.1AX-2020, Link Aggregation."; + } + + + augment "/if:interfaces/if:interface/dot1ax:lag" { + description + "Augmentation parameters only for Aggregators with + DRNI enabled."; + container drni { + presence + "When present, this Aggregator is enabled for DRNI"; + description + "Aggregator parameters to support a Distributed + Resilient Network Interface"; + leaf irp-name { + type if:interface-ref; + mandatory true; + description + "Interface Name (if:name) of the Port supporting the + Intra Relay Port (IRP) of this DRNI Gateway."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.23"; + } + leaf drni-aggregator-key { + type uint16; + description + "The Aggregator Key value to be used by the Aggregator + supporting this DRNI Gateway (and the Aggregation Ports + assigned to this DRNI Gateway) when paired with a + neighbor DRNI System via the IRC. "; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.15"; + } + leaf drni-aggregator-system { + type ieee:mac-address; + default "00-00-00-00-00-00"; + description + "The Aggregator System value to be used by the + Aggregator supporting this DRNI Gateway (and the + Aggregation Ports assigned to this DRNI Gateway) + when paired with a neighborDRNI System via the + Intra-Relay Connection (IRC)."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.13"; + } + leaf drni-aggregator-system-priority { + type uint16; + default 0; + description + "The Aggregator System Priority value to be used by the + Aggregator supporting this DRNI Gateway (and the + Aggregation Ports assigned to this DRNI Gateway) when + paired with a neighbor DRNI System via the IRC."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.14"; + } + leaf drcp-protocol-da { + type ieee:mac-address; + must + '. = "01-80-c2-00-00-00" or . = "01-80-C2-00-00-00" or + . = "01-80-c2-00-00-0e" or . = "01-80-C2-00-00-0E" or + . = "01-80-c2-00-00-03" or . = "01-80-C2-00-00-03"' { + error-message "Invalid protocol address"; + } + default "01-80-c2-00-00-03"; + description + "A 6-octet read-write MAC Address value specifying the + Destination Address for Distributed Relay Control PDUs + transmitted on the Intra-Relay Port. Valid addresses are + the Nearest Customer Bridge, Nearest Bridge, and + Nearest non-TPMR Bridge group addresses. The default + value shall be the Nearest Non-TPMR Bridge group + address."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.12, Clause 9.6.1.1"; + } + leaf home-admin-irp-state { + type ax:irp-state; + default "short-timeout irc-data"; + description + "A string of 8 bits, corresponding to the values of + IRP_State. These values allow administrative control + over the Short_Timeout and IRC_Data flags."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.24, 9.6.2.3, + Figure 9-13"; + } + leaf home-oper-irp-state { + type ax:irp-state; + config false; + description + "A string of 8 bits, corresponding to the current + operational value of IRP_State as transmitted in + DRCPDUs."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.25, 9.6.2.3, + Figure 9-13"; + } + leaf home-cscd-gateway-control { + type boolean; + default true; + description + "When TRUE, allows the DRNI Gateway Port selection to + be based on the CSCD parameters that control the + Aggregator Port selection."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.16"; + } + leaf home-dr-client-gateway-control { + type boolean; + default true; + description + "When TRUE, allows the Distributed Relay Client to + determine whether to forward frames through the DRNI + Gateway Port."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.17"; + } + leaf home-gateway-algorithm { + type identityref { + base ax:distribution-algorithm; + } + default ax:unspecified; + description + "Identifies the algorithm used by the DRNI Gateway to + assign frames to a Gateway Conversation ID. 8.2 provides + the IEEE 802.1 OUI (00-80-C2) Gateway Algorithm + encodings. Default is the value for an unspecified + distribution algorithm."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.6"; + } + + list home-admin-conv-service-map { + key cid; + description + "Data structure to map service identifiers to + conversation identifiers.Each entry consists of a + Conversation ID (CID) and a list of zero or more Service + Identifiers (SIDs) that map to it. Frames with Service + IDs not contained in the map are not mapped to any + Gateway Conversation ID and are discarded."; + leaf cid { + type uint16 { + range 0..4095; + } + description + "Port Conversation Identifier"; + } + leaf-list service-ids { + type uint32; + description + "List of SIDs that are associated with the CID."; + } + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.20, Clause 6.6.3.1"; + } + leaf home-admin-conv-service-digest { + type binary; + config false; + description + "The MD5 Digest of the home-admin-conv-service-map. The + value is NULL when the distribution algorithm specified + by agg-port-algorithm does not use the + home-admin-conv-service-map."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.21"; + } + container gateway-enable-mask { + uses drni-mask; + description + "A vector of Boolean values, with one value for each + possible Gateway Conversation ID. A 1 indicates that + frames associated with that Gateway Conversation ID + are allowed to pass through this Gateway Port, and a + 0 indicates that such frames are not allowed to pass. + Default value is all bits set to 1."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.18, 9.5.3.5, 9.6.5"; + } + + container gateway-preference-mask { + uses drni-mask; + description + "A vector of Boolean values, with one value for each + possible Gateway Conversation ID. A 1 indicates that + this Gateway Port is the preferred Gateway when both + DRNI Gateways have the Gateway Conversation ID enabled + in the gateway-available-mask, and a 0 indicates that + it is not preferred. + Default value is all bits set to 1."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.19, 9.5.3.5, 9.6.5"; + } + leaf gateway-available-mask { + type binary; + config false; + description + "A vector of Boolean values, with one value for each + possible Gateway Conversation ID. A 1 indicates that + this Gateway Port is eligible to be selected to pass + that Gateway Conversation ID, and a 0 indicates that + it is not eligible."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.22, 9.5.3.5, 9.6.5"; + } + + container neighbor { + config false; + description + "Operational values for the DRNI neighbor obtained + from DRCPDUs."; + leaf oper-irp-state { + type ax:irp-state; + description + "A string of 8 bits, corresponding to the current + operational value of IRP_State as transmitted in + DRCPDUs."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.25, 9.6.2.3, + Figure 9-13"; + } + leaf system { + type ieee:mac-address; + description + "The MAC Address portion of the System Identifier of + the Neighbor DRNI System (connected via the + Intra-Relay Port). "; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.29"; + } + leaf system-priority { + type uint16; + description + "The priority portion of the System Identifier of the + Neighbor DRNI System (connected via the Intra-Relay + Port)."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.30"; + } + leaf drni-key { + type uint16; + description + "The DRNI key value received from the Neighbor DRNI + System (connected via the IntraRelay Port)."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.31"; + } + leaf aggregator-algorithm { + type identityref { + base ax:distribution-algorithm; + } + description + "The Port algorithm used by the Neighbor Aggregator to + assign frames to Port Conversation IDs."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.33"; + } + leaf aggregator-conv-service-digest { + type binary; + config false; + description + "The MD5 Digest of the Neighbor Aggregator’s + Admin_Conv_Service_Map. Obtained from the Home + Aggregator State TLV last received from the Neighbor + DRNI System."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.34"; + } + leaf aggregator-conv-link-digest { + type binary; + config false; + description + "The MD5 Digest of the Neighbor Aggregator’s + Admin_Conv_Link_Map. Obtained from the Home Aggregator + State TLV (9.6.2.4) last received from the Neighbor + DRNI System."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.35"; + } + leaf partner-system-priority { + type uint16; + description + "The priority portion of the System Identifier of the + Neighbor Aggregator's Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.36"; + } + leaf partner-system { + type ieee:mac-address; + description + "The MAC Address portion of the System Identifier of + the Neighbor Aggregator's Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.37"; + } + leaf partner-aggregator-key { + type uint16; + description + "The operational key value of the Neighbor + Aggregator's Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.38"; + } + leaf cscd-state { + type bits { + bit reserved-1 { + position 0; + description + "Bit 1 is reserved for future use. It is set to 0 + and ignored on receipt."; + } + bit reserved-2 { + position 1; + description + "Bit 2 is reserved for future use. It is set to 0 + and ignored on receipt."; + } + bit reserved-3 { + position 2; + description + "Bit 3 is reserved for future use. It is set to 0 + and ignored on receipt."; + } + bit cscd_gateway_control { + position 3; + description + "CSCD_Gateway_Control is encoded in bit 4. When + this flag is TRUE, the DRNI Gateway is configured + to minimize forwarding data frames on the IRC by + selecting the DRNI Gateway and Aggregator Ports + for forwarding any given Conversation ID to be in + the same DRNI System."; + } + bit discard_wrong_conversation { + position 4; + description + "Discard_Wrong_Conversation is encoded in bit 5. + The Aggregator's Discard_Wrong_Conversation + value."; + } + bit differ_conv_link_digests { + position 5; + description + "Differ_Conv_Link_Digests is encoded in bit 6. + This flag is TRUE when the Aggregator's + Actor_Conv_Link_Digest matches the Aggregator's + Partner_Conv_Link_Digest."; + } + bit differ_conv_service_digests { + position 6; + description + "Differ_Conv_Service_Digests is encoded in bit 7. + This flag is TRUE when the Aggregator's + Actor_Conv_Service_Digest matches the Aggregator's + Partner_Conv_Service_Digest."; + } + bit differ_port_algorithms { + position 7; + description + "Differ_Port_Algorithms is encoded in bit 8. The + Aggregator's differPortAlgorithms flag is TRUE + when the Aggregator's Actor_Port_Algorithm matches + the Aggregator's Partner_Port_Algorithm."; + } + } + description + "8 bits, corresponding to the Aggregator_CSCD_State + in the Neighbor_Aggregator_State variable. The first + three bits (the least significant bits of CSCD_State) + are reserved; the fourth bit corresponds to the + Neighbor's value for Home_Admin_CSCD_Gateway_Control; + the fifth bit corresponds to the Neighbor Aggregator's + operational value for Discard_Wrong_Conversation; and + the sixth, seventh, and eighth bits correspond to the + Neighbor Aggregator's operational value for + differConvLinkDigests, differConvServiceDigests, and + differPortAlgorithms, respectively, (the most + significant bits of CSCD_State)."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.39"; + } + leaf-list active-links { + type uint16; + description + "A list of the operational Link_Numbers of Aggregation + Ports that are currently active (i.e., collecting) on + the Neighbor’s Aggregator. An empty list indicates that + there are no Aggregation Ports active. Each integer + value in the list carries an aAggPortOperLinkNumber + attribute value."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.40 "; + } + leaf gateway-algorithm { + type identityref { + base ax:distribution-algorithm; + } + description + "The gateway algorithm used by the Neighbor DRNI + Gateway to assign frames to Gateway Conversation IDs."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.41"; + } + leaf gateway-conv-service-digest { + type binary; + description + "The MD5 Digest of the Neighbor DRNI Gateway’s + the Home_Admin_Gateway_Conv_Service_Map. Obtained + from Gateway_Conv_Service_Digest in the + Neighbor_Gateway_State TLV last received from the + Neighbor DRNI System."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.42"; + } + leaf gateway-available-mask { + type binary; + description + "A vector of Boolean values, with one value for each + possible Gateway Conversation ID. A 1 indicates that + the Neighbor DRNI Gateway Port is eligible to be + selected to pass that Gateway Conversation ID, and + a 0 indicates that it is not eligible."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.43"; + } + leaf gateway-preference-mask { + type binary; + description + "A vector of Boolean values, with one value for each + possible Gateway Conversation ID. A 1 indicates that + the Neighbor DRNI Gateway Port is the preferred + Gateway when both DRNI Gateways have the Gateway + Conversation ID enabled in the gateway-available-mask, + and a 0 indicates that it is not preferred."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.44"; + } + } + + container gateway-relay { + config false; + description + "The set of masks, indexed by CID that determine the + forwarding of frames by the DRNI Gateway Relay."; + leaf home-aggregator-mask { + type binary; + description + "A vector of Boolean values, with one value for each + possible Port Conversation ID. A 1 indicates that the + Port Conversation ID is allowed to be distributed + through this DRNI Gateway’s Aggregator, and a 0 + indicates that it cannot"; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.7, 9.5.2.2"; + } + leaf home-gateway-mask { + type binary; + description + "A vector of Boolean values, with one value for each + possible Port Conversation ID. A 1 indicates that the + Port Conversation ID is allowed to pass through this + DRNI Gateway Port, and a 0 indicates that it cannot"; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.8, 9.5.2.2"; + } + leaf neighbor-aggregator-mask { + type binary; + description + "A vector of Boolean values, with one value for each + possible Port Conversation ID. A 1 indicates that the + Port Conversation ID is allowed to be distributed + through the IRP to the Neighbor Aggregator, and a 0 + indicates that it is not"; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.27, 9.5.2.2"; + } + leaf neighbor-gateway-mask { + type binary; + description + "A vector of Boolean values, with one value for each + possible Port Conversation ID. A 1 indicates that the + Port Conversation ID is allowed to be passed to the + Neighborr DRNI Gateway Port via the IRP, and a 0 + indicates that it is not"; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.28, 9.5.2.2"; + } + } + } + } + + augment "/if:interfaces/if:interface/if:statistics" { + when + "../dot1ax:lag/dot1ax-drni:drni" { + + description + "Applies to aggregators with DRNI present."; + } + description + "Augment interface statistics with DRNI statistics."; + container drni-stats { + description + "Contains DRNI specific statistics."; + + leaf drcpdus-rx { + type yang:counter64; + config false; + description + "The number of valid DRCPDUs received on this + Intra-Relay Port."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.45"; + } + leaf illegal-rx { + type yang:counter64; + config false; + description + "The number of frames received on this Intra-Relay + Port that carry the DRCP EtherType value, + but contain a badly formed PDU."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.46, 9.6.1.4"; + } + leaf drcpdus-tx { + type yang:counter64; + config false; + description + "The number of valid DRCPDUs transmitted on this + Intra-Relay Port."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.47"; + } + } + } + + grouping drni-mask { + description + "Specifies the contents of a bit mask indexed by CID."; + choice method { + default pattern; + description + "Provides three ways to specify the mask contents."; + leaf pattern { + type identityref { + base ax:drni-mask-patterns; + } + default ax:all-ones; + // Could not get this default statement to pass yanglint + // if grouping was specified in ieee802-dot1ax-types + description + "Use a predefined pattern to fill the mask."; + } + leaf-list cid-list { + type uint16 { + range 0..4095; + } + description + "A list of CIDs whose corresponding bit in the + mask should be set to one."; + } + leaf mask { + type binary { + length 512; + } + description + "Specify an explicit mask for all 4096 CID values."; + } + } + leaf invert-list { + type boolean; + default false; + description + "When true the mask derived from one of the options + above will be inverted: each zero replaced with a one, + and each one replaced with a zero."; + } + } + +} diff --git a/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-linkagg.yang b/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-linkagg.yang new file mode 100755 index 000000000..b9df8479c --- /dev/null +++ b/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-linkagg.yang @@ -0,0 +1,959 @@ +module ieee802-dot1ax-linkagg { + yang-version 1.1; + namespace "urn:ieee:params:xml:ns:yang:ieee802-dot1ax-linkagg"; + prefix "dot1ax"; + + import ieee802-dot1ax-types { + prefix "ax"; + } + import ieee802-types { + prefix "ieee"; + } + import ietf-yang-types { + prefix "yang"; + } + import ietf-interfaces { + prefix "if"; + } + import iana-if-type { + prefix "ianaif"; + } + + organization + "Institute of Electrical and Electronics Engineers"; + + contact + "Web URL: http://www.ieee802.org/1/ + + Working Group Chair: + Glenn Parsons + glenn.parsons@ericsson.com + + Editor: + Stephen Haddock + shaddock@stanfordalumni.org"; + + description + "This YANG module describes the configuration model for Link + Aggregation, as specified in IEEE Std 802.1AX, including Link + Aggregation Control Protocol (LACP) and Conversation Sensitive + Collection and Distribution. + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1AX; + see the standard itself for full legal notices."; + + + revision "2024-06-05" { + description + "For task group ballot on draft 0.1"; + reference + "IEEE 802.1AX-2020, Link Aggregation."; + } + revision "2024-05-04" { + description + "Initial Version."; + reference + "IEEE 802.1AX-2020, Link Aggregation."; + } + + typedef key-group-ref { + type leafref { + path "/dot1ax:linkagg/dot1ax:key-group/dot1ax:name"; + } + description + "This type is used by aggregators and aggregation ports to + reference an entry in the key-group list."; + } + + + container linkagg { + description + "LAG System specific configuration nodes."; + list key-group { + key name; + unique "actor-system-id actor-admin-key"; + description + "List of key groups. A key group is the set of aggregators + and aggregation ports that share the same system priority, + system identifier, and aggregation key, and therefore can + potentially form a Link Aggregation Group. Each entry in + the key group list contains the parameters common to all + aggregation ports and/or aggregatiors in the key group."; + leaf name { + type string; + description + "Name for the key group."; + } + leaf actor-admin-key { + type uint16; + mandatory true; + description + "The current administrative value of the Key for the + Aggregator. The administrative Key value may differ + from the operational Key value for the reasons + discussed in 5.6.2. The meaning of particular Key + values is of local significance."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.7 + IEEE 802.1AX-2020, Clause 7.3.2.1.4"; + } + leaf actor-system-id { + type ieee:mac-address; + mandatory true; + description + "The unique identifier for the aggregating system."; + reference + "IEEE 8021AX-2020, Clause 7.3.1.1.4 + IEEE 8021AX-2020, Clause 7.3.2.1.3"; + } + leaf actor-system-priority { + type uint16; + default 1; + description + "The priority of the aggregating system."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.5 + IEEE 802.1AX-2020, Clause 7.3.2.1.2"; + } + leaf actor-protocol-da { + type ieee:mac-address; + must + '. = "01-80-c2-00-00-00" or . = "01-80-C2-00-00-00" or + . = "01-80-c2-00-00-02" or . = "01-80-C2-00-00-02" or + . = "01-80-c2-00-00-03" or . = "01-80-C2-00-00-03"' { + error-message "Invalid protocol address"; + } + default "01-80-c2-00-00-02"; + description + "A 6-octet read-write MAC Address value specifying the DA + to be used when sending Link Aggregation Control and + Marker PDUs. Valid addresses are the Nearest Customer + Bridge, Slow_Protocols_Multicast, and Nearest non-TPMR + Bridge group addresses. The default value + shall be the Slow_Protocols_Multicast address."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.2.1, Clause 6.2.10.2"; + } + leaf collector-max-delay { + type uint16; + description + "Defines the maximum delay, in tens of microseconds, + that may be imposed by the Frame Collector between + receiving a frame from an Aggregator Parser, and + either delivering the frame to its MAC Client or + discarding the frame (see 5.2.3.1.1). + Used to determine the maximum delay for the Marker + Protocol to wait for a Marker Response."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.32, Clause 6.2.3.1.1, + Clause B.3"; + } + leaf partner-admin-system-id { + type ieee:mac-address; + default "00-00-00-00-00-00"; + description + "The administrative value of the Partners System ID. + The assigned value is used, along with the value of + port-partner-admin-system-id, partner-admin-key, + partner-admin-port, and partner-admin-port-priority, + to achieve administratively configured Link + Aaggregation Groups with a partner that does not run + LACP."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.10 + IEEE 802.1AX-2020, Clause 7.3.2.1.8"; + } + leaf partner-admin-system-priority { + type uint16; + default 0; + description + "The administrative value of priority associated + with the Partners System ID. The assigned + value is used, along with the value of + port-partner-admin-system-id, partner-admin-key, + partner-admin-port, and partner-admin-port-priority, + to achieve administratively configured Link + Aaggregation Groups with a partner that does not run + LACP."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.11 + IEEE 802.1AX-2020, Clause 7.3.2.1.6"; + } + leaf-list lags { + type if:interface-ref; + config false; + description + "A list of the if:name of aggregators assigned to this + key group."; + reference + "link-aggregation:key-groups"; + } + leaf-list aggports { + type if:interface-ref; + config false; + description + "A list of the if:name of aggregation ports assigned to + this key group."; + reference + "link-aggregation:key-groups"; + } + + container cscd { + if-feature "ax:cscd"; + description + "Contains CSCD parameters that need to be consistent for + all aggregation ports and aggregators in the key group."; + leaf port-algorithm { + type identityref { + base ax:distribution-algorithm; + } + default ax:unspecified; + description + "Identifies the algorithm used by the Aggregator to + assign frames to a Port Conversation ID. Default is + the value for an unspecified distribution algorithm."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.33"; + } + + list admin-conv-service-map { + key cid; + description + "Data structure to map service identifiers to + conversation identifiers. Each entry consists of a + Conversation ID (CID) and a list of zero or more + Service Identifiers (SIDs) that map to it."; + leaf cid { + type uint16 { + range 0..4095; + } + description + "Port Conversation Identifier"; + } + leaf-list service-ids { + type uint32; + description + "List of SIDs that are associated with the CID."; + } + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.36, 6.6.3.1"; + } + leaf admin-conv-service-digest { + type binary; + config false; + description + "The MD5 Digest of the admin-conv-service-map. The + value is NULL when the distribution algorithm + specified by agg-port-algorithm does not use the + admin-conv-service-map."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.39, 6.6.3.1"; + } + list admin-conv-link-map { + key cid; + description + "Data structure to map Conversation Identifiers to a + Link Number. Each entry consists of a Conversation ID + (CID) and a list of link numbers that can potentially + be selected for that CID. The value selected will be + the first link number in the list that is currently + operational."; + leaf cid { + type uint16 { + range 0..4095; + } + description + "Port Conversation Identifier"; + } + leaf-list link-numbers { + type uint16; + description + "Ordered list of Link Numbers to carry packets with + this CID."; + } + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.34, 6.6.3.1"; + } + leaf admin-conv-link-digest { + type binary; + config false; + description + "The MD5 Digest of the admin-conv-link-map. The value + is NULL when the distribution algorithm specified by + agg-port-algorithm does not use the + admin-conv-link-map."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.38, 6.6.3.1"; + } + + leaf admin-discard-wrong-conv { + if-feature "ax:dwc"; + type enumeration { + enum force-true { + value 1; + description + "Indicates that an Aggregator should discard a + frame that is collected from an Aggregation Port + that is different from the Aggregation Port to + which the Aggregator would distribute a frame + with the same Port Converstion ID."; + } + enum force-false { + value 2; + description + "Indicates that an Aggregator should not discard + a frame that is collected from an Aggregation Port + that is different from the Aggregation Port to + which the Aggregator would distribute a frame with + the same Port Converstion ID. This is the behavior + of the Aggregator when DWC is not supported"; + } + enum auto { + value 3; + description + "Indicates that the Aggregator should behave as + if the value was force-true only when the actor + and partner agree on the algorithms (other than + unspecified) and mapping tables used to map frames + to Aggregation Ports, and behave as if the value + was force-false otherwise."; + } + } + default force-false; + description + "Indicates whether an Aggregator should discard a + frame that is collected from an Aggregation Port + that is different from the Aggregation Port to which + the Aggregator would distribute a frame with the + same Port Converstion ID."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.35, 6.6"; + } + } + + } + } + + + augment "/if:interfaces/if:interface" { + when + "derived-from-or-self(if:type,'ianaif:ieee8023adLag') or "+ + "if:type = 'ax:ieee8021axIrp'" { + description + "Applies to interfaces representing a LAG or + DRNI Intar-Relay Port."; + } + description + "Augment Interface with Aggregator parameters."; + container lag { + description + "Contains the Aggregator configuration information which + provides the management controls necessary to allow an + instance of an Aggregator to be managed."; + leaf key-group-name { + type key-group-ref; + mandatory true; + description + "Specifies the entry in the link-aggregation key-groups + list to which this aggregator is assigned."; + } + leaf mac-address { + type ieee:mac-address; + config false; + description + "The MAC address assigned to the Aggregator."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.9"; + } + container lacp { + config false; + description + "Contains aggregator LACP operational data."; + leaf actor-oper-key { + type uint16; + description + "The current operational value of the Key for the + Aggregator. The administrative Key value may differ + from the operational Key value for the reasons + discussed in 5.6.2. The meaning of particular Key + values is of local significance."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.8"; + } + leaf partner-system-id { + type ieee:mac-address; + description + "Consisting of the unique identifier for the + current protocol Partner of this Aggregator. A value + of zero indicates that there is no known Partner. + If the aggregation is manually configured, this + System ID value will be a value assigned by the + local System."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.10"; + } + leaf partner-system-priority { + type uint16; + description + "Indicates the priority value associated with the + Partners System ID. If the aggregation is manually + configured, this System Priority value will be a + value assigned by the local System."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.11"; + } + leaf partner-oper-key { + type uint16; + description + "The current operational value of the Key for the + Aggregators current protocol Partner. If the + aggregation is manually configured, this Key value + will be a value assigned by the local System."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.12"; + } + leaf aggregate-or-individual { + type boolean; + description + "Indicates whether the Aggregator represents an + Aggregate (TRUE) or an Individual link (FALSE)."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.6"; + } + } + container cscd { + if-feature "ax:cscd"; + config false; + description + "Aggregator parameters obtained by the operation of LACP + supporting CSCD."; + leaf partner-port-algorithm { + type identityref { + base ax:distribution-algorithm; + } + description + "Operational value of the distribution algorithm in + use by the LACP Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.40"; + } + leaf partner-conv-service-digest { + type binary; + description + "The MD5 Digest of the admin-conv-service-map in use + by the LACP Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.42, Clause 6.6.3.1"; + } + leaf partner-conv-link-digest { + type binary; + description + "The MD5 Digest of the admin-conv-link-map in use + by the LACP Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.41, Clause 6.6.3.1"; + } + leaf discard-wrong-conversation { + type boolean; + description + "The operational value that determines whether an + Aggregator should discard a frame that is collected + from an Aggregation Port that is different from the + Aggregation Port to which the Aggregator would + distribute a frame with the same Port Conversation + ID."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.37, Clause 6.6"; + } + leaf-list active-lag-links { + type uint16; + config false; + description + "A list, possibly empty, of the operational + link-number of each Aggregation Port active + (i.e. Collecting) on this Aggregator."; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.43"; + } + } + } + } + + augment "/if:interfaces/if:interface/if:statistics" { + when + "../dot1ax:lag" { + description + "Applies to aggregators."; + } + description + "Augment interface statistics with aggregator statistics."; + container lag-stats { + config false; + description + "Contains the set of stats associated with the + Aggregator."; + leaf unknown-protocol-frames { + type yang:counter64; + description + "A count of data frames discarded on reception by all + ports that are (or have been) members of the + aggregation, due to the detection of an unknown Slow + Protocols PDU (7.3.3.1.5)"; + reference + "IEEE 802.1AX-2020, Clause 7.3.1.1.29"; + } + } + } + + + augment "/if:interfaces/if:interface" { + description + "Augment interface model with Aggregation port + configuration nodes."; + container aggport { + presence + "When present, this interface supports Link Aggregation"; + description + "Contains Aggregation Port configuration related nodes, + which provides the basic management controls necessary + to allow an instance of an Aggregation Port to be managed, + for the purposes of Link Aggregation."; + + leaf key-group-name { + type key-group-ref; + mandatory true; + description + "Specifies the entry in the link-aggregation key-groups + list to which this aggregation-port is assigned."; + } + leaf actor-port-number { + type uint16 { + range 1..65535; + } + description + "The port number assigned to the Aggregation Port. + The port number is communicated in LACPDUs as the + Actor_Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.14, 6.4.6"; + } + leaf actor-port-priority { + type uint16; + default 0; + description + "The priority value assigned to this Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.15, 6.4.6"; + } + leaf actor-admin-state { + type ax:lacp-state; + default "lacp-activity aggregation"; + description + "Corresponding to the administrative values of the + first three bits (positions 0, 1, and 2) of Actor_State + as transmitted by the Actor in LACPDUs. Provides + administrative control over the values of the + LACP_Activity, LACP_Timeout, and Aggregation state. + Setting the LACP_Activity state to '0' ensures that the + transmission of LACPDUs is controlled by the + partner-oper-state.LACP_Activity. + Setting the LACP_Timeout to '0' ensures that actor uses + the Long_Timeout value, allowing the partner to transmit + LACPDUs at the Slow_Periodic_Time. + Setting the Aggregation state to '0' ensures that this + port will not be aggregated with any other ports. + The remaining five bits (corresponding to + Synchronization, Collecting, Distributing, Expired, + and Defaulted) are ignored."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.20, 6.4.1, 6.4.2.2, + 6.4.6"; + } + + leaf partner-admin-key { + type uint16; + description + "The current administrative value of the Key for the + protocol Partner. The assigned value is used, along + with the value of port-partner-admin-system-priority, + partner-admin-system-id, partner-admin-port, and + partner-admin-port-priority, in order to achieve + manually configured aggregation.;"; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.10"; + } + leaf partner-admin-port { + type uint16; + description + "The current administrative value of the port number for + the protocol Partner. The assigned value is used, along + with the value of partner-admin-system-priority, + partner-admin-system-id, port-partner-admin-key, and + partner-admin-port-priority, in order to achieve + manually configured aggregation."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.16"; + } + leaf partner-admin-port-priority { + type uint16; + default 0; + description + "The current administrative value of the port priority + for the protocol Partner. The assigned value is used, + along with the value of partner-admin-system-priority, + partner-admin-system-id, partner-admin-key, and + partner-admin-port, in order to achieve manually + configured aggregation."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.18"; + } + leaf partner-admin-state { + type ax:lacp-state; + default "synchronization"; + description + "Corresponding to the administrative values of the first + four bits (positions 0, 1, 2, and 3) of Partner_State to + be used when no LACPDUs are received from LACP partner. + Provides administrative control over the partner's + LACP_Activity, LACP_Timeout, Aggregation, and + Synchronization state when the partner's information is + unknown (i.e. no LACPDUs are received from the partner). + Setting the LACP_Activity state to '0' ensures that the + transmission of LACPDUs is controlled by the + actor-admin-state.LACP_Activity. + Setting the LACP_Timeout to '0' ensures that LACPDUs + will be transmitted at the Slow_Periodic_Time. + Setting the Aggregation state to '0' ensures that this + port will not be aggregated with any other ports. + Setting the Synchronization state to '0' prevents this + port from becoming active. + The remaining four bits (corresponding to Collecting, + Distributing, Expired, and Defaulted) are ignored."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.22, 6.4.1, 6.4.2.2, + 6.4.6"; + } + + leaf wtr-time { + type uint16; + default 1; + description + "The wait-to-restore (WTR) period, in seconds, that + needs to elapse between an Aggregation Port on a LAG + coming up (Port_Operational becoming TRUE) and being + permitted to become active (transmitting and + receiving frames) on the LAG."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.30"; + } + leaf wtr-revertive { + type boolean; + default true; + description + "Controls revertive or non-revertive mode of operation. + When TRUE, the Aggregation Port can become active as + soon as the wait-to-restore timer expires regardless of + the state of other links in the LAG. + When FALSE, the Aggregation Port cannot become active + unless there are no other links that can become active + in the LAG. The default value is TRUE."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.31"; + } + + container lacp { + config false; + description + "Contains Aggregation port LACP operational related + nodes."; + leaf actor-lacp-version { + type uint16; + description + "The version number transmitted in LACPDUs on this + Aggregation Port"; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.33"; + } + leaf actor-oper-key { + type uint16; + description + "The current operational value of the Key for the + Aggregation Port. The meaning of particular Key values + is of local significance."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.5"; + } + leaf actor-oper-state { + type ax:lacp-state; + description + "The operational value of the Actor_State as + transmitted in LACPDUs."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.21, 6.4.1, 6.4.2.2, + 6.4.6"; + } + leaf partner-lacp-version { + type uint16; + description + "The version number in the LACPDU most recently + received on this Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.34"; + } + leaf partner-oper-system-priority { + type uint16; + description + "Indicates the operational value of priority associated + with the Partners System ID. The value of this + attribute may contain the manually configured value + carried in partner-admin-system-priority if there is + no protocol Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.7"; + } + leaf partner-oper-system-id { + type ieee:mac-address; + description + "Represents the current value of the Aggregation + Ports protocol Partners System ID. A value of zero + indicates that there is no known protocol Partner. The + value of this attribute may contain the manually + configured value carried in partner-admin-system-id if + there is no protocol Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.9"; + } + leaf partner-oper-key { + type uint16; + description + "The current operational value of the Key for the + protocol Partner. The value of this attribute may + contain the manually configured value carried in + partner-admin-key if there is no protocol Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.11"; + } + leaf partner-oper-port { + type uint16; + description + "The operational port number assigned by the + Aggregation Port's protocol Partner. The value of this + attribute may contain the administratively configured + value carried in partner-admin-port if there is no + protocol Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.17"; + } + leaf partner-oper-port-priority { + type uint16; + description + "The operational priority value assigned by the + Aggregation Port's protocol Partner. The value of this + attribute may contain the administratively configured + value carried in partner-admin-port-priority if there + is no protocol Partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.19"; + } + leaf partner-oper-state { + type ax:lacp-state; + description + "The operational value of the partner's LACP state + derived from received LACPDUs or, when Defaulted is + true, from the partner-admin-state."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.23, 6.4.1, 6.4.2.2, + 6.4.6"; + } + leaf aggregate-or-individual { + type boolean; + description + "When true indicates the Aggregation Port can join a + LAG consisting of multiple Aggregation Ports. + When false, indicates that the Aggregation Port can + only operate as an Solitary link because the + Aggregation bit is false in either + actor-oper-port-state or partner-oper-port-state."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.24"; + } + leaf wtr-waiting { + type boolean; + description + "Indicates the Aggregation Port is inhibited from + becoming active for an interval (determined by + wtr-time) after becoming operational or while + non-revertive operation is being enforced by the + Selection Logic."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.32"; + } + } + + container cscd { + if-feature "ax:cscd"; + description + "Aggregation port parameters for support of CSCD."; + leaf admin-link-number { + type uint16; + description + "The Link_Number value for the Aggregation Port, + configured by the System's administrator, which is + unique among all Aggregation Ports in the same key + group, and selected from the set of Link_Numbers in + the admin-conv-link-map of that key group. + + More than one Aggregation Port in a LAG having the same + Admin_Link_Number can, if Discard_Wrong_Conversation + is TRUE, result in significant frame loss. If the + Admin_Link_Number is not in the set of Link_Numbers + in the Admin_Conv_Link_Map, then no frames will be + distributed to this Aggregation Port. A value of 0 + will result in no frames are distributed to this + Aggregation Port. + + From an implementation standpoint, this can be be + automatically determined and set by the system. + This optional leaf allows for administrative + control over numbering."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.27"; + } + leaf partner-link-number { + type uint16; + config false; + description + "The last received value of the Partner_Link_Number, + or zero if the Aggregation Port is using default + values for the Partner or the Partner LACP Version + is 1."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.29"; + } + leaf link-number { + type uint16; + config false; + description + "The operational link number for this Aggregation Port. + The value is either the same as the admin-link-number, + or the corresponding value fo the LACP partner."; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.28"; + } + leaf oper-conversation-passes { + type binary; + config false; + description + "A vector of Boolean values, with one value for each + possible Port Conversation ID. A 1 indicates that a + frame mapping to this Port Conversation ID is + distributed to this Aggregation Port, and a 0 + indicates that it is not"; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.25"; + } + leaf oper-conversation-collected { + type binary; + config false; + description + "A vector of Boolean values, with one value for each + possible Port Conversation ID. A 1 indicates that a + frame mapping to this Port Conversation ID can be + collected from this Aggregation Port, and a 0 + indicates that it cannot"; + reference + "IEEE 802.1AX-2020, Clause 7.3.2.1.26"; + } + } + } + } + + augment "/if:interfaces/if:interface/if:statistics" { + when + "../dot1ax:aggport" { + description + "Applies to aggregation ports."; + } + description + "Augment interface statistics with aggport statistics."; + container aggport-stats { + config false; + description + "Contains stats associated with the Aggregation Port."; + leaf lacp-pdu-rx { + type yang:counter64; + description + "The number of valid LACPDUs received on this + Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.2"; + } + leaf marker-pdu-rx { + type yang:counter64; + description + "The number of valid Marker PDUs received on this + Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.3"; + } + leaf marker-response-pdu-rx { + type yang:counter64; + description + "The number of valid Marker Response PDUs received on + this Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.4"; + } + leaf unknown-rx { + type yang:counter64; + description + "The number of frames received that either: + a) Carry the Slow Protocols Ethernet Type value (IEEE + Std 802.3 Annex 57A.4), but contain an unknown PDU, or + b) Are addressed to the Slow Protocols group MAC + Address (IEEE Std 802.3 Annex 57A.3), but do not carry + the Slow Protocols Ethernet Type."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.5"; + } + leaf illegal-rx { + type yang:counter64; + description + "The number of frames received that carry the Slow + Protocols Ethernet Type value (IEEE Std 802.3 Annex + 57A.4), but contain a badly formed PDU or an illegal + value of Protocol Subtype (IEEE Std 802.3 Annex + 57A.3)."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.6"; + } + leaf lacp-pdu-tx { + type yang:counter64; + description + "The number of LACPDUs transmitted on this + Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.7"; + } + leaf marker-pdu-tx { + type yang:counter64; + description + "The number of Marker PDUs transmitted on this + Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.8"; + } + leaf marker-response-pdu-tx { + type yang:counter64; + description + "The number of Marker Response PDUs transmitted on + this Aggregation Port."; + reference + "IEEE 802.1AX-2020, Clause 7.3.3.1.9"; + } + } + } + +} diff --git a/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-types.yang b/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-types.yang new file mode 100755 index 000000000..edb679831 --- /dev/null +++ b/standard/ieee/draft/802.1/AXdz/ieee802-dot1ax-types.yang @@ -0,0 +1,342 @@ +module ieee802-dot1ax-types { + yang-version 1.1; + namespace "urn:ieee:params:xml:ns:yang:ieee802-dot1ax-types"; + prefix "dot1ax-types"; + + import iana-if-type { + prefix "ianaif"; + } + + organization + "Institute of Electrical and Electronics Engineers"; + + contact + "Web URL: http://www.ieee802.org/1/ + + Working Group Chair: + Glenn Parsons + glenn.parsons@ericsson.com + + Editor: + Stephen Haddock + shaddock@stanfordalumni.org"; + + description + "Common types used within 802.1AX Link Aggregation modules. + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1AX; + see the standard itself for full legal notices."; + + + revision "2024-06-05" { + description + "For task group ballot on draft 0.1"; + reference + "IEEE 802.1AX-2020, Link Aggregation."; + } + revision "2024-05-04" { + description + "Initial Version."; + reference + "IEEE 802.1AX-2020, Link Aggregation."; + } + + + feature cscd { + description + "Conversation Sensitive Collection and Distribution (CSCD) + is supported."; + reference + "IEEE 802.1AX-2020, Clause 5.3.2, Clause 6.6"; + } + + feature dwc { + description + "The Discard Wrong Conversation option in CSCD is + supported."; + reference + "IEEE 802.1AX-2020, Clause 5.3.2, Clause 6.6"; + } + + + typedef lacp-state { + type bits { + bit lacp-activity { + position 0; + description + "Provides administrative control over when LACPDUs are + transmitted. A value of '1' indicates Active mode where + LACPDUs are sent regardless of partner's lacp-activity + value. A value of '0' indicates Passive mode where + LACPDUs are sent only when the partner's lacp-activity + value is '1' (partner is in Active mode)."; + } + bit lacp-timeout { + position 1; + description + "Provides administrative control over the frequency of + received LACPDUs. A value of '1' indicates Short Timeout + (so partner uses frequent transmission). A value of '0' + indicates Long Timeout (so partner can use infrequent + transmission)."; + } + bit aggregation { + position 2; + description + "Provides administrative control over whether this + Aggregation Port can be in a LAG with more than one + member. A value of '1' indicates the port can be + aggregated with other ports. A value of '0' indicates + the port can only be a solitary link."; + } + bit synchronization { + position 3; + description + "The Synchronization state of the MUX state machine."; + } + bit collecting { + position 4; + description + "The Collecting state of the MUX state machine."; + } + bit distributing { + position 5; + description + "The Distributing state of the MUX state machine."; + } + bit defaulted { + position 6; + description + "Indicates the port is using the partner-admin values + to select an Aggregator."; + } + bit expired { + position 7; + description + "The Expired state of the Receive state machine."; + } + } + description + "LACP state values as transmitted in LACPDUs."; + reference + "IEEE 802.1AX-2020, Clause 6.4.1, Clause 6.4.2.3"; + } + + typedef irp-state { + type bits { + bit reserved-1 { + position 0; + description + "Reserved for future use. It is set to 0 on + transmit and ignored on receipt."; + } + bit reserved-2 { + position 1; + description + "Reserved for future use. It is set to 0 on + transmit and ignored on receipt."; + } + bit short-timeout { + position 2; + description + "The Short_Timeout flag indicates the Timeout control value + in use by the DRCP Receive machine on this IRP. Short Timeout + is encoded as a 1; Long Timeout is encoded as a 0."; + } + bit synchronization { + position 3; + description + "When the Sync flag is TRUE (1), the DRCP Receive machine has + determined the Neighbor DRNI System has a compatible + configuration for forming a DRNI."; + } + bit irc-data { + position 4; + description + "When the IRC_Data flag is TRUE (1), the transfer of Up + and Down frames is permitted on the IRC."; + } + bit drni { + position 5; + description + "The DRNI flag is TRUE (1) when this DRNI System is paired + with another DRNI System (i.e., when DR_Solo is FALSE) + and FALSE (0) otherwise."; + } + bit defaulted { + position 6; + description + "When the Defaulted flag is TRUE (1), the DRCP Receive machine + is using default operational Neighbor information. + When FALSE (0), the operational Neighbor information + in use has been received in a DRCPDU."; + } + bit expired { + position 7; + description + "When the Expired flag is TRUE (1), the DRCP Receive machine + is in the EXPIRED state."; + } + } + description + "A string of 8 bits, corresponding to the administrative + values of IRP_State (9.6.2.3 and Figure 9-13). + These values allow administrative control over the + values of Short_Timeout and IRC_Data. + + Implementers are recommended to review Figure 9-13 for + a diagram of the bit-values. Take note of the 0-7 + aligned YANG bits compared to the 1-8 aligned bits from + the IEEE specification. Also note that while some of + these elements are operational by design / by default, + having an admin value allows for manual override config."; + reference + "IEEE 802.1AX-2020, Clause 7.4.1.1.24, 9.6.2.3, Figure 9-13"; + } + + + identity distribution-algorithm { + description + "Each distribution algorithm is identified by a sequence of + 4octets, structured as shown in Figure 8-1. Distribution + algorithm identifiers are used by network administrators to + select between algorithms and, in Conversation-sensitive + LACP and Distributed Resilient Network Interconnect (DRNI) + operation, to check whether partners and neighbors are + using the same algorithm. + + This identity is intended to serve as base identity, not + to be directly referenced. + + Vendor specific, combination (ex: multi-layer), and other + customized distribution algorithms should be created as + their own identities in their own YANG files, derived from + this imported base type."; + reference + "IEEE 802.1AX-2020, Clause 8.1, Clause 8.2"; + } + identity unspecified { + base distribution-algorithm; + description + "The 'Unspecified distribution algorithm' identifier has been + reserved for use when the algorithm is unknown (or is not + advertised)."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity c-vids-nomap { + base distribution-algorithm; + description + "Distribution based on C-VIDs (8.2.1). No Service ID mapping + table is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity c-vids-map { + base distribution-algorithm; + description + "Distribution based on C-VIDs (8.2.1). A Service ID mapping table + is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity s-vids-nomap { + base distribution-algorithm; + description + "Distribution based on S-VIDs (8.2.2). No Service ID mapping + table is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity s-vids-map { + base distribution-algorithm; + description + "Distribution based on S-VIDs (8.2.2). A Service ID mapping table + is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity i-sids-nomap { + base distribution-algorithm; + description + "Distribution based on I-SIDs (8.2.3). No Service ID mapping + table is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity i-sids-map { + base distribution-algorithm; + description + "Distribution based on I-SIDs (8.2.3). A Service ID mapping table + is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity te-sids-nomap { + base distribution-algorithm; + description + "Distribution based on TE-SIDs (8.2.4). No Service ID mapping + table is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity te-sids-map { + base distribution-algorithm; + description + "Distribution based on TE-SIDs (8.2.4). A Service ID mapping table + is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity flow-hash-nomap { + base distribution-algorithm; + description + "Distribution based on Flow Hash (8.2.5). No Service ID mapping + table is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + identity flow-hash-map { + base distribution-algorithm; + description + "Distribution based on Flow Hash (8.2.5). A Service ID mapping table + is used."; + reference + "IEEE 802.1AX-2020, Table 8-1"; + } + + identity drni-mask-patterns { + description + "Base identify for a 4096 bit mask indexed by CID. + This identity is intended to serve as base identity, not + to be directly referenced."; + reference + "IEEE 802.1AX-2020, Clause 9.5.3.5"; + } + identity all-ones { + base drni-mask-patterns; + description + "All bits in the mask are set to one."; + } + identity even-odd { + base drni-mask-patterns; + description + "Pattern of alternating ones and zeroes, beginning with zero + for CID zero."; + } + identity high-low { + base drni-mask-patterns; + description + "Pattern of 2048 zeros followed by 2048 ones."; + } + + + identity ieee8021axIrp { + base ianaif:iana-interface-type; + description + "IEEE 802.1ax Intra-Relay Port."; + } + +} diff --git a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-ats-if.yang b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-ats-if.yang index 6df19f086..a5a731605 100644 --- a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-ats-if.yang +++ b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-ats-if.yang @@ -1,99 +1,99 @@ -module ieee802-dot1dc-ats-if { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-ats-if; - prefix ats-if; - import ietf-system { - prefix sys; - } - import ietf-interfaces { - prefix if; - } - import ieee802-dot1q-ats { - prefix ats; - } - import ieee802-dot1q-stream-filters-gates { - prefix sfsg; - } - - 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 - "This module provides management of 802.1Q General Frame Quality of - Service (GFQoS) systems that support Asynchronous Traffic Shaping - (ATS). - - Copyright (C) IEEE (2024). - - This version of this YANG module is part of IEEE Std 802.1DC; - see the standard itself for full legal notices."; - - revision 2024-02-28 { - description - "Published as part of IEEE Std 802.1DC. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - - reference - "IEEE Std 802.1DC: - IEEE Std 802.1DC - Quality of Service Provision by - Network Systems."; - } - - augment "/if:interfaces/if:interface" { - description - "Augments interfaces by ATS per-Port parameters."; - uses ats:ats-port-parameters; - } - augment "/sys:system" { - description - "Augments the system with ATS parameters."; - uses sfsg:sfsg-parameters { - augment "stream-filters/stream-filter-instance-table" { - description - "Augments the system stream filter for ATS - schedulers."; - uses ats:ats-parameters; - container scheduler { - description - "This container encapsulates ATS scheduler nodes."; - leaf scheduler-ref { - type leafref { - path - '..'+ - '/..'+ - '/schedulers'+ - '/scheduler-instance-table'+ - '/scheduler-instance-id'; - } - description - "A reference to the ATS scheduler associated with this - stream filter."; - } - leaf scheduler-enable { - type boolean; - default "false"; - description - "If TRUE, this stream filter has an associated ATS - scheduler referenced by scheduler-ref. If FALSE, no ATS - scheduler is associated with this stream filter - (scheduler-ref is ignored)."; - } - } - } - } - } -} +module ieee802-dot1dc-ats-if { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-ats-if; + prefix ats-if; + import ietf-system { + prefix sys; + } + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-ats { + prefix ats; + } + import ieee802-dot1q-stream-filters-gates { + prefix sfsg; + } + + 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 + "This module provides management of 802.1Q General Frame Quality of + Service (GFQoS) systems that support Asynchronous Traffic Shaping + (ATS). + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1DC; + see the standard itself for full legal notices."; + + revision 2024-02-28 { + description + "Published as part of IEEE Std 802.1DC. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + + reference + "IEEE Std 802.1DC: + IEEE Std 802.1DC - Quality of Service Provision by + Network Systems."; + } + + augment "/if:interfaces/if:interface" { + description + "Augments interfaces by ATS per-Port parameters."; + uses ats:ats-port-parameters; + } + augment "/sys:system" { + description + "Augments the system with ATS parameters."; + uses sfsg:sfsg-parameters { + augment "stream-filters/stream-filter-instance-table" { + description + "Augments the system stream filter for ATS + schedulers."; + uses ats:ats-parameters; + container scheduler { + description + "This container encapsulates ATS scheduler nodes."; + leaf scheduler-ref { + type leafref { + path + '..'+ + '/..'+ + '/schedulers'+ + '/scheduler-instance-table'+ + '/scheduler-instance-id'; + } + description + "A reference to the ATS scheduler associated with this + stream filter."; + } + leaf scheduler-enable { + type boolean; + default "false"; + description + "If TRUE, this stream filter has an associated ATS + scheduler referenced by scheduler-ref. If FALSE, no ATS + scheduler is associated with this stream filter + (scheduler-ref is ignored)."; + } + } + } + } + } +} diff --git a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-cbsa-if.yang b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-cbsa-if.yang index 55d3ad3fe..3be3f6b28 100644 --- a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-cbsa-if.yang +++ b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-cbsa-if.yang @@ -1,58 +1,58 @@ -module ieee802-dot1dc-cbsa-if { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-cbsa-if; - prefix cbsa-if; - - import ietf-interfaces { - prefix if; - } - import ieee802-dot1q-cbsa { - prefix cbsa; - } - - 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 - "This module provides for management of General Frame Quality of - Service (GFQoS) systems that support the Credit-Based Shaper - transmission selection algorithm. - - Copyright (C) IEEE (2024). - - This version of this YANG module is part of IEEE Std 802.1DC; - see the standard itself for full legal notices."; - - revision 2024-02-27 { - description - "Published as part of IEEE Std 802.1DC. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - - reference - "IEEE Std 802.1DC: - IEEE Std 802.1DC - Quality of Service Provision by - Network Systems."; - } - - augment "/if:interfaces/if:interface" { - - description - "Augment interface with Credit-Based Shaper configuration."; - - uses cbsa:cbsa-config; - } -} +module ieee802-dot1dc-cbsa-if { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-cbsa-if; + prefix cbsa-if; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-cbsa { + prefix cbsa; + } + + 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 + "This module provides for management of General Frame Quality of + Service (GFQoS) systems that support the Credit-Based Shaper + transmission selection algorithm. + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1DC; + see the standard itself for full legal notices."; + + revision 2024-07-15 { + description + "Published as part of IEEE Std 802.1DC. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + + reference + "IEEE Std 802.1DC: + IEEE Std 802.1DC - Quality of Service Provision by + Network Systems."; + } + + augment "/if:interfaces/if:interface" { + + description + "Augment interface with Credit-Based Shaper configuration."; + + uses cbsa:cbsa-parameters; + } +} diff --git a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-gfqos.yang b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-gfqos.yang index 654945e0b..7246749d0 100644 --- a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-gfqos.yang +++ b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-gfqos.yang @@ -1,156 +1,156 @@ -module ieee802-dot1dc-gfqos { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-gfqos; - prefix dot1dc; - import ietf-yang-types { - prefix yang; - } - import ietf-interfaces { - prefix if; - } - import ieee802-dot1q-types { - prefix dot1qtypes; - } - import ieee802-dot1q-bridge { - prefix dot1q; - } - - 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 - "This module provides for management of General Frame Quality of - Service (GFQoS) systems that support Extended Internal Sublayer - Service (EISS). - - - Copyright (C) IEEE (2024). - - This version of this YANG module is part of IEEE Std 802.1DC; - see the standard itself for full legal notices."; - - revision 2024-02-28 { - description - "Published as part of IEEE Std 802.1DC. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - - reference - "IEEE Std 802.1DC: - IEEE Std 802.1DC - Quality of Service Provision by Network - Systems. - IEEE Std 802.1Q: - IEEE Std 802.1Q-2022 Bridges and Bridged Networks."; - } - - feature eiss { - description - "Each GFQoS interface may support the Extended Internal Sublayer - Service (EISS). This is one useful method for dealing with VLAN - tags."; - reference - "7.3.2 of IEEE Std 802.1DC"; - } - augment "/if:interfaces/if:interface" { - description - "Augment the interface model with the GFQoS interface"; - container gfqos-ifc { - description - "GFQoS interface is an extension of the IETF Interfaces model - (IETF RFC 7223)."; - leaf pvid { - if-feature "eiss"; - type dot1qtypes:vlan-index-type; - default "1"; - description - "The port VID assigned to the interface."; - reference - "12.10.1, item m) of 5.4 of IEEE Std 802.1Q"; - } - leaf acceptable-frame { - if-feature "eiss"; - type enumeration { - enum admit-only-VLAN-tagged-frames { - description - "Admit only VLAN-tagged frames."; - } - enum admit-only-untagged-and-priority-tagged { - description - "Admit only untagged and priority-tagged frames."; - } - enum admit-all-frames { - description - "Admit all frames."; - } - } - default "admit-all-frames"; - description - "To configure the Acceptable Frame Types parameter associated - with one or more GFQoS interfaces, only if EISS is supported"; - reference - "12.10.1.3, 6.9 of IEEE Std 802.1Q"; - } - container transmission-selection-algorithm-table { - description - "The Transmission Selection Algorithm Table for a given - interface assigns, for each traffic class that the interface - supports, the transmission selection algorithm that is to be - used to select frames for transmission from the corresponding - queue. Transmission Selection Algorithm Tables may be managed, - and allow the identification of vendor-specific transmission - selection algorithms. The transmission selection algorithms - are identified in the Transmission Selection Algorithm Table - by means of integer identifiers."; - reference - "12.20.2, 8.6.8 of IEEE Std 802.1Q"; - uses dot1qtypes:transmission-selection-table-grouping; - } - leaf media-dependent-overhead { - type uint8; - units "octets"; - config false; - description - "The portMediaDependentOverhead parameter provides the number - of additional octets for media-dependent framing. The overhead - includes all octets prior the first octet of the Destination - Address field and all octets after the last octet of the frame - check sequence."; - reference - "12.4.2 of IEEE Std 802.1Q"; - } - container statistics { - config false; - description - "Container of operational state node information associated - with the GFQoS interface."; - uses dot1qtypes:bridge-port-statistics-grouping; - leaf discard-on-ingress-filtering { - if-feature "dot1q:ingress-filtering"; - type yang:counter64; - description - "The number of frames that were discarded as a result of - Ingress Filtering being enabled. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of 'discontinuity-time'."; - reference - "12.6.1.1.3 of IEEE Std 802.1Q"; - } - } - } - } -} +module ieee802-dot1dc-gfqos { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-gfqos; + prefix dot1dc; + import ietf-yang-types { + prefix yang; + } + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-types { + prefix dot1qtypes; + } + import ieee802-dot1q-bridge { + prefix dot1q; + } + + 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 + "This module provides for management of General Frame Quality of + Service (GFQoS) systems that support Extended Internal Sublayer + Service (EISS). + + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1DC; + see the standard itself for full legal notices."; + + revision 2024-02-28 { + description + "Published as part of IEEE Std 802.1DC. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + + reference + "IEEE Std 802.1DC: + IEEE Std 802.1DC - Quality of Service Provision by Network + Systems. + IEEE Std 802.1Q: + IEEE Std 802.1Q-2022 Bridges and Bridged Networks."; + } + + feature eiss { + description + "Each GFQoS interface may support the Extended Internal Sublayer + Service (EISS). This is one useful method for dealing with VLAN + tags."; + reference + "7.3.2 of IEEE Std 802.1DC"; + } + augment "/if:interfaces/if:interface" { + description + "Augment the interface model with the GFQoS interface"; + container gfqos-ifc { + description + "GFQoS interface is an extension of the IETF Interfaces model + (IETF RFC 7223)."; + leaf pvid { + if-feature "eiss"; + type dot1qtypes:vlan-index-type; + default "1"; + description + "The port VID assigned to the interface."; + reference + "12.10.1, item m) of 5.4 of IEEE Std 802.1Q"; + } + leaf acceptable-frame { + if-feature "eiss"; + type enumeration { + enum admit-only-VLAN-tagged-frames { + description + "Admit only VLAN-tagged frames."; + } + enum admit-only-untagged-and-priority-tagged { + description + "Admit only untagged and priority-tagged frames."; + } + enum admit-all-frames { + description + "Admit all frames."; + } + } + default "admit-all-frames"; + description + "To configure the Acceptable Frame Types parameter associated + with one or more GFQoS interfaces, only if EISS is supported"; + reference + "12.10.1.3, 6.9 of IEEE Std 802.1Q"; + } + container transmission-selection-algorithm-table { + description + "The Transmission Selection Algorithm Table for a given + interface assigns, for each traffic class that the interface + supports, the transmission selection algorithm that is to be + used to select frames for transmission from the corresponding + queue. Transmission Selection Algorithm Tables may be managed, + and allow the identification of vendor-specific transmission + selection algorithms. The transmission selection algorithms + are identified in the Transmission Selection Algorithm Table + by means of integer identifiers."; + reference + "12.20.2, 8.6.8 of IEEE Std 802.1Q"; + uses dot1qtypes:transmission-selection-table-grouping; + } + leaf media-dependent-overhead { + type uint8; + units "octets"; + config false; + description + "The portMediaDependentOverhead parameter provides the number + of additional octets for media-dependent framing. The overhead + includes all octets prior the first octet of the Destination + Address field and all octets after the last octet of the frame + check sequence."; + reference + "12.4.2 of IEEE Std 802.1Q"; + } + container statistics { + config false; + description + "Container of operational state node information associated + with the GFQoS interface."; + uses dot1qtypes:bridge-port-statistics-grouping; + leaf discard-on-ingress-filtering { + if-feature "dot1q:ingress-filtering"; + type yang:counter64; + description + "The number of frames that were discarded as a result of + Ingress Filtering being enabled. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of 'discontinuity-time'."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q"; + } + } + } + } +} diff --git a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-preemption-if.yang b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-preemption-if.yang index c0aa03bd8..325517d6a 100644 --- a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-preemption-if.yang +++ b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-preemption-if.yang @@ -1,62 +1,62 @@ -module ieee802-dot1dc-preemption-if { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-preemption-if; - prefix preempt-if; - - import ietf-interfaces { - prefix if; - } - import ieee802-dot1q-preemption { - prefix q-preempt; - } - - 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 - "This module provides for management of General Frame Quality of - Service (GFQoS) systems that support Frame Preemption. - - Copyright (C) IEEE (2024). - - This version of this YANG module is part of IEEE Std 802.1DC; - see the standard itself for full legal notices."; - - revision 2024-02-28 { - description - "Published as part of IEEE Std 802.1DC. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - - reference - "IEEE Std 802.1DC: - IEEE Std 802.1DC - Quality of Service Provision by - Network Systems."; - } - - feature frame-preemption { - description - "Frame preemption supported."; - reference - "6.2.5 of IEEE Std 802.1DC"; - } - augment "/if:interfaces/if:interface" { - if-feature "frame-preemption"; - description - "Augment interface with Frame Preemption configuration."; - uses q-preempt:preemption-parameters; - } -} +module ieee802-dot1dc-preemption-if { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-preemption-if; + prefix preempt-if; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-preemption { + prefix q-preempt; + } + + 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 + "This module provides for management of General Frame Quality of + Service (GFQoS) systems that support Frame Preemption. + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1DC; + see the standard itself for full legal notices."; + + revision 2024-02-28 { + description + "Published as part of IEEE Std 802.1DC. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + + reference + "IEEE Std 802.1DC: + IEEE Std 802.1DC - Quality of Service Provision by + Network Systems."; + } + + feature frame-preemption { + description + "Frame preemption supported."; + reference + "6.2.5 of IEEE Std 802.1DC"; + } + augment "/if:interfaces/if:interface" { + if-feature "frame-preemption"; + description + "Augment interface with Frame Preemption configuration."; + uses q-preempt:preemption-parameters; + } +} diff --git a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-psfp-sys.yang b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-psfp-sys.yang index bf85eee36..5c40f6ffa 100644 --- a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-psfp-sys.yang +++ b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-psfp-sys.yang @@ -1,64 +1,64 @@ -module ieee802-dot1dc-psfp-sys { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-psfp-sys; - prefix psfp-sys; - - import ietf-system { - prefix sys; - } - import ieee802-dot1q-psfp { - prefix q-psfp; - } - - 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 - "This module provides management of General Frame Quality of - Service (GFQoS) systems that support IEEE Std 802.1Q Per- - Stream Filtering and Policing (PSFP). - - Copyright (C) IEEE (2024). - - This version of this YANG module is part of IEEE Std 802.1DC; - see the standard itself for full legal notices."; - - revision 2024-02-28 { - description - "Published as part of IEEE Std 802.1DC. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - - reference - "IEEE Std 802.1DC: - IEEE Std 802.1DC - Quality of Service Provision by - Network Systems."; - } - - feature psfp { - description - "Per-Stream Filtering and Policing supported."; - reference - "6.2.8 of IEEE Std 802.1DC"; - } - - augment "/sys:system" { - description - "Augment system with Per-Stream Filtering and Policing - configuration"; - uses q-psfp:psfp-parameters; - } -} +module ieee802-dot1dc-psfp-sys { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-psfp-sys; + prefix psfp-sys; + + import ietf-system { + prefix sys; + } + import ieee802-dot1q-psfp { + prefix q-psfp; + } + + 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 + "This module provides management of General Frame Quality of + Service (GFQoS) systems that support IEEE Std 802.1Q Per- + Stream Filtering and Policing (PSFP). + + Copyright (C) IEEE (2024). + + This version of this YANG module is part of IEEE Std 802.1DC; + see the standard itself for full legal notices."; + + revision 2024-02-28 { + description + "Published as part of IEEE Std 802.1DC. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + + reference + "IEEE Std 802.1DC: + IEEE Std 802.1DC - Quality of Service Provision by + Network Systems."; + } + + feature psfp { + description + "Per-Stream Filtering and Policing supported."; + reference + "6.2.8 of IEEE Std 802.1DC"; + } + + augment "/sys:system" { + description + "Augment system with Per-Stream Filtering and Policing + configuration"; + uses q-psfp:psfp-parameters; + } +} diff --git a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-sched-if.yang b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-sched-if.yang index 2cf6c87ff..e5b5ef93f 100644 --- a/standard/ieee/draft/802.1/DC/ieee802-dot1dc-sched-if.yang +++ b/standard/ieee/draft/802.1/DC/ieee802-dot1dc-sched-if.yang @@ -1,57 +1,57 @@ -module ieee802-dot1dc-sched-if { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-sched-if; - prefix sched-if; - - import ietf-interfaces { - prefix if; - } - import ieee802-dot1q-sched { - prefix q-sched; - } - - 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 - "This module provides for management of General Frame Quality of - Service (GFQoS) systems that support Scheduled Traffic Enhancements. - - Copyright (C) IEEE (2023). - - This version of this YANG module is part of IEEE Std 802.1DC; - see the standard itself for full legal notices."; - - revision 2023-05-16 { - description - "Published as part of IEEE Std 802.1DC. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - - reference - "IEEE Std 802.1DC: - IEEE Std 802.1DC - Quality of Service Provision by - Network Systems."; - } - - augment "/if:interfaces/if:interface" { - - description - "Augment interface with Scheduled Traffic configuration."; - - uses q-sched:sched-parameters; - } -} +module ieee802-dot1dc-sched-if { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1dc-sched-if; + prefix sched-if; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-sched { + prefix q-sched; + } + + 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 + "This module provides for management of General Frame Quality of + Service (GFQoS) systems that support Scheduled Traffic Enhancements. + + Copyright (C) IEEE (2023). + + This version of this YANG module is part of IEEE Std 802.1DC; + see the standard itself for full legal notices."; + + revision 2023-05-16 { + description + "Published as part of IEEE Std 802.1DC. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + + reference + "IEEE Std 802.1DC: + IEEE Std 802.1DC - Quality of Service Provision by + Network Systems."; + } + + augment "/if:interfaces/if:interface" { + + description + "Augment interface with Scheduled Traffic configuration."; + + uses q-sched:sched-parameters; + } +}