TEAS Working Group Y. Lee, Ed.
Internet-Draft Samsung Electronics
Intended status: Standards Track D. Dhody, Ed.
Expires: January 14, 2021 G. Fioccola
Q. Wu, Ed.
Huawei Technologies
D. Ceccarelli
Ericsson
J. Tantsura
Apstra
July 13, 2020

Traffic Engineering (TE) and Service Mapping Yang Model
draft-ietf-teas-te-service-mapping-yang-04

Abstract

This document provides a YANG data model to map customer service models (e.g., the L3VPN Service Model (L3SM)) to Traffic Engineering (TE) models (e.g., the TE Tunnel or the Virtual Network (VN) model). This model is referred to as TE Service Mapping Model and is applicable generically to the operator's need for seamless control and management of their VPN services with TE tunnel support.

The model is principally used to allow monitoring and diagnostics of the management systems to show how the service requests are mapped onto underlying network resource and TE models.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on January 14, 2021.

Copyright Notice

Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

Data models are a representation of objects that can be configured or monitored within a system. Within the IETF, YANG [RFC7950] is the language of choice for documenting data models, and YANG models have been produced to allow configuration or modelling of a variety of network devices, protocol instances, and network services. YANG data models have been classified in [RFC8199] and [RFC8309].

Framework for Abstraction and Control of Traffic Engineered Networks (ACTN) [RFC8453] introduces an architecture to support virtual network services and connectivity services. [I-D.ietf-teas-actn-vn-yang] defines a YANG model and describes how customers or end-to-end orchestrator can request and/or instantiate a generic virtual network service. [I-D.ietf-teas-actn-yang] describes the way IETF YANG models of different classifications can be applied to the ACTN interfaces. In particular, it describes how customer service models can be mapped into the CNC-MDSC Interface (CMI) of the ACTN architecture.

The models presented in this document are also applicable in generic context [RFC8309] as part of Customer Service Model used between Service Orchestrator and Customer.

[RFC8299] provides a L3VPN service delivery YANG model for PE-based VPNs. The scope of that draft is limited to a set of domains under control of the same network operator to deliver services requiring TE tunnels.

[RFC8466] provides a L2VPN service delivery YANG model for PE-based VPNs. The scope of that draft is limited to a set of domains under control of the same network operator to deliver services requiring TE tunnels.

[I-D.ietf-ccamp-l1csm-yang] provides a L1 connectivity service delivery YANG model for PE-based VPNs. The scope of that draft is limited to a set of domains under control of the same network operator to deliver services requiring TE tunnels.

While the IP/MPLS Provisioning Network Controller (PNC) is responsible for provisioning the VPN service on the Provider Edge (PE) nodes, the Multi-Domain Service Coordinator (MDSC) can coordinate how to map the VPN services onto Traffic Engineering (TE) tunnels. This is consistent with the two of the core functions of the MDSC specified in [RFC8453]:

Section 2 describes a set of TE and service related parameters that this document addresses as "new and advanced parameters" that are not included in generic service models. Section 3 discusses YANG modelling approach.

Apart from the service model, the TE mapping is equally applicable to the Network Models (L3 VPN Service Network Model (L3NM) [I-D.ietf-opsawg-l3sm-l3nm], L2 VPN Service Network Model (L2NM) [I-D.ietf-opsawg-l2nm] etc.). See Section 3.2 for details.

1.1. Terminology

Refer to [RFC8453], [RFC7926], and [RFC8309] for the key terms used in this document.

The terminology for describing YANG data models is found in [RFC7950].

1.1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

1.2. Tree diagram

A simplified graphical representation of the data model is used in Section 5 of this this document. The meaning of the symbols in these diagrams is defined in [RFC8340].

1.3. Prefixes in Data Node Names

In this document, names of data nodes and other data model objects are prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in Table 1.

Prefixes and corresponding YANG modules
Prefix YANG module Reference
inet ietf-inet-types [RFC6991]
tsm-types ietf-te-service-mapping-types [RFCXXXX]
l1csm ietf-l1csm [I-D.ietf-ccamp-l1csm-yang]
l2vpn-svc ietf-l2vpn-svc [RFC8466]
l3vpn-svc ietf-l3vpn-svc [RFC8299]
l1-tsm ietf-l1csm-te-service-mapping [RFCXXXX]
l2-tsm ietf-l2sm-te-service-mapping [RFCXXXX]
l3-tsm ietf-l3sm-te-service-mapping [RFCXXXX]
vn ietf-vn [I-D.ietf-teas-actn-vn-yang]
nw ietf-network [RFC8345]
te-types ietf-te-types [RFC8776]
te ietf-te [I-D.ietf-teas-yang-te]
l2vpn-ntw ietf-l2vpn-ntw [I-D.ietf-opsawg-l2nm]
l3vpn-ntw ietf-l3vpn-ntw [I-D.ietf-opsawg-l3sm-l3nm]
rt ietf-routing [RFC8349]
sr-policy ietf-sr-policy [I-D.raza-spring-sr-policy-yang]

Note: The RFC Editor should replace XXXX with the number assigned to the RFC once this draft becomes an RFC.

2. TE and Service Related Parameters

While L1/L2/L3 service models (L1CSM, L2SM, L3SM) are intended to provide service-specific parameters for VPN service instances, there are a number of TE Service related parameters that are not included in these service models.

Additional 'service parameters and policies' that are not included in the aforementioned service models are addressed in the YANG models defined in this document.

2.1. VN/Tunnel Selection Requirements

In some cases, the service requirements may need addition TE tunnels to be established. This may occur when there are no suitable existing TE tunnels that can support the service requirements, or when the operator would like to dynamically create and bind tunnels to the VPN such that they are not shared by other VPNs, for example, for network slicing. The establishment of TE tunnels is subject to the network operator's policies.

To summarize, there are three modes of VN/Tunnel selection operations to be supported as follows. Additional modes may be defined in the future.

2.2. Availability Requirement

Availability is another service requirement or intent that may influence the selection or provisioning of TE tunnels or a VN to support the requested service. Availability is a probabilistic measure of the length of time that a VPN/VN instance functions without a network failure.

The availability level will need to be translated into network specific policies such as the protection/reroute policy associated with a VN or Tunnel. The means by which this is achieved is not in the scope of this document.

3. YANG Modeling Approach

This section provides how the TE and Service mapping parameters are supported using augmentation of the existing service models (i.e., [I-D.ietf-ccamp-l1csm-yang], [RFC8466], and [RFC8299]). Figure 1 shows the scope of the Augmented LxSM Model.

