openconfig-if-ethernet

Model for managing Ethernet interfaces -- augments the OpenConfig model for interface configuration and state.

  • Version: 2018-01-05

    openconfig-if-ethernet@2018-01-05


    
      module openconfig-if-ethernet {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/interfaces/ethernet";
    
        prefix oc-eth;
    
        import openconfig-interfaces {
          prefix oc-if;
        }
        import iana-if-type {
          prefix ift;
        }
        import openconfig-yang-types {
          prefix oc-yang;
        }
        import openconfig-extensions {
          prefix oc-ext;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
    netopenconfig@googlegroups.com";
    
        description
          "Model for managing Ethernet interfaces -- augments the OpenConfig
    model for interface configuration and state.";
    
        revision "2018-01-05" {
          description
            "Add logical loopback to interface.";
          reference
            "2.3.0";
    
        }
    
        revision "2017-12-21" {
          description
            "Added IPv6 router advertisement configuration.";
          reference
            "2.1.0";
    
        }
    
        revision "2017-07-14" {
          description
            "Added Ethernet/IP state data; Add dhcp-client;
    migrate to OpenConfig types modules; Removed or
    renamed opstate values";
          reference
            "2.0.0";
    
        }
    
        revision "2016-12-22" {
          description
            "Fixes to Ethernet interfaces model";
          reference
            "1.1.0";
    
        }
    
        oc-ext:openconfig-version "2.3.0";
    
        identity ETHERNET_SPEED {
          description
            "base type to specify available Ethernet link
    speeds";
        }
    
        identity SPEED_10MB {
          base ETHERNET_SPEED;
          description "10 Mbps Ethernet";
        }
    
        identity SPEED_100MB {
          base ETHERNET_SPEED;
          description "100 Mbps Ethernet";
        }
    
        identity SPEED_1GB {
          base ETHERNET_SPEED;
          description "1 GBps Ethernet";
        }
    
        identity SPEED_10GB {
          base ETHERNET_SPEED;
          description "10 GBps Ethernet";
        }
    
        identity SPEED_25GB {
          base ETHERNET_SPEED;
          description "25 GBps Ethernet";
        }
    
        identity SPEED_40GB {
          base ETHERNET_SPEED;
          description "40 GBps Ethernet";
        }
    
        identity SPEED_50GB {
          base ETHERNET_SPEED;
          description "50 GBps Ethernet";
        }
    
        identity SPEED_100GB {
          base ETHERNET_SPEED;
          description "100 GBps Ethernet";
        }
    
        identity SPEED_UNKNOWN {
          base ETHERNET_SPEED;
          description
            "Interface speed is unknown.  Systems may report
    speed UNKNOWN when an interface is down or unpopuplated (e.g.,
    pluggable not present).";
        }
    
        grouping ethernet-interface-config {
          description
            "Configuration items for Ethernet interfaces";
          leaf mac-address {
            type oc-yang:mac-address;
            description
              "Assigns a MAC address to the Ethernet interface.  If not
    specified, the corresponding operational state leaf is
    expected to show the system-assigned MAC address.";
          }
    
          leaf auto-negotiate {
            type boolean;
            default "true";
            description
              "Set to TRUE to request the interface to auto-negotiate
    transmission parameters with its peer interface.  When
    set to FALSE, the transmission parameters are specified
    manually.";
            reference
              "IEEE 802.3-2012 auto-negotiation transmission parameters";
    
          }
    
          leaf duplex-mode {
            type enumeration {
              enum "FULL" {
                value 0;
                description "Full duplex mode";
              }
              enum "HALF" {
                value 1;
                description "Half duplex mode";
              }
            }
            description
              "When auto-negotiate is TRUE, this optionally sets the
    duplex mode that will be advertised to the peer.  If
    unspecified, the interface should negotiate the duplex mode
    directly (typically full-duplex).  When auto-negotiate is
    FALSE, this sets the duplex mode on the interface directly.";
          }
    
          leaf port-speed {
            type identityref {
              base ETHERNET_SPEED;
            }
            description
              "When auto-negotiate is TRUE, this optionally sets the
    port-speed mode that will be advertised to the peer for
    negotiation.  If unspecified, it is expected that the
    interface will select the highest speed available based on
    negotiation.  When auto-negotiate is set to FALSE, sets the
    link speed to a fixed value -- supported values are defined
    by ETHERNET_SPEED identities";
          }
    
          leaf enable-flow-control {
            type boolean;
            default "false";
            description
              "Enable or disable flow control for this interface.
    Ethernet flow control is a mechanism by which a receiver
    may send PAUSE frames to a sender to stop transmission for
    a specified time.
    
    This setting should override auto-negotiated flow control
    settings.  If left unspecified, and auto-negotiate is TRUE,
    flow control mode is negotiated with the peer interface.";
            reference
              "IEEE 802.3x";
    
          }
        }  // grouping ethernet-interface-config
    
        grouping ethernet-interface-state-counters {
          description
            "Ethernet-specific counters and statistics";
          leaf in-mac-control-frames {
            type oc-yang:counter64;
            description
              "MAC layer control frames received on the interface";
          }
    
          leaf in-mac-pause-frames {
            type oc-yang:counter64;
            description
              "MAC layer PAUSE frames received on the interface";
          }
    
          leaf in-oversize-frames {
            type oc-yang:counter64;
            description
              "Number of oversize frames received on the interface";
          }
    
          leaf in-jabber-frames {
            type oc-yang:counter64;
            description
              "Number of jabber frames received on the
    interface.  Jabber frames are typically defined as oversize
    frames which also have a bad CRC.  Implementations may use
    slightly different definitions of what constitutes a jabber
    frame.  Often indicative of a NIC hardware problem.";
          }
    
          leaf in-fragment-frames {
            type oc-yang:counter64;
            description
              "Number of fragment frames received on the interface.";
          }
    
          leaf in-8021q-frames {
            type oc-yang:counter64;
            description
              "Number of 802.1q tagged frames received on the interface";
          }
    
          leaf in-crc-errors {
            type oc-yang:counter64;
            description
              "Number of receive error events due to FCS/CRC check
    failure";
          }
    
          leaf out-mac-control-frames {
            type oc-yang:counter64;
            description
              "MAC layer control frames sent on the interface";
          }
    
          leaf out-mac-pause-frames {
            type oc-yang:counter64;
            description
              "MAC layer PAUSE frames sent on the interface";
          }
    
          leaf out-8021q-frames {
            type oc-yang:counter64;
            description
              "Number of 802.1q tagged frames sent on the interface";
          }
        }  // grouping ethernet-interface-state-counters
    
        grouping ethernet-interface-state {
          description
            "Grouping for defining Ethernet-specific operational state";
          leaf hw-mac-address {
            type oc-yang:mac-address;
            description
              "Represenets the 'burned-in',  or system-assigned, MAC
    address for the Ethernet interface.";
          }
    
          leaf negotiated-duplex-mode {
            type enumeration {
              enum "FULL" {
                value 0;
                description "Full duplex mode";
              }
              enum "HALF" {
                value 1;
                description "Half duplex mode";
              }
            }
            description
              "When auto-negotiate is set to TRUE, and the interface has
    completed auto-negotiation with the remote peer, this value
    shows the duplex mode that has been negotiated.";
          }
    
          leaf negotiated-port-speed {
            type identityref {
              base ETHERNET_SPEED;
            }
            description
              "When auto-negotiate is set to TRUE, and the interface has
    completed auto-negotiation with the remote peer, this value
    shows the interface speed that has been negotiated.";
          }
    
          container counters {
            description
              "Ethernet interface counters";
            uses ethernet-interface-state-counters;
          }  // container counters
        }  // grouping ethernet-interface-state
    
        grouping ethernet-top {
          description
            "top-level Ethernet config and state containers";
          container ethernet {
            description
              "Top-level container for ethernet configuration
    and state";
            container config {
              description
                "Configuration data for ethernet interfaces";
              uses ethernet-interface-config;
            }  // container config
    
            container state {
              config false;
              description
                "State variables for Ethernet interfaces";
              uses ethernet-interface-config;
    
              uses ethernet-interface-state;
            }  // container state
          }  // container ethernet
        }  // grouping ethernet-top
    
        augment /oc-if:interfaces/oc-if:interface {
          description
            "Adds addtional Ethernet-specific configuration to
    interfaces model";
          uses ethernet-top {
            when
              "oc-if:state/oc-if:type = 'ift:ethernetCsmacd'" {
              description
                "Additional interface configuration parameters when
    the interface type is Ethernet";
            }
          }
        }
      }  // module openconfig-if-ethernet
    

© 2023 YumaWorks, Inc. All rights reserved.