ieee802-ethernet-mac-merge

The Yang model for managing devices that support the MAC Merge (aka preemption) sublayer as defined in Clause 99. Unless otherwi...

  • Version: 2025-04-17

    ieee802-ethernet-mac-merge@2025-04-17


    
      module ieee802-ethernet-mac-merge {
    
        yang-version 1.1;
    
        namespace
          "urn:ieee:std:802.3:yang:ieee802-ethernet-mac-merge";
    
        prefix mac-merge;
    
        import ietf-yang-types {
          prefix yang;
          reference
            "IETF RFC 6991";
    
    
        }
        import ietf-interfaces {
          prefix if;
          reference
            "IETF RFC 8343";
    
    
        }
        import ieee802-ethernet-interface {
          prefix ieee802-eth-if;
          reference
            "IEEE Std 802.3.2-2019";
    
    
        }
    
        organization
          "IEEE Std 802.3 Ethernet Working Group
         Web URL: http://www.ieee802.org/3/";
    
        contact
          "Web URL: http://www.ieee802.org/3/";
    
        description
          "The Yang model for managing devices that support the MAC Merge
         (aka preemption) sublayer as defined in Clause 99. Unless
         otherwise indicated, the references in this model module are to
             IEEE Std 802.3-2022.";
    
        revision "2025-04-17" {
          description
            "Updates under IEEE Std 802.3.2-202x, Draft D3.3";
          reference
            "IEEE Std 802.3-2022, unless dated explicitly";
    
        }
    
    
        feature mac-merge {
          description "MAC Merge is supported.";
          reference
            "IEEE Std 802.3-2022";
    
        }
    
        augment /if:interfaces/if:interface/ieee802-eth-if:ethernet {
          if-feature mac-merge;
          description
            "Interfaces supporting MAC Merge.";
          container mac-merge {
            description
              "Container for MAC Merge objects.";
            container admin-control {
              description
                "Container for MAC Merge control objects.";
              leaf merge-enable-tx {
                type enumeration {
                  enum "Disabled" {
                    value 0;
                    description
                      "Transmit preemption is disabled";
                  }
                  enum "Enabled" {
                    value 1;
                    description
                      "Transmit preemption is enabled";
                  }
                }
                default "Disabled";
                description
                  "Is MAC Merge enabled when transmitting?
                 It may be modified using an edit operation.";
                reference
                  "IEEE Std 802.3, 30.14.1.3";
    
              }
    
              leaf verify-disable-tx {
                type enumeration {
                  enum "Disabled" {
                    value 0;
                    description
                      "Verify is disabled";
                  }
                  enum "Enabled" {
                    value 1;
                    description
                      "Verify is enabled";
                  }
                }
                default "Disabled";
                description
                  "Does MAC Merge check to make sure the link partner
                 supports MAC Merge?
                 The check is peformed by sending a verify request and
                 getting a verify response.
                 It may be modified using an edit operation.;";
                reference
                  "IEEE Std 802.3, 30.14.1.4";
    
              }
    
              leaf verify-time {
                type uint16 {
                  range "1..128";
                }
                units "milliseconds";
                default "10";
                description
                  "The retry timer for verification attempts.
                 The valid range is 1 to 128 inclusive.
                 The default value is 10.";
                reference
                  "IEEE Std 802.3, 30.14.1.6";
    
              }
    
              leaf frag-size {
                type uint8 {
                  range "0..3";
                }
                default "0";
                description
                  "This controls minimum frame size for packet fragments.
                 It's specified in units of 64 bytes above the minimum
                 of 64 bytes. The equation is:
                 minimum-size = 64 + (frag-size*64)-4";
                reference
                  "IEEE Std 802.3, 30.14.1.7";
    
              }
            }  // container admin-control
    
            container admin-status {
              config false;
              description
                "Container for MAC Merge status objects.";
              leaf merge-support {
                type enumeration {
                  enum "Supported" {
                    value 0;
                    description
                      "MAC Merge is supported on the device";
                  }
                  enum "NotSupported" {
                    value 1;
                    description
                      "MAC Merge is not supported on the device";
                  }
                }
                description
                  "Is MAC Merge is supported?";
                reference
                  "IEEE Std 802.3, 30.14.1.1";
    
              }
    
              leaf verify-status {
                type enumeration {
                  enum "unknown" {
                    value 0;
                    description "unknown";
                  }
                  enum "initial" {
                    value 1;
                    description "initial";
                  }
                  enum "verifying" {
                    value 2;
                    description "verifying";
                  }
                  enum "succeeded" {
                    value 3;
                    description "succeeded";
                  }
                  enum "failed" {
                    value 4;
                    description "failed";
                  }
                  enum "disabled" {
                    value 5;
                    description "disabled";
                  }
                }
                description
                  "The status of MAC Merge Verification.";
                reference
                  "IEEE Std 802.3, 30.14.1.2";
    
              }
    
              leaf status-tx {
                type enumeration {
                  enum "unknown" {
                    value 0;
                    description "unknown";
                  }
                  enum "inactive" {
                    value 1;
                    description "inactive";
                  }
                  enum "active" {
                    value 2;
                    description "active";
                  }
                }
                description
                  "The status of MAC Merge in the transmit direction.";
                reference
                  "IEEE Std 802.3, 30.14.1.5";
    
              }
            }  // container admin-status
    
            container statistics {
              config false;
              description
                "Container for MAC Merge counters.
               Discontinuities in the values of counters in
               this container can occur at re-initialization of
               the management system, and at other times as
               indicated by the value of the 'discontinuity-time'
               leaf defined in the ietf-interfaces YANG module
               (IETF RFC 8343).";
              leaf assembly-error-count {
                type yang:counter64;
                description
                  "A count of MAC frames with reassembly errors.";
                reference
                  "IEEE Std 802.3, 30.14.1.8";
    
              }
    
              leaf smd-error-count {
                type yang:counter64;
                description
                  "A count of received MAC frames / MAC frame fragments
                 rejected with an unexpected preemption header.";
                reference
                  "IEEE Std 802.3, 30.14.1.9";
    
              }
    
              leaf assembly-ok-count {
                type yang:counter64;
                description
                  "A count of preemptable MAC frames that were successfully
                 reassembled and delivered to MAC.";
                reference
                  "IEEE Std 802.3, 30.14.1.10";
    
              }
    
              leaf fragment-count-rx {
                type yang:counter64;
                description
                  "The number of preemptable frame fragments recieved.";
                reference
                  "IEEE Std 802.3, 30.14.1.11";
    
              }
    
              leaf fragment-count-tx {
                type yang:counter64;
                description
                  "The number of preemptable frame fragments transmitted.";
                reference
                  "IEEE Std 802.3, 30.14.1.12";
    
              }
    
              leaf hold-count {
                type yang:counter64;
                description
                  "The number of MAC Merge hold requests (i.e., to stop
                 transmissions of preemptable traffic) received from
                 the MAC";
                reference
                  "IEEE Std 802.3, 30.14.1.13";
    
              }
            }  // container statistics
          }  // container mac-merge
        }
      }  // module ieee802-ethernet-mac-merge
    

© 2024 YumaWorks, Inc. All rights reserved.