ieee802-dot1q-lldp-dcbx-tlv

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 amende...

  • Version: 2023-07-03

    ieee802-dot1q-lldp-dcbx-tlv@2023-07-03


    
      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 priority-assignment-table
    
          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 tc-bandwidth-table
    
          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";
    
            }
          }  // list tsa-assignment-table
        }  // grouping ets-configuration-tlv
    
        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 priority-assignment-table
    
          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 tc-bandwidth-table
    
          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";
    
            }
          }  // list tsa-assignment-table
        }  // grouping ets-recommendation-tlv
    
        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 pfc-tlv
    
        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";
    
            }
          }  // list application-priority-table
        }  // grouping application-priority-tlv
    
        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";
    
            }
          }  // list application-vlan-table
        }  // grouping application-vlan-tlv
    
        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-configuration-tlv-extension
    
          container ets-recommendation-tlv-extension {
            description
              "The ETS Recommendation TLV";
            uses ets-recommendation-tlv;
          }  // container ets-recommendation-tlv-extension
    
          container pfc-tlv-extension {
            description
              "The Priority-based Flow Control Configuration TLV";
            uses pfc-tlv;
          }  // container pfc-tlv-extension
    
          container application-priority-tlv-extension {
            description
              "The Application Priority TLV";
            uses application-priority-tlv;
          }  // container application-priority-tlv-extension
    
          container application-vlan-tlv-extension {
            description
              "The Application VLAN TLV";
            uses application-vlan-tlv;
          }  // container application-vlan-tlv-extension
        }
    
        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-configuration-tlv-extension
    
          container ets-recommendation-tlv-extension {
            description
              "Holds a received ETS Recommendation TLV";
            uses ets-recommendation-tlv;
          }  // container ets-recommendation-tlv-extension
    
          container pfc-tlv-extension {
            description
              "Holds a received Proirity-based Flow Control Configuration TLV";
            uses pfc-tlv;
          }  // container pfc-tlv-extension
    
          container application-priority-tlv-extension {
            description
              "Holds a received Application Priority TLV";
            uses application-priority-tlv;
          }  // container application-priority-tlv-extension
    
          container application-vlan-tlv-extension {
            description
              "Holds a received Application VLAN TLV";
            uses application-vlan-tlv;
          }  // container application-vlan-tlv-extension
        }
      }  // module ieee802-dot1q-lldp-dcbx-tlv
    

© 2023 YumaWorks, Inc. All rights reserved.