+--------------+        +----------------------+         +----------+
|    LxSM      |o-------|                      | . . . . | ACTN VN  |
+--------------+ augment|                      |         +----------+
                        |                      |         +----------+
+--------------+        | Augmented LxSM Model | . . . . | TE-topo  |
| TE & Service |------->|                      |         +----------+
| Mapping Types| import |                      |         +----------+
+--------------+        |                      | . . . . | TE-tunnel|
                        +----------------------+         +----------+
                                                reference 

Figure 1: Augmented LxSM Model

The Augmented LxSM model (where x=1,2,3) augments the basic LxSM model while importing the common TE and Service related parameters (defined in Section 2) grouping information from TE and Service Mapping Types. The TE and Service Mapping Types (ietf-te-service- mapping-types) module is the repository of all common groupings imported by each augmented LxSM model. Any future service models would import this mapping-type common model.

The role of the augmented LxSm service model is to expose the mapping relationship between service models and TE models so that VN/VPN service instantiations provided by the underlying TE networks can be viewed outside of the MDSC, for example by an operator who is diagnosing the behaviour of the network. It also allows for the customers to access operational state information about how their services are instantiated with the underlying VN, TE topology or TE tunnels provided that the MDSC operator is willing to share that information. This mapping will facilitate a seamless service management operation with underlay-TE network visibility.

As seen in Figure 1, the augmented LxSM service model records a mapping between the customer service models and the ACTN VN YANG model. Thus, when the MDSC receives a service request it creates a VN that meets the customer's service objectives with various constraints via TE-topology model [I-D.ietf-teas-yang-te-topo], and this relationship is recorded by the Augmented LxSM Model. The model also supports a mapping between a service model and TE-topology or a TE-tunnel.

The YANG models defined in this document conforms to the Network Management Datastore Architecture (NMDA) [RFC8342].

3.1. Forward Compatibility

The YANG module defined in this document supports three existing service models via augmenting while sharing the common TE and Service Mapping Types.

It is possible that new service models will be defined at some future time and that it will be desirable to map them to underlying TE constructs in the same way as the three existing models are augmented.

3.2. TE and Network Models

The L2/L3 network models (L2NM, L3NM) are intended to describe a VPN Service in the Service Provider Network. It containts information of the Service Provider network and might include allocated resources. It can be used by network controllers to manage and control the VPN Service configuration in the Service Provider network.

Similar to service model, the existing network models (i.e., [I-D.ietf-opsawg-l3sm-l3nm], and [I-D.ietf-opsawg-l2nm]) are augmented to include the TE and Service mapping parameters. Figure 2 shows the scope of the Augmented LxNM Model.

+--------------+        +----------------------+         +----------+
|    LxNM      |o-------|                      | . . . . | ACTN VN  |
+--------------+ augment|                      |         +----------+
                        |                      |         +----------+
+--------------+        | Augmented LxNM Model | . . . . | TE-topo  |
| TE & Service |------->|                      |         +----------+
| Mapping Types| import |                      |         +----------+
+--------------+        |                      | . . . . | TE-tunnel|
                        +----------------------+         +----------+
                                                reference 

Figure 2: Augmented LxNM Model

The Augmented LxNM model (where x=2,3) augments the basic LxNM model while importing the common TE mapping related parameters (defined in Section 2) grouping information from TE and Service Mapping Types. The role of the augmented LxNM network model is to expose the mapping relationship between network models and TE models.

4. L3VPN Architecture in the ACTN Context

Figure 3 shows the architectural context of this document referencing the ACTN components and interfaces.

                           +----------------------------+
                           |  Customer Service Manager  |
                           |  +-----------------------+ |
                           |  |           CNC         + |
                           |  +-+-------------------+-+ |
                           +----|-------------------|---+
                                |                   |
                                |CMI(Augmented L3SM)|CMI(VN)
                                |                   |
               +----------------|-------------------|----+
               | +--------------|-----------------+ |    |
               | | MDSC         |                 | |    |
               | |              |                 | |    |
               | |  +-----------+--------------+  | |    |
   TE-Svc-Map<------+ Service Mapping Function |  | |    |
               | |  +-----------+--------------+  | |    |
               | |              |                 | |    |
               | +-------+------|-----------------+ |    |
               |         |      |                   |    |
               |         |      |CMI(VN)            |    |
               |         |      |                   |    |
               |         |   +--|-------------------|--+ |
               |         |   |  |        MDSC       |  | |
               |         |   | ++-------------------++ | |
               |         |   | +   Service Mapping   +---->TE-Svc-Map
               |         |   | ++----------+---------+ | |
               |         |   +--|----------|-----------+ |
               +---------|------|----------|-------------+
                         |      |          |
                         | +----+--------+ |
                         | |             | |
     MPI(VPN / TE models)| |             | |MPI(TE / L1 models)
                         | |             | |
                   +-----|-|---+   +-----|-|----+
        IP/MPLS    |  +--+-+-+ |   |  +--+-+-+  | Optical Domain
        Domain     |  | PNC1 | |   |  | PNC2 |  | Controller
        Controller |  +--+---+ |   |  +--+---+  |
                   +-----|-----+   +-----|------+
                         |               |
                         V               | SBI
             +---------------------+     |
            /    IP/MPLS Network    \    |
           +-------------------------+   |
                                         V
                              +---------------------+
                             /    Optical Network    \
                            +-------------------------+

Figure 3: L3VPN Architecture from the IP+Optical Network Perspective

There are three main entities in the ACTN architecture and shown in Figure 3.

There are four main interfaces shown in Figure 2.

The TE Service Mapping Model as described in this document can be used to see the mapping between service models and VN models and TE Tunnel/Topology models. That mapping may occur in the CNC if a service request is mapped to a VN request. Or it may occur in the MDSC where a service request is mapped to a TE tunnel, TE topology, or VPN network configuration model. The TE Service Mapping Model may be read from the CNC or MDSC to understand how the mapping has been made and to see the purpose for which network resources are used.

As shown in Figure 2, the MDSC may be used recursively. For example, the CNC might map a L3SM request to a VN request that it sends to a recursive MDSC.

