netconfcentral logo

openconfig-if-ethernet

HTML

openconfig-if-ethernet@2017-12-21



  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 IETF YANG
    model for interfaces described by RFC 7223";

    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.1.0";

    identity ETHERNET_SPEED {
      base 
      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

Summary

  
  
Organization OpenConfig working group
  
Module openconfig-if-ethernet
Version 2017-12-21
File openconfig-if-ethernet.yang
  
Prefix oc-eth
Namespace http://openconfig.net/yang/interfaces/ethernet
  
Cooked /cookedmodules/openconfig-if-ethernet/2017-12-21
YANG /src/openconfig-if-ethernet@2017-12-21.yang
XSD /xsd/openconfig-if-ethernet@2017-12-21.xsd
  
Abstract Model for managing Ethernet interfaces -- augments the IETF YANG model for interfaces described by RFC 7223
  
Contact
OpenConfig working group
netopenconfig@googlegroups.com

Description

 
Model for managing Ethernet interfaces -- augments the IETF YANG
model for interfaces described by RFC 7223

Groupings

Grouping Objects Abstract
ethernet-interface-config mac-address auto-negotiate duplex-mode port-speed enable-flow-control Configuration items for Ethernet interfaces
ethernet-interface-state hw-mac-address negotiated-duplex-mode negotiated-port-speed counters Grouping for defining Ethernet-specific operational state
ethernet-interface-state-counters in-mac-control-frames in-mac-pause-frames in-oversize-frames in-jabber-frames in-fragment-frames in-8021q-frames in-crc-errors out-mac-control-frames out-mac-pause-frames out-8021q-frames Ethernet-specific counters and statistics
ethernet-top ethernet top-level Ethernet config and state containers