draft-ietf-bess-l2vpn-yang-08.txt   draft-ietf-bess-l2vpn-yang-09.txt 
BESS Working Group H. Shah, Ed. BESS Working Group H. Shah, Ed.
Internet-Draft Ciena Corporation Internet-Draft Ciena Corporation
Intended status: Standards Track P. Brissette, Ed. Intended status: Standards Track P. Brissette, Ed.
Expires: August 21, 2018 Cisco Systems, Inc. Expires: April 25, 2019 Cisco Systems, Inc.
I. Chen, Ed. I. Chen, Ed.
Jabil Individual Contributor
I. Hussain, Ed. I. Hussain, Ed.
Infinera Corporation Infinera Corporation
B. Wen, Ed. B. Wen, Ed.
Comcast Comcast
K. Tiruveedhula, Ed. K. Tiruveedhula, Ed.
Juniper Networks Juniper Networks
February 17, 2018 October 22, 2018
YANG Data Model for MPLS-based L2VPN YANG Data Model for MPLS-based L2VPN
draft-ietf-bess-l2vpn-yang-08.txt draft-ietf-bess-l2vpn-yang-09.txt
Abstract Abstract
This document describes a YANG data model for Layer 2 VPN (L2VPN) This document describes a YANG data model for Layer 2 VPN (L2VPN)
services over MPLS networks. These services include point-to-point services over MPLS networks. These services include point-to-point
Virtual Private Wire Service (VPWS) and multipoint Virtual Private Virtual Private Wire Service (VPWS) and multipoint Virtual Private
LAN service (VPLS) that uses LDP and BGP signaled Pseudowires. It is LAN service (VPLS) that uses LDP and BGP signaled Pseudowires. It is
expected that this model will be used by the management tools run by expected that this model will be used by the management tools run by
the network operators in order to manage and monitor the network the network operators in order to manage and monitor the network
resources that they use to deliver L2VPN services. resources that they use to deliver L2VPN services.
skipping to change at page 1, line 49 skipping to change at page 1, line 49
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 https://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 August 21, 2018. This Internet-Draft will expire on April 25, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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
(https://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
skipping to change at page 2, line 26 skipping to change at page 2, line 26
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
2. Specification of Requirements . . . . . . . . . . . . . . . . 4 2. Specification of Requirements . . . . . . . . . . . . . . . . 4
3. L2VPN YANG Model . . . . . . . . . . . . . . . . . . . . . . 4 3. L2VPN YANG Model . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Open issues and next steps . . . . . . . . . . . . . . . 7 3.2. Changes in this version . . . . . . . . . . . . . . . . . 7
3.3. Pseudowire Common . . . . . . . . . . . . . . . . . . . . 8 3.3. Open issues and next steps . . . . . . . . . . . . . . . 8
3.3.1. Pseudowire . . . . . . . . . . . . . . . . . . . . . 8 3.4. Pseudowire Common . . . . . . . . . . . . . . . . . . . . 8
3.3.2. pw-templates . . . . . . . . . . . . . . . . . . . . 8 3.4.1. Pseudowire . . . . . . . . . . . . . . . . . . . . . 8
3.4. L2VPN Common . . . . . . . . . . . . . . . . . . . . . . 8 3.4.2. pw-templates . . . . . . . . . . . . . . . . . . . . 8
3.4.1. redundancy-group-templates . . . . . . . . . . . . . 8 3.5. L2VPN Common . . . . . . . . . . . . . . . . . . . . . . 8
3.5. L2VPN instance . . . . . . . . . . . . . . . . . . . . . 8 3.5.1. redundancy-group-templates . . . . . . . . . . . . . 8
3.5.1. common attributes . . . . . . . . . . . . . . . . . . 8 3.6. L2VPN instance . . . . . . . . . . . . . . . . . . . . . 8
3.5.2. PW list . . . . . . . . . . . . . . . . . . . . . . . 8 3.6.1. common attributes . . . . . . . . . . . . . . . . . . 9
3.5.3. List of endpoints . . . . . . . . . . . . . . . . . . 9 3.6.2. PW list . . . . . . . . . . . . . . . . . . . . . . . 9
3.5.4. point-to-point or multipoint service . . . . . . . . 10 3.6.3. List of endpoints . . . . . . . . . . . . . . . . . . 9
3.6. Operational State . . . . . . . . . . . . . . . . . . . . 10 3.6.4. point-to-point or multipoint service . . . . . . . . 10
3.7. Yang tree . . . . . . . . . . . . . . . . . . . . . . . . 10 3.6.5. multi-segment pseudowire . . . . . . . . . . . . . . 11
4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.7. Operational State . . . . . . . . . . . . . . . . . . . . 11
5. Security Considerations . . . . . . . . . . . . . . . . . . . 41 3.8. Yang tree . . . . . . . . . . . . . . . . . . . . . . . . 11
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 14
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 42 5. Security Considerations . . . . . . . . . . . . . . . . . . . 43
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 42 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43
8.1. Normative References . . . . . . . . . . . . . . . . . . 42 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 43
8.2. Informative References . . . . . . . . . . . . . . . . . 42 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 43
Appendix A. Example Configuration . . . . . . . . . . . . . . . 45 8.1. Normative References . . . . . . . . . . . . . . . . . . 43
Appendix B. Contributors . . . . . . . . . . . . . . . . . . . . 45 8.2. Informative References . . . . . . . . . . . . . . . . . 43
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 Appendix A. Example Configuration . . . . . . . . . . . . . . . 46
Appendix B. Contributors . . . . . . . . . . . . . . . . . . . . 46
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48
1. Introduction 1. Introduction
The Network Configuration Protocol (NETCONF) [RFC6241] is a network The Network Configuration Protocol (NETCONF) [RFC6241] is a network
management protocol that defines mechanisms to manage network management protocol that defines mechanisms to manage network
devices. YANG [RFC6020] is a modular language that represents data devices. YANG [RFC6020] is a modular language that represents data
structures in an XML or JSON tree format, and is used as a data structures in an XML or JSON tree format, and is used as a data
modeling language for the NETCONF. modeling language for the NETCONF.
This document defines a YANG data model for MPLS based Layer 2 VPN This document defines a YANG data model for MPLS based Layer 2 VPN
skipping to change at page 3, line 50 skipping to change at page 3, line 50
o Notifications o Notifications
The current document focuses on definition of configuration, state The current document focuses on definition of configuration, state
and notification objects. and notification objects.
The L2VPN data object model uses the instance centric approach. The The L2VPN data object model uses the instance centric approach. The
L2VPN instance is recognized by network instance model. The network- L2VPN instance is recognized by network instance model. The network-
instance container is defined in network instance model [I-D.ietf- instance container is defined in network instance model [I-D.ietf-
netmod-ni-model]. netmod-ni-model].
Within this network instance, L2VPN container contains a set of common Within this network instance, L2VPN container contains a set of
parameters, a list of PWs and a list of endpoints are defined. A common parameters, a list of PWs and a list of endpoints are defined.
special constraint is added for the VPWS configuration such that only
two endpoints are allowed in the list of endpoints. A special constraint is added for the VPWS configuration such that
only two endpoints are allowed in the list of endpoints.
The Pseudowire data object model is defined independent of the L2VPN The Pseudowire data object model is defined independent of the L2VPN
data object model to allow its inclusion in the Ethernet Segment and data object model to allow its inclusion in the Ethernet Segment and
EVPN data objects. EVPN data objects.
The L2VPN data object model augments Psuedowire data object for its The L2VPN data object model augments Psuedowire data object for its
definition. definition.
The document also includes Notifications used by the L2VPN object The document also includes Notifications used by the L2VPN object
model model
skipping to change at page 7, line 14 skipping to change at page 7, line 14
PW // Container PW // Container
PW specific attributes PW specific attributes
PW template definition PW template definition
template-ref Redundancy-Group // redundancy-group template-ref Redundancy-Group // redundancy-group
template template
attributes attributes
Network Instance // containter Network Instance // container
l2vpn //container l2vpn // containter
common attributes common attributes
BGP-parameters // container BGP-parameters // container
common attributes common attributes
auto-discovery attributes auto-discovery attributes
signaling attributes signaling attributes
// list of PWs being used // list of PWs being used
PW // container PW // container
template-ref PW template-ref PW
skipping to change at page 7, line 39 skipping to change at page 7, line 40
pbb specific attributes pbb specific attributes
VPWS-constraints // rule to limit number of endpoints to two VPWS-constraints // rule to limit number of endpoints to two
// List of endpoints, where each member endpoint container is - // List of endpoints, where each member endpoint container is -
PW // reference PW // reference
redundancy-grp // container redundancy-grp // container
AC // eventual reference to standard AC AC // eventual reference to standard AC
PW // reference PW // reference
3.2. Open issues and next steps Figure 1
3.2. Changes in this version
Pseudowire module is extended to include,
Multi-segment PW - a new attribute is added to pseudowire that
identifies the pseudowire as a member of the multi-segment
pseudowire. Two pseudowire members in a VPWS, configures a multi-
segment pseudowire at the switching PE.
Pseudowire load-balancing - The load-balancing behaviour for a
pseudowire can be configured either using the FAT label that resides
below the pseudowire label or Entropy label with Entropy label
indicator above the pseudowire label. By default, the load-balancing
is disabled.
FEC 129 related - AGI, SAII and TAII string configurations is added
to faciliate FEC 129 based pseudowire configuration.
3.3. Open issues and next steps
Most of the open issues have been resolved in this document. There Most of the open issues have been resolved in this document. There
are some items for considerations, such as PW headend, VPLS IRB. are some items for considerations, such as PW headend, VPLS IRB.
These may or may not be convered in this document. If the working These may or may not be convered in this document. If the working
group intends these topics be addressed in a separate document, group intends these topics be addressed in a separate document,
authors will proceed to finalize this document with comments received authors will proceed to finalize this document with comments received
on the definitions included in the current document. on the definitions included in the current document.
3.3. Pseudowire Common 3.4. Pseudowire Common
3.3.1. Pseudowire 3.4.1. Pseudowire
Pseudowire definitions is moved to a seperate container in order to Pseudowire definitions is moved to a seperate container in order to
allow Ethernet Segment and EVPN models can refer without having to allow Ethernet Segment and EVPN models can refer without having to
pull down L2VPN container. pull down L2VPN container.
3.3.2. pw-templates 3.4.2. pw-templates
The pw-templates container contains a list of pw-template. Each pw- The pw-templates container contains a list of pw-template. Each pw-
template defines a list of common pseudowire attributes such as PW template defines a list of common pseudowire attributes such as PW
MTU, control word support etc. MTU, control word support etc.
3.4. L2VPN Common 3.5. L2VPN Common
3.4.1. redundancy-group-templates 3.5.1. redundancy-group-templates
The redundancy-group-template contains a list of templates. Each The redundancy-group-template contains a list of templates. Each
template defines common attributes related to redundancy such as template defines common attributes related to redundancy such as
protection mode, reversion parameters, etc. protection mode, reversion parameters, etc.
3.5. L2VPN instance 3.6. L2VPN instance
The network instance container defined in the network instance model The network instance container defined in the network instance model
[I-D.ietf-rtgwg-ni-model] identifies the L2VPN instance. One of the [I-D.ietf-rtgwg-ni-model] identifies the L2VPN instance. One of the
value defined by the ni-type used in the instance model refers to VSI value defined by the ni-type used in the instance model refers to VSI
(Virtual Switch Instance) to denote the L2VPN instance. The name (Virtual Switch Instance) to denote the L2VPN instance. The name
attribute is used as the key to refer to specific network instance. attribute is used as the key to refer to specific network instance.
Network Instance of type VSI anchors L2VPN container with a list Network Instance of type VSI anchors L2VPN container with a list of
of endpoints which when limited to two entries represents point to endpoints which when limited to two entries represents point to point
point service (i.e. VPWS) while more than two endpoints represent service (i.e. VPWS) while more than two endpoints represent
multipoint service (i.e. VPLS). Within a service instance, a set of multipoint service (i.e. VPLS). Within a service instance, a set of
common attributes are defined, followed by a list of PWs and a list common attributes are defined, followed by a list of PWs and a list
of endpoints. of endpoints.
3.5.1. common attributes 3.6.1. common attributes
The common attributes apply to entire L2VPN instance. These The common attributes apply to entire L2VPN instance. These
attributes typically include attributes such as mac-aging-timer, BGP attributes typically include attributes such as mac-aging-timer, BGP
related parameters (if using BGP signaling), discovery-type, etc. related parameters (if using BGP signaling), discovery-type, etc.
3.5.2. PW list 3.6.2. PW list
The PW list is the number of PWs that are being used for a given The PW list is the number of PWs that are being used for a given
L2VPN instance. Each PW entry refers to PW template to inherit L2VPN instance. Each PW entry refers to PW template to inherit
common attributes for the PW. The one or more attributes from the common attributes for the PW. The one or more attributes from the
template can be overriden. It further extends definitions of more PW template can be overriden. It further extends definitions of more PW
specific attributes such as use of control word, mac withdraw, what specific attributes such as use of control word, mac withdraw, what
type of signaling (i.e. LDP or BGP), setting of the TTL, etc. type of signaling (i.e. LDP or BGP), setting of the TTL, etc.
3.5.3. List of endpoints 3.6.3. List of endpoints
The list of endpoints define the characteristics of the L2VPN The list of endpoints define the characteristics of the L2VPN
service. In the case of VPWS, the list is limited to two entries service. In the case of VPWS, the list is limited to two entries
while for VPLS, there could be many. while for VPLS, there could be many.
Each entry in the endpoint list, may hold AC, PW or redundancy-grp Each entry in the endpoint list, may hold AC, PW or redundancy-grp
references. The core aspect of endpoint container is its flexible references. The core aspect of endpoint container is its flexible
personality based on what user decides to include in it. It is personality based on what user decides to include in it. It is
future-proofed with possible extensions that can be included in the future-proofed with possible extensions that can be included in the
endpoint container such as Integrated Route Bridging (IRB), PW endpoint container such as Integrated Route Bridging (IRB), PW
Headend, Virtual Switch Instance, etc. Headend, Virtual Switch Instance, etc.
The endpoint entry also defines the split-horizon attribute which The endpoint entry also defines the split-horizon attribute which
defines the frame forwarding restrictions between the endpoints defines the frame forwarding restrictions between the endpoints
belonging to same split-horizon group. This construct permits belonging to same split-horizon group. This construct permits
multiple instances of split horizon groups with its own endpoint multiple instances of split horizon groups with its own endpoint
members. The frame forwarding restrictions does not apply between members. The frame forwarding restrictions does not apply between
endpoints that belong to two different split horizon groups. endpoints that belong to two different split horizon groups.
3.5.3.1. ac 3.6.3.1. ac
Attachment Circuit (AC)resides within endpoint entry either as an Attachment Circuit (AC)resides within endpoint entry either as an
independent entity or as a member of the redundancy group. AC is not independent entity or as a member of the redundancy group. AC is not
defined in this document but references the definitions being defined in this document but references the definitions being
specified by other working groups and standard bodies. specified by other working groups and standard bodies.
3.5.3.2. pw 3.6.3.2. pw
The Pseudo-wire resides within endpoint entry either as an The Pseudo-wire resides within endpoint entry either as an
independent entity or as a member of the redundancy group. The PW independent entity or as a member of the redundancy group. The PW
refers to one of the entry in the list of PWs defined with the L2VPN refers to one of the entry in the list of PWs defined with the L2VPN
instance. instance.
3.5.3.3. redundancy-grp choice 3.6.3.3. redundancy-grp choice
The redundancy-grp is a generic redundancy construct which can hold The redundancy-grp is a generic redundancy construct which can hold
primary and backup members of AC and PWs. This flexibility permits primary and backup members of AC and PWs. This flexibility permits
combinations of - combinations of -
o primary and backup AC o primary and backup AC
o primary and backup PW o primary and backup PW
o primary AC and backup PW o primary AC and backup PW
skipping to change at page 10, line 4 skipping to change at page 10, line 30
The redundancy-grp is a generic redundancy construct which can hold The redundancy-grp is a generic redundancy construct which can hold
primary and backup members of AC and PWs. This flexibility permits primary and backup members of AC and PWs. This flexibility permits
combinations of - combinations of -
o primary and backup AC o primary and backup AC
o primary and backup PW o primary and backup PW
o primary AC and backup PW o primary AC and backup PW
o primary PW and backup AC o primary PW and backup AC
The redundancy group also defines attributes of the type of The redundancy group also defines attributes of the type of
redundancy, such as protection mode, reroute mode, reversion related redundancy, such as protection mode, reroute mode, reversion related
parameters, etc. parameters, etc.
3.5.4. point-to-point or multipoint service 3.6.4. point-to-point or multipoint service
The point-to-point service as defined for VPWS is represented by a The point-to-point service as defined for VPWS is represented by a
list of endpoints and is limited to two entries by the VPWS constrain list of endpoints and is limited to two entries by the VPWS constrain
rules rules
The multipoint service as defined for VPLS is represented by a list The multipoint service as defined for VPLS is represented by a list
of endpoints. of endpoints.
The augmentation of ietf-l2vpn module is TBD. All IP addresses The augmentation of ietf-l2vpn module is TBD. All IP addresses
defined in this module are currently scoped under global VRF/table. defined in this module are currently scoped under global VRF/table.
3.6. Operational State 3.6.5. multi-segment pseudowire
The multi-segment pseudowire is expressed as configuration of two
pseudowire segments at the switching PEs that provides end-to-end PW
path between two terminating PEs consisting of multiple pseudowire
segments.
The multi-segment pseudowire is configured at switching PE using two
endpoints that consists of pseudowires of type "ms-pw-members". The
VPWS service construct is used with "vpws constraint" that restricts
the number of endpoints to two.
To verify consistency, a) verify that both endpoints are using ms-pw-
member pseudowires and b) it is only used as for VPWS configuration
at the switching PE.
3.7. Operational State
The operational state of L2VPN attributes has been consolidated with The operational state of L2VPN attributes has been consolidated with
the configuration as per recommendations from the guidelines for the the configuration as per recommendations from the guidelines for the
YANG author document. YANG author document.
3.7. Yang tree 3.8. Yang tree
module: ietf-pseudowires module: ietf-pseudowires
+--rw pseudowires +--rw pseudowires
+--rw pseudowire* [name] +--rw pseudowire* [name]
| +--rw name string | +--rw name string
| +--ro state? pseudowire-status-type | +--ro state? pseudowire-status-type
| +--rw template? pw-template-ref | +--rw template? pw-template-ref
| +--rw mtu? uint16 | +--rw mtu? uint16
| +--rw mac-withdraw? boolean | +--rw mac-withdraw? boolean
| +--rw cw-negotiation? cw-negotiation-type | +--rw pw-loadbalance? enumeration
| +--rw tunnel-policy? string | +--rw ms-pw-member? boolean
| +--rw (pw-type)? | +--rw cw-negotiation? cw-negotiation-type
| +--:(configured-pw) | +--rw tunnel-policy? string
| +--rw configured-pw | +--rw (pw-type)?
| +--rw peer-ip? inet:ip-address | +--:(configured-pw)
| +--rw pw-id? uint32 | | +--rw peer-ip? inet:ip-address
| +--rw icb? boolean | | +--rw pw-id? uint32
| +--rw transmit-label? rt-types:mpls-label | | +--rw group-id? uint32
| +--rw receive-label? rt-types:mpls-label | | +--rw icb? boolean
+--rw pw-templates | | +--rw transmit-label? rt-types:mpls-label
+--rw pw-template* [name] | | +--rw receive-label? rt-types:mpls-label
+--rw name string | | +--rw generalized? boolean
+--rw mtu? uint16 | | +--rw agi? string
+--rw cw-negotiation? cw-negotiation-type | | +--rw saii? string
+--rw tunnel-policy? string | | +--rw taii? string
| +--:(bgp-pw)
| | +--rw remote-pe-id? inet:ip-address
| +--:(bgp-ad-pw)
| +--rw remote-ve-id? uint16
+--rw pw-templates
+--rw pw-template* [name]
+--rw name string
+--rw mtu? uint16
+--rw cw-negotiation? cw-negotiation-type
+--rw tunnel-policy? string
module: ietf-l2vpn module: ietf-l2vpn
+--rw l2vpn +--rw l2vpn
+--rw redundancy-group-templates +--rw redundancy-group-templates
+--rw redundancy-group-template* [name] +--rw redundancy-group-template* [name]
+--rw name string +--rw name string
+--rw protection-mode? enumeration +--rw protection-mode? enumeration
+--rw reroute-mode? enumeration +--rw reroute-mode? enumeration
+--rw dual-receive? boolean +--rw dual-receive? boolean
+--rw revert? boolean +--rw revert? boolean
skipping to change at page 13, line 24 skipping to change at page 14, line 33
| | | +--ro primary-ac? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/primary-ac/name | | | +--ro primary-ac? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/primary-ac/name
| | +--:(primary-pw) | | +--:(primary-pw)
| | +--ro primary-pw? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/primary-pw/name | | +--ro primary-pw? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/primary-pw/name
| +--ro (backup)? | +--ro (backup)?
| +--:(backup-ac) | +--:(backup-ac)
| | +--ro backup-ac? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/backup-ac/name | | +--ro backup-ac? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/backup-ac/name
| +--:(backup-pw) | +--:(backup-pw)
| +--ro backup-pw? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/backup-pw/name | +--ro backup-pw? -> /ni:network-instances/network-instance[ni:name=current()/../l2vpn-instance-name]/l2vpn:endpoint[l2vpn:name=current()/../endpoint]/backup-pw/name
+--ro state? identityref +--ro state? identityref
Figure 2
4. YANG Module 4. YANG Module
The L2VPN configuration container is logically divided into following The L2VPN configuration container is logically divided into following
high level config areas: high level config areas:
<CODE BEGINS> file "ietf-pseudowires@2017-06-26.yang" <CODE BEGINS> file "ietf-pseudowires@2018-10-22.yang"
module ietf-pseudowires { module ietf-pseudowires {
namespace "urn:ietf:params:xml:ns:yang:ietf-pseudowires"; namespace "urn:ietf:params:xml:ns:yang:ietf-pseudowires";
prefix "pw"; prefix "pw";
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix "rt-types";
} }
organization "ietf"; organization "ietf";
contact "ietf"; contact "ietf";
description "Pseudowire YANG model"; description "Pseudowire YANG model";
revision "2018-10-22" {
description "Second revision " +
" - Added group-id and attachment identifiers " +
"";
reference "";
}
revision "2017-06-26" { revision "2017-06-26" {
description "Initial revision " + description "Initial revision " +
" - Created a new model for pseudowires, which used " + " - Created a new model for pseudowires, which used " +
" to be defined within the L2VPN model " + " to be defined within the L2VPN model " +
""; "";
reference ""; reference "";
} }
/* Typedefs */ /* Typedefs */
skipping to change at page 15, line 34 skipping to change at page 16, line 49
bit PW-request-switchover-status { bit PW-request-switchover-status {
position 7; position 7;
description "Pseudowire request switchover status"; description "Pseudowire request switchover status";
} }
} }
description description
"Pseudowire status type, as registered in the IANA " + "Pseudowire status type, as registered in the IANA " +
"Pseudowire Status Code Registry"; "Pseudowire Status Code Registry";
} }
/* Groupings */
grouping pw-type-grp {
description "pseudowire type grouping";
choice pw-type {
description "A choice of pseudowire type";
case ldp-or-static-pw {
leaf peer-ip {
type inet:ip-address;
description "peer IP address";
}
leaf pw-id {
type uint32;
description "pseudowire id";
}
leaf icb {
type boolean;
description "inter-chassis backup";
}
leaf transmit-label {
type rt-types:mpls-label;
description "transmit lable";
}
leaf receive-label {
type rt-types:mpls-label;
description "receive label";
}
}
case bgp-pw {
leaf remote-pe-id {
type inet:ip-address;
description "remote pe id";
}
}
case bgp-ad-pw {
leaf remote-ve-id {
type uint16;
description "remote ve id";
}
}
}
}
/* Data */ /* Data */
container pseudowires { container pseudowires {
description "Configuration management of pseudowires"; description "Configuration management of pseudowires";
list pseudowire { list pseudowire {
key "name"; key "name";
description "A pseudowire"; description "A pseudowire";
leaf name { leaf name {
type string; type string;
description "pseudowire name"; description "pseudowire name";
skipping to change at page 17, line 12 skipping to change at page 17, line 32
} }
leaf mtu { leaf mtu {
type uint16; type uint16;
description "PW MTU"; description "PW MTU";
} }
leaf mac-withdraw { leaf mac-withdraw {
type boolean; type boolean;
default false; default false;
description "Enable (true) or disable (false) MAC withdraw"; description "Enable (true) or disable (false) MAC withdraw";
} }
leaf pw-loadbalance {
type enumeration {
enum "disabled" {
value 0;
description "load-balancing disabled";
}
enum "fat-pw" {
value 1;
description "load-balance using FAT label below PW label";
}
enum "entropy" {
value 2;
description "load-balance using ELI/EL above PW label";
}
}
description "PW load-balancing";
}
leaf ms-pw-member {
type boolean;
default false;
description "Enable (true) or disable (false) not a member of MS-PW";
}
leaf cw-negotiation { leaf cw-negotiation {
type cw-negotiation-type; type cw-negotiation-type;
description "cw-negotiation"; description "cw-negotiation";
} }
leaf tunnel-policy { leaf tunnel-policy {
type string; type string;
description "tunnel policy name"; description "tunnel policy name";
} }
choice pw-type { choice pw-type {
description "A choice of pseudowire type"; description "A choice of pseudowire type";
case configured-pw { case configured-pw {
container configured-pw { leaf peer-ip {
description "LDP or static pseudowire that requires " + type inet:ip-address;
"manual configuration"; description "peer IP address";
leaf peer-ip { }
type inet:ip-address; leaf pw-id {
description "peer IP address"; type uint32;
} description "pseudowire id";
leaf pw-id { }
type uint32; leaf group-id {
description "pseudowire id"; type uint32;
} description "group id";
leaf icb { }
type boolean; leaf icb {
description "inter-chassis backup"; type boolean;
} description "inter-chassis backup";
leaf transmit-label { }
type rt-types:mpls-label; leaf transmit-label {
description "transmit lable"; type rt-types:mpls-label;
} description "transmit lable";
leaf receive-label { }
type rt-types:mpls-label; leaf receive-label {
description "receive label"; type rt-types:mpls-label;
} description "receive label";
}
leaf generalized {
type boolean;
description "generalized pseudowire id FEC element";
}
leaf agi {
type string;
description "attachment group identifier";
}
leaf saii {
type string;
description "source attachment individual identifier";
}
leaf taii {
type string;
description "target attachment individual identifier";
}
}
case bgp-pw {
leaf remote-pe-id {
type inet:ip-address;
description "remote pe id";
}
}
case bgp-ad-pw {
leaf remote-ve-id {
type uint16;
description "remote ve id";
} }
} }
} }
} }
container pw-templates { container pw-templates {
description "pw-templates"; description "pw-templates";
list pw-template { list pw-template {
key "name"; key "name";
description "pw-template"; description "pw-template";
leaf name { leaf name {
skipping to change at page 41, line 37 skipping to change at page 43, line 9
base l2vpn-notification-state; base l2vpn-notification-state;
} }
description "State change notification"; description "State change notification";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
Figure 3
5. Security Considerations 5. Security Considerations
The configuration, state, action and notification data defined in The configuration, state, action and notification data defined in
this document are designed to be accessed via the NETCONF protocol this document are designed to be accessed via the NETCONF protocol
[RFC6241]. The lowest NETCONF layer is the secure transport layer [RFC6241]. The lowest NETCONF layer is the secure transport layer
and the mandatory-to-implement secure transport is SSH [RFC6242]. and the mandatory-to-implement secure transport is SSH [RFC6242].
The NETCONF access control model [RFC6536] provides means to restrict The NETCONF access control model [RFC6536] provides means to restrict
access for particular NETCONF users to a pre-configured subset of all access for particular NETCONF users to a pre-configured subset of all
available NETCONF protocol operations and content. available NETCONF protocol operations and content.
skipping to change at page 46, line 36 skipping to change at page 48, line 10
Email: nick.deregno@verizon.com Email: nick.deregno@verizon.com
Luay Jalil Luay Jalil
Verizon Verizon
Email: luay.jalil@verizon.com Email: luay.jalil@verizon.com
Maria Joecylyn Maria Joecylyn
Verizon Verizon
Email: joecylyn.malit@verizon.com Email: joecylyn.malit@verizon.com
Figure 4
Authors' Addresses Authors' Addresses
Himanshu Shah Himanshu Shah
Ciena Corporation Ciena Corporation
Email: hshah@ciena.com Email: hshah@ciena.com
Patrice Brissette Patrice Brissette
Cisco Systems, Inc. Cisco Systems, Inc.
skipping to change at page 47, line 4 skipping to change at page 48, line 23
Himanshu Shah Himanshu Shah
Ciena Corporation Ciena Corporation
Email: hshah@ciena.com Email: hshah@ciena.com
Patrice Brissette Patrice Brissette
Cisco Systems, Inc. Cisco Systems, Inc.
Email: pbrisset@cisco.com Email: pbrisset@cisco.com
Ing-When Chen Ing-When Chen
Jabil Individual Contributor
Email: ing-wher_chen@jabil.com Email: ichen.ietf@outlook.com
Iftekar Hussain Iftekar Hussain
Infinera Corporation Infinera Corporation
Email: ihussain@infinera.com Email: ihussain@infinera.com
Bin Wen Bin Wen
Comcast Comcast
Email: Bin_Wen@cable.comcast.com Email: Bin_Wen@cable.comcast.com
 End of changes. 39 change blocks. 
147 lines changed or deleted 219 lines changed or added

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