The high-level control flows for one example are as follows:

  1. A customer asks for an L3VPN between CE1 and CE2 using the Augmented L3SM model.
  2. The MDSC considers the service request and local policy to determine if it needs to create a new VN or any TE Topology, and if that is the case, ACTN VN YANG [I-D.ietf-teas-actn-vn-yang] is used to configure a new VN based on this VPN and map the VPN service to the ACTN VN. In case an existing tunnel is to be used, each device will select which tunnel to use and populate this mapping information.
  3. The MDSC interacts with both the IP/MPLS PNC and the Transport PNC to create a PE-PE tunnel in the IP network mapped to a TE tunnel in the transport network by providing the inter-layer access points and tunnel requirements. The specific service information is passed to the IP/MPLS PNC for the actual VPN configuration and activation.
    1. The Transport PNC creates the corresponding TE tunnel matching with the access point and egress point.
    2. The IP/MPLS PNC maps the VPN ID with the corresponding TE tunnel ID to bind these two IDs.

  4. The IP/MPLS PNC creates/updates a VRF instance for this VPN customer. This is not in the scope of this document.

4.1. Service Mapping

Augmented L3SM and L2SM can be used to request VPN service creation including the creation of sites and corresponding site network access connection between CE and PE. A VPN-ID is used to identify each VPN service ordered by the customer. The ACTN VN can be used further to establish PE-to-PE connectivity between VPN sites belonging to the same VPN service. A VN-ID is used to identify each virtual network established between VPN sites.

Once the ACTN VN has been established over the TE network (maybe a new VN, maybe modification of an existing VN, or maybe the use of an unmodified existing VN), the mapping between the VPN service and the ACTN VN service can be created.

4.2. Site Mapping

The elements in Augmented L3SM and L2SM define site location parameters and constraints such as distance and access diversity that can influence the placement of network attachment points (i.e, virtual network access points (VNAP)). To achieve this, a central directory can be set up to establish the mapping between location parameters and constraints and network attachment point location. Suppose multiple attachment points are matched, the management system can use constraints or other local policy to select the best candidate network attachment points.

After a network attachment point is selected, the mapping between VPN site and VNAP can be established as shown in Table 1.

: Mapping Between VPN Site and VNAP
Site Site Network Access Location (Address, Postal Code, State, City,Country Code) Access Diversity (Constraint-Type, Group-id,Target Group-id) PE
SITE1 ACCESS1 (,,US,NewYork,) (10,PE-Diverse,10) PE1
SITE2 ACCESS2 (,,CN,Beijing,) (10,PE-Diverse,10) PE2
SITE3 ACCESS3 (,,UK,London, ) (12,same-PE,12) PE4
SITE4 ACCESS4 (,,FR,Paris,) (20,Bearer-Diverse,20) PE7

5. Applicability of TE-Service Mapping in Generic context

As discussed in the Introduction Section, the models presented in this document are also applicable generically outside of the ACTN architecture. [RFC8309] defines Customer Service Model between Customer and Service Orchestrator and Service Delivery Model between Service Orchestrator and Network Orchestrator(s). TE-Service mapping models defined in this document can be regarded primarily as Customer Service Model and secondarily as Service Deliver Model.

6. YANG Data Trees

6.1. Service Mapping Types

module: ietf-te-service-mapping-types
  +--rw te-mapping-templates
     +--rw te-mapping-template* [id]
        +--rw id                  te-mapping-template-id
        +--rw description?        string
        +--rw map-type?           identityref
        +--rw path-constraints
        |  +--rw te-bandwidth
        |  |  +--rw (technology)?
        |  |     +--:(generic)
        |  |        +--rw generic?   te-bandwidth
        |  +--rw link-protection?          identityref
        |  +--rw setup-priority?           uint8
        |  +--rw hold-priority?            uint8
        |  +--rw signaling-type?           identityref
        |  +--rw path-metric-bounds
        |  |  +--rw path-metric-bound* [metric-type]
        |  |     +--rw metric-type    identityref
        |  |     +--rw upper-bound?   uint64
        |  +--rw path-affinities-values
        |  |  +--rw path-affinities-value* [usage]
        |  |     +--rw usage    identityref
        |  |     +--rw value?   admin-groups
        |  +--rw path-affinity-names
        |  |  +--rw path-affinity-name* [usage]
        |  |     +--rw usage            identityref
        |  |     +--rw affinity-name* [name]
        |  |        +--rw name    string
        |  +--rw path-srlgs-lists
        |  |  +--rw path-srlgs-list* [usage]
        |  |     +--rw usage     identityref
        |  |     +--rw values*   srlg
        |  +--rw path-srlgs-names
        |  |  +--rw path-srlgs-name* [usage]
        |  |     +--rw usage    identityref
        |  |     +--rw names*   string
        |  +--rw disjointness?             te-path-disjointness
        +--rw optimizations
           +--rw (algorithm)?
              +--:(metric) {path-optimization-metric}?
              |  +--rw optimization-metric* [metric-type]
              |  |  +--rw metric-type
              |  |  |       identityref
              |  |  +--rw weight?                           uint8
              |  |  +--rw explicit-route-exclude-objects
              |  |  |  +--rw route-object-exclude-object* [index]
              |  |  |        ...
              |  |  +--rw explicit-route-include-objects
              |  |     +--rw route-object-include-object* [index]
              |  |           ...
              |  +--rw tiebreakers
              |     +--rw tiebreaker* [tiebreaker-type]
              |        +--rw tiebreaker-type    identityref
              +--:(objective-function)
                       {path-optimization-objective-function}?
                 +--rw objective-function
                    +--rw objective-function-type?   identityref

6.2. Service Models

6.2.1. L3SM


module: ietf-l3sm-te-service-mapping
  augment /l3vpn-svc:l3vpn-svc/l3vpn-svc:vpn-services
            /l3vpn-svc:vpn-service:
    +--rw te-service-mapping!
       +--rw te-mapping
          +--rw map-type?                        identityref
          +--rw availability-type?               identityref
          +--rw (te)?
             +--:(vn)
             |  +--rw vn-ref?
             |          -> /vn:vn/vn-list/vn-id
             +--:(te-topo)
             |  +--rw vn-topology-id?
             |  |       te-types:te-topology-id
             |  +--rw abstract-node?
             |          -> /nw:networks/network/node/node-id
             +--:(te-tunnel)
             |  +--rw te-tunnel-list*            te:tunnel-ref
             |  +--rw sr-policy*
             |          [policy-color-ref policy-endpoint-ref]
             |          {sr-policy}?
             |     +--rw policy-color-ref       leafref
             |     +--rw policy-endpoint-ref    leafref
             +--:(te-mapping-template) {template}?
                +--rw te-mapping-template-ref?   leafref
  augment /l3vpn-svc:l3vpn-svc/l3vpn-svc:sites/l3vpn-svc:site
            /l3vpn-svc:site-network-accesses
            /l3vpn-svc:site-network-access:
    +--rw (te)?
       +--:(vn)
       |  +--rw vn-ref?
       |          -> /vn:ap/access-point-list/access-point-id
       +--:(te)
          +--rw ltp?      te-types:te-tp-id

