-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Clean up tests.sh script for travis CI * do not use virtualenv * do not sudo the entire ./tests.sh * use sudo for individual commands * Add back brew python on macOS * Dont show too many logs * Fix go paths Add back virtualenv * temporarily comment py tests
- Loading branch information
Abhi Keshav
authored
Nov 22, 2017
1 parent
78f42ed
commit ff7fde2
Showing
7 changed files
with
3,820 additions
and
260 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,319 @@ | ||
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 ietf-yang-types { prefix 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 "1.0.2"; | ||
|
||
revision "2016-05-26" { | ||
description | ||
"OpenConfig public release"; | ||
reference "1.0.2"; | ||
} | ||
|
||
// 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 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 yang:counter64; | ||
description | ||
"MAC layer control frames received on the interface"; | ||
} | ||
|
||
leaf in-mac-pause-frames { | ||
type yang:counter64; | ||
description | ||
"MAC layer PAUSE frames received on the interface"; | ||
} | ||
|
||
leaf in-oversize-frames { | ||
type yang:counter64; | ||
description | ||
"Number of oversize frames received on the interface"; | ||
} | ||
|
||
leaf in-jabber-frames { | ||
type 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 yang:counter64; | ||
description | ||
"Number of fragment frames received on the interface."; | ||
} | ||
|
||
leaf in-8021q-frames { | ||
type yang:counter64; | ||
description | ||
"Number of 802.1q tagged frames received on the interface"; | ||
} | ||
|
||
leaf in-crc-errors { | ||
type yang:counter64; | ||
description | ||
"Number of receive error events due to FCS/CRC check | ||
failure"; | ||
} | ||
|
||
// egress counters | ||
|
||
leaf out-mac-control-frames { | ||
type yang:counter64; | ||
description | ||
"MAC layer control frames sent on the interface"; | ||
} | ||
|
||
leaf out-mac-pause-frames { | ||
type yang:counter64; | ||
description | ||
"MAC layer PAUSE frames sent on the interface"; | ||
} | ||
|
||
leaf out-8021q-frames { | ||
type 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 yang:mac-address; | ||
description | ||
"Represenets the 'burned-in', or system-assigned, MAC | ||
address for the Ethernet interface."; | ||
} | ||
|
||
leaf effective-speed { | ||
type uint32; | ||
units Mbps; | ||
description | ||
"Reports the effective speed of the interface, e.g., the | ||
negotiated speed if auto-negotiate is enabled"; | ||
} | ||
|
||
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" { | ||
/*when "oc-if:type = 'ift:ethernetCsmacd'" { | ||
description "Additional interface configuration parameters when | ||
the interface type is Ethernet"; | ||
}*/ | ||
description "Adds addtional Ethernet-specific configuration to | ||
interfaces model"; | ||
|
||
uses ethernet-top; | ||
} | ||
|
||
// rpc statements | ||
|
||
// notification statements | ||
|
||
} |
Oops, something went wrong.