syntax = "proto3";
// Automatically generated by goyang https://github.com/openconfig/goyang
// compiled 2018-07-04T09:10:55Z
// do not delete the next line
// goyang-version 1
// module "openconfig-interfaces"
// revision "2018-01-05"
// revision "2017-12-22"
// revision "2017-12-21"
// revision "2017-07-14"
// revision "2017-04-03"
// revision "2016-12-22"
// namespace "http://openconfig.net/yang/interfaces"

package openconfig_interfaces;

message Interfaces {
  message Interface {
    message Config {
      string description = 1;
      bool enabled = 2;
      bool loopback_mode = 3;
      uint32 mtu = 4;
      string name = 5;
      string type = 6;
    }
    Config config = 1;
    message HoldTime {
      message Config {
        uint32 down = 1;
        uint32 up = 2;
      }
      Config config = 1;
      message State {
        uint32 down = 1;
        uint32 up = 2;
      }
      State state = 2;
    }
    HoldTime hold_time = 2;
    string name = 3;
    message State {
      enum AdminStatus {
        AdminStatus_INVALID = 0;
        AdminStatus_UP = 1;
        AdminStatus_DOWN = 2;
        AdminStatus_TESTING = 3;
      };
      AdminStatus admin_status = 1;
      message Counters {
        uint64 carrier_transitions = 1;
        uint64 in_broadcast_pkts = 2;
        uint64 in_discards = 3;
        uint64 in_errors = 4;
        uint64 in_fcs_errors = 5;
        uint64 in_multicast_pkts = 6;
        uint64 in_octets = 7;
        uint64 in_unicast_pkts = 8;
        uint64 in_unknown_protos = 9;
        uint64 last_clear = 10;
        uint64 out_broadcast_pkts = 11;
        uint64 out_discards = 12;
        uint64 out_errors = 13;
        uint64 out_multicast_pkts = 14;
        uint64 out_octets = 15;
        uint64 out_unicast_pkts = 16;
      }
      Counters counters = 2;
      string description = 3;
      bool enabled = 4;
      uint32 ifindex = 5;
      uint64 last_change = 6;
      bool loopback_mode = 7;
      uint32 mtu = 8;
      string name = 9;
      enum OperStatus {
        OperStatus_INVALID = 0;
        OperStatus_UP = 1;
        OperStatus_DOWN = 2;
        OperStatus_TESTING = 3;
        OperStatus_UNKNOWN = 4;
        OperStatus_DORMANT = 5;
        OperStatus_NOT_PRESENT = 6;
        OperStatus_LOWER_LAYER_DOWN = 7;
      };
      OperStatus oper_status = 10;
      string type = 11;
    }
    State state = 4;
    message Subinterfaces {
      message Subinterface {
        message Config {
          string description = 1;
          bool enabled = 2;
          uint32 index = 3;
        }
        Config config = 1;
        uint32 index = 2;
        message State {
          enum AdminStatus {
            AdminStatus_INVALID = 0;
            AdminStatus_UP = 1;
            AdminStatus_DOWN = 2;
            AdminStatus_TESTING = 3;
          };
          AdminStatus admin_status = 1;
          message Counters {
            uint64 carrier_transitions = 1;
            uint64 in_broadcast_pkts = 2;
            uint64 in_discards = 3;
            uint64 in_errors = 4;
            uint64 in_fcs_errors = 5;
            uint64 in_multicast_pkts = 6;
            uint64 in_octets = 7;
            uint64 in_unicast_pkts = 8;
            uint64 in_unknown_protos = 9;
            uint64 last_clear = 10;
            uint64 out_broadcast_pkts = 11;
            uint64 out_discards = 12;
            uint64 out_errors = 13;
            uint64 out_multicast_pkts = 14;
            uint64 out_octets = 15;
            uint64 out_unicast_pkts = 16;
          }
          Counters counters = 2;
          string description = 3;
          bool enabled = 4;
          uint32 ifindex = 5;
          uint32 index = 6;
          uint64 last_change = 7;
          string name = 8;
          enum OperStatus {
            OperStatus_INVALID = 0;
            OperStatus_UP = 1;
            OperStatus_DOWN = 2;
            OperStatus_TESTING = 3;
            OperStatus_UNKNOWN = 4;
            OperStatus_DORMANT = 5;
            OperStatus_NOT_PRESENT = 6;
            OperStatus_LOWER_LAYER_DOWN = 7;
          };
          OperStatus oper_status = 9;
        }
        State state = 3;
      }
      repeated Subinterface subinterface = 1;
    }
    Subinterfaces subinterfaces = 5;
  }
  repeated Interface interface = 1;
}