6.2.2. L2SM


module: ietf-l2sm-te-service-mapping
  augment /l2vpn-svc:l2vpn-svc/l2vpn-svc:vpn-services
            /l2vpn-svc:vpn-service:
    +--rw te-service-mapping!
       +--rw te-mapping
          +--rw map-type?                        identityref
          +--rw availability-type?               identityref
          +--rw (te)?
             +--:(vn)
             |  +--rw vn-ref?
             |          -> /vn:vn/vn-list/vn-id
             +--:(te-topo)
             |  +--rw vn-topology-id?
             |  |       te-types:te-topology-id
             |  +--rw abstract-node?
             |          -> /nw:networks/network/node/node-id
             +--:(te-tunnel)
             |  +--rw te-tunnel-list*            te:tunnel-ref
             |  +--rw sr-policy*
             |          [policy-color-ref policy-endpoint-ref]
             |          {sr-policy}?
             |     +--rw policy-color-ref       leafref
             |     +--rw policy-endpoint-ref    leafref
             +--:(te-mapping-template) {template}?
                +--rw te-mapping-template-ref?   leafref
  augment /l2vpn-svc:l2vpn-svc/l2vpn-svc:sites/l2vpn-svc:site
            /l2vpn-svc:site-network-accesses
            /l2vpn-svc:site-network-access:
    +--rw (te)?
       +--:(vn)
       |  +--rw vn-ref?
       |          -> /vn:ap/access-point-list/access-point-id
       +--:(te)
          +--rw ltp?      te-types:te-tp-id

6.2.3. L1CSM


module: ietf-l1csm-te-service-mapping
  augment /l1csm:l1-connectivity/l1csm:services/l1csm:service:
    +--rw te-service-mapping!
       +--rw te-mapping
          +--rw map-type?                        identityref
          +--rw availability-type?               identityref
          +--rw (te)?
             +--:(vn)
             |  +--rw vn-ref?
             |          -> /vn:vn/vn-list/vn-id
             +--:(te-topo)
             |  +--rw vn-topology-id?
             |  |       te-types:te-topology-id
             |  +--rw abstract-node?
             |          -> /nw:networks/network/node/node-id
             +--:(te-tunnel)
             |  +--rw te-tunnel-list*            te:tunnel-ref
             |  +--rw sr-policy*
             |          [policy-color-ref policy-endpoint-ref]
             |          {sr-policy}?
             |     +--rw policy-color-ref       leafref
             |     +--rw policy-endpoint-ref    leafref
             +--:(te-mapping-template) {template}?
                +--rw te-mapping-template-ref?   leafref
  augment /l1csm:l1-connectivity/l1csm:access/l1csm:unis/l1csm:uni:
    +--rw (te)?
       +--:(vn)
       |  +--rw vn-ref?
       |          -> /vn:ap/access-point-list/access-point-id
       +--:(te)
          +--rw ltp?      te-types:te-tp-id

6.3. Network Models

6.3.1. L3NM

  


module: ietf-l3nm-te-service-mapping
  augment /l3vpn-ntw:l3vpn-ntw/l3vpn-ntw:vpn-services
            /l3vpn-ntw:vpn-service:
    +--rw te-service-mapping!
       +--rw te-mapping
          +--rw map-type?                        identityref
          +--rw availability-type?               identityref
          +--rw (te)?
             +--:(vn)
             |  +--rw vn-ref?
             |          -> /vn:vn/vn-list/vn-id
             +--:(te-topo)
             |  +--rw vn-topology-id?
             |  |       te-types:te-topology-id
             |  +--rw abstract-node?
             |          -> /nw:networks/network/node/node-id
             +--:(te-tunnel)
             |  +--rw te-tunnel-list*            te:tunnel-ref
             |  +--rw sr-policy*
             |          [policy-color-ref policy-endpoint-ref]
             |          {sr-policy}?
             |     +--rw policy-color-ref       leafref
             |     +--rw policy-endpoint-ref    leafref
             +--:(te-mapping-template) {template}?
                +--rw te-mapping-template-ref?   leafref
  augment /l3vpn-ntw:l3vpn-ntw/l3vpn-ntw:vpn-services
            /l3vpn-ntw:vpn-service/l3vpn-ntw:vpn-nodes
            /l3vpn-ntw:vpn-node/l3vpn-ntw:vpn-network-accesses
            /l3vpn-ntw:vpn-network-access:
    +--rw (te)?
       +--:(vn)
       |  +--rw vn-ref?
       |          -> /vn:ap/access-point-list/access-point-id
       +--:(te)
          +--rw ltp?      te-types:te-tp-id

      

6.3.2. L2NM

  

module: ietf-l2nm-te-service-mapping
  augment /l2vpn-ntw:l2vpn-ntw/l2vpn-ntw:vpn-services
            /l2vpn-ntw:vpn-service:
    +--rw te-service-mapping!
       +--rw te-mapping
          +--rw map-type?                        identityref
          +--rw availability-type?               identityref
          +--rw (te)?
             +--:(vn)
             |  +--rw vn-ref?
             |          -> /vn:vn/vn-list/vn-id
             +--:(te-topo)
             |  +--rw vn-topology-id?
             |  |       te-types:te-topology-id
             |  +--rw abstract-node?
             |          -> /nw:networks/network/node/node-id
             +--:(te-tunnel)
             |  +--rw te-tunnel-list*            te:tunnel-ref
             |  +--rw sr-policy*
             |          [policy-color-ref policy-endpoint-ref]
             |          {sr-policy}?
             |     +--rw policy-color-ref       leafref
             |     +--rw policy-endpoint-ref    leafref
             +--:(te-mapping-template) {template}?
                +--rw te-mapping-template-ref?   leafref
  augment /l2vpn-ntw:l2vpn-ntw/l2vpn-ntw:vpn-services
            /l2vpn-ntw:vpn-service/l2vpn-ntw:vpn-nodes
            /l2vpn-ntw:vpn-node/l2vpn-ntw:vpn-network-accesses
            /l2vpn-ntw:vpn-network-access:
    +--rw (te)?
       +--:(vn)
       |  +--rw vn-ref?
       |          -> /vn:ap/access-point-list/access-point-id
       +--:(te)
          +--rw ltp?      te-types:te-tp-id

      

