module openconfig-if-ethernet {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/interfaces/ethernet";

  prefix "oc-eth";

  // import some basic types
  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; }

  // meta
  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";

  oc-ext:openconfig-version "2.0.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";
  }

  // extension statements

  // feature statements

  // identity statements

  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).";
  }

  // typedef statements


  // grouping statements

  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 {
          description "Full duplex mode";
        }
        enum HALF {
          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-state-counters {
    description
      "Ethernet-specific counters and statistics";

    // ingress counters

    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";
    }

    // egress counters

    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 {
    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 {
          description "Full duplex mode";
        }
        enum HALF {
          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;

    }

  }

  // data definition statements

  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 state {

        config false;
        description "State variables for Ethernet interfaces";

        uses ethernet-interface-config;
        uses ethernet-interface-state;

      }

    }
  }

  // augment statements

  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";
      }
    }
  }

  // rpc statements

  // notification statements

}