// Do not delete the lines below, they preserve tag information for goyang.
// goyang-tag Interface_Config description/string 1
// goyang-tag Interface_Config enabled/bool 2
// goyang-tag Interface_Config loopback_mode/bool 3
// goyang-tag Interface_Config mtu/uint32 4
// goyang-tag Interface_Config name/string 5
// goyang-tag Interface_Config type/string 6
// goyang-tag Interface_HoldTime config/Config 1
// goyang-tag Interface_HoldTime state/State 2
// goyang-tag Interface_HoldTime_Config down/uint32 1
// goyang-tag Interface_HoldTime_Config up/uint32 2
// goyang-tag Interface_HoldTime_State down/uint32 1
// goyang-tag Interface_HoldTime_State up/uint32 2
// goyang-tag Interface_State admin_status/AdminStatus 1
// goyang-tag Interface_State counters/Counters 2
// goyang-tag Interface_State description/string 3
// goyang-tag Interface_State enabled/bool 4
// goyang-tag Interface_State ifindex/uint32 5
// goyang-tag Interface_State last_change/uint64 6
// goyang-tag Interface_State loopback_mode/bool 7
// goyang-tag Interface_State mtu/uint32 8
// goyang-tag Interface_State name/string 9
// goyang-tag Interface_State oper_status/OperStatus 10
// goyang-tag Interface_State type/string 11
// goyang-tag Interface_State_Counters carrier_transitions/uint64 1
// goyang-tag Interface_State_Counters in_broadcast_pkts/uint64 2
// goyang-tag Interface_State_Counters in_discards/uint64 3
// goyang-tag Interface_State_Counters in_errors/uint64 4
// goyang-tag Interface_State_Counters in_fcs_errors/uint64 5
// goyang-tag Interface_State_Counters in_multicast_pkts/uint64 6
// goyang-tag Interface_State_Counters in_octets/uint64 7
// goyang-tag Interface_State_Counters in_unicast_pkts/uint64 8
// goyang-tag Interface_State_Counters in_unknown_protos/uint64 9
// goyang-tag Interface_State_Counters last_clear/uint64 10
// goyang-tag Interface_State_Counters out_broadcast_pkts/uint64 11
// goyang-tag Interface_State_Counters out_discards/uint64 12
// goyang-tag Interface_State_Counters out_errors/uint64 13
// goyang-tag Interface_State_Counters out_multicast_pkts/uint64 14
// goyang-tag Interface_State_Counters out_octets/uint64 15
// goyang-tag Interface_State_Counters out_unicast_pkts/uint64 16
// goyang-tag Interface_Subinterface_Config description/string 1
// goyang-tag Interface_Subinterface_Config enabled/bool 2
// goyang-tag Interface_Subinterface_Config index/uint32 3
// goyang-tag Interface_Subinterface_State admin_status/AdminStatus 1
// goyang-tag Interface_Subinterface_State counters/Counters 2
// goyang-tag Interface_Subinterface_State description/string 3
// goyang-tag Interface_Subinterface_State enabled/bool 4
// goyang-tag Interface_Subinterface_State ifindex/uint32 5
// goyang-tag Interface_Subinterface_State index/uint32 6
// goyang-tag Interface_Subinterface_State last_change/uint64 7
// goyang-tag Interface_Subinterface_State name/string 8
// goyang-tag Interface_Subinterface_State oper_status/OperStatus 9
// goyang-tag Interface_Subinterface_State_Counters carrier_transitions/uint64 1
// goyang-tag Interface_Subinterface_State_Counters in_broadcast_pkts/uint64 2
// goyang-tag Interface_Subinterface_State_Counters in_discards/uint64 3
// goyang-tag Interface_Subinterface_State_Counters in_errors/uint64 4
// goyang-tag Interface_Subinterface_State_Counters in_fcs_errors/uint64 5
// goyang-tag Interface_Subinterface_State_Counters in_multicast_pkts/uint64 6
// goyang-tag Interface_Subinterface_State_Counters in_octets/uint64 7
// goyang-tag Interface_Subinterface_State_Counters in_unicast_pkts/uint64 8
// goyang-tag Interface_Subinterface_State_Counters in_unknown_protos/uint64 9
// goyang-tag Interface_Subinterface_State_Counters last_clear/uint64 10
// goyang-tag Interface_Subinterface_State_Counters out_broadcast_pkts/uint64 11
// goyang-tag Interface_Subinterface_State_Counters out_discards/uint64 12
// goyang-tag Interface_Subinterface_State_Counters out_errors/uint64 13
// goyang-tag Interface_Subinterface_State_Counters out_multicast_pkts/uint64 14
// goyang-tag Interface_Subinterface_State_Counters out_octets/uint64 15
// goyang-tag Interface_Subinterface_State_Counters out_unicast_pkts/uint64 16
// goyang-tag Interface_Subinterfaces subinterface/Subinterface[] 1
// goyang-tag Interface_Subinterfaces_Subinterface config/Config 1
// goyang-tag Interface_Subinterfaces_Subinterface index/uint32 2
// goyang-tag Interface_Subinterfaces_Subinterface state/State 3
// goyang-tag Interfaces interface/Interface[] 1
// goyang-tag Interfaces_Interface config/Config 1
// goyang-tag Interfaces_Interface hold_time/HoldTime 2
// goyang-tag Interfaces_Interface name/string 3
// goyang-tag Interfaces_Interface state/State 4
// goyang-tag Interfaces_Interface subinterfaces/Subinterfaces 5