7. YANG Data Models

The YANG codes are as follows:

7.1. ietf-te-service-mapping-types

<CODE BEGINS> file "ietf-te-service-mapping-types@2020-07-13.yang"
module ietf-te-service-mapping-types {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-te-service-mapping-types";
  prefix tsm-types;

  /* Import inet-types */

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  /* Import inet-types */

  import ietf-te-types {
    prefix te-types;
    reference
      "RFC 8776: Common YANG Data Types for Traffic Engineering";
  }

  /* Import network model */

  import ietf-network {
    prefix nw;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  /* Import TE model */

  import ietf-te {
    prefix te;
    reference
      "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  }

  /* Import VN model */

  import ietf-vn {
    prefix vn;
    reference
      "I-D.ietf-teas-actn-vn-yang: A Yang Data Model for VN Operation";
  }

  /* Import Routing */

  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management";
  }

  /* Import SR Policy */

  import ietf-sr-policy {
    prefix sr-policy;
    reference
      "I-D.raza-spring-sr-policy-yang: YANG Data Model for Segment
       Routing Policy";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Young Lee
               <mailto:younglee.tx@gmail.com>
     Editor:   Dhruv Dhody
               <mailto:dhruv.ietf@gmail.com>
     Editor:   Qin Wu
               <mailto:bill.wu@huawei.com>";
  description
    "This module contains a YANG module for TE & Service mapping
     parameters and policies as a common grouping applicable to
     variuous service models (e.g., L1CSM, L2SM, L3SM, etc.)

     Copyright (c) 2020 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2020-07-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }

  /*
   * Features
   */

  feature template {
    description
      "Support TE mapping templates.";
  }

  feature sr-policy {
    description
      "Support SR Policy.";
  }

  /*
   * Identity for map-type
   */

  identity map-type {
    description
      "Base identity from which specific map types are derived.";
  }

  identity new {
    base map-type;
    description
      "The new VN/tunnels are binded to the service.";
  }

  identity hard-isolation {
    base new;
    description
      "Hard isolation.";
  }

  identity detnet-hard-isolation {
    base hard-isolation;
    description
      "Hard isolation with deterministic characteristics.";
  }

  identity soft-isolation {
    base new;
    description
      "Soft-isolation.";
  }

  identity select {
    base map-type;
    description
      "The VPN service selects an existing tunnel with no
       modification.";
  }

  identity modify {
    base map-type;
    description
      "The VPN service selects an existing tunnel and allows to modify
       the properties of the tunnel (e.g., b/w)";
  }

  identity template {
    base map-type;
    description
      "The VPN service selects an TE mapping template with path
       constraints and optimization criteria";
  }

  /*
   * Identity for availability-type
   */

  identity availability-type {
    description
      "Base identity from which specific map types are derived.";
  }

  identity level-1 {
    base availability-type;
    description
      "level 1: 99.9999%";
  }

  identity level-2 {
    base availability-type;
    description
      "level 2: 99.999%";
  }

  identity level-3 {
    base availability-type;
    description
      "level 3: 99.99%";
  }

  identity level-4 {
    base availability-type;
    description
      "level 4: 99.9%";
  }

  identity level-5 {
    base availability-type;
    description
      "level 5: 99%";
  }

  /* 
   * Typedef 
   */

  typedef te-mapping-template-id {
    type inet:uri;
    description
      "Identifier for a TE mapping template.  The precise
       structure of the te-mapping-template-id will be up
       to the implementation. The identifier SHOULD be
       chosen such that the same template will always be
       identified through the same identifier, even if the
       data model is instantiated in separate datastores.";
  }

  /*
   * Groupings
   */

  grouping te-ref {
    description
      "The reference to TE.";
    choice te {
      description
        "The TE";
      case vn {
        leaf vn-ref {
          type leafref {
            path "/vn:vn/vn:vn-list/vn:vn-id";
          }
          description
            "The reference to VN";
          reference
            "RFC 8453: Framework for Abstraction and Control of TE
             Networks (ACTN)";
        }
      }
      case te-topo {
        leaf vn-topology-id {
          type te-types:te-topology-id;
          description
            "An identifier to the TE Topology Model where the abstract
             nodes and links of the Topology can be found for Type 2
             VNS";
          reference
            "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic
             Engineering (TE) Topologies";
        }
        leaf abstract-node {
          type leafref {
            path "/nw:networks/nw:network/nw:node/nw:node-id";
          }
          description
            "A reference to the abstract node in TE Topology";
          reference
            "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic
             Engineering (TE) Topologies";
        }
      }
      case te-tunnel {
        leaf-list te-tunnel-list {
          type te:tunnel-ref;
          description
            "Reference to TE Tunnels";
          reference
            "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
             Engineering Tunnels and Interfaces";
        }
        list sr-policy {
          if-feature "sr-policy";
          key "policy-color-ref policy-endpoint-ref";
          description
            "SR Policy";
          leaf policy-color-ref {
            type leafref {
              path
                "/rt:routing/sr-policy:segment-routing"
              + "/sr-policy:traffic-engineering/sr-policy:policies"
              + "/sr-policy:policy/sr-policy:color";
            }
            description
              "Reference to sr-policy color";
          }
          leaf policy-endpoint-ref {
            type leafref {
              path
                "/rt:routing/sr-policy:segment-routing"
              + "/sr-policy:traffic-engineering/sr-policy:policies"
              + "/sr-policy:policy/sr-policy:endpoint";
            }
            description
              "Reference to sr-policy endpoint";
          }
        }
      }
      case te-mapping-template {
        if-feature "template";
        leaf te-mapping-template-ref {
          type leafref {
            path "/te-mapping-templates/te-mapping-template/id";
          }
          description
            "An identifier to the TE Mapping Template where the TE
             constraints and optimization criteria are specified.";
        }
      }
    }
  }

  //grouping

  grouping te-endpoint-ref {
    description
      "The reference to TE endpoints.";
    choice te {
      description
        "The TE";
      case vn {
        leaf vn-ref {
          type leafref {
            path "/vn:ap/vn:access-point-list/vn:access-point-id";
          }
          description
            "The reference to VN AP";
          reference
            "RFC 8453: Framework for Abstraction and Control of TE
             Networks (ACTN)";
        }
      }
      case te {
        leaf ltp {
          type te-types:te-tp-id;
          description
            "Reference LTP in the TE-topology";
          reference
            "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic
             Engineering (TE) Topologies";
        }
      }
    }
  }

  //grouping

  grouping te-mapping {
    description
      "Mapping between Services and TE";
    container te-mapping {
      description
        "Mapping between Services and TE";
      leaf map-type {
        type identityref {
          base map-type;
        }
        description
          "Isolation Requirements, Tunnel Bind or
           Tunnel Selection";
      }
      leaf availability-type {
        type identityref {
          base availability-type;
        }
        description
          "Availability Requirement for the Service";
      }
      uses te-ref;
    }
  }

  //grouping

  container te-mapping-templates {
    description
      "The TE constraints and optimization criteria";
    list te-mapping-template {
      key "id";
      leaf id {
        type te-mapping-template-id;
        description
          "Identification of the Template to be used.";
      }
      leaf description {
        type string;
        description
          "Description of the template.";
      }
      leaf map-type {
        type identityref {
          base map-type;
        }
        must '(. != "template")' {
          error-message "The map-type must be other than "
                      + "TE mapping template";
        }
        description
          "Map type for the VN/Tunnel creation/
           selection.";
      }
      uses te-types:generic-path-constraints;
      uses te-types:generic-path-optimization;
      description
        "List for templates.";
    }
  }
}


<CODE ENDS>

7.2. Service Models

7.2.1. ietf-l3sm-te-service-mapping

<CODE BEGINS> file "ietf-l3sm-te-service-mapping@2020-07-13.yang"
module ietf-l3sm-te-service-mapping {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-l3sm-te-service-mapping";
  prefix l3-tsm;

