ieee802-dot1q-congestion-isolation

This YANG module augments the configuration and operational state data for interfaces for Congestion Isolation. References in t...

  • Version: 2023-07-03

    ieee802-dot1q-congestion-isolation@2023-07-03


    
      module ieee802-dot1q-congestion-isolation {
    
        yang-version 1.1;
    
        namespace
          "urn:ieee:std:802.1Q:yang:ieee802-dot1q-congestion-isolation";
    
        prefix dot1q-ci;
    
        import ietf-yang-types {
          prefix yang;
        }
        import ieee802-types {
          prefix ieee;
        }
        import ieee802-dot1q-stream-filters-gates {
          prefix sfsg;
        }
        import ieee802-dot1q-types {
          prefix dot1q-types;
        }
        import ietf-inet-types {
          prefix inet;
        }
    
        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 YANG module augments the configuration and operational state
    data for interfaces for Congestion Isolation.
    
    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
            "Published as part of IEEE Std 802.1Qcz-2023.";
          reference
            "IEEE Std 802.1Qcz-2023";
    
        }
    
    
        feature congestion-isolation {
          description
            "Feature Congestion Isolation";
        }
    
        typedef abs-traffic-class-plus-one-type {
          type enumeration {
            enum "monitored-queue-tc-1" {
              value 1;
              description
                "Traffic class 0 of monitored queue.";
            }
            enum "monitored-queue-tc-2" {
              value 2;
              description
                "Traffic class 1 of monitored queue.";
            }
            enum "monitored-queue-tc-3" {
              value 3;
              description
                "Traffic class 2 of monitored queue.";
            }
            enum "monitored-queue-tc-4" {
              value 4;
              description
                "Traffic class 3 of monitored queue.";
            }
            enum "monitored-queue-tc-5" {
              value 5;
              description
                "Traffic class 4 of monitored queue.";
            }
            enum "monitored-queue-tc-6" {
              value 6;
              description
                "Traffic class 5 of monitored queue.";
            }
            enum "monitored-queue-tc-7" {
              value 7;
              description
                "Traffic class 6 of monitored queue.";
            }
            enum "monitored-queue-tc-8" {
              value 8;
              description
                "Traffic class 7 of monitored queue.";
            }
            enum "congesting-queue-tc-1" {
              value -1;
              description
                "Traffic class 0 of congesting queue.";
            }
            enum "congesting-queue-tc-2" {
              value -2;
              description
                "Traffic class 1 of congesting queue.";
            }
            enum "congesting-queue-tc-3" {
              value -3;
              description
                "Traffic class 2 of congesting queue.";
            }
            enum "congesting-queue-tc-4" {
              value -4;
              description
                "Traffic class 3 of congesting queue.";
            }
            enum "congesting-queue-tc-5" {
              value -5;
              description
                "Traffic class 4 of congesting queue.";
            }
            enum "congesting-queue-tc-6" {
              value -6;
              description
                "Traffic class 5 of congesting queue.";
            }
            enum "congesting-queue-tc-7" {
              value -7;
              description
                "Traffic class 6 of congesting queue.";
            }
            enum "congesting-queue-tc-8" {
              value -8;
              description
                "Traffic class 7 of congesting queue.";
            }
            enum
              "not-participating-congestion-isolation" {
              value 0;
              description
                "Traffic class not participating in congestion isolation.";
            }
          }
          description
            "Specifies a value that can be translated to the numeric value of
    the traffic class to be used as either the congesting or monitored
    queue. The absolute value of the enumerated value is the value of
    the traffic class plus 1. A value of 0 indicates the traffic class
    is not participating in congestion isolation. For example, the
    enumerated value congesting-queue-tc-5 specifies that traffic class
    4 is used as the congesting queue.";
        }
    
        grouping cip-port-parameters {
          description
            "The bridge port specific configuration for Congestion Isolation.";
          leaf cip-mac-address {
            type ieee:mac-address;
            config false;
            description
              "The source MAC address of a CIM, belonging to the system
    transmitting the CIM.";
            reference
              "49.4.1.2.1 of IEEE Std 802.1Q";
    
          }
    
          leaf cip-ipv4-address {
            type inet:ipv4-address;
            config false;
            description
              "The source IPv4 address of a CIM, belonging to the system
    transmitting the IPv4 layer-3 CIM.";
            reference
              "49.4.1.2.2 of IEEE Std 802.1Q";
    
          }
    
          leaf cip-ipv6-address {
            type inet:ipv6-address;
            config false;
            description
              "The source IPv6 address of a CIM, belonging to the system
    transmitting the IPv6 layer-3 CIM.";
            reference
              "49.4.1.2.3 of IEEE Std 802.1Q";
    
          }
    
          leaf cip-cim-port {
            type inet:port-number;
            config false;
            description
              "The UDP port number to be used by a peer transmitting a layer-3
    CIM. This value will be sent to the peer via LLDP in the CI TLV.";
            reference
              "49.4.1.2.4 of IEEE Std 802.1Q";
    
          }
    
          list queue-map {
            key "priority";
            description
              "An array of integers, one entry for each traffic class, 0
    through 7, specifying a value that can be translated to the
    numeric value of the traffic class to be used as either the
    congesting traffic class or the monitored traffic class for the
    traffic class specified by the index. The integers range in value
    from -8 to 8. A value of 0 in the table specifies that the
    traffic class is not participating in congestion isolation. A
    positive number specifies a traffic class for a monitored queue
    that is one less than the value (e.g., a value of 5 represents
    traffic class 4). A negative number specifies a traffic class for
    a congesting queue that is one less than the absolute value (e.g.,
    a value of -4 represents traffic class 3).";
            reference
              "49.4.1.2.5 of IEEE Std 802.1Q";
    
            leaf priority {
              type dot1q-types:priority-type;
              description
                "There are eight values of Priority that map to an absolute
    value that is a traffic class plus one, or the value 0 which
    indicates the traffic class is not used by congestion
    isolation.";
              reference
                "49.4.1.2.5 of IEEE Std 802.1Q";
    
            }
    
            leaf abs-traffic-class-plus-one {
              type abs-traffic-class-plus-one-type;
              description
                "A value that can be translated to represent a traffic class or
    an indication of non-use. A value of 0 specifies that the
    traffic class is not participating in congestion isolation. A
    positive number specifies a traffic class for a monitored
    queue, and a negative number specifies a traffic class for a
    congesting queue.";
              reference
                "49.4.1.2.5 of IEEE Std 802.1Q";
    
            }
          }  // list queue-map
    
          leaf min-header-octets {
            type uint16;
            description
              "The minimum number of octets to include in the Encapsulated MSDU
    field of each CIM generated. The default value is 48.";
            reference
              "49.4.1.2.6 of IEEE Std 802.1Q";
    
          }
    
          leaf max-cim-tx {
            type uint16;
            description
              "The maximum number of times a CIM PDU will be sent for a
    congesting flow. The default value is 3.";
            reference
              "49.4.1.2.7 of IEEE Std 802.1Q";
    
          }
        }  // grouping cip-port-parameters
    
        grouping cip-parameters {
          description
            "The system specific configuration for Congestion Isolation.";
          leaf ci-master-enable {
            type boolean;
            description
              "Specifies whether CI is enabled in this system.";
            reference
              "49.4.1.1.1 of IEEE Std 802.1Q";
    
          }
    
          leaf ci-cim-tx-priority {
            type dot1q-types:priority-type;
            config false;
            description
              "Specifies the priority value to be used when transmitting CIMs
    from the system. The default is 6.";
            reference
              "49.4.1.1.2 of IEEE Std 802.1Q";
    
          }
    
          leaf ci-max-flow-life {
            type uint32;
            config false;
            description
              "Specifies the maximum number of centiseconds that a congesting
    flow entry, created by the receipt of a CIM, can remain in the CI
    Stream Table after the congesting queue has transitioned from
    congested back to non-congested. The default value is 100.";
            reference
              "49.4.1.1.3 of IEEE Std 802.1Q";
    
          }
    
          container ci-peers {
            description
              "Contains information about an immediate peer obtained from a
    received LLDP Congestion Isolation TLV.";
            list ci-peer-table {
              key "reception-port";
              description
                "Contains entries for each participating immediate peer and
    provides the information needed to generate a CIM for
    transmission to the peer.";
              reference
                "49.3.6 of IEEE Std 802.1Q";
    
              leaf reception-port {
                type dot1q-types:port-number-type;
                description
                  "The port number where the immediate congestion isolation
    participating peer is attached.";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
    
              leaf cim-type {
                type enumeration {
                  enum "l2" {
                    value 0;
                    description
                      "Layer 2 CIM encapsulation.";
                  }
                  enum "ipv4" {
                    value 1;
                    description
                      "IPv4 CIM encapsulation.";
                  }
                  enum "ipv6" {
                    value 2;
                    description
                      "IPv6 CIM encapsulation.";
                  }
                }
                description
                  "The format of the CIM expected by the peer.";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
    
              leaf peer-mac-address {
                type ieee:mac-address;
                description
                  "The destination MAC address to use when generating a CIM for
    the peer.";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
    
              leaf peer-ipv4-address {
                type inet:ipv4-address;
                description
                  "The destination IPv4 address to use when generating an IPv4
    layer-3 CIM for the peer.";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
    
              leaf peer-ipv6-address {
                type inet:ipv6-address;
                description
                  "The destination IPv6 address to use when generating an IPv6
    layer-3 CIM for the peer.";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
    
              leaf peer-udp-port {
                type inet:port-number;
                description
                  "The UDP port number to use when generating a layer-3 CIM for
    the peer.";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
    
              leaf peer-cim-encap-len {
                type uint16 {
                  range "0..512";
                }
                description
                  "The number of octets from the MSDU to include in the
    Encapsulated MSDU field of the CIM PDU";
                reference
                  "49.3.6 of IEEE Std 802.1Q";
    
              }
            }  // list ci-peer-table
    
            leaf max-ci-peer-entries {
              type uint32;
              config false;
              description
                "Specifies the maximum number of CI peer entries that can be
    stored.";
              reference
                "49.3.6 of IEEE Std 802.1Q";
    
            }
          }  // container ci-peers
    
          container ci-streams {
            description
              "Contains control information to manage congestion flows.";
            list ci-stream-table {
              key "stream-handle-id";
              config false;
              description
                "Contains entries for each congesting flow and has a 1:1
    mapping to entries in the IEEE Std 802.1CB Stream Identity
    Table.";
              reference
                "49.3.7 of IEEE Std 802.1Q";
    
              leaf stream-handle-id {
                type uint32;
                config false;
                description
                  "There is a unique stream handle ID for each congesting flow
    stored in the CI Stream Table.";
                reference
                  "49.4.1.5.1 of IEEE Std 802.1Q";
    
              }
    
              leaf cim-count {
                type uint16;
                config false;
                description
                  "Contains a count of the number of CIMs sent for a congesting
    flow.";
                reference
                  "49.4.1.5.2 of IEEE Std 802.1Q";
    
              }
    
              leaf create-time {
                type yang:timeticks;
                config false;
                description
                  "The time (SysUpTime, IETF RFC 3418) at which the CI Stream
    Table entry was created.";
                reference
                  "49.4.1.5.3 of IEEE Std 802.1Q";
    
              }
    
              leaf create-mask {
                type bits {
                  bit local-create {
                    position 0;
                    description
                      "CI Stream entry was created because congestion was
    detected locally by the AQM.";
                  }
                  bit cim-create {
                    position 1;
                    description
                      "CI Stream entry was created because of the receipt of a
    CIM.";
                  }
                }
                config false;
                description
                  "Indicates the reason for creating or updating the CI Stream
    Table entry. The LSB indicates that the entry was created or
    updated because the AQM determined that a forwarded frame is
    part of a congesting flow. The MSB indicates that the entry
    was created or updated because of the receipt of a CIM.";
                reference
                  "49.4.1.5.4 of IEEE Std 802.1Q";
    
              }
            }  // list ci-stream-table
    
            leaf queue-key {
              type uint16;
              config false;
              description
                "Represents the unique queue identity of a congesting queue at
    an egress port that a congesting flow is traversing. The key is
    calculated by the product of the congesting traffic class
    number plus one and the port number.";
              reference
                "49.4.1.5.5 of IEEE Std 802.1Q";
    
            }
    
            leaf dest-mac-address {
              type ieee:mac-address;
              config false;
              description
                "The destination MAC address of a congesting flow.";
              reference
                "49.4.1.5.6 of IEEE Std 802.1Q";
    
            }
    
            leaf source-mac-address {
              type ieee:mac-address;
              config false;
              description
                "The source MAC address of a congesting flow.";
              reference
                "49.4.1.5.7 of IEEE Std 802.1Q";
    
            }
    
            leaf vid {
              type dot1q-types:vlan-index-type;
              config false;
              description
                "The VID of a congesting flow.";
              reference
                "49.4.1.5.8 of IEEE Std 802.1Q";
    
            }
    
            leaf msdu {
              type yang:hex-string;
              config false;
              description
                "The initial octets of the MSDU of a congesting flow. The number
    of octets to keep in the CI Stream Table entry is specified by
    the peer CIM encapsulation length of the CI Peer Table.";
              reference
                "49.4.1.5.9 of IEEE Std 802.1Q";
    
            }
          }  // container ci-streams
    
          leaf max-ci-stream-entries {
            type uint32;
            config false;
            description
              "Specifies the maximum number of CI stream entries that can be
    stored.";
            reference
              "49.4.1.5 of IEEE Std 802.1Q";
    
          }
        }  // grouping cip-parameters
    
        uses sfsg:sfsg-parameters {
          augment stream-filters/stream-filter-instance-table/stream-handle-spec {
            if-feature congestion-isolation;
            description
              "Dot1q Congestion Isolation";
            case null-handle {
              description
                "Congestion isolation specific stream_handle specifications.";
              leaf null-handle {
                type empty;
                description
                  "The stream_handle specification represents the value when no
    stream_handle is provided.";
              }
            }  // case null-handle
          }
        }
      }  // module ieee802-dot1q-congestion-isolation
    

© 2023 YumaWorks, Inc. All rights reserved.