module ieee802-dot1q-lldp-dcbx-tlv { yang-version "1.1"; namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-lldp-dcbx-tlv; prefix lldp-dcbx-tlv; import ieee802-dot1q-types { prefix dot1q-types; } import ieee802-dot1ab-lldp { prefix lldp; } 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 "IEEE Std 802.1Q extension TLVs for LLDP References in this YANG module to IEEE Std 802.1Q are to IEEE Std 802.1Q-2022 as amended by IEEE Std 802.1Qcz-2023. Copyright (C) IEEE (2023). This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; revision 2023-07-03 { description "LLDP extension TLVs for DCBX. Published as part of IEEE Std 802.1Qcz-2023."; reference "Annex D of IEEE Std 802.1Q"; } identity application-priority-selector { description "Specify the application priority selection of IEEE Std 802.1Q D.2.11 and Table D-8"; } identity default { base application-priority-selector; description "Indicates the default application selection of the Application Priority Table field of the Application Priority TLV specified in D.2.11 of IEEE Std 802.1Q. Signaled as value 1."; } identity pri-tcp-sctp { base application-priority-selector; description "Indicates TCP or SCTP application selection of the Application Priority Table field of the Application Priority TLV specified in D.2.11 of IEEE Std 802.1Q. Signaled as value 2."; } identity pri-udp-dccp { base application-priority-selector; description "Indicates UDP or DCCP application selection of the Application Priority Table field of the Application Priority TLV specified in D.2.11 of IEEE Std 802.1Q. Signaled as value 3."; } identity pri-tcp-sctp-udp-dccp { base application-priority-selector; description "Indicates TCP, SCTP, UDP or DCCP application selection of the Application Priority Table field of the Application Priority TLV specified in D.2.11 of IEEE Std 802.1Q. Signaled as value 4."; } identity pri-dscp { base application-priority-selector; description "Indicates DSCP application selection of the Application Priority Table field of the Application Priority TLV specified in D.2.11 of IEEE Std 802.1Q. Signaled as value 5."; } identity application-vlan-selector { description "Specify the application VLAN selection of D.2.14, Table D-12, and Table D-13 of IEEE Std 802.1Q"; } identity vlan-pvid-ethertype { base application-vlan-selector; description "Indicates PVID or EtherType selection of the Application VLAN Table field of the Application VLAN TLV specified in D.2.14 of IEEE Std 802.1Q. Signaled as value 1."; } identity vlan-tcp-sctp { base application-vlan-selector; description "Indicates TCP or SCTP application selection of the Application VLAN Table field of the Application VLAN TLV specified in D.2.14 of IEEE Std 802.1Q. Signaled as value 2."; } identity vlan-udp-dccp { base application-vlan-selector; description "Indicates UDP or DCCP application selection of the Application VLAN Table field of the Application VLAN TLV specified in D.2.14 of IEEE Std 802.1Q. Signaled as value 3."; } identity vlan-tcp-sctp-udp-dccp { base application-vlan-selector; description "Indicates TCP, SCTP, UDP or DCCP application selection of the Application VLAN Table field of the Application VLAN TLV specified in D.2.14 of IEEE Std 802.1Q. Signaled as value 4."; } identity vlan-dscp { base application-vlan-selector; description "Indicates DSCP application selection of the Application VLAN Table field of the Application VLAN TLV specified in D.2.14 of IEEE Std 802.1Q. Signaled as value 5."; } grouping ets-configuration-tlv { description "The Enhanced Transmission Selection configuration TLV"; reference "D.2.8 of IEEE Std 802.1Q"; leaf willing { type boolean; description "True indicates willing to accept configurations from remote station"; reference "D.2.8.3 of IEEE Std 802.1Q"; } leaf credit-based-shaper { type boolean; description "True indicates station supports the Credit-based Shaper transmission selection algorithm"; reference "D.2.8.4 of IEEE Std 802.1Q"; } leaf traffic-classes-supported { type dot1q-types:num-traffic-class-type; description "Indicates number of traffic classes supported. The value of 8 is encoded as 0 in the TLV since 3-bits are used to specify the number"; reference "D.2.8.5 of IEEE Std 802.1Q"; } list priority-assignment-table { key "priority"; description "Maps a priority to a traffic class"; leaf priority { type dot1q-types:priority-type; description "Indicates priority"; reference "D.2.8.6 of IEEE Std 802.1Q"; } leaf priority-traffic-class { type dot1q-types:traffic-class-type; description "Indicates mapped traffic class for priority"; reference "D.2.8.6 of IEEE Std 802.1Q"; } leaf transmission-selection-algorithm { type identityref { base dot1q-types:transmission-selection-algorithm; } description "Transmission selection algorithm"; reference "8.6.8 and Table 8-6 of IEEE Std 802.1Q"; } } list tc-bandwidth-table { key "traffic-class"; description "Indicates the current bandwidth percentage for each traffic class"; leaf traffic-class { type dot1q-types:traffic-class-type; description "Indicates traffic class"; reference "D.2.8.7 of IEEE Std 802.1Q"; } leaf percentage-bandwidth { type uint8 { range "0..100"; } description "Percentage configured for the traffic class"; reference "D.2.8.7 of IEEE Std 802.1Q"; } } list tsa-assignment-table { key "tsa-traffic-class"; description "Indicates the transmission selection algorithm used for a traffic class"; leaf tsa-traffic-class { type dot1q-types:traffic-class-type; description "Indicates traffic class"; reference "D.2.8.8 of IEEE Std 802.1Q"; } leaf transmission-selection-algorithm { type identityref { base dot1q-types:transmission-selection-algorithm; } description "Transmission selection algorithm"; reference "8.6.8 and Table 8-6 of IEEE Std 802.1Q"; } } } grouping ets-recommendation-tlv { description "Recommendation of Enhanced Transmission Selection configuration TLV"; reference "D.2.9 of IEEE Std 802.1Q"; list priority-assignment-table { key "priority"; description "Maps a priority to a traffic class"; leaf priority { type dot1q-types:priority-type; description "Indicates priority"; reference "D.2.9.3 of IEEE Std 802.1Q"; } leaf priority-traffic-class { type dot1q-types:traffic-class-type; description "Indicates mapped traffic class for priority"; reference "D.2.9.3 of IEEE Std 802.1Q"; } } list tc-bandwidth-table { key "traffic-class"; description "Indicates the current bandwidth percentage for each traffic class"; leaf traffic-class { type dot1q-types:traffic-class-type; description "Indicates traffic class"; reference "D.2.9.4 of IEEE Std 802.1Q"; } leaf percentage-bandwidth { type uint8 { range "0..100"; } description "Percentage configured for the traffic class"; reference "D.2.9.4 of IEEE Std 802.1Q"; } } list tsa-assignment-table { key "tsa-traffic-class"; description "Indicates the transmission selection algorithm used for a traffic class"; leaf tsa-traffic-class { type dot1q-types:traffic-class-type; description "Indicates traffic class"; reference "D.2.9.5 of IEEE Std 802.1Q"; } leaf transmission-selection-algorithm { type identityref { base dot1q-types:transmission-selection-algorithm; } description "Transmission selection algorithm"; reference "8.6.8 and Table 8-6 of IEEE Std 802.Q"; } } } grouping pfc-tlv { description "The Priority-based Flow Control configuration TLV"; reference "D.2.10 of IEEE Std 802.1Q"; leaf willing { type boolean; description "True indicates willing to accept configurations from remote station"; reference "D.2.10.3 of IEEE Std 802.1Q"; } leaf macsec-bypass-capable { type boolean; description "True indicates sending station is not capable of bypassing MACsec"; reference "D.2.10.4 of IEEE Std 802.1Q"; } leaf number-tc-capable { type dot1q-types:num-traffic-class-type; description "Indicates how many traffic classes may simultaneously support PFC."; reference "D.2.10.5 of IEEE Std 802.1Q"; } leaf enable { type bits { bit p0 { position 0; description "1 indicates PFC is enabled on the priority"; } bit p1 { position 1; description "1 indicates PFC is enabled on the priority"; } bit p2 { position 2; description "1 indicates PFC is enabled on the priority"; } bit p3 { position 3; description "1 indicates PFC is enabled on the priority"; } bit p4 { position 4; description "1 indicates PFC is enabled on the priority"; } bit p5 { position 5; description "1 indicates PFC is enabled on the priority"; } bit p6 { position 6; description "1 indicates PFC is enabled on the priority"; } bit p7 { position 7; description "1 indicates PFC is enabled on the priority"; } } description "PFC enabled per priority"; reference "D.2.10.6 of IEEE Std 802.1Q"; } } grouping application-priority-tlv { description "The application priority table TLV"; reference "D.2.11 of IEEE Std 802.1Q"; list application-priority-table { key "application-priority"; description "Specifies a 3-bit priority for a Protocol ID"; leaf application-priority { type dot1q-types:priority-type; description "Priority for which the Protocol ID is being used"; reference "D.2.11.3 of IEEE Std 802.1Q"; } leaf application-priority-selector { type identityref { base application-priority-selector; } description "Selector to determine what the Protocol ID means."; reference "D.2.11.3 of IEEE Std 802.1Q"; } leaf application-priority-protocol { type uint16 { range "0..65535"; } description "Protocol ID of the type indicated by the selector"; reference "D.2.11.3 of IEEE Std 802.1Q"; } } } grouping application-vlan-tlv { description "The Application VLAN table TLV"; reference "D.2.14 of IEEE Std 802.1Q"; list application-vlan-table { key "application-vlan"; description "Specifies a VLAN ID priority for a Protocol ID"; leaf application-vlan { type dot1q-types:vlanid; description "Vlan for which the Protocol ID is being used"; reference "D.2.14.3 of IEEE Std 802.1Q"; } leaf application-vlan-selector { type identityref { base application-vlan-selector; } description "Selector to determine what the Protocol ID means."; reference "D.2.14.3 of IEEE Std 802.1Q"; } leaf application-vlan-protocol { type uint16 { range "0..65535"; } description "Protocol ID of the type indicated by the selector"; reference "D.2.14.3 of IEEE Std 802.1Q"; } } } augment "/lldp:lldp/lldp:port" { description "Augments port with the dcbx extension tlv"; leaf tlvs-tx-org-dcbx-enable { type bits { bit ets-configuration { position 0; description "D.2.8 of IEEE Std 802.1Q"; } bit ets-recommendation { position 1; description "D.2.9 of IEEE Std 802.1Q"; } bit pfc { position 2; description "D.2.10 of IEEE Std 802.1Q"; } bit application-priority { position 3; description "D.2.11 of IEEE Std 802.1Q"; } bit application-vlan { position 4; description "D.2.14 of IEEE Std 802.1Q"; } } description "Bitmap including the dcbxSet of TLVs from Table D-1 of IEEE Std 802.1Q"; reference "D.1 of IEEE Std 802.1Q"; } container ets-configuration-tlv-extension { description "The ETS Configuration TLV"; uses ets-configuration-tlv; } container ets-recommendation-tlv-extension { description "The ETS Recommendation TLV"; uses ets-recommendation-tlv; } container pfc-tlv-extension { description "The Priority-based Flow Control Configuration TLV"; uses pfc-tlv; } container application-priority-tlv-extension { description "The Application Priority TLV"; uses application-priority-tlv; } container application-vlan-tlv-extension { description "The Application VLAN TLV"; uses application-vlan-tlv; } } augment "/lldp:lldp/lldp:port/lldp:remote-systems-data" { description "Augments port remote-systems-data with received dcbx extension TLVs"; container ets-configuration-tlv-extension { description "Holds a received ETS Configuration TLV"; uses ets-configuration-tlv; } container ets-recommendation-tlv-extension { description "Holds a received ETS Recommendation TLV"; uses ets-recommendation-tlv; } container pfc-tlv-extension { description "Holds a received Proirity-based Flow Control Configuration TLV"; uses pfc-tlv; } container application-priority-tlv-extension { description "Holds a received Application Priority TLV"; uses application-priority-tlv; } container application-vlan-tlv-extension { description "Holds a received Application VLAN TLV"; uses application-vlan-tlv; } } }