  import ietf-te-service-mapping-types {
    prefix tsm-types;
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }
  import ietf-l3vpn-svc {
    prefix l3vpn-svc;
    reference
      "RFC 8299: YANG Data Model for L3VPN Service Delivery";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Young Lee
               <mailto:younglee.tx@gmail.com>
     Editor:   Dhruv Dhody
               <mailto:dhruv.ietf@gmail.com>
     Editor:   Qin Wu
               <mailto:bill.wu@huawei.com>";
  description
    "This module contains a YANG module for the mapping of Layer 3
     Service Model (L3SM) to the TE and VN.

     Copyright (c) 2020 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2020-03-08 {
    description
      "Initial revision.";
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }

  /*
   * Augmentation to L3SM
   */

  augment "/l3vpn-svc:l3vpn-svc/l3vpn-svc:vpn-services"
        + "/l3vpn-svc:vpn-service" {
    description
      "L3SM augmented to include TE parameters and mapping";
    container te-service-mapping {
      presence "Indicates L3 service to TE mapping";
      description
        "Container to augment l3sm to TE parameters and mapping";
      uses tsm-types:te-mapping;
    }
  }

  //augment

  augment "/l3vpn-svc:l3vpn-svc/l3vpn-svc:sites/l3vpn-svc:site"
        + "/l3vpn-svc:site-network-accesses"
        + "/l3vpn-svc:site-network-access" {
    description
      "This augment is only valid for TE mapping of L3SM network-access
       to TE endpoints";
    uses tsm-types:te-endpoint-ref;
  }

  //augment
}

<CODE ENDS>

7.2.2. ietf-l2sm-te-service-mapping

<CODE BEGINS> file "ietf-l2sm-te-service-mapping@2020-07-13.yang"
module ietf-l2sm-te-service-mapping {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-l2sm-te-service-mapping";
  prefix l2-tsm;

  import ietf-te-service-mapping-types {
    prefix tsm-types;
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }
  import ietf-l2vpn-svc {
    prefix l2vpn-svc;
    reference
      "RFC 8466: A YANG Data Model for Layer 2 Virtual Private Network
       (L2VPN) Service Delivery";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Young Lee
               <mailto:younglee.tx@gmail.com>
     Editor:   Dhruv Dhody
               <mailto:dhruv.ietf@gmail.com>
     Editor:   Qin Wu
               <mailto:bill.wu@huawei.com>";
  description
    "This module contains a YANG module for the mapping of Layer 2
     Service Model (L2SM) to the TE and VN.

     Copyright (c) 2020 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2020-07-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }

  /*
   * Augmentation to L2SM
   */

  augment "/l2vpn-svc:l2vpn-svc/l2vpn-svc:vpn-services/"
        + "l2vpn-svc:vpn-service" {
    description
      "L2SM augmented to include TE parameters and mapping";
    container te-service-mapping {
      presence "indicates L2 service to te mapping";
      description
        "Container to augment L2SM to TE parameters and mapping";
      uses tsm-types:te-mapping;
    }
  }

  //augment

  augment "/l2vpn-svc:l2vpn-svc/l2vpn-svc:sites/l2vpn-svc:site"
        + "/l2vpn-svc:site-network-accesses"
        + "/l2vpn-svc:site-network-access" {
    description
      "This augment is only valid for TE mapping of L2SM network-access
       to TE endpoints";
    uses tsm-types:te-endpoint-ref;
  }

  //augment
}

<CODE ENDS>

7.2.3. ietf-l1csm-te-service-mapping

<CODE BEGINS> file "ietf-l1csm-te-service-mapping@2020-07-13.yang"
module ietf-l1csm-te-service-mapping {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-l1csm-te-service-mapping";
  prefix l1-tsm;

  import ietf-te-service-mapping-types {
    prefix tsm-types;
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }
  import ietf-l1csm {
    prefix l1csm;
    reference
      "I-D.ietf-ccamp-l1csm-yang: A YANG Data Model for L1 Connectivity
       Service Model (L1CSM)";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Young Lee
               <mailto:younglee.tx@gmail.com>
     Editor:   Dhruv Dhody
               <mailto:dhruv.ietf@gmail.com>
     Editor:   Qin Wu
               <mailto:bill.wu@huawei.com>";
  description
    "This module contains a YANG module for the mapping of
     Layer 1 Connectivity Service Module (L1CSM) to the TE and VN

     Copyright (c) 2020 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2020-07-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }

  /*
   * Augmentation to L1CSM
   */

