352 lines
8.2 KiB
YANG
352 lines
8.2 KiB
YANG
submodule openconfig-network-instance-l2 {
|
|
|
|
belongs-to openconfig-network-instance {
|
|
prefix "oc-netinst";
|
|
}
|
|
|
|
// import some basic types
|
|
import openconfig-extensions { prefix "oc-ext"; }
|
|
import openconfig-interfaces { prefix "oc-if"; }
|
|
import ietf-yang-types { prefix "yang"; }
|
|
|
|
// meta
|
|
organization "OpenConfig working group";
|
|
|
|
contact
|
|
"OpenConfig working group
|
|
www.openconfig.net";
|
|
|
|
description
|
|
"This module contains groupings which specifically relate to
|
|
Layer 2 network instance configuration and operational state
|
|
parameters.";
|
|
|
|
oc-ext:openconfig-version "0.12.0";
|
|
|
|
revision "2019-04-16" {
|
|
description
|
|
"Move BGP RIB into the protocol/bgp container.";
|
|
reference "0.12.0";
|
|
}
|
|
|
|
revision "2018-11-21" {
|
|
description
|
|
"Add OpenConfig module metadata extensions.";
|
|
reference "0.11.1";
|
|
}
|
|
|
|
revision "2018-08-11" {
|
|
description
|
|
"Add vlan id as additional key in MAC table";
|
|
reference "0.11.0";
|
|
}
|
|
|
|
revision "2018-06-22" {
|
|
description
|
|
"Fix typo in OSPF when statement";
|
|
reference "0.10.2";
|
|
}
|
|
|
|
revision "2018-06-05" {
|
|
description
|
|
"Fix bugs in when statements";
|
|
reference "0.10.1";
|
|
}
|
|
|
|
revision "2018-02-19" {
|
|
description
|
|
"Add PIM and IGMP to network instance";
|
|
reference "0.10.0";
|
|
}
|
|
|
|
revision "2017-12-13" {
|
|
description
|
|
"Fix incorrect constraint on SR and MPLS containers";
|
|
reference "0.9.0";
|
|
}
|
|
|
|
revision "2017-08-24" {
|
|
description
|
|
"Minor formatting fixes";
|
|
reference "0.8.1";
|
|
}
|
|
|
|
revision "2017-02-28" {
|
|
description
|
|
"Add OSPFv2 to network instance";
|
|
reference "0.8.0";
|
|
}
|
|
|
|
revision "2017-01-26" {
|
|
description
|
|
"Add policy forwarding to network instance";
|
|
reference "0.7.0";
|
|
}
|
|
|
|
revision "2017-01-13" {
|
|
description
|
|
"Add AFT to the network instance";
|
|
reference "0.6.0";
|
|
}
|
|
|
|
revision "2016-12-15" {
|
|
description
|
|
"Add segment routing to network instance";
|
|
reference "0.5.0";
|
|
}
|
|
|
|
revision "2016-11-10" {
|
|
description
|
|
"Update model to include IS-IS.";
|
|
reference "0.4.1";
|
|
}
|
|
|
|
revision "2016-10-12" {
|
|
description
|
|
"Update table connections";
|
|
reference "0.4.0";
|
|
}
|
|
|
|
revision "2016-09-28" {
|
|
description
|
|
"Change L2 instance to submodule; add MAC table";
|
|
reference "0.3.0";
|
|
}
|
|
|
|
revision "2016-08-11" {
|
|
description
|
|
"Resolve repeated container names in routing protocols";
|
|
reference "0.2.3";
|
|
}
|
|
|
|
revision "2016-07-08" {
|
|
description
|
|
"Updated with refactored routing protocol models";
|
|
reference "0.2.1";
|
|
}
|
|
|
|
revision "2016-03-29" {
|
|
description
|
|
"Initial revision";
|
|
reference "0.2.0";
|
|
}
|
|
|
|
revision "2015-11-20" {
|
|
description
|
|
"Initial revision";
|
|
reference "0.1.0";
|
|
}
|
|
|
|
grouping l2ni-instance {
|
|
description
|
|
"Configuration and operational state parameters relating
|
|
to a Layer 2 network instance";
|
|
|
|
container fdb {
|
|
description
|
|
"Operational state and configuration parameters relating to
|
|
the forwarding database of the network instance";
|
|
|
|
container config {
|
|
description
|
|
"Configuration parameters relating to the FDB";
|
|
uses l2ni-fdb-mac-config;
|
|
}
|
|
container state {
|
|
config false;
|
|
description
|
|
"Operational state parameters relating to the FDB";
|
|
uses l2ni-fdb-mac-config;
|
|
}
|
|
|
|
uses l2ni-mac-table-top;
|
|
}
|
|
}
|
|
|
|
grouping l2ni-instance-common-config {
|
|
description
|
|
"Common configuration options which are specific to Layer 2
|
|
network instances";
|
|
|
|
leaf mtu {
|
|
type uint16;
|
|
description
|
|
"The maximum frame size which should be supported for this
|
|
instance for Layer 2 frames";
|
|
}
|
|
|
|
}
|
|
|
|
grouping l2ni-fdb-mac-config {
|
|
description
|
|
"Parameters relating to FDB behaviour relating to MAC
|
|
addresses";
|
|
|
|
leaf mac-learning {
|
|
type boolean;
|
|
description
|
|
"When this leaf is set to true, MAC learning is enabled for
|
|
the network instance, such that MAC addresses are learned
|
|
from ingress frames and added to the FDB.";
|
|
}
|
|
|
|
leaf mac-aging-time {
|
|
// Cisco supports one aging time for local and remote, but
|
|
// can specify this time is absolute or against inactivity.
|
|
// ALU SROS supports different aging times for local and remote
|
|
// but does not allow absolute/inactivity specification.
|
|
// JNPR supports only a single aging time, and no specification
|
|
// of whether inactivity/absolute is used.
|
|
// It is easy to augment new options in here for local remote
|
|
// and an extra leaf to allow specification of the type of aging
|
|
// so this is left as a single value.
|
|
type uint16;
|
|
units seconds;
|
|
description
|
|
"The number of seconds of inactivity after which the entry
|
|
in the local FDB is timed out.";
|
|
}
|
|
|
|
leaf maximum-entries {
|
|
type uint16;
|
|
description
|
|
"The maximum number of MAC address entries that should be
|
|
accepted into the FDB";
|
|
}
|
|
}
|
|
|
|
grouping l2ni-encapsulation-config {
|
|
description
|
|
"Encapsulation related configuration parameters for a L2
|
|
network instance";
|
|
|
|
leaf control-word {
|
|
type boolean;
|
|
description
|
|
"Whether the control-word should be used for the network
|
|
instance";
|
|
reference "RFC3985";
|
|
}
|
|
}
|
|
|
|
grouping l2ni-mac-table-config {
|
|
description
|
|
"Configuration data for MAC table entries";
|
|
|
|
leaf mac-address {
|
|
type yang:mac-address;
|
|
description
|
|
"MAC address for the dynamic or static MAC table
|
|
entry";
|
|
}
|
|
|
|
leaf vlan {
|
|
//TODO(aashaikh): Consider whether this should just reflect the
|
|
//VLAN id or be a union type to also support displaying/setting
|
|
//the VLAN by name (i.e., global VLAN configured in the VLAN
|
|
// model).
|
|
type leafref {
|
|
path "../../../../../../vlans/vlan/config/vlan-id";
|
|
}
|
|
description
|
|
"VLAN on which the MAC address is present. The same MAC
|
|
address may be seen on multiple VLANs in some cases.";
|
|
}
|
|
}
|
|
|
|
grouping l2ni-mac-table-state {
|
|
description
|
|
"Operational state data for MAC table entries";
|
|
|
|
leaf age {
|
|
type uint64;
|
|
units seconds;
|
|
description
|
|
"The time in seconds since the MAC address has been in the
|
|
table";
|
|
}
|
|
|
|
leaf entry-type {
|
|
type enumeration {
|
|
enum STATIC {
|
|
description
|
|
"Statically programmed MAC table entry";
|
|
}
|
|
enum DYNAMIC {
|
|
description
|
|
"Dynamically learned MAC table entry";
|
|
}
|
|
}
|
|
description
|
|
"Indicates whether the entry was statically configured, or
|
|
dynamically learned.";
|
|
}
|
|
|
|
}
|
|
|
|
grouping l2ni-mac-table-top {
|
|
description
|
|
"Top-level grouping for MAC table list";
|
|
|
|
|
|
container mac-table {
|
|
description
|
|
"Table of learned or statically configured MAC addresses and
|
|
corresponding VLANs in the bridge domain";
|
|
|
|
container entries {
|
|
description
|
|
"Enclosing container for list of MAC table entries";
|
|
|
|
list entry {
|
|
key "mac-address vlan";
|
|
description
|
|
"List of learned MAC addresses";
|
|
|
|
leaf mac-address {
|
|
type leafref {
|
|
path "../config/mac-address";
|
|
}
|
|
description
|
|
"Reference to mac-address list key";
|
|
}
|
|
|
|
leaf vlan {
|
|
type leafref {
|
|
path "../config/vlan";
|
|
}
|
|
description
|
|
"Reference to vlan list key";
|
|
}
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for MAC table entries";
|
|
|
|
uses l2ni-mac-table-config;
|
|
}
|
|
|
|
container state {
|
|
|
|
config false;
|
|
|
|
description
|
|
"Operational state data for MAC table entries";
|
|
|
|
uses l2ni-mac-table-config;
|
|
uses l2ni-mac-table-state;
|
|
}
|
|
|
|
container interface {
|
|
description
|
|
"Reference to the base and/or subinterface for the
|
|
MAC table entry";
|
|
|
|
uses oc-if:interface-ref;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|