ieee802-dot1ax-types

Common types used within 802.1AX Link Aggregation modules. Copyright (C) IEEE (2025). This version of this YANG module is part...

  • Version: 2025-03-11

    ieee802-dot1ax-types@2025-03-11


    
      module ieee802-dot1ax-types {
    
        yang-version 1.1;
    
        namespace
          "urn:ieee:std:802.1AX:yang:ieee802-dot1ax-types";
    
        prefix dot1ax-types;
    
        organization "IEEE 802.1 Working Group";
    
        contact
          "WG-URL: http://www.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
    	 45 Hoes Lane
    	 Piscataway, NJ  08854
    	 USA
     E-mail: stds-802-1-chairs@ieee.org";
    
        description
          "Common types used within 802.1AX Link Aggregation modules.
    
    Copyright (C) IEEE (2025).
    
    This version of this YANG module is part of IEEE Std 802.1AX;
    see the standard itself for full legal notices.";
    
        revision "2025-03-11" {
          description
            "Published as part of IEEE Std 802.1AXdz-202y.
    The following reference statement identifies each referenced IEEE
    Standard as updated by applicable amendments.";
          reference
            "IEEE Std 802.1AX-2020 Link Aggregation:
            IEEE Std 802.1AXdz-202y.";
    
        }
    
    
        feature cscd {
          description
            "Conversation Sensitive Collection and Distribution (CSCD)
    is supported.";
          reference
            "5.3.2, 6.6 of IEEE Std 802.1AX";
    
        }
    
        feature dwc {
          description
            "The Discard Wrong Conversation option in CSCD is
    supported.";
          reference
            "5.3.2, 6.6 of IEEE Std 802.1AX";
    
        }
    
        feature sid-map {
          description
            "The Service ID to Conversation ID map is supported for
    use by distribution algorithms.";
        }
    
        feature c-vid-dist-alg {
          description
            "Supports distribution based on C-VIDs.";
        }
    
        feature s-vid-dist-alg {
          description
            "Supports distribution based on S-VIDs.";
        }
    
        feature i-sid-dist-alg {
          description
            "Supports distribution based on I-SIDs.";
        }
    
        feature te-sid-dist-alg {
          description
            "Supports distribution based on TE-SIDs.";
        }
    
        feature flow-hash-dist-alg {
          description
            "Supports distribution based on Flow Hash.";
        }
    
        feature basic-link-maps {
          description
            "Pre-defined admin-conv-link-map configurations to distribute
    packets on either one or two active links, with any
    remaining links available as standby.";
        }
    
        identity distribution-algorithm {
          description
            "Each distribution algorithm is identified by a sequence of
    4 octets, 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 (if supported) 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 can be created as
    their own identities in their own YANG files, derived from
    this imported base type.  When the identity description
    specifies a 4 octet value, this value is used for cscd
    purposes, and included in LACPDUs. Otherwise the identity
    is used purely for local selection of a distribution
    algorithm, and the unspecified distribution algorithm is
    used for cscd purposes.";
          reference
            "8.1, 8.2 of IEEE Std 802.1AX";
    
        }
    
        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).
    The algorithm identifier is 00-80-C2-00.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity c-vids-nomap {
          base distribution-algorithm;
          description
            "Distribution based on C-VIDs (8.2.1). No Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-01.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity c-vids-map {
          base distribution-algorithm;
          description
            "Distribution based on C-VIDs (8.2.1). A Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-81.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity s-vids-nomap {
          base distribution-algorithm;
          description
            "Distribution based on S-VIDs (8.2.2). No Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-02.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity s-vids-map {
          base distribution-algorithm;
          description
            "Distribution based on S-VIDs (8.2.2). A Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-82.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity i-sids-nomap {
          base distribution-algorithm;
          description
            "Distribution based on I-SIDs (8.2.3). No Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-03.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity i-sids-map {
          base distribution-algorithm;
          description
            "Distribution based on I-SIDs (8.2.3). A Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-83.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity te-sids-nomap {
          base distribution-algorithm;
          description
            "Distribution based on TE-SIDs (8.2.4). No Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-04.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity te-sids-map {
          base distribution-algorithm;
          description
            "Distribution based on TE-SIDs (8.2.4). A Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-84.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity flow-hash-nomap {
          base distribution-algorithm;
          description
            "Distribution based on Flow Hash (8.2.5). No Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-05.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity flow-hash-map {
          base distribution-algorithm;
          description
            "Distribution based on Flow Hash (8.2.5). A Service ID
    mapping table is used.
    The algorithm identifier is 00-80-C2-85.";
          reference
            "Table 8-1 of IEEE Std 802.1AX";
    
        }
    
        identity link-map-patterns {
          description
            "Base identity for patterns filling the admin-conv-link-map.
    This identity is intended to serve as base identity, not
    to be directly referenced. Use of the identity allows vendors
    to augment the module with vendor specified patterns,";
          reference
            "7.3.1.1.34, 6.6.3.1 of IEEE Std 802.1AX";
    
        }
    
        identity one-plus-n {
          base link-map-patterns;
          description
            "Provides active/standby behavior with one active link and
    up to 63 standby links. All packets are mapped to whichever
    link that is active in the aggregation has the lowest link
    number. If that link fails, all packets are mapped to the
    lowest link number of the remaining links that are active
    in the aggregation.
    The map consists of an identical entry for each CID, with a
    list of numbers from 1 to 64.
    Supports any number of links in the aggregation (up to 64)
    with link numbers between 1 and 64. Any links in the
    aggregation with a link number greater than 64  are not
    used.";
        }
    
        identity two-plus-n {
          base link-map-patterns;
          description
            "Provides basic load-balancing on two active links with up
    to 62 standby links. All packets with an even CID value are
    mapped to the link with the lowest link number in the
    aggregation, and all packets with an odd CID value are
    mapped to the link with the highest link number in the
    aggregation.
    The map consists of an identical entry for each even CID
    containing a list of numbers from 1 to 64, and an identical
    entry for each odd CID containing a list of numbers from 64
    to 1.
    Supports any number of links in the aggregation (up to 64)
    with link numbers between 1 and 64. Any links in the
    aggregation with a link number greater than 64 are not
    used.";
        }
    
        identity service-map-patterns {
          description
            "Base identity for patterns filling the admin-conv-service-map.
    This identity is intended to serve as base identity, not
    to be directly referenced. Use of the identity allows vendors
    to augment the module with vendor specified patterns,";
          reference
            "7.3.1.1.36, 6.6.3.1 of IEEE Std 802.1AX";
    
        }
    
        typedef lacp-state {
          type bits {
            bit lacp-activity {
              position 1;
              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 2;
              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 3;
              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 4;
              description
                "The Synchronization state of the MUX state machine.";
            }
            bit collecting {
              position 5;
              description
                "The Collecting state of the MUX state machine.";
            }
            bit distributing {
              position 6;
              description
                "The Distributing state of the MUX state machine.";
            }
            bit defaulted {
              position 7;
              description
                "Indicates the port is using the partner-admin values
    to select an Aggregator.";
            }
            bit expired {
              position 8;
              description
                "The Expired state of the Receive state machine.";
            }
          }
          description
            "LACP state values as transmitted in LACPDUs.
    Administrative control over the values of lacp-activity,
    lacp-timeout, aggregation, and (in partner-admin-lacp-state)
    synchronization is allowed.
    The remaining bits are read-only.";
          reference
            "6.4.1, 6.4.2.3 of IEEE Std 802.1AX";
    
        }
    
        typedef bridge-reserved-addresses {
          type enumeration {
            enum "nearest-customer-bridge" {
              value 0;
              description
                "Reserved MAC address 01-C2-80-00-00";
            }
            enum "slow-protocols-multicast" {
              value 1;
              description
                "Reserved MAC address 01-C2-80-00-02";
            }
            enum "nearest-non-tpmr-bridge" {
              value 2;
              description
                "Reserved MAC address 01-C2-80-00-03";
            }
            enum "nearest-bridge" {
              value 3;
              description
                "Reserved MAC address 01-C2-80-00-0E";
            }
          }
          description
            "Group addresses that are filtered by some or all types of
    bridges in order to limit the scope of propagation of PDUs
    in a Bridged Network.";
          reference
            "8.6.3 of IEEE Std 802.1Q";
    
        }
    
        grouping link-map {
          description
            "Specifies the contents of the admin-conv-link-map.";
          reference
            "7.3.1.1.34, 6.6.3.1 of IEEE Std 802.1AX";
    
          choice method {
            default "cid-list";
            description
              "Provides two ways to specify the map contents.";
            leaf pattern {
              type identityref {
                base link-map-patterns;
              }
              description
                "Use a predefined pattern to fill the map.";
            }
            list cid-list {
              key "cid";
              description
                "Data structure to map a Conversation Identifier
    (CID) to a Link Number. Each entry consists of a CID
    and a list of link numbers that can potentially be
    selected for that CID. An empty list of link-numbers
    means that no links are selected for the CID.";
              leaf cid {
                type uint16 {
                  range "0..4095";
                }
                description
                  "Port Conversation Identifier";
              }
    
              leaf-list link-numbers {
                type uint16;
                description
                  "List of zero or more Link Numbers that can
    potentially be selected for distribution of frames
    with this CID.";
              }
            }  // list cid-list
          }  // choice method
        }  // grouping link-map
    
        grouping service-map {
          description
            "Specifies the contents of the admin-conv-service-map.";
          reference
            "7.3.1.1.36, 6.6.3.1 of IEEE Std 802.1AX";
    
          choice method {
            default "cid-list";
            description
              "Provides two ways to specify the map contents.";
            leaf pattern {
              type identityref {
                base service-map-patterns;
              }
              description
                "Use a predefined pattern to fill the map.";
            }
            list cid-list {
              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. An empty
    list of SIDs means there are no SIDs that map to this
    CID, and results in the same behavior as not having an
    entry for this CID.";
              leaf cid {
                type uint16 {
                  range "0..4095";
                }
                description
                  "Port Conversation Identifier";
              }
    
              leaf-list service-ids {
                type uint32;
                description
                  "List of zero or more SIDs that map to the CID.";
              }
            }  // list cid-list
          }  // choice method
        }  // grouping service-map
      }  // module ieee802-dot1ax-types
    

© 2024 YumaWorks, Inc. All rights reserved.