module ietf-if-l3-vlan {
yang-version 1.1;
namespace
"urn:ietf:params:xml:ns:yang:ietf-if-l3-vlan";
prefix if-l3-vlan;
import ietf-interfaces {
prefix if;
}
import iana-if-type {
prefix ianaift;
}
import ieee802-dot1q-types {
prefix dot1q-types;
}
import ietf-interfaces-common {
prefix if-cmn;
}
organization
"IETF NETMOD (NETCONF Data Modeling Language) Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/netmod/>
WG List: <mailto:netmod@ietf.org>
WG Chair: Lou Berger
<mailto:lberger@labn.net>
WG Chair: Kent Watsen
<mailto:kwatsen@juniper.net>
Editor: Robert Wilton
<mailto:rwilton@cisco.com>";
description
"This YANG module models L3 VLAN sub-interfaces";
revision "2017-10-30" {
description "Latest draft revision";
reference
"Internet-Draft draft-ietf-netmod-sub-intf-vlan-model-03";
}
augment /if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type {
when
"derived-from-or-self(../if:type,
'ianaift:ethernetCsmacd') or
derived-from-or-self(../if:type,
'ianaift:ieee8023adLag') or
derived-from-or-self(../if:type,
'if-cmn:ethSubInterface')" {
description
"Applies only to Ethernet-like interfaces and
sub-interfaces";
}
description
"Augment the generic interface encapsulation with an
basic 802.1Q VLAN encapsulation for sub-interfaces.";
container dot1q-vlan {
must
'count(../../if-cmn:forwarding-mode) = 0 or '
+ 'derived-from-or-self(../../if-cmn:forwarding-mode,'
+ '"if-cmn:layer-3-forwarding")' {
error-message
"If the interface forwarding-mode leaf is set then it
must be set to an identity that derives from
layer-3-forwarding";
description
"The forwarding-mode leaf on an interface can
optionally be used to enforce consistency of
configuration";
}
description
"Match VLAN tagged frames with specific VLAN Ids";
container outer-tag {
presence
"The outermost VLAN tag exists";
description
"Classifies traffic using the outermost VLAN tag on the
frame.";
uses dot1q-types:dot1q-tag-classifier-grouping;
} // container outer-tag
container second-tag {
must
'../outer-tag/tag-type = "dot1q-types:s-vlan" and '
+ 'tag-type = "dot1q-types:c-vlan"' {
error-message
"When matching two tags, the outermost tag must be
specified and of S-VLAN type and the second outermost
tag must be of C-VLAN tag type";
description
"For IEEE 802.1Q interoperability, when matching two
tags, it is required that the outermost tag exists and
is an S-VLAN, and the second outermost tag is a
C-VLAN";
}
presence
"The second outermost VLAN tag exists";
description
"Classifies traffic using the second outermost VLAN tag
on the frame.";
uses dot1q-types:dot1q-tag-classifier-grouping;
} // container second-tag
} // container dot1q-vlan
}
} // module ietf-if-l3-vlan