module ietf-sap-ntw {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-sap-ntw";
prefix sap;
import ietf-network-topology {
prefix nt;
reference
"RFC 8345: A YANG Data Model for Network
Topologies, Section 6.2";
}
import ietf-network {
prefix nw;
reference
"RFC 8345: A YANG Data Model for Network
Topologies, Section 6.1";
}
import ietf-vpn-common {
prefix vpn-common;
reference
"RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
VPNs";
}
organization
"IETF OPSA (Operations and Management Area) Working Group ";
contact
"WG Web:
WG List:
Editor: Mohamed Boucadair
Author: Oscar Gonzalez de Dios
Author: Samier Barguil
Author: Qin Wu
Author: Victor Lopez
";
description
"This YANG module defines a model for representing, managing,
and controlling the Service Attachment Points (SAPs) in the
network topology.
Copyright (c) 2022 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 Revised 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
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.";
revision 2022-04-11 {
description
"Initial version";
reference
"RFC XXXX: A YANG Network Model for Service Attachment
Points (SAPs)";
}
identity virtual-network {
base vpn-common:service-type;
description
"Virtual network. Refers to a logical network instance
that is built over a physical network.";
reference
"RFC 8453: Framework for Abstraction and Control of TE
Networks (ACTN)";
}
identity enhanced-vpn {
base vpn-common:service-type;
description
"Enhanced VPN (VPN+). VPN+ is an approach that is
based on existing VPN and Traffic Engineering (TE)
technologies but adds characteristics that specific
services require over and above traditional VPNs.";
reference
"draft-ietf-teas-enhanced-vpn:
A Framework for Enhanced Virtual Private Network
(VPN+) Services";
}
identity network-slice {
base vpn-common:service-type;
description
"IETF network slice. An IETF network slice
is a logical network topology connecting a number of
endpoints using a set of shared or dedicated network
resources that are used to satisfy specific service
objectives.";
reference
"draft-ietf-teas-ietf-network-slices:
Framework for IETF Network Slices";
}
identity sdwan {
base vpn-common:service-type;
description
"PE-based Software-Defined Wide Area Network (SDWAN).";
reference
"draft-ietf-bess-bgp-sdwan-usage: BGP Usage for SDWAN
Overlay Network";
}
identity basic-connectivity {
base vpn-common:service-type;
description
"Basic IP connectivity. This is, for example, a plain
connectivity offered to Enterprises over a dedicated
or shared MPLS infrastructure.";
}
identity interface-role {
description
"Base identity for the network role of an interface.";
}
identity uni {
base interface-role;
description
"User-Network Interface (UNI).";
}
identity nni {
base interface-role;
description
"Network-to-Network Interface (NNI).";
}
identity interface-type {
description
"Base identity for the interface type.";
}
identity phy {
base interface-type;
description
"Physical port.";
}
identity loopback {
base interface-type;
description
"Loopback interface.";
}
identity lag {
base interface-type;
description
"Link Aggregation Group (LAG) interface.";
}
identity irb {
base interface-type;
description
"Integrated Routing Bridge (IRB). An IRB typically
connects an IP-VRF to a bridge domain.";
}
identity local-bridge {
base interface-type;
description
"A local bridge reference to accommodate, e.g.,
implementations that require internal bridging.
When such a type is used, a reference to a local
bridge domain is used to identify the interface.";
}
identity logical {
base interface-type;
description
"Refers to a logical sub-interface that is typically
used to bind a service. This type is used only
if none of the other logical types can be used.";
}
grouping sap-information {
description
"Service Attachment Point (SAP) information.";
list sap {
key "sap-id";
description
"The Service Attachment Points are abstraction of
the points where network services such as L3VPNs,
L2VPNs, or network slices can be attached to.";
leaf sap-id {
type string;
description
"Indicates an identifier that uniquely identifies
SAP within a node.";
}
leaf description {
type string;
description
"A textual description of the SAP.";
}
leaf parent-termination-point {
type nt:tp-id;
description
"Indicates the parent termination point to
which the SAP is attached to. A termination
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 {
type identityref {
base interface-type;
}
description
"The type of the interface to which the SAP is bound.";
}
leaf encapsulation-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"Encapsulation type of the interface to which the
SAP is bound.";
}
leaf role {
type identityref {
base interface-role;
}
description
"Indicates the role of a SAP.";
}
leaf peer-sap-id {
type string;
description
"Indicates an identifier of the peer's termination
identifier (e.g., Customer Edge (CE)). This
information can be used for correlation purposes,
such as identifying the SAP that is attached to
an endpoint that is provided in a service request.";
}
container sap-status {
config "false";
description
"Indicates the SAP status.";
uses vpn-common:oper-status-timestamp;
}
container service-status {
config "false";
description
"Indicates the service status.";
uses vpn-common:oper-status-timestamp;
}
}
}
augment "/nw:networks/nw:network/nw:network-types" {
description
"Introduces a new network type for SAP network.";
container sap-network {
presence "Indicates SAP network type.";
description
"The presence of the container node indicates the
SAP network type.";
leaf-list service-type {
type identityref {
base vpn-common:service-type;
}
description
"Indicates the set of supported service types.";
}
}
}
augment "/nw:networks/nw:network/nw:node" {
when "../nw:network-types/sap:sap-network" {
description
"Augmentation parameters apply only for SAP
networks.";
}
description
"SAP parameters for the node level.";
list service {
key "service-type";
description
"A list of supported service types for the node.";
leaf service-type {
type identityref {
base vpn-common:service-type;
}
description
"Indicates a service type.";
}
uses sap-information;
}
}
}