  augment "/l1csm:l1-connectivity/l1csm:services/l1csm:service" {
    description
      "L1CSM augmented to include TE parameters and mapping";
    container te-service-mapping {
      presence "Indicates L1 service to TE mapping";
      description
        "Container to augment L1CSM to TE parameters and mapping";
      uses tsm-types:te-mapping;
    }
  }

  //augment

  augment "/l1csm:l1-connectivity/l1csm:access/l1csm:unis/"
        + "l1csm:uni" {
    description
      "This augment is only valid for TE mapping of L1CSM UNI to TE
       endpoints";
    uses tsm-types:te-endpoint-ref;
  }

  //augment
}

<CODE ENDS>

7.3. Network Models

7.3.1. ietf-l3nm-te-service-mapping

<CODE BEGINS> file "ietf-l3nm-te-service-mapping@2020-07-13.yang"
module ietf-l3nm-te-service-mapping {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-l3nm-te-service-mapping";
  prefix l3nm-tsm;

  import ietf-te-service-mapping-types {
    prefix tsm-types;
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }
  import ietf-l3vpn-ntw {
    prefix l3vpn-ntw;
    reference
      "I-D.ietf-opsawg-l3sm-l3nm: A Layer 3 VPN Network YANG Model";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Young Lee
               <mailto:younglee.tx@gmail.com>
     Editor:   Dhruv Dhody
               <mailto:dhruv.ietf@gmail.com>
     Editor:   Qin Wu
               <mailto:bill.wu@huawei.com>";
  description
    "This module contains a YANG module for the mapping of Layer 3
     Network Model (L3NM) to the TE and VN.

     Copyright (c) 2020 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2020-07-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }

  /*
   * Augmentation to L3NM
   */

  augment "/l3vpn-ntw:l3vpn-ntw/l3vpn-ntw:vpn-services"
        + "/l3vpn-ntw:vpn-service" {
    description
      "L3SM augmented to include TE parameters and mapping";
    container te-service-mapping {
      presence "Indicates L3 network to TE mapping";
      description
        "Container to augment l3nm to TE parameters and mapping";
      uses tsm-types:te-mapping;
    }
  }

  //augment

  augment "/l3vpn-ntw:l3vpn-ntw/l3vpn-ntw:vpn-services"
        + "/l3vpn-ntw:vpn-service"
        + "/l3vpn-ntw:vpn-nodes/l3vpn-ntw:vpn-node"
        + "/l3vpn-ntw:vpn-network-accesses"
        + "/l3vpn-ntw:vpn-network-access" {
    description
      "This augment is only valid for TE mapping of L3NM network-access
       to TE endpoints";
    uses tsm-types:te-endpoint-ref;
  }

  //augment
}

  <CODE ENDS>

7.3.2. ietf-l2nm-te-service-mapping

<CODE BEGINS> file "ietf-l2nm-te-service-mapping@2020-07-13.yang"
module ietf-l2nm-te-service-mapping {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-l2nm-te-service-mapping";
  prefix l2nm-tsm;

  import ietf-te-service-mapping-types {
    prefix tsm-types;
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }
  import ietf-l2vpn-ntw {
    prefix l2vpn-ntw;
    reference
      "I-D.ietf-l2nm: A Layer 2 VPN Network YANG Model";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Young Lee
               <mailto:younglee.tx@gmail.com>
     Editor:   Dhruv Dhody
               <mailto:dhruv.ietf@gmail.com>
     Editor:   Qin Wu
               <mailto:bill.wu@huawei.com>";
  description
    "This module contains a YANG module for the mapping of Layer 2
     Network Model (L2NM) to the TE and VN.

     Copyright (c) 2020 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2020-07-13 {
    description
      "Initial revision.";
    reference
      "RFC XXXX:  Traffic Engineering and Service Mapping Yang Model";
  }

  /*
   * Augmentation to L2NM
   */

  augment "/l2vpn-ntw:l2vpn-ntw/l2vpn-ntw:vpn-services"
        + "/l2vpn-ntw:vpn-service" {
    description
      "L2SM augmented to include TE parameters and mapping";
    container te-service-mapping {
      presence "Indicates L2 network to TE mapping";
      description
        "Container to augment l2nm to TE parameters and mapping";
      uses tsm-types:te-mapping;
    }
  }

  //augment

  augment "/l2vpn-ntw:l2vpn-ntw/l2vpn-ntw:vpn-services"
        + "/l2vpn-ntw:vpn-service"
        + "/l2vpn-ntw:vpn-nodes/l2vpn-ntw:vpn-node"
        + "/l2vpn-ntw:vpn-network-accesses"
        + "/l2vpn-ntw:vpn-network-access" {
    description
      "This augment is only valid for TE mapping of L2NM network-access
       to TE endpoints";
    uses tsm-types:te-endpoint-ref;
  }

  //augment
}

