draft-ietf-netmod-sub-intf-vlan-model-02.txt   draft-ietf-netmod-sub-intf-vlan-model-03.txt 
Internet Engineering Task Force R. Wilton, Ed. Internet Engineering Task Force R. Wilton, Ed.
Internet-Draft D. Ball Internet-Draft D. Ball
Intended status: Informational T. Singh Intended status: Informational T. Singh
Expires: January 4, 2018 Cisco Systems Expires: May 3, 2018 Cisco Systems
S. Sivaraj S. Sivaraj
Juniper Networks Juniper Networks
July 3, 2017 October 30, 2017
Sub-interface VLAN YANG Data Models Sub-interface VLAN YANG Data Models
draft-ietf-netmod-sub-intf-vlan-model-02 draft-ietf-netmod-sub-intf-vlan-model-03
Abstract Abstract
This document defines YANG modules to add support for classifying This document defines YANG modules to add support for classifying
traffic received on interfaces as Ethernet/VLAN framed packets to traffic received on interfaces as Ethernet/VLAN framed packets to
sub-interfaces based on the fields available in the Ethernet/VLAN sub-interfaces based on the fields available in the Ethernet/VLAN
frame headers. These modules allow configuration of Layer 3 and frame headers. These modules allow configuration of Layer 3 and
Layer 2 sub-interfaces (e.g. attachment circuits) that can Layer 2 sub-interfaces (e.g. attachment circuits) that can
interoperate with IETF based forwarding protocols; such as IP and interoperate with IETF based forwarding protocols; such as IP and
L3VPN services; or L2VPN services like VPWS, VPLS, and EVPN. The L3VPN services; or L2VPN services like VPWS, VPLS, and EVPN. The
skipping to change at page 1, line 42 skipping to change at page 1, line 42
based on membership of an 802.1Q VLAN bridge. based on membership of an 802.1Q VLAN bridge.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 4, 2018. This Internet-Draft will expire on May 3, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4
2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Interoperability with IEEE 802.1Q compliant bridges . . . 4 2.1. Interoperability with IEEE 802.1Q compliant bridges . . . 4
2.2. Extensibility . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Extensibility . . . . . . . . . . . . . . . . . . . . . . 4
3. L3 Interface VLAN Model . . . . . . . . . . . . . . . . . . . 5 3. L3 Interface VLAN Model . . . . . . . . . . . . . . . . . . . 5
4. Flexible Encapsulation Model . . . . . . . . . . . . . . . . 5 4. Flexible Encapsulation Model . . . . . . . . . . . . . . . . 5
5. L3 Interface VLAN YANG Module . . . . . . . . . . . . . . . . 8 5. L3 Interface VLAN YANG Module . . . . . . . . . . . . . . . . 7
6. Flexible Encapsulation YANG Module . . . . . . . . . . . . . 11 6. Flexible Encapsulation YANG Module . . . . . . . . . . . . . 10
7. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 19 7. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 19
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
9. ChangeLog . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9. ChangeLog . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.1. WG version -02 . . . . . . . . . . . . . . . . . . . . . 20 9.1. WG version -03 . . . . . . . . . . . . . . . . . . . . . 20
9.2. WG version -01 . . . . . . . . . . . . . . . . . . . . . 20 9.2. WG version -02 . . . . . . . . . . . . . . . . . . . . . 20
9.3. Version -04 . . . . . . . . . . . . . . . . . . . . . . . 20 9.3. WG version -01 . . . . . . . . . . . . . . . . . . . . . 20
9.4. Version -03 . . . . . . . . . . . . . . . . . . . . . . . 20 9.4. Version -04 . . . . . . . . . . . . . . . . . . . . . . . 20
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 9.5. Version -03 . . . . . . . . . . . . . . . . . . . . . . . 20
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
11. Security Considerations . . . . . . . . . . . . . . . . . . . 21 11. Security Considerations . . . . . . . . . . . . . . . . . . . 21
11.1. if-l3-vlan.yang . . . . . . . . . . . . . . . . . . . . 21 11.1. if-l3-vlan.yang . . . . . . . . . . . . . . . . . . . . 21
11.2. flexible-encapsulation.yang . . . . . . . . . . . . . . 22 11.2. flexible-encapsulation.yang . . . . . . . . . . . . . . 21
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 23
12.1. Normative References . . . . . . . . . . . . . . . . . . 24 12.1. Normative References . . . . . . . . . . . . . . . . . . 23
12.2. Informative References . . . . . . . . . . . . . . . . . 24 12.2. Informative References . . . . . . . . . . . . . . . . . 24
Appendix A. Comparison with the IEEE 802.1Q Configuration Model 25 Appendix A. Comparison with the IEEE 802.1Q Configuration Model 24
A.1. Sub-interface based configuration model overview . . . . 25 A.1. Sub-interface based configuration model overview . . . . 25
A.2. IEEE 802.1Q Bridge Configuration Model Overview . . . . . 26 A.2. IEEE 802.1Q Bridge Configuration Model Overview . . . . . 25
A.3. Possible Overlap Between the Two Models . . . . . . . . . 26 A.3. Possible Overlap Between the Two Models . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
This document defines two YANG [RFC7950] modules that augment the This document defines two YANG [RFC7950] modules that augment the
encapsulation choice YANG element defined in Interface Extensions encapsulation choice YANG element defined in Interface Extensions
YANG [I-D.ietf-netmod-intf-ext-yang] and the generic interfaces data YANG [I-D.ietf-netmod-intf-ext-yang] and the generic interfaces data
model defined in [RFC7223]. The two modules provide configuration model defined in [RFC7223]. The two modules provide configuration
nodes to support classification of Ethernet/VLAN traffic to sub- nodes to support classification of Ethernet/VLAN traffic to sub-
skipping to change at page 5, line 23 skipping to change at page 5, line 23
802.1Q VLAN tags. 802.1Q VLAN tags.
The "if-l3-vlan" YANG module has the following structure: The "if-l3-vlan" YANG module has the following structure:
module: ietf-if-l3-vlan module: ietf-if-l3-vlan
augment /if:interfaces/if:interface/if-cmn:encapsulation/ augment /if:interfaces/if:interface/if-cmn:encapsulation/
if-cmn:encaps-type: if-cmn:encaps-type:
+--:(dot1q-vlan) +--:(dot1q-vlan)
+--rw dot1q-vlan +--rw dot1q-vlan
+--rw outer-tag! +--rw outer-tag!
| +--rw dot1q-tag | +--rw tag-type dot1q-tag-type
| +--rw tag-type dot1q-tag-type | +--rw vlan-id ieee:vlanid
| +--rw vlan-id ieee:vlanid
+--rw second-tag! +--rw second-tag!
+--rw dot1q-tag +--rw tag-type dot1q-tag-type
+--rw tag-type dot1q-tag-type +--rw vlan-id ieee:vlanid
+--rw vlan-id ieee:vlanid
4. Flexible Encapsulation Model 4. Flexible Encapsulation Model
The Flexible Encapsulation model is designed to allow for the The Flexible Encapsulation model is designed to allow for the
flexible provisioning of layer 2 services. It provides the flexible provisioning of layer 2 services. It provides the
capability to classify Ethernet/VLAN frames received on an Ethernet capability to classify Ethernet/VLAN frames received on an Ethernet
trunk interface to sub-interfaces based on the fields available in trunk interface to sub-interfaces based on the fields available in
the layer 2 headers. Once classified to sub-interfaces, it provides the layer 2 headers. Once classified to sub-interfaces, it provides
the capability to selectively modify fields within the layer 2 the capability to selectively modify fields within the layer 2
headers before the frame is handed off to the appropriate forwarding headers before the frame is handed off to the appropriate forwarding
skipping to change at page 6, line 42 skipping to change at page 6, line 40
| +--:(default) | +--:(default)
| | +--rw default? empty | | +--rw default? empty
| +--:(untagged) | +--:(untagged)
| | +--rw untagged? empty | | +--rw untagged? empty
| +--:(dot1q-priority-tagged) | +--:(dot1q-priority-tagged)
| | +--rw dot1q-priority-tagged | | +--rw dot1q-priority-tagged
| | +--rw tag-type? dot1q-types:dot1q-tag-type | | +--rw tag-type? dot1q-types:dot1q-tag-type
| +--:(dot1q-vlan-tagged) | +--:(dot1q-vlan-tagged)
| +--rw dot1q-vlan-tagged | +--rw dot1q-vlan-tagged
| +--rw outer-tag! | +--rw outer-tag!
| | +--rw dot1q-tag | | +--rw tag-type dot1q-tag-type
| | +--rw tag-type dot1q-tag-type | | +--rw vlan-id union
| | +--rw vlan-id union
| +--rw second-tag! | +--rw second-tag!
| | +--rw dot1q-tag | | +--rw tag-type dot1q-tag-type
| | +--rw tag-type dot1q-tag-type | | +--rw vlan-id union
| | +--rw vlan-id union
| +--rw match-exact-tags? empty | +--rw match-exact-tags? empty
+--rw rewrite {flexible-rewrites}? +--rw rewrite {flexible-rewrites}?
| +--rw (direction)? | +--rw (direction)?
| +--:(symmetrical) | +--:(symmetrical)
| | +--rw symmetrical | | +--rw symmetrical
| | +--rw dot1q-tag-rewrite {dot1q-tag-rewrites}? | | +--rw dot1q-tag-rewrite {dot1q-tag-rewrites}?
| | +--rw pop-tags? uint8 | | +--rw pop-tags? uint8
| | +--rw push-tags | | +--rw push-tags
| | +--rw outer-tag! | | +--rw outer-tag!
| | | +--rw dot1q-tag | | | +--rw tag-type dot1q-tag-type
| | | +--rw tag-type dot1q-tag-type | | | +--rw vlan-id ieee:vlanid
| | | +--rw vlan-id ieee:vlanid
| | +--rw second-tag! | | +--rw second-tag!
| | +--rw dot1q-tag | | +--rw tag-type dot1q-tag-type
| | +--rw tag-type dot1q-tag-type | | +--rw vlan-id ieee:vlanid
| | +--rw vlan-id ieee:vlanid
| +--:(asymmetrical) {asymmetric-rewrites}? | +--:(asymmetrical) {asymmetric-rewrites}?
| +--rw ingress | +--rw ingress
| | +--rw dot1q-tag-rewrite {dot1q-tag-rewrites}? | | +--rw dot1q-tag-rewrite {dot1q-tag-rewrites}?
| | +--rw pop-tags? uint8 | | +--rw pop-tags? uint8
| | +--rw push-tags | | +--rw push-tags
| | +--rw outer-tag! | | +--rw outer-tag!
| | | +--rw dot1q-tag | | | +--rw tag-type dot1q-tag-type
| | | +--rw tag-type dot1q-tag-type | | | +--rw vlan-id ieee:vlanid
| | | +--rw vlan-id ieee:vlanid
| | +--rw second-tag! | | +--rw second-tag!
| | +--rw dot1q-tag | | +--rw tag-type dot1q-tag-type
| | +--rw tag-type dot1q-tag-type | | +--rw vlan-id ieee:vlanid
| | +--rw vlan-id ieee:vlanid
| +--rw egress | +--rw egress
| +--rw dot1q-tag-rewrite {dot1q-tag-rewrites}? | +--rw dot1q-tag-rewrite {dot1q-tag-rewrites}?
| +--rw pop-tags? uint8 | +--rw pop-tags? uint8
| +--rw push-tags | +--rw push-tags
| +--rw outer-tag! | +--rw outer-tag!
| | +--rw dot1q-tag | | +--rw tag-type dot1q-tag-type
| | +--rw tag-type dot1q-tag-type | | +--rw vlan-id ieee:vlanid
| | +--rw vlan-id ieee:vlanid
| +--rw second-tag! | +--rw second-tag!
| +--rw dot1q-tag | +--rw tag-type dot1q-tag-type
| +--rw tag-type dot1q-tag-type | +--rw vlan-id ieee:vlanid
| +--rw vlan-id ieee:vlanid
+--rw local-traffic-default-encaps! +--rw local-traffic-default-encaps!
+--rw outer-tag! +--rw outer-tag!
| +--rw dot1q-tag | +--rw tag-type dot1q-tag-type
| +--rw tag-type dot1q-tag-type | +--rw vlan-id ieee:vlanid
| +--rw vlan-id ieee:vlanid
+--rw second-tag! +--rw second-tag!
+--rw dot1q-tag +--rw tag-type dot1q-tag-type
+--rw tag-type dot1q-tag-type +--rw vlan-id ieee:vlanid
+--rw vlan-id ieee:vlanid
5. L3 Interface VLAN YANG Module 5. L3 Interface VLAN YANG Module
This YANG module augments the encapsultion container defined in This YANG module augments the encapsultion container defined in
Interface Extensions YANG [I-D.ietf-netmod-intf-ext-yang]. Interface Extensions YANG [I-D.ietf-netmod-intf-ext-yang].
<CODE BEGINS> file "ietf-if-l3-vlan@2017-07-03.yang" <CODE BEGINS> file "ietf-if-l3-vlan@2017-10-30.yang"
module ietf-if-l3-vlan { module ietf-if-l3-vlan {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-if-l3-vlan"; namespace "urn:ietf:params:xml:ns:yang:ietf-if-l3-vlan";
prefix if-l3-vlan; prefix if-l3-vlan;
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import iana-if-type { import iana-if-type {
prefix ianaift; prefix ianaift;
skipping to change at page 9, line 5 skipping to change at page 8, line 43
WG Chair: Kent Watsen WG Chair: Kent Watsen
<mailto:kwatsen@juniper.net> <mailto:kwatsen@juniper.net>
Editor: Robert Wilton Editor: Robert Wilton
<mailto:rwilton@cisco.com>"; <mailto:rwilton@cisco.com>";
description description
"This YANG module models L3 VLAN sub-interfaces"; "This YANG module models L3 VLAN sub-interfaces";
revision 2017-07-03 { revision 2017-10-30 {
description "Latest draft revision"; description "Latest draft revision";
reference reference
"Internet-Draft draft-ietf-netmod-sub-intf-vlan-model-02"; "Internet-Draft draft-ietf-netmod-sub-intf-vlan-model-03";
} }
/* /*
* Add support for the 802.1Q VLAN encapsulation syntax on layer 3 * Add support for the 802.1Q VLAN encapsulation syntax on layer 3
* terminated VLAN sub-interfaces. * terminated VLAN sub-interfaces.
*/ */
augment "/if:interfaces/if:interface/if-cmn:encapsulation/" + augment "/if:interfaces/if:interface/if-cmn:encapsulation/" +
"if-cmn:encaps-type" { "if-cmn:encaps-type" {
when when
"derived-from-or-self(../if:type, "derived-from-or-self(../if:type,
skipping to change at page 10, line 21 skipping to change at page 10, line 12
description description
"Classifies traffic using the outermost VLAN tag on the "Classifies traffic using the outermost VLAN tag on the
frame."; frame.";
uses dot1q-types:dot1q-tag-classifier-grouping; uses dot1q-types:dot1q-tag-classifier-grouping;
} }
container second-tag { container second-tag {
must must
'../outer-tag/dot1q-tag/tag-type = "s-vlan" and ' + '../outer-tag/tag-type = "dot1q-types:s-vlan" and ' +
'dot1q-tag/tag-type = "c-vlan"' { 'tag-type = "dot1q-types:c-vlan"' {
error-message error-message
"When matching two tags, the outermost tag must be "When matching two tags, the outermost tag must be
specified and of S-VLAN type and the second outermost specified and of S-VLAN type and the second outermost
tag must be of C-VLAN tag type"; tag must be of C-VLAN tag type";
description description
"For IEEE 802.1Q interoperability, when matching two "For IEEE 802.1Q interoperability, when matching two
tags, it is required that the outermost tag exists and tags, it is required that the outermost tag exists and
is an S-VLAN, and the second outermost tag is a is an S-VLAN, and the second outermost tag is a
skipping to change at page 11, line 13 skipping to change at page 10, line 49
<CODE ENDS> <CODE ENDS>
6. Flexible Encapsulation YANG Module 6. Flexible Encapsulation YANG Module
This YANG module augments the encapsultion container defined in This YANG module augments the encapsultion container defined in
Interface Extensions YANG [I-D.ietf-netmod-intf-ext-yang]. Interface Extensions YANG [I-D.ietf-netmod-intf-ext-yang].
This YANG module also augments the interface container defined in This YANG module also augments the interface container defined in
[RFC7223]. [RFC7223].
<CODE BEGINS> file "ietf-flexible-encapsulation@2017-07-03.yang" <CODE BEGINS> file "ietf-flexible-encapsulation@2017-10-30.yang"
module ietf-flexible-encapsulation { module ietf-flexible-encapsulation {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-flexible-encapsulation"; "urn:ietf:params:xml:ns:yang:ietf-flexible-encapsulation";
prefix flex; prefix flex;
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import iana-if-type { import iana-if-type {
skipping to change at page 12, line 10 skipping to change at page 11, line 47
WG Chair: Kent Watsen WG Chair: Kent Watsen
<mailto:kwatsen@juniper.net> <mailto:kwatsen@juniper.net>
Editor: Robert Wilton Editor: Robert Wilton
<mailto:rwilton@cisco.com>"; <mailto:rwilton@cisco.com>";
description description
"This YANG module describes interface configuration for flexible "This YANG module describes interface configuration for flexible
VLAN matches and rewrites."; VLAN matches and rewrites.";
revision 2017-07-03 { revision 2017-10-30 {
description "Latest draft revision"; description "Latest draft revision";
reference reference
"Internet-Draft draft-ietf-netmod-sub-intf-vlan-model-02"; "Internet-Draft draft-ietf-netmod-sub-intf-vlan-model-03";
} }
feature flexible-rewrites { feature flexible-rewrites {
description description
"This feature indicates whether the network element supports "This feature indicates whether the network element supports
specifying flexible rewrite operations"; specifying flexible rewrite operations";
} }
feature asymmetric-rewrites { feature asymmetric-rewrites {
description description
skipping to change at page 14, line 14 skipping to change at page 13, line 51
"Classifies traffic using the outermost VLAN tag on the "Classifies traffic using the outermost VLAN tag on the
frame."; frame.";
uses uses
'dot1q-types:'+ 'dot1q-types:'+
'dot1q-tag-ranges-or-any-classifier-grouping'; 'dot1q-tag-ranges-or-any-classifier-grouping';
} }
container second-tag { container second-tag {
must must
'../outer-tag/dot1q-tag/tag-type = "s-vlan" and ' + '../outer-tag/tag-type = "dot1q-types:s-vlan" and ' +
'dot1q-tag/tag-type = "c-vlan"' { 'tag-type = "dot1q-types:c-vlan"' {
error-message error-message
"When matching two tags, the outermost tag must be "When matching two tags, the outermost tag must be
specified and of S-VLAN type and the second specified and of S-VLAN type and the second
outermost tag must be of C-VLAN tag type"; outermost tag must be of C-VLAN tag type";
description description
"For IEEE 802.1Q interoperability, when matching two "For IEEE 802.1Q interoperability, when matching two
tags, it is required that the outermost tag exists tags, it is required that the outermost tag exists
and is an S-VLAN, and the second outermost tag is a and is an S-VLAN, and the second outermost tag is a
skipping to change at page 15, line 39 skipping to change at page 15, line 27
push/rewrite"; push/rewrite";
description description
"The outermost VLAN tag to push onto the frame."; "The outermost VLAN tag to push onto the frame.";
uses dot1q-types:dot1q-tag-classifier-grouping; uses dot1q-types:dot1q-tag-classifier-grouping;
} }
container second-tag { container second-tag {
must must
'../outer-tag/dot1q-tag/tag-type = "s-vlan" and ' + '../outer-tag/tag-type = "dot1q-types:s-vlan" and ' +
'dot1q-tag/tag-type = "c-vlan"' { 'tag-type = "dot1q-types:c-vlan"' {
error-message error-message
"When pushing/rewriting two tags, the outermost tag must be "When pushing/rewriting two tags, the outermost tag must be
specified and of S-VLAN type and the second outermost tag specified and of S-VLAN type and the second outermost tag
must be of C-VLAN tag type"; must be of C-VLAN tag type";
description description
"For IEEE 802.1Q interoperability, when pushing two tags, "For IEEE 802.1Q interoperability, when pushing two tags,
it is required that the outermost tag exists and is an it is required that the outermost tag exists and is an
S-VLAN, and the second outermost tag is a C-VLAN"; S-VLAN, and the second outermost tag is a C-VLAN";
skipping to change at page 19, line 4 skipping to change at page 18, line 40
"Indicates existence of the outermost VLAN tag"; "Indicates existence of the outermost VLAN tag";
description description
"The outermost VLAN tag for locally sourced traffic"; "The outermost VLAN tag for locally sourced traffic";
uses dot1q-types:dot1q-tag-classifier-grouping; uses dot1q-types:dot1q-tag-classifier-grouping;
} }
container second-tag { container second-tag {
must must
'../outer-tag/dot1q-tag/tag-type = "s-vlan" and ' + '../outer-tag/tag-type = "dot1q-types:s-vlan" and ' +
'dot1q-tag/tag-type = "c-vlan"' { 'tag-type = "dot1q-types:c-vlan"' {
error-message error-message
"When specifying two tags, the outermost tag must be "When specifying two tags, the outermost tag must be
specified and of S-VLAN type and the second outermost specified and of S-VLAN type and the second outermost
tag must be of C-VLAN tag type"; tag must be of C-VLAN tag type";
description description
"For IEEE 802.1Q interoperability, when specifying two "For IEEE 802.1Q interoperability, when specifying two
tags, it is required that the outermost tag exists and tags, it is required that the outermost tag exists and
is an S-VLAN, and the second outermost tag is a is an S-VLAN, and the second outermost tag is a
skipping to change at page 20, line 12 skipping to change at page 19, line 42
3. Remove extra 'dot1q-tag' container (required update to IEEE YANG 3. Remove extra 'dot1q-tag' container (required update to IEEE YANG
file. file.
8. Acknowledgements 8. Acknowledgements
The authors would particularly like to thank John Messenger, Glenn The authors would particularly like to thank John Messenger, Glenn
Parsons, and Dan Romascanu for their help progressing this draft. Parsons, and Dan Romascanu for their help progressing this draft.
The authors would also like to thank Alex Campbell, Eric Gray, Giles The authors would also like to thank Alex Campbell, Eric Gray, Giles
Heron, Marc Holness, Iftekhar Hussain, Neil Ketley, William Lupton, Heron, Marc Holness, Iftekhar Hussain, Neil Ketley, William Lupton,
John Messenger, Glenn Parsons, Ludwig Pauwels, Joseph White, and John Messenger, Glenn Parsons, Ludwig Pauwels, Joseph White, Vladimir
members of the IEEE 802.1 WG for their helpful reviews and feedback Vassilev, and members of the IEEE 802.1 WG for their helpful reviews
on this draft. and feedback on this draft.
9. ChangeLog 9. ChangeLog
9.1. WG version -03
9.1. WG version -02 o Fix namespace bug in XPath identity references, removed extraneous
'dot1q-tag' containers.
9.2. WG version -02
o Use explicit containers for outer and inner tags rather than o Use explicit containers for outer and inner tags rather than
lists. lists.
9.2. WG version -01 9.3. WG version -01
o Tweaked the abstract. o Tweaked the abstract.
o Removed unnecessary feature for the L3 sub-interface module. o Removed unnecessary feature for the L3 sub-interface module.
o Update the 802.1Qcp type references. o Update the 802.1Qcp type references.
o Remove extra tag container for L3 sub-interfaces YANG. o Remove extra tag container for L3 sub-interfaces YANG.
9.3. Version -04 9.4. Version -04
o IEEE 802.1 specific types have been removed from the draft. These o IEEE 802.1 specific types have been removed from the draft. These
are now referenced from the 802.1Qcp draft YANG modules. are now referenced from the 802.1Qcp draft YANG modules.
o Fixed errors in the xpath expressions. o Fixed errors in the xpath expressions.
9.4. Version -03 9.5. Version -03
o Incorporates feedback received from presenting to the IEEE 802.1 o Incorporates feedback received from presenting to the IEEE 802.1
WG. WG.
o Updates the modules for double tag matches/rewrites to restrict o Updates the modules for double tag matches/rewrites to restrict
the outer tag type to S-VLAN and inner tag type to C-VLAN. the outer tag type to S-VLAN and inner tag type to C-VLAN.
o Updates the introduction to indicate primary use case is for IETF o Updates the introduction to indicate primary use case is for IETF
forwarding protocols. forwarding protocols.
skipping to change at page 21, line 41 skipping to change at page 21, line 34
The nodes in the if-l3-vlan YANG module are concerned with matching The nodes in the if-l3-vlan YANG module are concerned with matching
particular frames received on the network device to connect them to a particular frames received on the network device to connect them to a
layer 3 forwarding instance, and as such adding/modifying/deleting layer 3 forwarding instance, and as such adding/modifying/deleting
these nodes has a high risk of causing traffic to be lost because it these nodes has a high risk of causing traffic to be lost because it
is not being classified correctly, or is being classified to a is not being classified correctly, or is being classified to a
separate sub-interface. The nodes, all under the subtree separate sub-interface. The nodes, all under the subtree
/interfaces/interface/encapsulation/dot1q-vlan, that are sensitive to /interfaces/interface/encapsulation/dot1q-vlan, that are sensitive to
this are: this are:
o outer-tag/dot1q-tag/tag-type o outer-tag/tag-type
o outer-tag/dot1q-tag/vlan-id o outer-tag/vlan-id
o second-tag/dot1q-tag/tag-type o second-tag/tag-type
o second-tag/dot1q-tag/vlan-id o second-tag/vlan-id
11.2. flexible-encapsulation.yang 11.2. flexible-encapsulation.yang
There are many nodes in the flexible-encapsulation YANG module that There are many nodes in the flexible-encapsulation YANG module that
are concerned with matching particular frames received on the network are concerned with matching particular frames received on the network
device, and as such adding/modifying/deleting these nodes has a high device, and as such adding/modifying/deleting these nodes has a high
risk of causing traffic to be lost because it is not being classified risk of causing traffic to be lost because it is not being classified
correctly, or is being classified to a separate sub-interface. The correctly, or is being classified to a separate sub-interface. The
nodes, all under the subtree nodes, all under the subtree
/interfaces/interface/encapsulation/flexible/match, that are /interfaces/interface/encapsulation/flexible/match, that are
sensitive to this are: sensitive to this are:
o default o default
o untagged o untagged
o dot1q-priority-tagged o dot1q-priority-tagged
o dot1q-priority-tagged/tag-type o dot1q-priority-tagged/tag-type
o dot1q-vlan-tagged/outer-tag/dot1q-tag/vlan-type o dot1q-vlan-tagged/outer-tag/vlan-type
o dot1q-vlan-tagged/outer-tag/dot1q-tag/vlan-id o dot1q-vlan-tagged/outer-tag/vlan-id
o dot1q-vlan-tagged/second-tag/dot1q-tag/vlan-type o dot1q-vlan-tagged/second-tag/vlan-type
o dot1q-vlan-tagged/second-tag/dot1q-tag/vlan-id o dot1q-vlan-tagged/second-tag/vlan-id
There are also many modes in the flexible-encapsulation YANG module There are also many modes in the flexible-encapsulation YANG module
that are concerned with rewriting the fields in the L2 header for that are concerned with rewriting the fields in the L2 header for
particular frames received on the network device, and as such particular frames received on the network device, and as such
adding/modifying/deleting these nodes has a high risk of causing adding/modifying/deleting these nodes has a high risk of causing
traffic to be dropped or incorrectly processed on peer network traffic to be dropped or incorrectly processed on peer network
devices, or it could cause layer 2 tunnels to go down due to a devices, or it could cause layer 2 tunnels to go down due to a
mismatch in negotiated MTU. The nodes, all under the subtree mismatch in negotiated MTU. The nodes, all under the subtree
/interfaces/interface/encapsulation/flexible/rewrite, that are /interfaces/interface/encapsulation/flexible/rewrite, that are
sensitive to this are: sensitive to this are:
o symmetrical/dot1q-tag-rewrite/pop-tags o symmetrical/dot1q-tag-rewrite/pop-tags
o symmetrical/dot1q-tag-rewrite/push-tags/outer-tag/dot1q-tag/tag- o symmetrical/dot1q-tag-rewrite/push-tags/outer-tag/tag-type
type
o symmetrical/dot1q-tag-rewrite/push-tags/outer-tag/dot1q-tag/vlan- o symmetrical/dot1q-tag-rewrite/push-tags/outer-tag/vlan-id
id
o symmetrical/dot1q-tag-rewrite/push-tags/second-tag/dot1q-tag/tag- o symmetrical/dot1q-tag-rewrite/push-tags/second-tag/tag-type
type
o symmetrical/dot1q-tag-rewrite/push-tags/second-tag/dot1q-tag/vlan- o symmetrical/dot1q-tag-rewrite/push-tags/second-tag/vlan-id
id
o asymmetrical/ingress/dot1q-tag-rewrite/pop-tags o asymmetrical/ingress/dot1q-tag-rewrite/pop-tags
o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/outer-tag/dot1q- o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/outer-tag/tag-
tag/tag-type type
o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/outer-tag/dot1q- o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/outer-tag/vlan-id
tag/vlan-id
o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/second-tag/dot1q- o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/second-tag/tag-
tag/tag-type type
o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/second-tag/dot1q- o asymmetrical/ingress/dot1q-tag-rewrite/push-tags/second-tag/vlan-
tag/vlan-id id
o asymmetrical/egress/dot1q-tag-rewrite/pop-tags o asymmetrical/egress/dot1q-tag-rewrite/pop-tags
o asymmetrical/egress/dot1q-tag-rewrite/push-tags/outer-tag/dot1q- o asymmetrical/egress/dot1q-tag-rewrite/push-tags/outer-tag/tag-type
tag/tag-type
o asymmetrical/egress/dot1q-tag-rewrite/push-tags/outer-tag/dot1q- o asymmetrical/egress/dot1q-tag-rewrite/push-tags/outer-tag/vlan-id
tag/vlan-id
o asymmetrical/egress/dot1q-tag-rewrite/push-tags/second-tag/dot1q- o asymmetrical/egress/dot1q-tag-rewrite/push-tags/second-tag/tag-
tag/tag-type type
o asymmetrical/egress/dot1q-tag-rewrite/push-tags/second-tag/dot1q- o asymmetrical/egress/dot1q-tag-rewrite/push-tags/second-tag/vlan-id
tag/vlan-id
Nodes in the flexible-encapsulation YANG module that are concerned Nodes in the flexible-encapsulation YANG module that are concerned
with the VLAN tags to use for traffic sourced from the network with the VLAN tags to use for traffic sourced from the network
element could cause protocol sessions (such as CFM) to fail if they element could cause protocol sessions (such as CFM) to fail if they
are added, modified or deleted. The nodes, all under the subtree are added, modified or deleted. The nodes, all under the subtree
/interfaces/interface/flexible-encapsulation/local-traffic-default- /interfaces/interface/flexible-encapsulation/local-traffic-default-
encaps that are sensitive to this are: encaps that are sensitive to this are:
o outer-tag/dot1q-tag/vlan-type o outer-tag/vlan-type
o outer-tag/dot1q-tag/vlan-id o outer-tag/vlan-id
o second-tag/dot1q-tag/vlan-type o second-tag/vlan-type
o second-tag/dot1q-tag/vlan-id o second-tag/vlan-id
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-netmod-intf-ext-yang] [I-D.ietf-netmod-intf-ext-yang]
Wilton, R., Ball, D., tsingh@juniper.net, t., and S. Wilton, R., Ball, D., tsingh@juniper.net, t., and S.
Sivaraj, "Common Interface Extension YANG Data Models", Sivaraj, "Common Interface Extension YANG Data Models",
draft-ietf-netmod-intf-ext-yang-04 (work in progress), draft-ietf-netmod-intf-ext-yang-05 (work in progress),
March 2017. July 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface [RFC7223] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, Management", RFC 7223, DOI 10.17487/RFC7223, May 2014,
<http://www.rfc-editor.org/info/rfc7223>. <https://www.rfc-editor.org/info/rfc7223>.
[RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", [RFC7224] Bjorklund, M., "IANA Interface Type YANG Module",
RFC 7224, DOI 10.17487/RFC7224, May 2014, RFC 7224, DOI 10.17487/RFC7224, May 2014,
<http://www.rfc-editor.org/info/rfc7224>. <https://www.rfc-editor.org/info/rfc7224>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<http://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
12.2. Informative References 12.2. Informative References
[dot1Qcp] Holness, M., "802.1Qcp Bridges and Bridged Networks - [dot1Qcp] Holness, M., "802.1Qcp Bridges and Bridged Networks -
Amendment: YANG Data Model", 2016. Amendment: YANG Data Model", 2016.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460, (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
December 1998, <http://www.rfc-editor.org/info/rfc2460>. December 1998, <https://www.rfc-editor.org/info/rfc2460>.
[RFC4448] Martini, L., Ed., Rosen, E., El-Aawar, N., and G. Heron, [RFC4448] Martini, L., Ed., Rosen, E., El-Aawar, N., and G. Heron,
"Encapsulation Methods for Transport of Ethernet over MPLS "Encapsulation Methods for Transport of Ethernet over MPLS
Networks", RFC 4448, DOI 10.17487/RFC4448, April 2006, Networks", RFC 4448, DOI 10.17487/RFC4448, April 2006,
<http://www.rfc-editor.org/info/rfc4448>. <https://www.rfc-editor.org/info/rfc4448>.
[RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private [RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private
LAN Service (VPLS) Using BGP for Auto-Discovery and LAN Service (VPLS) Using BGP for Auto-Discovery and
Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007, Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007,
<http://www.rfc-editor.org/info/rfc4761>. <https://www.rfc-editor.org/info/rfc4761>.
[RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private [RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private
LAN Service (VPLS) Using Label Distribution Protocol (LDP) LAN Service (VPLS) Using Label Distribution Protocol (LDP)
Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007, Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007,
<http://www.rfc-editor.org/info/rfc4762>. <https://www.rfc-editor.org/info/rfc4762>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<http://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<http://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, Protocol (NETCONF) Access Control Model", RFC 6536,
DOI 10.17487/RFC6536, March 2012, DOI 10.17487/RFC6536, March 2012,
<http://www.rfc-editor.org/info/rfc6536>. <https://www.rfc-editor.org/info/rfc6536>.
Appendix A. Comparison with the IEEE 802.1Q Configuration Model Appendix A. Comparison with the IEEE 802.1Q Configuration Model
In addition to the sub-interface based YANG model proposed here, the In addition to the sub-interface based YANG model proposed here, the
IEEE 802.1Q working group is also developing a YANG model for the IEEE 802.1Q working group is also developing a YANG model for the
configuration of 802.1Q VLANs. This raises the valid question as to configuration of 802.1Q VLANs. This raises the valid question as to
whether the models overlap and whether it is necessary or beneficial whether the models overlap and whether it is necessary or beneficial
to have two different models for superficially similar constructs. to have two different models for superficially similar constructs.
This section aims to answer that question by summarizing and This section aims to answer that question by summarizing and
comparing the two models. comparing the two models.
 End of changes. 77 change blocks. 
128 lines changed or deleted 112 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/