< draft-ietf-opsawg-sap-02.txt   draft-ietf-opsawg-sap-03.txt >
OPSAWG M. Boucadair, Ed. OPSAWG M. Boucadair, Ed.
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track O. Gonzalez de Dios Intended status: Standards Track O. Gonzalez de Dios
Expires: 26 August 2022 S. Barguil Expires: 22 September 2022 S. Barguil
Telefonica Telefonica
Q. Wu Q. Wu
Huawei Huawei
V. Lopez V. Lopez
Nokia Nokia
22 February 2022 21 March 2022
A Network YANG Model for Service Attachment Points (SAPs) A Network YANG Model for Service Attachment Points (SAPs)
draft-ietf-opsawg-sap-02 draft-ietf-opsawg-sap-03
Abstract Abstract
This document defines a YANG data model for representing an abstract This document defines a YANG data model for representing an abstract
view of the provider network topology that contains the points from view of the provider network topology that contains the points from
which its services can be attached (e.g., basic connectivity, VPN, which its services can be attached (e.g., basic connectivity, VPN,
network slices). Also, the model can be used to retrieve the points network slices). Also, the model can be used to retrieve the points
where the services are actually being delivered to customers where the services are actually being delivered to customers
(including peer networks). (including peer networks).
skipping to change at page 1, line 49 skipping to change at page 1, line 49
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 26 August 2022. This Internet-Draft will expire on 22 September 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 27 skipping to change at page 2, line 27
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. SAP Network Model Usage . . . . . . . . . . . . . . . . . . . 4 3. SAP Network Model Usage . . . . . . . . . . . . . . . . . . . 4
4. Relationship to Other YANG Data Models . . . . . . . . . . . 8 4. Relationship to Other YANG Data Models . . . . . . . . . . . 8
5. SAP Module Tree Structure . . . . . . . . . . . . . . . . . . 9 5. SAP Module Tree Structure . . . . . . . . . . . . . . . . . . 9
6. SAP YANG Module . . . . . . . . . . . . . . . . . . . . . . . 12 6. SAP YANG Module . . . . . . . . . . . . . . . . . . . . . . . 12
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.1. Normative References . . . . . . . . . . . . . . . . . . 20 10.1. Normative References . . . . . . . . . . . . . . . . . . 20
10.2. Informative References . . . . . . . . . . . . . . . . . 21 10.2. Informative References . . . . . . . . . . . . . . . . . 22
Appendix A. A Simplified SAP Network Example . . . . . . . . . . 24 Appendix A. A Simplified SAP Network Example . . . . . . . . . . 24
Appendix B. A Simple Example of SAP Network Model: Node Appendix B. A Simple Example of SAP Network Model: Node
Filter . . . . . . . . . . . . . . . . . . . . . . . . . 27 Filter . . . . . . . . . . . . . . . . . . . . . . . . . 27
Appendix C. An Example of NNI SAP: Inter-AS VPN Option A . . . . 31 Appendix C. An Example of NNI SAP: Inter-AS VPN Option A . . . . 32
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 Appendix D. An Example of Using the SAP Network Model in Service
Creation . . . . . . . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
1. Introduction 1. Introduction
From the perspective of a service provider, the Service Attachment From the perspective of a service provider, the Service Attachment
Points (SAPs) are abstraction of the network reference points where Points (SAPs) are abstraction of the network reference points where
network services can be delivered to customers. The SAP is an network services can be delivered to customers. The SAP is an
important architectural concept in many implementations and important architectural concept in many implementations and service
deployments of services, such as Virtual Private Networks (VPNs), deployments, such as Virtual Private Networks (VPNs), Software-
Software-Defined Wide Area Network (SDWAN) Defined Wide Area Network (SDWAN) [I-D.ietf-bess-bgp-sdwan-usage], or
[I-D.ietf-bess-bgp-sdwan-usage], or network slices network slices [I-D.ietf-teas-ietf-network-slices]. For example,
[I-D.ietf-teas-ietf-network-slices]. For example, it is used to this concept is used to decide where to attach and, thus, deliver the
decide where to attach and, thus, deliver the service in the Layer 3 service in the Layer 3 VPN Service Model (L3SM) [RFC8299] and the
VPN Service Model (L3SM) [RFC8299] and the Layer 2 VPN Service Model Layer 2 VPN Service Model (L2SM) [RFC8466]. It can also be used to
(L2SM) [RFC8466]. It can also be used to retrieve where services, retrieve where services, such as the Layer 3 VPN Network Model (L3NM)
such as the Layer 3 VPN Network Model (L3NM) [RFC9182], and the Layer [RFC9182], and the Layer 2 VPN Network Model (L2NM)
2 VPN Network Model (L2NM) [I-D.ietf-opsawg-l2nm], are delivered to [I-D.ietf-opsawg-l2nm], are delivered to customers.
customers.
This document defines a YANG network model (Section 6) for This document defines a YANG network model (Section 6) for
representing, managing, and controlling the Service Attachment representing, managing, and controlling the SAPs. The data model
Points. The data model augments the 'ietf-network' module [RFC8345] augments the 'ietf-network' module [RFC8345] by adding the concept of
by adding the concept of Service Attachment Points. This document SAPs. This document explains the scope and purpose of a SAP network
explains the scope and purpose of a SAP network model and its model and its relation with other models (Section 4).
relation with other models (Section 4).
Multiple service types can be associated with a given network. Multiple service types can be associated with a given network.
Whether a SAP topology is dedicated to a specific service or shared Whether a SAP topology is dedicated to a specific service or shared
among many services is deployment specific. This document supports among many services is deployment specific. This document supports
both deployment schemes. both deployment schemes.
This document does not make any assumption about the service(s) This document does not make any assumption about the service(s)
provided by a network to its users. VPN services (e.g., Layer 3 provided by a network to its users. VPN services (e.g., Layer 3
Virtual Private Network (L3VPN) or Layer 2 Virtual Private Network Virtual Private Network (L3VPN) or Layer 2 Virtual Private Network
(L2VPN)) are used for illustration purposes (Appendices A and B). (L2VPN)) are used for illustration purposes (Appendices A and B).
skipping to change at page 4, line 11 skipping to change at page 4, line 11
This document uses the following terms: This document uses the following terms:
Service povider: The organization responsible for operating the Service povider: The organization responsible for operating the
network that offers a service (e.g., a VPN) to customers. network that offers a service (e.g., a VPN) to customers.
Customer Edge (CE): An equipment that is dedicated to a particular Customer Edge (CE): An equipment that is dedicated to a particular
customer and is directly connected to one or more Provider Edges customer and is directly connected to one or more Provider Edges
(PEs) via attachment circuits (ACs). A CE is usually located at (PEs) via attachment circuits (ACs). A CE is usually located at
the customer premises. A CE may be dedicated to a single service the customer premises. A CE may be dedicated to a single service
(e.g., L3VPN), although it may support multiple VPNs if each one (e.g., L3VPN), although it may support multiple VPNs if each one
has separate attachment circuits. A CE can be a router, bridge, has separate attachment circuits. A CE can be a router, a bridge,
switch, etc. a switch, etc.
Provider Edge (PE): An equipment owned and managed by the service Provider Edge (PE): An equipment owned and managed by the service
provider that can support multiple services (e.g., VPNs) for provider that can support multiple services (e.g., VPNs) for
different customers. A PE is directly connected to one or more different customers. A PE is directly connected to one or more
CEs via ACs. CEs via ACs.
Service Attachment Point (SAP): Describes the service's endpoint Service Attachment Point (SAP): Describes the service's endpoint
characteristics and its reference to a Termination Point (TP) of a characteristics and its reference to a Termination Point (TP).
PE.
3. SAP Network Model Usage 3. SAP Network Model Usage
Management operations of a service provider network can be automated Management operations of a service provider network can be automated
using a variety of means such as interfaces based on YANG modules using a variety of means such as interfaces based on YANG modules
[RFC8969]. From that standpoint, and considering the architecture [RFC8969]. From that standpoint, and considering the architecture
depicted in Figure 1, a goal of this document is to provide a depicted in Figure 1, a goal of this document is to provide a
mechanism to show via a YANG-based interface an abstracted network mechanism to show via a YANG-based interface an abstracted network
view from the network controller to the service orchestration layer view from the network controller to the service orchestration layer
with a focus on where a service can be delivered to customers. The with a focus on where a service can be delivered to customers. The
skipping to change at page 9, line 17 skipping to change at page 9, line 17
use. use.
Advanced low-level interface-specific data nodes are not exposed in Advanced low-level interface-specific data nodes are not exposed in
the SAP model. Filters based on the interface identifiers listed in the SAP model. Filters based on the interface identifiers listed in
the SAP model can be used together with dedicated device models to the SAP model can be used together with dedicated device models to
set or get such data. set or get such data.
5. SAP Module Tree Structure 5. SAP Module Tree Structure
The SAP network model 'ietf-sap-ntw' builds on the 'ietf-network' The SAP network model 'ietf-sap-ntw' builds on the 'ietf-network'
module [RFC8345] by augmenting the nodes with Service Attachment module [RFC8345] by augmenting the nodes with SAPs, which anchor the
Points, which anchor the links and are contained in nodes. links and are contained in nodes.
The 'service-attachment-point' attribute defined in the SAP network The 'sap' attribute defined in the SAP network model is not a tunnel
model is not a tunnel termination point (TTP) (Section 3.6 of termination point (TTP) (Section 3.6 of [RFC8795]) nor a link, but an
[RFC8795]) nor a link, but an abstraction of the termination point abstraction of the termination point defined in [RFC8345].
defined in [RFC8345].
The structure of the 'ietf-sap-ntw' module is shown in Figure 7. The structure of the 'ietf-sap-ntw' module is shown in Figure 7.
module: ietf-sap-ntw module: ietf-sap-ntw
augment /nw:networks/nw:network/nw:network-types: augment /nw:networks/nw:network/nw:network-types:
+--rw sap-network! +--rw sap-network!
+--rw sap-type* identityref +--rw service-type* identityref
augment /nw:networks/nw:network/nw:node: augment /nw:networks/nw:network/nw:node:
+--rw service* [sap-type] +--rw service* [service-type]
+--rw sap-type identityref +--rw service-type identityref
+--rw service-attachment-point* [attachment-id] +--rw sap* [sap-id]
+--rw attachment-id string +--rw sap-id string
+--rw description? string +--rw description? string
+--rw attachment-interface? string
+--rw parent-termination-point? nt:tp-id +--rw parent-termination-point? nt:tp-id
+--rw attachment-interface? string
+--rw interface-type? identityref +--rw interface-type? identityref
+--rw encapsulation-type? identityref +--rw encapsulation-type? identityref
+--rw role? identityref +--rw role? identityref
+--rw peer-customer-sap-id? string +--rw peer-sap-id? string
+--ro sap-status +--ro sap-status
| +--ro status? identityref | +--ro status? identityref
| +--ro last-change? yang:date-and-time | +--ro last-change? yang:date-and-time
+--ro service-status +--ro service-status
+--ro status? identityref +--ro status? identityref
+--ro last-change? yang:date-and-time +--ro last-change? yang:date-and-time
Figure 7: SAP YANG Module Tree Structure Figure 7: SAP YANG Module Tree Structure
A SAP network topology can be used for one or multiple service types A SAP network topology can be used for one or multiple service types
('sap-type'). Examples of supported service types are as follows: ('service-type'). Examples of supported service types are as
follows:
* L3VPN [RFC4364], * L3VPN [RFC4364],
* Virtual Private LAN Service (VPLS) [RFC4761][RFC4762], * Virtual Private LAN Service (VPLS) [RFC4761][RFC4762],
* Virtual Private Wire Service (VPWS) [RFC8214], * Virtual Private Wire Service (VPWS) [RFC8214],
* BGP MPLS-Based Ethernet VPN [RFC7432], * BGP MPLS-Based Ethernet VPN [RFC7432],
* VPWS in Ethernet VPN [RFC8214], * VPWS in Ethernet VPN [RFC8214],
skipping to change at page 10, line 41 skipping to change at page 10, line 42
* Basic IP connectivity. * Basic IP connectivity.
These service types build on the types that are already defined in These service types build on the types that are already defined in
[RFC9181] and additional types that are defined in this document. [RFC9181] and additional types that are defined in this document.
Other service types can be defined in future YANG modules, if needed. Other service types can be defined in future YANG modules, if needed.
Filters based on the service type can be used to access per-service Filters based on the service type can be used to access per-service
SAP topology. A example is depicted in Figure 11. SAP topology. A example is depicted in Figure 11.
A node in the topology can support one or multiple service types A node in the topology can support one or multiple service types
('sap-type') among those listed under the 'sap-network' container. A ('service-type') among those listed under the 'sap-network'
list of SAPs are then bound to each service type supported by a given container. A list of SAPs are then bound to each service type that
node. Each SAP is characterized as follows: is supported by a given node. Each SAP is characterized as follows:
'attachment-id': Includes an identifier that uniquely identifies a 'sap-id': Includes an identifier that uniquely identifies a SAP
SAP within a node. within a node.
The same SAP may appear under distinct service types. In such a The same SAP may appear under distinct service types. In such a
case, the same identifier is used for these service types in case, the same identifier is used for these service types in
association. association.
SAPs that are associated with the interfaces that are directly SAPs that are associated with the interfaces that are directly
hosting services, interfaces that are ready to host per-service hosting services, interfaces that are ready to host per-service
sub-interfaces (but not yet activated), or service that are sub-interfaces (but not yet activated), or service that are
already instantiated on sub-interfaces are listed as SAPs. already instantiated on sub-interfaces are listed as SAPs.
For example, 'attachment-id' may be the VPN network access For example, 'sap-id' may be the VPN network access identifier in
identifier in Section 7.6 of [RFC9182]. Section 7.6 of [RFC9182]. An example to illustrate the use of
this attribute during service creation is provided in Appendix D.
'description': Includes a textual description of the SAP. 'description': Includes a textual description of the SAP.
'attachment-interface': Indicates a reference to the interface to
which the SAP is bound. The same interface may host multiple
services.
Whether the attachment identifier echoes the content of the
attachment interface is deployment specific.
'parent-termination-point': Includes a reference to the parent 'parent-termination-point': Includes a reference to the parent
interface to which the SAP is bound (e.g., a physical port). interface to which the SAP is bound (e.g., a physical port).
This attribute is used, e.g., to associate an interface with its This attribute is used, e.g., to associate an interface with its
sub-interfaces as all these interfaces may be listed under the sub-interfaces as all these interfaces may be listed under the
SAPs of a node. It is also used to link a SAP with the physical SAPs of a node. It is also used to link a SAP with the physical
topology. topology.
For example, this data node can be used to map the IETF Network For example, this data node can be used to map the IETF Network
Slice endpoints to the service/tunnel/path endpoints in the Slice endpoints to the service/tunnel/path endpoints in the
underlay network as per Section 5.4 of underlay network as per Section 5.4 of
[I-D.ietf-teas-ietf-network-slices]. [I-D.ietf-teas-ietf-network-slices].
'attachment-interface': Indicates a reference to the interface to
which the SAP is bound. The same interface may host multiple
services.
Whether the attachment identifier echoes the content of the
attachment interface is deployment specific.
For example, this reference may be any of the identifiers ('l2-
termination-point', 'local-bridge-reference', 'bearer-reference',
or 'lag-interface-id') defined in Section 7.6.1 of [RFC9182] or
'l3-termination-point' defined in Section 7.6.2 of [RFC9182]. It
is responsibility of the controller to ensure that consistent
references are used in the SAP and underlying device modes or any
other device inventory mechanism.
'interface-type': Indicates whether a SAP is bound to a physical 'interface-type': Indicates whether a SAP is bound to a physical
port, a loopback interface, a Link Aggregation Group (LAG) port, a loopback interface, a Link Aggregation Group (LAG)
interface, an Integrated Routing Bridge (IRB), a local bridge interface, an Integrated Routing Bridge (IRB), a local bridge
reference, etc. reference, etc.
The mapping to the detailed interface types as per [RFC7224] is
maintained by the controller. That mapping is used, for example,
when the controller translates this SAP network module into device
modules.
'encapsulation-type': Indicates the encapsulation type for the 'encapsulation-type': Indicates the encapsulation type for the
interface indicated in the 'attachment-interface' attribute. The interface indicated in the 'attachment-interface' attribute. The
types are taken from [RFC9181]. types are taken from [RFC9181].
This data node can be used, for example, to decide whether an This data node can be used, for example, to decide whether an
existing SAP can be (re)used to host a service or if a new sub- existing SAP can be (re)used to host a service or if a new sub-
interface has to be instantiated. interface has to be instantiated.
'role': Specifies whether a SAP is a UNI or NNI. 'role': Specifies the role of a SAP (e.g., a UNI or NNI).
A SAP inherits the role of its parent interface ('parent- A SAP inherits the role of its parent interface ('parent-
termination-point'). termination-point').
'peer-customer-sap-id': Includes a reference to the remote endpoint 'peer-sap-id': Includes a reference to the remote endpoint of an
of an attachment circuit. attachment circuit.
Examples of such a reference are: a site identifier (Section 6.3 Examples of such a reference are: a site identifier (Section 6.3
of [RFC8299]), a CE identifier (Section 2.1 of of [RFC8299]), a CE identifier (Section 2.1 of
[I-D.ietf-teas-ietf-network-slices]), the IP address of a peer [I-D.ietf-teas-ietf-network-slices]), the IP address of a peer
Autonomous System Border Router (ASBR). Autonomous System Border Router (ASBR).
'sap-status': Indicates the operational status of a SAP. Values are 'sap-status': Indicates the operational status of a SAP. Values are
taken from the values defined in [RFC9181]. taken from the values defined in [RFC9181].
When both a sub-interface and its parent interface are present, When both a sub-interface and its parent interface are present,
skipping to change at page 12, line 29 skipping to change at page 12, line 42
'service-status': Reports the operational status of service for a 'service-status': Reports the operational status of service for a
given SAP. This information is particularly useful when many given SAP. This information is particularly useful when many
services are enabled for the same SAP, but only a subset of them services are enabled for the same SAP, but only a subset of them
are activated. are activated.
6. SAP YANG Module 6. SAP YANG Module
This module imports types from [RFC8343], [RFC8345], and [RFC9181]. This module imports types from [RFC8343], [RFC8345], and [RFC9181].
'sap-information' is defined as a grouping to use the reuse of these The 'sap-information' is defined as a grouping for the reuse of these
nodes in service-specific YANG modules. nodes in service-specific YANG modules.
<CODE BEGINS> file "ietf-sap-ntw@2022-02-17.yang" <CODE BEGINS> file "ietf-sap-ntw@2022-02-17.yang"
module ietf-sap-ntw { module ietf-sap-ntw {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-sap-ntw"; namespace "urn:ietf:params:xml:ns:yang:ietf-sap-ntw";
prefix sap; prefix sap;
import ietf-network-topology { import ietf-network-topology {
prefix nt; prefix nt;
skipping to change at page 16, line 30 skipping to change at page 16, line 42
base interface-type; base interface-type;
description description
"Refers to a logical sub-interface that is typically "Refers to a logical sub-interface that is typically
used to bind a service. This type is used only used to bind a service. This type is used only
if none of the other logical types can be used."; if none of the other logical types can be used.";
} }
grouping sap-information { grouping sap-information {
description description
"Service Attachment Point (SAP) information."; "Service Attachment Point (SAP) information.";
list service-attachment-point { list sap {
key "attachment-id"; key "sap-id";
description description
"The Service Attachment Points are abstraction of "The Service Attachment Points are abstraction of
the points where network services such as L3VPNs, the points where network services such as L3VPNs,
L2VPNs, or network slices can be attached to."; L2VPNs, or network slices can be attached to.";
leaf attachment-id { leaf sap-id {
type string; type string;
description description
"Indicates an identifier that uniquely identifies "Indicates an identifier that uniquely identifies
SAP within a node."; SAP within a node.";
} }
leaf description { leaf description {
type string; type string;
description description
"A textual description of the SAP."; "A textual description of the SAP.";
} }
leaf attachment-interface {
type string;
description
"Indicates the interface to which the SAP is bound.";
}
leaf parent-termination-point { leaf parent-termination-point {
type nt:tp-id; type nt:tp-id;
description description
"Indicates the parent termination point to "Indicates the parent termination point to
which the SAP is attached to. A termination which the SAP is attached to. A termination
point can be a physical port, an interface, etc."; point can be a physical port, an interface, etc.";
} }
leaf attachment-interface {
type string;
description
"Indicates the interface to which the SAP is bound.";
}
leaf interface-type { leaf interface-type {
type identityref { type identityref {
base interface-type; base interface-type;
} }
description description
"The type of the interface to which the SAP is bound."; "The type of the interface to which the SAP is bound.";
} }
leaf encapsulation-type { leaf encapsulation-type {
type identityref { type identityref {
base vpn-common:encapsulation-type; base vpn-common:encapsulation-type;
} }
description description
"Encapsulation type of the interface to which the "Encapsulation type of the interface to which the
SAP is bound."; SAP is bound.";
} }
leaf role { leaf role {
type identityref { type identityref {
base interface-role; base interface-role;
} }
description description
"Indicates whether the SAP is an UNI or a NNI."; "Indicates the role of a SAP.";
} }
leaf peer-customer-sap-id { leaf peer-sap-id {
type string; type string;
description description
"Indicates an identifier of the peer's termination "Indicates an identifier of the peer's termination
identifier (e.g., Customer Edge (CE)). This identifier (e.g., Customer Edge (CE)). This
information can be used for correlation purposes, information can be used for correlation purposes,
such as identifying the SAP that is attached to such as identifying the SAP that is attached to
an endpoint that is provided in a service request."; an endpoint that is provided in a service request.";
} }
container sap-status { container sap-status {
config "false"; config "false";
skipping to change at page 18, line 4 skipping to change at page 18, line 16
container sap-status { container sap-status {
config "false"; config "false";
description description
"Indicates the SAP status."; "Indicates the SAP status.";
uses vpn-common:oper-status-timestamp; uses vpn-common:oper-status-timestamp;
} }
container service-status { container service-status {
config "false"; config "false";
description description
"Indicates the service status."; "Indicates the service status.";
uses vpn-common:oper-status-timestamp; uses vpn-common:oper-status-timestamp;
} }
} }
} }
augment "/nw:networks/nw:network/nw:network-types" { augment "/nw:networks/nw:network/nw:network-types" {
description description
"Introduces a new network type for SAP network."; "Introduces a new network type for SAP network.";
container sap-network { container sap-network {
presence "Indicates SAP Network Type."; presence "Indicates SAP Network Type.";
description description
"The presence of the container node indicates the "The presence of the container node indicates the
SAP network type."; SAP network type.";
leaf-list sap-type { leaf-list service-type {
type identityref { type identityref {
base vpn-common:service-type; base vpn-common:service-type;
} }
description description
"Indicates the set of supported service types."; "Indicates the set of supported service types.";
} }
} }
} }
augment "/nw:networks/nw:network/nw:node" { augment "/nw:networks/nw:network/nw:node" {
description description
"Parameters for the SAP level."; "Parameters for the SAP level.";
list service { list service {
key "sap-type"; key "service-type";
description description
"A list of supported service type for the node."; "A list of supported service type for the node.";
leaf sap-type { leaf service-type {
type identityref { type identityref {
base vpn-common:service-type; base vpn-common:service-type;
} }
description description
"Indicates a service type."; "Indicates a service type.";
} }
uses sap-information; uses sap-information;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
7. IANA Considerations 7. IANA Considerations
This document registers the following namespace URI in the "ns" This document registers the following namespace URI in the "ns"
skipping to change at page 19, line 41 skipping to change at page 20, line 5
RESTCONF protocol operations and content. RESTCONF protocol operations and content.
There are a number of data nodes defined in this YANG module that are There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., config true, which is the writable/creatable/deletable (i.e., config true, which is the
default). These data nodes may be considered sensitive or vulnerable default). These data nodes may be considered sensitive or vulnerable
in some network environments. Write operations (e.g., edit-config) in some network environments. Write operations (e.g., edit-config)
to these data nodes without proper protection can have a negative to these data nodes without proper protection can have a negative
effect on network operations. These are the subtrees and data nodes effect on network operations. These are the subtrees and data nodes
and their sensitivity/vulnerability: and their sensitivity/vulnerability:
* /nw:networks/nw:network/nw:node/sap:sap-type/sap:service- * /nw:networks/nw:network/nw:node/sap:service-type/sap:sap
attachment-point
This subtree specifies the configurations of the nodes in a SAP This subtree specifies the configurations of the nodes in a SAP
network model. Unexpected changes to this subtree (e.g., network model. Unexpected changes to this subtree (e.g.,
associating a SAP with another parent termination interface) could associating a SAP with another parent termination interface) could
lead to service disruption and/or network misbehavior. lead to service disruption and/or network misbehavior.
Some of the readable data nodes in this YANG module may be considered Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or important to control read access (e.g., via get, get-config, or
notification) to these data nodes. These are the subtrees and data notification) to these data nodes. These are the subtrees and data
nodes and their sensitivity/vulnerability: nodes and their sensitivity/vulnerability:
* /nw:networks/nw:network/nw:node/sap:sap-type/sap:service- * /nw:networks/nw:network/nw:node/sap:service-type/sap:sap
attachment-point
Unauthorized access to this subtree can disclose the operational Unauthorized access to this subtree can disclose the operational
state information of the nodes in a SAP network model (e.g., state information of the nodes in a SAP network model (e.g.,
disclose the identity of a customer 'peer-customer-sap-id'). disclose the identity of a customer 'peer-sap-id').
9. Acknowledgements 9. Acknowledgements
Thanks to Adrian Farrell and Daniel King for the suggestions on the Thanks to Adrian Farrell and Daniel King for the suggestions on the
name used in a previous version. name used in a previous version.
Thanks to Dhruv Dhody, Benoit Claise, Bo Wu, Erez Segev, and Raul Thanks to Dhruv Dhody, Benoit Claise, Bo Wu, Erez Segev, Raul Arco,
Arco for the comments. and Joe Clarke for the comments.
Thanks to Martin Bjoerklund for yang-doctors review.
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 22, line 19 skipping to change at page 22, line 31
Barguil, S., Dios, O. G. D., Boucadair, M., and L. A. Barguil, S., Dios, O. G. D., Boucadair, M., and L. A.
Munoz, "A Layer 2 VPN Network YANG Model", Work in Munoz, "A Layer 2 VPN Network YANG Model", Work in
Progress, Internet-Draft, draft-ietf-opsawg-l2nm-12, 22 Progress, Internet-Draft, draft-ietf-opsawg-l2nm-12, 22
November 2021, <https://www.ietf.org/archive/id/draft- November 2021, <https://www.ietf.org/archive/id/draft-
ietf-opsawg-l2nm-12.txt>. ietf-opsawg-l2nm-12.txt>.
[I-D.ietf-teas-enhanced-vpn] [I-D.ietf-teas-enhanced-vpn]
Dong, J., Bryant, S., Li, Z., Miyasaka, T., and Y. Lee, "A Dong, J., Bryant, S., Li, Z., Miyasaka, T., and Y. Lee, "A
Framework for Enhanced Virtual Private Network (VPN+) Framework for Enhanced Virtual Private Network (VPN+)
Services", Work in Progress, Internet-Draft, draft-ietf- Services", Work in Progress, Internet-Draft, draft-ietf-
teas-enhanced-vpn-09, 25 October 2021, teas-enhanced-vpn-10, 6 March 2022,
<https://www.ietf.org/archive/id/draft-ietf-teas-enhanced- <https://www.ietf.org/archive/id/draft-ietf-teas-enhanced-
vpn-09.txt>. vpn-10.txt>.
[I-D.ietf-teas-ietf-network-slices] [I-D.ietf-teas-ietf-network-slices]
Farrel, A., Gray, E., Drake, J., Rokui, R., Homma, S., Farrel, A., Drake, J., Rokui, R., Homma, S., Makhijani,
Makhijani, K., Contreras, L. M., and J. Tantsura, K., Contreras, L. M., and J. Tantsura, "Framework for IETF
"Framework for IETF Network Slices", Work in Progress, Network Slices", Work in Progress, Internet-Draft, draft-
Internet-Draft, draft-ietf-teas-ietf-network-slices-05, 25 ietf-teas-ietf-network-slices-08, 6 March 2022,
October 2021, <https://www.ietf.org/archive/id/draft-ietf- <https://www.ietf.org/archive/id/draft-ietf-teas-ietf-
teas-ietf-network-slices-05.txt>. network-slices-08.txt>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <https://www.rfc-editor.org/info/rfc4364>. 2006, <https://www.rfc-editor.org/info/rfc4364>.
[RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private [RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private
LAN Service (VPLS) Using BGP for Auto-Discovery and LAN Service (VPLS) Using BGP for Auto-Discovery and
Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007, Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007,
<https://www.rfc-editor.org/info/rfc4761>. <https://www.rfc-editor.org/info/rfc4761>.
[RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private [RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private
LAN Service (VPLS) Using Label Distribution Protocol (LDP) LAN Service (VPLS) Using Label Distribution Protocol (LDP)
Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007, Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007,
<https://www.rfc-editor.org/info/rfc4762>. <https://www.rfc-editor.org/info/rfc4762>.
[RFC7149] Boucadair, M. and C. Jacquenet, "Software-Defined [RFC7149] Boucadair, M. and C. Jacquenet, "Software-Defined
Networking: A Perspective from within a Service Provider Networking: A Perspective from within a Service Provider
Environment", RFC 7149, DOI 10.17487/RFC7149, March 2014, Environment", RFC 7149, DOI 10.17487/RFC7149, March 2014,
<https://www.rfc-editor.org/info/rfc7149>. <https://www.rfc-editor.org/info/rfc7149>.
[RFC7224] Bjorklund, M., "IANA Interface Type YANG Module",
RFC 7224, DOI 10.17487/RFC7224, May 2014,
<https://www.rfc-editor.org/info/rfc7224>.
[RFC7426] Haleplidis, E., Ed., Pentikousis, K., Ed., Denazis, S., [RFC7426] Haleplidis, E., Ed., Pentikousis, K., Ed., Denazis, S.,
Hadi Salim, J., Meyer, D., and O. Koufopavlou, "Software- Hadi Salim, J., Meyer, D., and O. Koufopavlou, "Software-
Defined Networking (SDN): Layers and Architecture Defined Networking (SDN): Layers and Architecture
Terminology", RFC 7426, DOI 10.17487/RFC7426, January Terminology", RFC 7426, DOI 10.17487/RFC7426, January
2015, <https://www.rfc-editor.org/info/rfc7426>. 2015, <https://www.rfc-editor.org/info/rfc7426>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <https://www.rfc-editor.org/info/rfc7432>. 2015, <https://www.rfc-editor.org/info/rfc7432>.
skipping to change at page 24, line 37 skipping to change at page 24, line 52
An example of a SAP topology that is reported by a network controller An example of a SAP topology that is reported by a network controller
is depicted in Figure 8. This example echoes the topology shown in is depicted in Figure 8. This example echoes the topology shown in
Figure 5. Only a minimum set of information is provided for each Figure 5. Only a minimum set of information is provided for each
SAP. SAP.
{ {
"ietf-network:networks": { "ietf-network:networks": {
"network": [ "network": [
{ {
"network-types": { "network-types": {
"sap-type": [ "service-type": [
"ietf-vpn-common:l3vpn", "ietf-vpn-common:l3vpn",
"ietf-vpn-common:vpls" "ietf-vpn-common:vpls"
] ]
}, },
"network-id": "an-id", "network-id": "foo:an-id",
"node": [ "node": [
{ {
"node-id": "PE1", "node-id": "PE1",
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#11", "sap-id": "sap#11",
"peer-customer-sap-id": "ce-1", "peer-sap-id": "ce-1",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#12" "sap-id": "sap#12"
}, },
{ {
"attachment-id": "sap#13" "sap-id": "sap#13"
}, },
{ {
"attachment-id": "sap#14" "sap-id": "sap#14"
} }
] ]
} }
] ]
}, },
{ {
"node-id": "PE2", "node-id": "PE2",
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#21" "sap-id": "sap#21"
}, },
{ {
"attachment-id": "sap#22", "sap-id": "sap#22",
"peer-customer-sap-id": "ce-2", "peer-sap-id": "ce-2",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
}, },
{ {
"node-id": "PE3", "node-id": "PE3",
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#31" "sap-id": "sap#31"
}, },
{ {
"attachment-id": "sap#32" "sap-id": "sap#32"
}, },
{ {
"attachment-id": "sap#33", "sap-id": "sap#33",
"peer-customer-sap-id": "ce-3", "peer-sap-id": "ce-3",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
}, },
{ {
"node-id": "PE4", "node-id": "PE4",
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#41" "sap-id": "sap#41"
}, },
{ {
"attachment-id": "sap#42", "sap-id": "sap#42",
"peer-customer-sap-id": "ce-4", "peer-sap-id": "ce-4",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#43" "sap-id": "sap#43"
}, },
{ {
"attachment-id": "sap#44", "sap-id": "sap#44",
"peer-customer-sap-id": "ce-5", "peer-sap-id": "ce-5",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
} }
] ]
} }
skipping to change at page 28, line 8 skipping to change at page 28, line 21
"GE0/6/4.1" and "GE0/6/4.2", respectively. "GE0/6/4.1" and "GE0/6/4.2", respectively.
A service orchestrator can query what services are provided on which A service orchestrator can query what services are provided on which
SAPs of PE1 from the network controller by sending, e.g., a GET SAPs of PE1 from the network controller by sending, e.g., a GET
RESTCONF request. Figure 10 shows the body of the RESTCONF response RESTCONF request. Figure 10 shows the body of the RESTCONF response
that is received from the network controller. that is received from the network controller.
{ {
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#1", "sap-id": "sap#1",
"description": "Ready to host SAPs", "description": "Ready to host SAPs",
"attachment-interface": "GE0/6/1", "attachment-interface": "GE0/6/1",
"interface-type": "ietf-sap-ntw:phy", "interface-type": "ietf-sap-ntw:phy",
"role": "ietf-sap-ntw:uni", "role": "ietf-sap-ntw:uni",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#2", "sap-id": "sap#2",
"description": "Ready to host SAPs", "description": "Ready to host SAPs",
"attachment-interface": "GE0/6/4", "attachment-interface": "GE0/6/4",
"interface-type": "ietf-sap-ntw:phy", "interface-type": "ietf-sap-ntw:phy",
"role": "ietf-sap-ntw:uni", "role": "ietf-sap-ntw:uni",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#3", "sap-id": "sap#3",
"description": "A first SAP description", "description": "A first SAP description",
"parent-termination-point": "GE0/6/4",
"attachment-interface": "GE0/6/4.1", "attachment-interface": "GE0/6/4.1",
"interface-type": "ietf-sap-ntw:logical", "interface-type": "ietf-sap-ntw:logical",
"parent-termination-point": "GE0/6/4",
"encapsulation-type": "ietf-vpn-common:vlan-type", "encapsulation-type": "ietf-vpn-common:vlan-type",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
}, },
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
}, },
{ {
"sap-type": "ietf-vpn-common:vpls", "service-type": "ietf-vpn-common:vpls",
"service-attachment-point": [ "sap": [
"attachment-id": "sap#1", "sap-id": "sap#1",
"description": "Ready to host SAPs", "description": "Ready to host SAPs",
"attachment-interface": "GE0/6/1", "attachment-interface": "GE0/6/1",
"interface-type": "ietf-sap-ntw:phy", "interface-type": "ietf-sap-ntw:phy",
"role": "ietf-sap-ntw:uni", "role": "ietf-sap-ntw:uni",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#2", "sap-id": "sap#2",
"description": "Ready to host SAPs", "description": "Ready to host SAPs",
"attachment-interface": "GE0/6/4", "attachment-interface": "GE0/6/4",
"interface-type": "ietf-sap-ntw:phy", "interface-type": "ietf-sap-ntw:phy",
"role": "ietf-sap-ntw:uni", "role": "ietf-sap-ntw:uni",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#4", "sap-id": "sap#4",
"description": "Another description", "description": "Another description",
"parent-termination-point": "GE0/6/4",
"attachment-interface": "GE0/6/4.2", "attachment-interface": "GE0/6/4.2",
"interface-type": "ietf-sap-ntw:logical", "interface-type": "ietf-sap-ntw:logical",
"parent-termination-point": "GE0/6/4",
"encapsulation-type": "ietf-vpn-common:vlan-type", "encapsulation-type": "ietf-vpn-common:vlan-type",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
}, },
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
skipping to change at page 29, line 37 skipping to change at page 30, line 4
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
}, },
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
} }
Figure 10: An Example of a Response Body to a Request with a Node Figure 10: An Example of a Response Body to a Request with a Node
Filter Filter
Figure 11 shows the message body of a response that is received from Figure 11 shows the message body of a response that is received from
the network controller if the request includes a filter on the the network controller if the request includes a filter on the
service type for a particular node: service type for a particular node:
{ {
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#1", "sap-id": "sap#1",
"description": "Ready to host SAPs", "description": "Ready to host SAPs",
"attachment-interface": "GE0/6/1", "attachment-interface": "GE0/6/1",
"interface-type": "ietf-sap-ntw:phy", "interface-type": "ietf-sap-ntw:phy",
"role": "ietf-sap-ntw:uni", "role": "ietf-sap-ntw:uni",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#2", "sap-id": "sap#2",
"description": "Ready to host SAPs", "description": "Ready to host SAPs",
"attachment-interface": "GE0/6/4", "attachment-interface": "GE0/6/4",
"interface-type": "ietf-sap-ntw:phy", "interface-type": "ietf-sap-ntw:phy",
"role": "ietf-sap-ntw:uni", "role": "ietf-sap-ntw:uni",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#3", "sap-id": "sap#3",
"description": "A first SAP description", "description": "A first SAP description",
"parent-termination-point": "GE0/6/4",
"attachment-interface": "GE0/6/4.1", "attachment-interface": "GE0/6/4.1",
"interface-type": "ietf-sap-ntw:logical", "interface-type": "ietf-sap-ntw:logical",
"parent-termination-point": "GE0/6/4",
"encapsulation-type": "ietf-vpn-common:vlan-type", "encapsulation-type": "ietf-vpn-common:vlan-type",
"sap-status": { "sap-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
}, },
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
} }
Figure 11: An Example of a Response Body to a Request with a Figure 11: An Example of a Response Body to a Request with a
Service Filter Service Filter
Appendix C. An Example of NNI SAP: Inter-AS VPN Option A Appendix C. An Example of NNI SAP: Inter-AS VPN Option A
Section 10 of [RFC4364] discuses several option to extend the scope Section 10 of [RFC4364] discuses several options to extend a VPN
of a VPN service beyond the scope of a single Autonomous System (AS). service beyond the scope of a single Autonomous System (AS). For
For illustration purposes, this section focuses on the so called illustration purposes, this section focuses on the so called "Option
"Option A" but similar examples can be considered for other options. A" but similar examples can be considered for other options.
In this option, an ASBR of an AS is directly connected to an ASBR of In this option, an ASBR of an AS is directly connected to an ASBR of
a neighboring AS. These two ASBRs are connected by multiple physical a neighboring AS. These two ASBRs are connected by multiple physical
or logical interfaces. Also, at least one sub-interface is or logical interfaces. Also, at least one sub-interface is
maintained by these ASBRs for each of the VPNs that require their maintained by these ASBRs for each of the VPNs that require their
routes to be passed from one AS to the other AS. Each ASBR behaves routes to be passed from one AS to the other AS. Each ASBR behaves
as a PE and treats the other as if it were a CE. as a PE and treats the other as if it were a CE.
Figure 12 shows a simplified (excerpt) topology of two ASes A and B Figure 12 shows a simplified (excerpt) topology of two ASes A and B
with a focus on the interconnection links between these two ASes. with a focus on the interconnection links between these two ASes.
skipping to change at page 32, line 10 skipping to change at page 33, line 10
Figure 13 shows an example of a message body that is received from Figure 13 shows an example of a message body that is received from
the network controller of AS A (with a focus on the NNIs shown in the network controller of AS A (with a focus on the NNIs shown in
Figure 12). Figure 12).
{ {
"ietf-network:networks": { "ietf-network:networks": {
"network": [ "network": [
{ {
"network-types": { "network-types": {
"sap-type": [ "service-type": [
"ietf-vpn-common:l3vpn" "ietf-vpn-common:l3vpn"
] ]
}, },
"network-id": "an-id", "network-id": "foo:an-id",
"node": [ "node": [
{ {
"node-id": "asbr-a1", "node-id": "asbr-a1",
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#11", "sap-id": "sap#11",
"description": "parent inter-as link#1", "description": "parent inter-as link#1",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b1", "peer-sap-id": "asbr-b1",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#12", "sap-id": "sap#12",
"description": "parent inter-as link#2", "description": "parent inter-as link#2",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b1", "peer-sap-id": "asbr-b1",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#13", "sap-id": "sap#13",
"description": "vpn1", "description": "vpn1",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b1", "peer-sap-id": "asbr-b1",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#14", "sap-id": "sap#14",
"description": "vpn2", "description": "vpn2",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b1", "peer-sap-id": "asbr-b1",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
}, },
{ {
"node-id": "asbr-a2", "node-id": "asbr-a2",
"ietf-sap-ntw:service": [ "ietf-sap-ntw:service": [
{ {
"sap-type": "ietf-vpn-common:l3vpn", "service-type": "ietf-vpn-common:l3vpn",
"service-attachment-point": [ "sap": [
{ {
"attachment-id": "sap#11", "sap-id": "sap#11",
"description": "parent inter-as link#1", "description": "parent inter-as link#1",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b2", "peer-sap-id": "asbr-b2",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#12", "sap-id": "sap#12",
"description": "parent inter-as link#2", "description": "parent inter-as link#2",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b2", "peer-sap-id": "asbr-b2",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#21", "sap-id": "sap#21",
"description": "vpn1", "description": "vpn1",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b2", "peer-sap-id": "asbr-b2",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
}, },
{ {
"attachment-id": "sap#22", "sap-id": "sap#22",
"description": "vpn2", "description": "vpn2",
"role": "ietf-sap-ntw:nni", "role": "ietf-sap-ntw:nni",
"peer-customer-sap-id": "asbr-b2", "peer-sap-id": "asbr-b2",
"service-status": { "service-status": {
"status": "ietf-vpn-common:op-up" "status": "ietf-vpn-common:op-up"
} }
} }
] ]
} }
] ]
} }
] ]
} }
] ]
} }
} }
Figure 13: An Example of SAP Usage for NNI Figure 13: An Example of SAP Usage for NNI
Authors' Addresses Appendix D. An Example of Using the SAP Network Model in Service
Creation
This section describes an example to illustrate the use of the SAP
model for service creation purposes.
An example of a SAP topology is presented in Figure 8. This example
includes four PEs with their SAPs, as well as the customer
information.
Let us assume that an operator wants to create an L3VPN service
between two PEs (PE3 and PE4) that are servicing two CEs (CE6 and
CE7). To that aim, the operator would query the SAP topology and
would obtain a response similar to what is depicted in Figure 8.
That response indicates that the SAPs having "sap#31" and "sap#43" as
attachment identifiers do not have any installed services. Once the
"free" SAPs are identified, the 'interface-type' and 'encapsulation-
type' are checked to see if the requested L3VPN service is compatible
with the SAP characteristics. If they are compatible, as proposed in
Section 5, the 'attachment-id' value can be used as the VPN network
access identifier in an L3NM create query.
Let us now assume that, instead of the L3VPN service, the operator
wants to set up an L2VPN service. If the 'interface-type' is a
physical port, a new logical SAP can be created using the SAP model
to cope with the service needs (e.g., the 'encapsulation-type'
attribute can be set to 'ietf-vpn-common:vlan-type'). Once the
logical SAP is created, the 'attachment-id' of the new SAP is used to
create an L2NM instance (Section 7.6 of [I-D.ietf-opsawg-l2nm]).
Authors' Addresses
Mohamed Boucadair (editor) Mohamed Boucadair (editor)
Orange Orange
France France
Email: mohamed.boucadair@orange.com Email: mohamed.boucadair@orange.com
Oscar Gonzalez de Dios Oscar Gonzalez de Dios
Telefonica Telefonica
Madrid Madrid
Spain Spain
Email: oscar.gonzalezdedios@telefonica.com Email: oscar.gonzalezdedios@telefonica.com
 End of changes. 108 change blocks. 
164 lines changed or deleted 209 lines changed or added

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