  <CODE ENDS>

8. Security Considerations

The YANG modules defined in this document is designed to be accessed via network management protocol such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer and the mandatory-to-implement secure transport is SSH [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC8446]

The NETCONF access control model [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a pre-configured subset of all available NETCONF or RESTCONF protocol operations and content.

There are a number of data nodes defined in the YANG moduleS which are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., <edit-config>) to these data nodes without proper protection can have a negative effect on network operations. These are the subtrees and data nodes and their sensitivity/vulnerability:

Unauthorized access to above list can adversely affect the VPN service.

Some of the readable data nodes in the YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. The TE related parameters attached to the VPN service can leak sensitive information about the network. This is apploicable to all elements in the yang models defined in this document.

This document has no RPC defined.

9. IANA Considerations


URI: urn:ietf:params:xml:ns:yang:ietf-te-service-mapping-types
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:ietf-l3sm-te-service-mapping
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:ietf-l2sm-te-service-mapping
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:ietf-l1csm-te-service-mapping
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:ietf-l3nm-te-service-mapping
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:ietf-l2nm-te-service-mapping
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace.

        

This document request the IANA to register four URIs in the "IETF XML Registry" [RFC3688]. Following the format in RFC 3688, the following registrations are requested -

Name:      ietf-te-service-mapping-types
Namespace: urn:ietf:params:xml:ns:yang:ietf-te-service-mapping-types
Prefix:    tsm-types
Reference: [This.I-D]

Name:      ietf-l3sm-te-service-mapping
Namespace: urn:ietf:params:xml:ns:yang:ietf-l3sm-te-service-mapping
Prefix:    l3-tsm
Reference: [This.I-D]

Name:      ietf-l2sm-te-service-mapping
Namespace: urn:ietf:params:xml:ns:yang:ietf-l2sm-te-service-mapping
Prefix:    l2-tsm
Reference: [This.I-D]

Name:      ietf-l1csm-te-service-mapping
Namespace: urn:ietf:params:xml:ns:yang:ietf-l1csm-te-service-mapping
Prefix:    l1-tsm
Reference: [This.I-D]

Name:      ietf-l3nm-te-service-mapping
Namespace: urn:ietf:params:xml:ns:yang:ietf-l3nm-te-service-mapping
Prefix:    l3nm-tsm
Reference: [This.I-D]

Name:      ietf-l2nm-te-service-mapping
Namespace: urn:ietf:params:xml:ns:yang:ietf-l2nm-te-service-mapping
Prefix:    l2nm-tsm
Reference: [This.I-D]

        

This document request the IANA to register four YANG modules in the "YANG Module Names" registry [RFC6020], as follows -

10. Acknowledgements

We thank Diego Caviglia, and Igor Bryskin for useful discussions and motivation for this work.

11. References

11.1. Normative References

[I-D.ietf-ccamp-l1csm-yang] Lee, Y., Lee, K., Zheng, H., Dhody, D., Dios, O. and D. Ceccarelli, "A YANG Data Model for L1 Connectivity Service Model (L1CSM)", Internet-Draft draft-ietf-ccamp-l1csm-yang-11, March 2020.
[I-D.ietf-opsawg-l2nm] Barguil, S., Dios, O., Boucadair, M., Munoz, L., Jalil, L. and J. Ma, "A Layer 2 VPN Network YANG Model", Internet-Draft draft-ietf-opsawg-l2nm-00, July 2020.
[I-D.ietf-opsawg-l3sm-l3nm] Barguil, S., Dios, O., Boucadair, M., Munoz, L. and A. Aguado, "A Layer 3 VPN Network YANG Model", Internet-Draft draft-ietf-opsawg-l3sm-l3nm-03, April 2020.
[I-D.ietf-teas-actn-vn-yang] Lee, Y., Dhody, D., Ceccarelli, D., Bryskin, I. and B. Yoon, "A Yang Data Model for VN Operation", Internet-Draft draft-ietf-teas-actn-vn-yang-08, March 2020.
[I-D.ietf-teas-yang-te] Saad, T., Gandhi, R., Liu, X., Beeram, V. and I. Bryskin, "A YANG Data Model for Traffic Engineering Tunnels and Interfaces", Internet-Draft draft-ietf-teas-yang-te-23, March 2020.
[I-D.ietf-teas-yang-te-topo] Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H. and O. Dios, "YANG Data Model for Traffic Engineering (TE) Topologies", Internet-Draft draft-ietf-teas-yang-te-topo-22, June 2019.
[I-D.raza-spring-sr-policy-yang] Raza, K., Sawaya, R., Shunwan, Z., Voyer, D., Durrani, M., Matsushima, S. and V. Beeram, "YANG Data Model for Segment Routing Policy", Internet-Draft draft-raza-spring-sr-policy-yang-02, November 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011.
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, July 2013.
[RFC7926] Farrel, A., Drake, J., Bitar, N., Swallow, G., Ceccarelli, D. and X. Zhang, "Problem Statement and Architecture for Information Exchange between Interconnected Traffic-Engineered Networks", BCP 206, RFC 7926, DOI 10.17487/RFC7926, July 2016.
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016.
[RFC8040] Bierman, A., Bjorklund, M. and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017.
[RFC8299] Wu, Q., Litkowski, S., Tomotaki, L. and K. Ogaki, "YANG Data Model for L3VPN Service Delivery", RFC 8299, DOI 10.17487/RFC8299, January 2018.
[RFC8340] Bjorklund, M. and L. Berger, "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K. and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018.
[RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., Ananthakrishnan, H. and X. Liu, "A YANG Data Model for Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 2018.
[RFC8349] Lhotka, L., Lindem, A. and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, March 2018.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018.
[RFC8466] Wen, B., Fioccola, G., Xie, C. and L. Jalil, "A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery", RFC 8466, DOI 10.17487/RFC8466, October 2018.
[RFC8776] Saad, T., Gandhi, R., Liu, X., Beeram, V. and I. Bryskin, "Common YANG Data Types for Traffic Engineering", RFC 8776, DOI 10.17487/RFC8776, June 2020.

11.2. Informative References

[I-D.ietf-teas-actn-yang] Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O., Shin, J. and S. Belotti, "Applicability of YANG models for Abstraction and Control of Traffic Engineered Networks", Internet-Draft draft-ietf-teas-actn-yang-05, February 2020.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J. and A. Bierman, "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011.
[RFC8199] Bogdanovic, D., Claise, B. and C. Moberg, "YANG Module Classification", RFC 8199, DOI 10.17487/RFC8199, July 2017.
[RFC8309] Wu, Q., Liu, W. and A. Farrel, "Service Models Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018.
[RFC8453] Ceccarelli, D. and Y. Lee, "Framework for Abstraction and Control of TE Networks (ACTN)", RFC 8453, DOI 10.17487/RFC8453, August 2018.

Appendix A. Contributor Addresses

Adrian Farrel
Old Dog Consulting

EMail: adrian@olddog.co.uk

Italo Busi
Huawei Technologies

EMail: Italo.Busi@huawei.com

Haomian Zheng 
Huawei Technologies

EMail: zhenghaomian@huawei.com

Anton Snitser 
Sedonasys

EMail: antons@sedonasys.com

SAMIER BARGUIL GIRALDO 
Telefonica

EMail: samier.barguilgiraldo.ext@telefonica.com

Oscar González de Dios 
Telefonica

EMail: oscar.gonzalezdedios@telefonica.com

Carlo Perocchio 
Ericsson

EMail: carlo.perocchio@ericsson.com

Authors' Addresses

Young Lee (editor) Samsung Electronics EMail: younglee.tx@gmail.com
Dhruv Dhody (editor) Huawei Technologies EMail: dhruv.ietf@gmail.com
Giuseppe Fioccola Huawei Technologies EMail: giuseppe.fioccola@huawei.com
Qin Wu (editor) Huawei Technologies EMail: bill.wu@huawei.com
Daniele Ceccarelli Ericsson Torshamnsgatan,48 Stockholm, Sweden EMail: daniele.ceccarelli@ericsson.com
Jeff Tantsura Apstra EMail: jefftant.ietf@gmail.com