Internet-Draft | TE Service Mapping | November 2020 |
Lee, et al. | Expires 6 May 2021 | [Page] |
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.¶
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 6 May 2021.¶
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.¶
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.¶
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].¶
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.¶
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].¶
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.¶
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.ietf-spring-sr-policy-yang] |
Note: The RFC Editor should replace XXXX with the number assigned to the RFC once this draft becomes an RFC.¶
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.¶
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.¶
New VN/Tunnel Binding - A customer could request a VPN service based on VN/Tunnels that are not shared with other existing or future services. This might be to meet VPN isolation requirements. Further, the YANG model described in Section 5 of this document can be used to describe the mapping between the VPN service and the ACTN VN. The VN (and TE tunnels) could be bound to the VPN and not used for any other VPN. Under this mode, the following sub-categories can be supported:¶
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.¶
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.¶
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 [RFC8795], 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].¶
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.¶
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.¶
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.¶
Figure 3 shows the architectural context of this document referencing the ACTN components and interfaces.¶
There are three main entities in the ACTN architecture and shown in Figure 3.¶
PNC: The Provisioning Network Controller is responsible for configuring and operating the network devices. Figure 2 shows two distinct PNCs.¶
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:¶
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.¶
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.¶
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.¶
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 |
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.¶
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 explicit-route-include-objects | | ... | +--rw tiebreakers | +--rw tiebreaker* [tiebreaker-type] | ... +--:(objective-function) {path-optimization-objective-function}? +--rw objective-function +--rw objective-function-type? identityref¶
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-list* | -> /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 ap-list* | -> /vn:ap/access-point-list/access-point-id +--:(te) +--rw ltp? te-types:te-tp-id¶
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-list* | -> /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 ap-list* | -> /vn:ap/access-point-list/access-point-id +--:(te) +--rw ltp? te-types:te-tp-id¶
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-list* | -> /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 ap-list* | -> /vn:ap/access-point-list/access-point-id +--:(te) +--rw ltp? te-types:te-tp-id¶
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-list* | -> /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 ap-list* | -> /vn:ap/access-point-list/access-point-id +--:(te) +--rw ltp? te-types:te-tp-id¶
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-list* | -> /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 ap-list* | -> /vn:ap/access-point-list/access-point-id +--:(te) +--rw ltp? te-types:te-tp-id¶
The YANG codes are as follows:¶
<CODE BEGINS> file "ietf-te-service-mapping-types@2020-11-02.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.ietf-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-11-02 { 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-list vn-list { 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 "RFC 8795: 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 "RFC 8795: 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 "/tsm-types:te-mapping-templates/" + "tsm-types:te-mapping-template/tsm-types: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-list ap-list { 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 "RFC 8795: 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 "0 = derived-from-or-self(.,'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>¶
<CODE BEGINS> file "ietf-l3sm-te-service-mapping@2020-11-02.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-11-02 { 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>¶
<CODE BEGINS> file "ietf-l2sm-te-service-mapping@2020-11-02.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-11-02 { 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>¶
<CODE BEGINS> file "ietf-l1csm-te-service-mapping@2020-11-02.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-11-02 { 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>¶
<CODE BEGINS> file "ietf-l3nm-te-service-mapping@2020-11-02.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-11-02 { 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>¶
<CODE BEGINS> file "ietf-l2nm-te-service-mapping@2020-11-02.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-11-02 { 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>¶
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.¶
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 -¶
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 YANG modules in the "YANG Module Names" registry [RFC6020], as follows -¶
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]¶
We thank Diego Caviglia, and Igor Bryskin for useful discussions and motivation for this work.¶
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 Kenichi Ogaki KDDI Email: ke-oogaki@kddi.com¶