Internet DRAFT - draft-chen-opsawg-composite-vpn-dm
draft-chen-opsawg-composite-vpn-dm
OPSA Working Group R. Chen
Internet-Draft L. Zhang
Intended status: Standards Track H. Deng
Expires: April 27, 2017 Huawei Technologies
L. Geng
China Mobile
C. Xie
China Telecom
October 24, 2016
YANG Data Model for Composite VPN Service Delivery
draft-chen-opsawg-composite-vpn-dm-00
Abstract
The operator facing data model is valuable to reduce the operations
and management. This document describes the YANG data model of the
composite VPN for operators to provision, optimize, monitor and
diagnose the end to end PE-based VPN services across multiple
autonomous systems (ASes). The model from this document are limited
to multiple ASes within one service provider.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://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 April 27, 2017.
Chen, et al. Expires April 27, 2017 [Page 1]
Internet-Draft Composite VPN Service Delivery Model October 2016
Copyright Notice
Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Use Cases and Usage . . . . . . . . . . . . . . . . . . . . . 4
4. Data Model Design Requirements . . . . . . . . . . . . . . . 5
5. Design of the Data Model . . . . . . . . . . . . . . . . . . 7
5.1. Composite VPN . . . . . . . . . . . . . . . . . . . . . . 7
5.2. Access Point . . . . . . . . . . . . . . . . . . . . . . 8
5.2.1. Termination Point Basic Information . . . . . . . . . 10
5.2.2. QoS . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.2.3. Routing Protocol . . . . . . . . . . . . . . . . . . 11
5.3. Segmental VPN . . . . . . . . . . . . . . . . . . . . . . 11
6. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 11
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45
8. Security Considerations . . . . . . . . . . . . . . . . . . . 45
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.1. Normative References . . . . . . . . . . . . . . . . . . 46
10.2. Informative References . . . . . . . . . . . . . . . . . 46
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46
1. Introduction
Internet Service Providers (ISPs) have significant interest on
providing Provider Edge (PE) based virtual private network (VPN)
services, in which the tunnel endpoints are the PE devices. In this
case, the Customer Edge (CE) devices do not need to have any special
VPN capabilities. Customers can reduce support costs by outsourcing
VPN operations to ISPs and using the obtained connectivity.
Typically, customers require either layer 2 or layer 3 connectivity
services to exchange traffic among a collection of sites. The ISP
Chen, et al. Expires April 27, 2017 [Page 2]
Internet-Draft Composite VPN Service Delivery Model October 2016
gets the requirement and deploys the end to end VPN with an
orchestrator across multiple autonomous systems (AS) within its
administration.
The YANG data model[RFC7950] described in
[I-D.ietf-l3sm-l3vpn-service-model] is used for communication between
customers and network operators. It facilitates customers to request
the layer 3 VPN service while concealing many provider parameters
they do not need to know.
However, the network operators have a different view of the managed
network. An operator facing data model is required to reduce the
operations and management while still having full control on the
network. So that the operators can provision, optimize, monitor and
diagnose the VPN deployment based on the existing network
infrastructure. Standardization of such a operator facing data model
can help operators to operate and manage the VPN deployment in a
standard way, and facilitate automation of optimization and diagnosis
by standardizing the communication among multi-vendor services such
as inventory, provisioning, monitoring, analysis and so on.
This document describes the generic VPN data model from the
operators' view for the PE-based VPN service configuration. It aims
at providing a simplified configuration on how the requested VPN
service is to be deployed over the shared network infrastructure.
This data model is limited to PE-Based VPNs as described in RFC 4110
[RFC4110] with the combination of layer 2 and layer 3 VPN services
across multiple ASes within one ISP.
2. Definitions
o Customer Facing Service: The highly abstracted service which can
be easily understood and consumed by the customer. With the
emerging of cloud computing, customers require fast, easy to use,
and on demand service from network operators.
o Operator Facing Service: The service provided for the operator to
analyse, optimize, monitor and diagnose the network. It usually
provides more detailed information related to the operations and
management.
o Segmental VPN service: The VPN service deployed for one VPN
segment within one AS.
o Composite VPN service: The VPN service deployed within the ISP
administrative domain across one or more segments. It could be a
combination of layer 2 and layer 3 VPN services for each segment.
Chen, et al. Expires April 27, 2017 [Page 3]
Internet-Draft Composite VPN Service Delivery Model October 2016
3. Use Cases and Usage
In practice, ISP may have various scenarios for the end to end VPN
service deployment depending on the network infrastructure and the
customer sites connectivity requirements. It will consequently
generate requirements of the generic Composite VPN service delivery
model design. The Composite VPN data model described in this
document covers the following scenarios:
o Multi-AS VPN Service: Customer sites are located in different
autonomous systems(AS). ISP need to operate and manage the VPN
service across multiple ASes. There are several different
deployment scenarios in this case, e.g. single provider and
multiple providers. This document only considers a single
provider has multiple ASes which is less complex than the multi-
provider and multi-AS case.
o Composite L2 and/or L3 VPN Service: Although the customer may
request either layer 2 or layer 3 VPN service, the network
infrastructure among customer sites may require different VPN
service in the corresponding AS. So, an end to end VPN service
within the ISP domain may be a composition of multiple segmental
layer 2 and layer 3 VPN services. For example, a typical use case
is that the enterprise need a layer 3 VPN connection to the remote
data center. The end to end VPN connection may go across the
metro access network and the IP core network. So the actual
deployment of the customer's request in ISP network maybe the
Virtual Private Wire Service (VPLS) in the metro access network
and the L3VPN in the IP WAN.
o Dynamic Site Insertion: The customer site that is not in the
previously provisioned VPN can be quickly included.
A typical usage of this operator facing model is as a description of
the end to end PE based VPN service for a network orchestration layer
[I-D.wu-opsawg-service-model-explained] which can then be translated
to Segmental VPN information for the configuration of domain
controllers. As shown in the following figure, while, for example,
users may send highly abstracted layer 3 VPN service requests to the
service orchestrator, it cannot provide enough information for
operators to operate and manage an end to end VPN service. The
operator facing interface enables configuration of VPN deployment by
introducing more network knowledge and governance policies. For
example :
o Add the operational requirements for operation visualization,
monitoring, and diagnosis. This requires more information on the
Segmental VPN deployment in each AS.
Chen, et al. Expires April 27, 2017 [Page 4]
Internet-Draft Composite VPN Service Delivery Model October 2016
o Optimize the VPN deployment of the customer's requests based on
the exiting networking, e.g. deploy the L3VPN request from the
customer to multiple VPN segments (IP Radio Access Network, Packet
Transport Network, IP Core) in the end to end environment.
o Manage various policies for different customers.
Customer Facing +
Model |
+------v-------+ +-------------+
| Service | | Application |
| Orchestrator | | BSS/OSS |
+------+-------+ +------+------+
| |
Operator Facing +--------+ +---------+
Model | |
+----v---v-----+
| Network |
| Orchestrator |
+----+---+-----+
| |
+---------+ +-----------+
| |
+------+------+ +------+------+
| Controller1 | | Controller2 |
+------+------+ +------+------+
| |
+---------+-----------+ +----------+----------+
| AS1 L2VPN | | AS2 L3VPN |
+-------+ | +------+ +------+ | | +------+ +------+ | +-------+
| Site1 +----+ PE11 +---+ PE12 +------+ PE21 +---+ PE22 +----+ Site2 |
+-------+ | +------+ +------+ | | +------+ +------+ | +-------+
+---------------------+ +---------------------+
4. Data Model Design Requirements
In order to describe the operator facing interface for the end to end
PE based VPN service, the data model design should address the
following requirements:
1. As the operator facing model, the model need to facilitate the
operator to provision, optimize, monitor and diagnose the end to
end PE-based VPN services across multiple autonomous systems.
The model should be described from the operator's view of the
VPN, not from the customer's view. For example, when the
customer requests a VPN service, this can be expressed as a set
of sites with the interconnected VPN. Both the sites and the VPN
Chen, et al. Expires April 27, 2017 [Page 5]
Internet-Draft Composite VPN Service Delivery Model October 2016
model only consist of information that can be provided by the
customer. For the same VPN service, the operator need to know
information for operations and management, e.g. the access points
on the PE, the VPN segment in each AS, and even the inter-
connection between two ASes.
2. The model facilitates that the operator can quickly find all the
information related to one end-to-end VPN of a particular
customer. So that the operator can easily deal with one end to
end VPN deployment. For example, the operator can trace how a
VPN service request from the customer is really deployed
(possibly across several ASes) in the network infrastructure. So
when a connection failure happens, the operator can quickly
determine where the problem is.
3. The model must be able to express various number of Segmental VPN
composition. As described in Section 3, the operator need to
operate and manage VPN among customer sites located in different
autonomous systems(AS). In this case, an end to end VPN service
deployed across multiple ASes, each of which can be described as
a Segmental VPN. So the model should have the flexibility to
describe both single AS and multi-AS VPN cases.
4. The model should include the basic information about the end to
end VPN service. On one hand the operator can easily understand
the deployment of one customer request. On the other hand, the
overall information contains many parameters that can be referred
and reused by many associated Segmental VPN models. This could
be an abstract of the customer facing VPN model with information
can be reused from operator's view.
5. The model should allow to define one or multiple Segmental VPN
information for each AS among the sites. As described in
Section 3, an end to end VPN service within the ISP domain may
consist of multiple segmental layer 2 and layer 3 VPN services.
So the Segmental VPN description should have the capability to
address the type of technology in use, and the corresponding
parameters that will be used for the operations and management.
6. The model should facilitate operators to know the Access Point
(AP) information for both Composite VPN and Segmental VPN. The
AP of a Composite VPN is the interface between the provider
network and the customer network. The AP of the Segmental VPN is
the interface between two adjacent Segmental VPNs. The AP
information is crucial because it has to match the remote peer
for connectivity, and it usually contains information that is
useful for the operations and management. For example, the AP
Chen, et al. Expires April 27, 2017 [Page 6]
Internet-Draft Composite VPN Service Delivery Model October 2016
may indicate what's the peer connected, and the routing protocol
that is used for exchanging routing information, and so on.
7. The VPN provisioning policy is optional but recommended in the
model. The operator can predefine several VPN provisioning
policies based on the offered business. The policy description
may include the naming, path selection, VPN concatenation rules,
and resource pools, such as route target, route distinguisher,
VLAN, and IP address. So when the customer requests a VPN, the
system can automatically generate the end to end VPN planning
according to the provisioning policies. To be simple, the model
can only have an ID index refers to the VPN provisioning policy
defined in other service applications.
8. The capability to describe the various QoS requirements should be
supported by the model. There can be two kinds of QoS
configuration.
* The AP based QoS: describes the QoS requirements on the access
point. For example, the CAR (committed access rate)
definition on the inbound or outbound ports.
* The flow based QoS: describes the QoS requirements on a flow.
This enables the fine grained QoS control with the capability
of identifying the flow.
5. Design of the Data Model
The PE-based VPN service is modeled with a recursive pattern. The
VPN service deployed within each AS is modeled as a Segmental VPN
object including the VPN description information within this AS and
the Access Points (AP) that are used to connect to the peered device
or AS. As an end to end VPN service within the ISP domain, it's then
modeled as a Composite VPN object with the overall VPN information
and the APs that are used to connect to the peered customer sites.
5.1. Composite VPN
The composedVPN top container contains the business type, VPN basic
information, a list of segment VPN information, a list of access
point information and and some overall information. The id MUST be
unique for the reference of this composed VPN service. The tenantID
associates this VPN service to a dedicated customer. The
businessTypeID can associate composed VPN with a business template.
The vpnBasicInfo object here includes basic information for this
Composite VPN service. I.e., all the properties (e.g., topology,
serviceType) in this object describe the overview that the customer
want, no matter with any segment VPN information. The
Chen, et al. Expires April 27, 2017 [Page 7]
Internet-Draft Composite VPN Service Delivery Model October 2016
accessPointList describes a list of APs that are used to connect to
the peered customer sites. A Composite VPN includes one or more
Segmental VPN.
+--rw composedVpns* [id]
+--rw id yang:uuid
+--rw name? string
+--rw description? string
+--rw tenantId? yang:uuid
+--rw businessTypeID? yang:uuid
+--rw vpnBasicInfo
| ...
+--ro operStatus? CommonTypes:OperStatus
+--ro syncStatus? CommonTypes:SyncStatus
+--rw startTime? yang:date-and-time
+--rw segVpnList* [index]
| ...
+--rw accessPointList* [id]
...
5.2. Access Point
The accessPointList models a list of APs including the access or
attachment information for the remote peer. AP is provided by the PE
either in the Composite VPN view or in the Segmental VPN view. The
AP uses working layer and corresponding layer information to describe
the different configurations in Composite VPN level and the Segmental
VPN level.
+--rw accessPointList* [id]
+--rw id yang:uuid
+--rw name? string
+--rw description? string
+--rw neID? yang:uuid
+--rw containingMainTPID? yang:uuid
+--rw tpBasicInfo
| +--rw edgePointRole? CommonTypes:EdgePointRole
| +--rw topologyRole? CommonTypes:TopoNodeRole
| +--rw Type? CommonTypes:TpType
| +--rw workingLayer? CommonTypes:LayerRate
| +--rw typeSpecList* [layerRate]
| | +--rw layerRate CommonTypes:LayerRate
| | +--rw (specValue)?
| | +--:(LR_Ethernet)
| | | +--rw ethernetSpec
| | | +--rw accessType? CommonTypes:EthernetEncapType
| | | +--rw (accessVlanValue)?
| | | | +--:(QinQVlan)
Chen, et al. Expires April 27, 2017 [Page 8]
Internet-Draft Composite VPN Service Delivery Model October 2016
| | | | | +--rw qinqVlan
| | | | | +--rw cvlanList* uint64
| | | | | +--rw svlanList? uint64
| | | | +--:(DOT1Q)
| | | | +--rw dot1q
| | | | +--rw dot1qVlanList* uint64
| | | +--rw vlanAction? CommonTypes:EthernetAction
| | | +--rw actionValue? string
| | +--:(LR_IP)
| | | +--rw ipSpec
| | | +--rw masterIp? string
| | | +--rw mtu? uint64
| | +--:(LR_Vxlan)
| | +--rw vxlanSpec
| | +--rw vni? uint32
| | +--rw vtepIP? string
| +--rw adminStatus? CommonTypes:AdminStatus
| +--rw tpQosNode
| | +--rw qosConfigType? QosConfigType
| | +--rw qosDetailType? QosDetailType
| | +--rw inTpCar* [index]
| | | +--rw index uint32
| | | +--rw dataKind? dataKind
| | | +--rw actionType? ActionType
| | | +--rw action? string
| | +--rw outTpCar* [index]
| | | +--rw index uint32
| | | +--rw dataKind? dataKind
| | | +--rw actionType? ActionType
| | | +--rw action? string
| | +--rw inQosProfileId? yang:uuid
| | +--rw outQosProfileId? yang:uuid
| +--rw flowServices* [index]
| | +--rw qosConfigType? QosConfigType
| | +--rw flowQosTemplateID? yang:uuid
| | +--rw flowServices* [flowClassifierId]
| | +--rw flowClassifierId yang:uuid
| | +--rw flowBehaviors* [index]
| | +--rw index uint32
| | +--rw dataKind? dataKind
| | +--rw actionType? ActionType
| | +--rw action? string
| +--rw addtionalInfo* [name]
| +--rw name string
| +--rw value? string
+--rw peerCeTp
| +--rw ceID? yang:uuid
| +--rw ceDirectNeID? yang:uuid
Chen, et al. Expires April 27, 2017 [Page 9]
Internet-Draft Composite VPN Service Delivery Model October 2016
| +--rw ceDirectTPID? yang:uuid
| +--rw ceIfmasterIp? string
| +--rw location? string
+--rw routeProtocolSpec* [type]
| +--rw type CommonTypes:RouteProtocolType
| +--rw (para)?
| +--:(staticRouting)
| | +--rw staticRouteItems* [index]
| | +--rw index uint32
| | +--rw destinationCidr? string
| | +--rw egressTP? yang:uuid
| | +--rw routePreference? string
| | +--rw nextHopIp? string
| +--:(bgp)
| +--rw bgpProtocols* [index]
| +--rw index uint32
| +--rw peerAsNumber? uint64
| +--rw bgpMaxPrefix? int32
| +--rw bgpMaxPrefixAlarm? uint32
| +--rw peerIp? string
+--ro operStatus? CommonTypes:OperStatus
5.2.1. Termination Point Basic Information
The tpBasicInfo describes the basic information that is used to
express the design intent of the VPN from the Termination Point (TP)
of view. That means the information described here is relative
static, no matter which exact peer TP is going to connect.
The typeSpecList describes the layered information on the TP. It
describes in detail on the ethernet layer information, or the IP
layer and VxLan information if any higher layer protocol is enabled.
5.2.2. QoS
This model support two kinds of QoS description as described in the
section 4:
o TP based QoS: describes the OoS requirements on a termination
point. For example, the CAR (committed access rate) definition on
the inbound or outbound ports.
o Flow based QoS: describes the QoS requirements on a flow. This
enables the fine grained QoS control with the capability of
identifying the flow.
Chen, et al. Expires April 27, 2017 [Page 10]
Internet-Draft Composite VPN Service Delivery Model October 2016
5.2.3. Routing Protocol
The routeProtocolSpec object describes information of the routing
protocol that is used to exchange the routing information with the
remote peer. This object is extensible with any possible routing
protocols. The BGP and static routing listed are examples to show
how these two widely used solutions are described.
5.3. Segmental VPN
The segVpnList describes a list of Segmental VPN information which is
only from the segment point of view. I.e., the description here
takes care about how the Segmental VPN looks like and how it can
communicate with peered devices outside this Segmental VPN. The
segment information is composed of basic VPN information and a list
of APs. The set of APs in the description are interfaces that
customer sites or other segment VPNs can attach. In different
scenarios, each Segmental VPN could be a layer 2 VPN, or layer 3 VPN,
or even a termination point.
+--rw segVpnList* [index]
+--rw index uint32
+--rw vpnType? string
+--rw vpnRole? VPNTypes:ProtectionRole
+--rw vpnInfo
+--rw (vpnType)?
+--:(wanVpn)
+--rw vpn
+--rw id? yang:uuid
+--rw name? string
+--rw description? string
+--rw vpnBasicInfo
| +--rw topology? CommonTypes:Topology
| +--rw serviceType? VPNTypes:ServiceType
| +--rw technology? VPNTypes:VPNTunnelType
| +--rw adminStatus? CommonTypes:AdminStatus
+--ro operStatus? CommonTypes:OperStatus
+--ro syncStatus? CommonTypes:SyncStatus
+--rw accessPointList* [id]
...
6. YANG Module
<CODE BEGINS> file "ietf-nvo-vpn.yang"
module ietf-nvo-vpn {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-vpn" ;
prefix VPN ;
Chen, et al. Expires April 27, 2017 [Page 11]
Internet-Draft Composite VPN Service Delivery Model October 2016
import ietf-yang-types {
prefix yang;
}
import ietf-nvo-common-types {
prefix CommonTypes;
}
import ietf-nvo-tp {
prefix TP;
}
import ietf-nvo-vpn-types {
prefix VPNTypes;
}
organization "" ;
contact "";
description "ietf-nvo-vpn";
revision 2016-10-24 {
reference "draft-chen-opsawg-composite-vpn-dm-00";
}
container nvoVPNMgr{
description "";
list composedVPNs {
key "id";
description "";
uses VPN:ComposedVPN;
}
}
grouping ComposedVPN {
description "ComposedVPN Grouping.";
leaf id {
type yang:uuid ;
description "UUID-STR for service ." ;
}
leaf name {
type string {length "0..200";}
description "Human-readable name for the service." ;
}
leaf description {
type string {length "0..200";}
description "Detailed specification for the servcie." ;
}
leaf tenantId {
Chen, et al. Expires April 27, 2017 [Page 12]
Internet-Draft Composite VPN Service Delivery Model October 2016
type yang:uuid;
description "UUID-STR for tenant." ;
}
leaf businessTypeID {
type yang:uuid;
description "business Type Name" ;
}
container vpnBasicInfo {
description "VPN BASIC INFO";
uses VPNTypes:VPNBasicInfo;
}
leaf operStatus {
type CommonTypes:OperStatus;
config false;
description "Operational status." ;
}
leaf syncStatus {
type CommonTypes:SyncStatus;
config false;
description "Sync status." ;
}
leaf startTime {
type yang:date-and-time;
description "Service lifecycle: request for service start
time." ;
}
list segVpnList {
key "index";
description "SegVpn list ";
uses VPN:SegmentVPN;
}
list accessPointList {
key "id";
description "TP list of the access links which associated
with CE and PE";
uses TP:Tp;
}
}
grouping SegmentVPN {
description "SegmentVPN Grouping.";
Chen, et al. Expires April 27, 2017 [Page 13]
Internet-Draft Composite VPN Service Delivery Model October 2016
leaf index {
type uint32;
description "index of segment VPN in a composed VPN.";
}
leaf vpnType {
type string {length "0..30";}
description "value: nop/wanVpn";
}
leaf vpnRole {
type VPNTypes:ProtectionRole;
description "value: nop|vpn";
}
container vpnInfo {
description "vpn information";
choice vpnType {
description "vpn type.";
case wanVpn {
container vpn {
description "vpn.";
uses VPN:VPN;
}
}
}
}
}
grouping VPN {
description "VPN Grouping.";
leaf id {
type yang:uuid ;
description "UUID-STR for VPN." ;
}
leaf name {
type string {length "0..200";}
description "Human-readable name for the service." ;
}
leaf description {
type string {length "0..200";}
description "Detailed specification for the servcie." ;
}
container vpnBasicInfo {
description "vpn basic info" ;
Chen, et al. Expires April 27, 2017 [Page 14]
Internet-Draft Composite VPN Service Delivery Model October 2016
uses VPNTypes:VPNBasicInfo;
}
leaf operStatus {
type CommonTypes:OperStatus;
config false;
description "Operational status." ;
}
leaf syncStatus {
type CommonTypes:SyncStatus;
config false;
description "Sync status." ;
}
list accessPointList {
key "id";
description "TP list of the access links which associated
with CE and PE";
uses TP:Tp;
}
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-nvo-common-types.yang"
module ietf-nvo-common-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-common-types" ;
prefix CommonTypes ;
import ietf-yang-types {
prefix yang;
}
organization "" ;
contact "";
description "ietf-nvo-common-types";
revision 2016-10-24 {
reference "draft-chen-opsawg-composite-vpn-dm-00";
}
typedef AdminStatus {
type enumeration {
enum active {
description "Active status";
}
enum inactive {
description "Inactive status";
}
Chen, et al. Expires April 27, 2017 [Page 15]
Internet-Draft Composite VPN Service Delivery Model October 2016
enum partial {
description "Partial status";
}
}
description "AdminStatus";
}
typedef OperStatus {
type enumeration {
enum up {
description "Up status";
}
enum down {
description "Down status";
}
enum degrade {
description "Degrade status";
}
}
description "OperStatus";
}
typedef SyncStatus {
type enumeration {
enum SYNC {
description "Sync status";
}
enum OUT-SYNC {
description "Out sync status";
}
}
description "SyncStatus";
}
typedef Topology {
type enumeration {
enum full-mesh {
description "full-mesh";
}
enum point_to_multipoint {
description "point_to_multipoint";
}
enum point_to_point {
description "point_to_point";
}
enum complex {
description "complex";
}
Chen, et al. Expires April 27, 2017 [Page 16]
Internet-Draft Composite VPN Service Delivery Model October 2016
}
description "Topology";
}
typedef Technology {
type enumeration {
enum mpls {
description "mpls";
}
enum rosen_multivpn {
description "rosen_multivpn";
}
enum ng_multivpn {
description "ng_multivpn";
}
enum vxlan_overlay_l3vpn {
description "vxlan_overlay_l3vpn";
}
enum eth_oversdh {
description "eth_oversdh";
}
}
description "Technology";
}
typedef TopoNodeRole {
type enumeration {
enum other {
description "other";
}
enum hub {
description "hub";
}
enum spoke {
description "spoke";
}
}
description "TopoNodeRole";
}
typedef TpType{
type enumeration {
enum nop {
description "nop";
}
enum PTP {
description "PTP";
}
Chen, et al. Expires April 27, 2017 [Page 17]
Internet-Draft Composite VPN Service Delivery Model October 2016
enum CTP {
description "CTP";
}
enum TRUNK {
description "TRUNK";
}
enum LoopBack {
description "LoopBack";
}
enum TPPool {
description "TPPool";
}
}
description "TpType";
}
typedef LayerRate{
type enumeration {
enum LR_UNKNOW {
description "LR_UNKNOW";
}
enum LR_IP {
description "LR_IP";
}
enum LR_ETHERNET {
description "LR_ETHERNET";
}
enum LR_VXLAN {
description "LR_VXLAN";
}
}
description "LayerRate";
}
typedef EthernetEncapType {
type enumeration {
enum DEFAULT {
description "DEFAULT";
}
enum DOT1Q {
description "DOT1Q";
}
enum QINQ {
description "QINQ";
}
enum UNTAG {
description "UNTAG";
}
Chen, et al. Expires April 27, 2017 [Page 18]
Internet-Draft Composite VPN Service Delivery Model October 2016
}
description "EthernetEncapType";
}
typedef EthernetAction {
type enumeration {
enum nop {
description "nop";
}
enum UNTAG {
description "UNTAG";
}
enum STACKING {
description "STACKING";
}
}
description "EthernetAction";
}
typedef RouteProtocolType {
type enumeration {
enum staticRouting {
description "staticRouting";
}
enum bgp {
description "bgp";
}
enum rip {
description "rip";
}
enum ospf {
description "ospf";
}
enum isis {
description "isis";
}
}
description "RouteProtocolType";
}
typedef QosPriorityType {
type enumeration {
enum nop {
description "nop";
}
enum 802dot1p {
description "802dot1p";
}
Chen, et al. Expires April 27, 2017 [Page 19]
Internet-Draft Composite VPN Service Delivery Model October 2016
enum dscp {
description "dscp";
}
enum mplsExp {
description "mplsExp";
}
enum cos {
description "cos";
}
enum ipPrecedence {
description "ipPrecedence";
}
}
description "QosPriorityType";
}
typedef ColorType {
type enumeration {
enum nop {
description "nop";
}
enum green {
description "green";
}
enum yellow {
description "yellow";
}
enum red {
description "red";
}
}
description "ColorType";
}
grouping nvStringList{
description "nvStringList Grouping.";
list nvstringList {
key "name";
uses CommonTypes:nvstring;
description "nvStringList";
}
}
grouping nvstring {
description "nvstring Grouping.";
Chen, et al. Expires April 27, 2017 [Page 20]
Internet-Draft Composite VPN Service Delivery Model October 2016
leaf name {
type string;
description "string name ";
}
leaf value {
type string;
description "string value";
}
}
typedef FlowClassifierType {
type enumeration {
enum nop {
description "nop";
}
enum 802dot1p {
description "802dot1p";
}
enum dscp {
description "dscp";
}
enum cos {
description "cos";
}
enum mpls-exp {
description "mpls-exp";
}
enum sourceIP {
description "sourceIP";
}
enum destinationIP {
description "destinationIP";
}
}
description "FlowClassifierType";
}
grouping ObjectIdentifiers {
description "ObjectIdentifiers Grouping.";
list ObjectIdentifiers {
key "obejctId";
uses CommonTypes:ObjectIdentifier;
description "ObjectIdentifiers";
}
}
grouping ObjectIdentifier {
Chen, et al. Expires April 27, 2017 [Page 21]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "ObjectIdentifier Grouping.";
leaf objectType {
type CommonTypes:ObjectType;
description "objectType";
}
leaf obejctId {
type yang:uuid;
description "obejctId";
}
leaf roleLable {
type string {length "0..200";}
description "here is the route role";
}
}
typedef ObjectType {
type enumeration {
enum nop {
description "nop";
}
enum SEG-VPN {
description "SEG-VPN";
}
enum TP {
description "TP";
}
enum TPL {
description "TPL";
}
enum NE {
description "NE";
}
enum BUSINESSTYPE {
description "BUSINESSTYPE";
}
enum COMPOSED-VPN {
description "COMPOSED-VPN";
}
enum SUBNETWORK {
description "SUBNETWORK";
}
}
description "ObjectType";
}
Chen, et al. Expires April 27, 2017 [Page 22]
Internet-Draft Composite VPN Service Delivery Model October 2016
typedef EdgePointRole {
type enumeration {
enum nop {
description "nop";
}
enum PE {
description "PE";
}
enum P {
description "P";
}
enum UNI {
description "UNI";
}
enum NNI {
description "NNI";
}
enum AsbTP {
description "AsbTP";
}
}
description "EdgePointRole";
}
typedef DomainRole {
type enumeration {
enum nop {
description "nop";
}
enum external {
description "external";
}
enum internal {
description "internal";
}
enum asb {
description "asb";
}
}
description "DomainRole";
}
grouping CommandResult {
description "this is the common result which is send back by
server by RPC response";
leaf resultCode {
type int32;
description "resultCode";
Chen, et al. Expires April 27, 2017 [Page 23]
Internet-Draft Composite VPN Service Delivery Model October 2016
}
leaf-list successResourceList {
type yang:uuid;
description "successResourceList";
}
list failedResourceList {
uses CommonTypes:FailedNode;
description "failedResourceList";
}
leaf errorReason {
type string {length "0..200";}
description "errorReason";
}
}
grouping FailedNode {
description "fail reason for each object.";
leaf resourceId {
type yang:uuid;
description "failed object.";
}
leaf errorReason {
type string {length "0..200"; }
description "errorReason";
}
}
grouping SLA {
description "SLA";
leaf latency {
type uint32;
description "delay,unit:ms.";
}
}
typedef ConnectionDirection {
type enumeration {
enum CD-UNI {
description "CD-UNI";
}
enum CD-BI {
description "CD-BI";
}
}
description "ConnectionDirection";
}
Chen, et al. Expires April 27, 2017 [Page 24]
Internet-Draft Composite VPN Service Delivery Model October 2016
typedef ObjectDirection {
type enumeration {
enum IN {
description "IN";
}
enum OUT {
description "OUT";
}
enum BI-DIRECTION {
description "BI-DIRECTION";
}
}
description "ObjectDirection";
}
typedef DiversityType {
type enumeration {
enum NOP {
description "NOP";
}
enum PE-DIFF {
description "PE-DIFF";
}
enum MAIN-TP-DIFF {
description "MAIN-TP-DIFF";
}
}
description "DiversityType";
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-nvo-qos-types.yang"
module ietf-nvo-qos-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-qos-types";
prefix QosTypes;
import ietf-yang-types { prefix yang; }
organization "";
contact "";
description "ietf-nvo-qos-types";
revision 2016-10-24 {
reference "draft-chen-opsawg-composite-vpn-dm-00";
}
/*****************************************************************
* Type definitions
Chen, et al. Expires April 27, 2017 [Page 25]
Internet-Draft Composite VPN Service Delivery Model October 2016
*****************************************************************/
typedef qosPriorityType {
type enumeration {
enum nop{
description "nop";
}
enum 802dot1p{
description "802dot1p";
}
enum dscp{
description "dscp";
}
enum mplsExp{
description "mplsExp";
}
enum cos{
description "cos";
}
enum ipPrecedence{
description "ipPrecedence";
}
}
description "qosPriorityType";
}
typedef classifierDetailType {
type enumeration {
enum nop{
description "nop";
}
enum ipPrefixList{
description "ipPrefixList";
}
}
description "classifierDetailType";
}
typedef ActionType {
type enumeration {
enum nop{
description "nop";
}
enum bandwidth{
description "bandwidth";
}
enum pass{
description "pass";
}
Chen, et al. Expires April 27, 2017 [Page 26]
Internet-Draft Composite VPN Service Delivery Model October 2016
enum discard{
description "discard";
}
enum remark{
description "remark";
}
enum redirect{
description "redirect";
}
enum recolor{
description "recolor";
}
enum addRt{
description "addRt";
}
}
description "ActionType";
}
typedef QosConfigType {
type enumeration {
enum nop{
description "nop";
}
enum template{
description "template";
}
enum agile{
description "agile";
}
}
description "QosConfigType";
}
typedef flowClassifierType {
type enumeration {
enum nop{
description "nop";
}
enum aluFlowClassifier{
description "aluFlowClassifier";
}
}
description "flowClassifierType";
}
typedef QosDetailType {
type enumeration {
Chen, et al. Expires April 27, 2017 [Page 27]
Internet-Draft Composite VPN Service Delivery Model October 2016
enum nop{
description "nop";
}
enum car{
description "car";
}
enum qosProfile{
description "qosProfile";
}
enum diffServDomain{
description "diffServDomain";
}
enum diffServ{
description "diffServ";
}
enum aluDiffServ{
description "aluDiffServ";
}
}
description "QosDetailType";
}
typedef ClassifierType {
type enumeration {
enum 802dot1p{
description "802dot1p";
}
enum dscp{
description "dscp";
}
enum cos{
description "cos";
}
enum mpls-exp{
description "mpls-exp";
}
enum sourceIP{
description "sourceIP";
}
enum destinationIP{
description "destinationIP";
}
}
description "ClassifierType";
}
typedef OrchPermitType {
type enumeration {
Chen, et al. Expires April 27, 2017 [Page 28]
Internet-Draft Composite VPN Service Delivery Model October 2016
enum readUse{
description "readUse";
}
enum crud{
description "crud";
}
}
description "OrchPermitType";
}
typedef ruleType {
type enumeration {
enum 802dot1p{
description "802dot1p";
}
enum dscp{
description "dscp";
}
enum cos{
description "cos";
}
enum mpls_exp{
description "mpls_exp";
}
enum source_ip{
description "source_ip";
}
enum destination_ip{
description "destination_ip";
}
}
description "ruleType";
}
typedef MatchModeType {
type enumeration {
enum nop{
description "nop";
}
enum match{
description "match";
}
enum unmatch{
description "unmatch";
}
}
description "MatchModeType";
}
Chen, et al. Expires April 27, 2017 [Page 29]
Internet-Draft Composite VPN Service Delivery Model October 2016
typedef qosBehaviorType {
type enumeration {
enum qosCarBehavior{
description "qosCarBehavior";
}
enum qosServiceChainBehavior{
description "qosServiceChainBehavior";
}
}
description "qosBehaviorType";
}
typedef qosBehaviorDirectionType {
type enumeration {
enum upstream{
description "upstream";
}
enum downstream{
description "downstream";
}
enum bidirectional{
description "bidirectional";
}
}
description "qosBehaviorDirectionType";
}
typedef dataKind {
type enumeration {
enum green{
description "green";
}
enum yellow{
description "yellow";
}
enum red{
description "red";
}
enum all{
description "all";
}
}
description "dataKind";
}
typedef profileType {
type enumeration {
enum profile{
Chen, et al. Expires April 27, 2017 [Page 30]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "profile";
}
}
description "profileType";
}
typedef ruleOperatorType {
type enumeration {
enum and{
description "and";
}
enum or{
description "or";
}
}
description "ruleOperatorType";
}
/*****************************************************************
* Groupings
*****************************************************************/
grouping TPQosNode {
description "TPQosNode Grouping.";
leaf qosConfigType {
type QosConfigType;
description "qosConfigType";
}
leaf qosDetailType {
type QosDetailType;
description "qosDetailType";
}
list inTpCar {
key index;
uses FlowBehavior;
description "inTpCar";
}
list outTpCar {
key index;
uses FlowBehavior;
description "outTpCar";
}
leaf inQosProfileId {
type yang:uuid;
description "inQosProfileId";
}
leaf outQosProfileId {
type yang:uuid;
Chen, et al. Expires April 27, 2017 [Page 31]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "outQosProfileId";
}
}
grouping FlowAndBehavior {
description "FlowAndBehavior Grouping.";
leaf flowClassifierId {
type yang:uuid;
description "flowClassifierId";
}
list flowBehaviors {
key index;
uses FlowBehavior;
description "flowBehaviors";
}
}
grouping FlowBehavior {
description "FlowAndBehavior Grouping.";
leaf index {
type uint32;
description "index";
}
leaf dataKind {
type dataKind;
description "dataKind";
}
leaf actionType {
type ActionType;
description "actionType";
}
leaf action {
type string;
description "action";
}
}
grouping FlowClassifierRule {
description "FlowClassifierRule Grouping.";
leaf index {
type uint32;
description "index";
}
leaf matchMode {
type MatchModeType;
Chen, et al. Expires April 27, 2017 [Page 32]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "matchMode";
}
leaf type {
type ClassifierType;
description "type";
}
leaf-list flowClassifierValue {
type string;
description "flowClassifierValue";
}
leaf appendix {
type string;
description "appendix";
}
}
grouping BandWidthNode {
description "BandWidthNode Grouping.";
leaf cir {
type uint32;
description "cir";
}
leaf pir {
type uint32;
description "pir";
}
leaf cbs {
type uint32;
description "cbs";
}
leaf pbs {
type uint32;
description "pbs";
}
}
grouping FlowServices {
description "FlowServices Grouping.";
leaf qosConfigType {
type QosConfigType;
description "qosConfigType";
}
leaf flowQosTemplateID {
type yang:uuid;
description "flowQosTemplateID";
}
Chen, et al. Expires April 27, 2017 [Page 33]
Internet-Draft Composite VPN Service Delivery Model October 2016
leaf qosDetailType {
type QosTypes:QosDetailType;
description "qosDetailType";
}
leaf inFlowQosTemplateID {
type yang:uuid;
description "inFlowQosTemplateID";
}
leaf outFlowQosTemplateID {
type yang:uuid;
description "outFlowQosTemplateID";
}
list flowServices {
key flowClassifierId;
description "default in flow and behaviors";
uses FlowAndBehavior;
}
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-nvo-tp.yang"
module ietf-nvo-tp {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-tp";
prefix TP;
import ietf-yang-types {
prefix yang;
}
import ietf-nvo-common-types {
prefix CommonTypes;
}
import ietf-nvo-vpn-routeprotocol {
prefix RouteProtocol;
}
import ietf-nvo-tp-types {
prefix TPTypes;
}
organization "";
contact "";
description "This module contains a collection of YANG definitions
for tp";
revision 2016-10-24 {
Chen, et al. Expires April 27, 2017 [Page 34]
Internet-Draft Composite VPN Service Delivery Model October 2016
reference "draft-chen-opsawg-composite-vpn-dm-00";
}
container nvoTPMgr{
description "nvo tp management";
list tps {
key "id";
uses TP:Tp;
description "tp retrieve functions";
}
}
grouping Tp {
description "model of TP";
leaf id {
type yang:uuid;
description "yang:uuid-str for TP";
}
leaf name {
type string {length "0..200";}
description "Must abbey to name rule defined in system.
Example FE0/0/1, GE1/2/1.1, Eth-Trunk1.1, etc";
}
leaf description {
type string {length "0..200";}
description "description for this tp.";
}
leaf neID {
type yang:uuid;
description "yang:uuid-str for NE ";
}
leaf containingMainTPID {
type yang:uuid;
description "uuid-str for main interface";
}
container tpBasicInfo {
description "Tp non-instance basic info";
uses TPTypes:TPBasicInfo;
}
container peerCeTp {
description "CE TP Information";
uses TPTypes:CeTp;
}
list routeProtocolSpec {
key "type";
Chen, et al. Expires April 27, 2017 [Page 35]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "route protocol spec";
uses RouteProtocol:RouteProtocolSpec;
}
leaf operStatus {
type CommonTypes:OperStatus;
config false;
description "Operational status." ;
}
}
grouping TpInventory {
description "inventory model of TP";
leaf tpID {
type yang:uuid;
description "uuid of tp";
}
leaf detailType {
type string {length "0..100";}
description "tp detail type. reported by controller";
}
leaf maxBandWidth {
type uint64;
description "max bandwidth";
}
leaf-list potentialLayers {
type CommonTypes:LayerRate;
description "capability of tp to create VPN, reported by
controller";
}
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-nvo-tp-types.yang"
module ietf-nvo-tp-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-tp-types";
prefix TPTypes;
import ietf-nvo-common-types {prefix CommonTypes;}
import ietf-yang-types { prefix yang; }
import ietf-nvo-qos-types { prefix QosTypes;}
organization "";
contact "";
description "ietf-nvo-tp-types";
revision 2016-10-24 {
reference "draft-chen-opsawg-composite-vpn-dm-00";
Chen, et al. Expires April 27, 2017 [Page 36]
Internet-Draft Composite VPN Service Delivery Model October 2016
}
//LayerRate parameters.
grouping PwSpec {
description "PwSpec Grouping.";
leaf controlWord {
type boolean;
default false;
description "controlWord";
}
leaf pwVlanAction {
type TPTypes:PWTagMode;
description "pwVlanAction";
}
}
grouping IpSpec {
description "IpSpec Grouping.";
leaf masterIp {
type string;
description "master IP address";
}
leaf mtu {
type uint64;
description "mtu for ip layer,scope:46~9600";
}
}
grouping EthernetSpec {
description "EthernetSpec Grouping.";
leaf accessType {
type CommonTypes:EthernetEncapType;
description "access frame type";
}
choice accessVlanValue {
description "accessVlanValue";
case QinQVlan {
container qinqVlan {
description "qinqVlan";
uses TPTypes:QinQVlan;
}
}
Chen, et al. Expires April 27, 2017 [Page 37]
Internet-Draft Composite VPN Service Delivery Model October 2016
case DOT1Q {
container dot1q {
description "dot1q";
uses TPTypes:Dot1QVlan;
}
}
}
leaf vlanAction {
type CommonTypes:EthernetAction;
description "Frame type that can be accepted. not needed
now";
}
leaf actionValue{
type string{length "0..100";}
description "action value";
}
}
grouping QinQVlan {
description "QinQVlan Grouping.";
leaf-list cvlanList {
type uint64;
description "cvlanList";
}
leaf svlanList {
type uint64;
description "svlanList";
}
}
grouping Dot1QVlan {
description "Dot1QVlan Grouping.";
leaf-list dot1qVlanList {
type uint64;
description "dot1qVlanList";
}
}
grouping VxlanSpec {
description "VxlanSpec Grouping.";
leaf vni {
type uint32;
Chen, et al. Expires April 27, 2017 [Page 38]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "vni";
}
leaf vtepIP {
type string;
description "vtep ip";
}
}
//CE spec
grouping CeTp {
description "CeTp Grouping.";
leaf ceID {
type yang:uuid;
description "Site router ID";
}
leaf ceDirectNeID {
type yang:uuid;
description "direction connected NE ID, only valid in
asbr ";
}
leaf ceDirectTPID {
type yang:uuid;
description "ce Direct TP id, only valid in asbr";
}
leaf ceIfmasterIp {
type string;
description "ceIfmasterIp";
}
leaf location {
type string {length "0..400";}
description "CE device location ";
}
}
//TPBasicInfo
grouping TPBasicInfo {
description "TPBasicInfo Grouping.";
leaf edgePointRole {
type CommonTypes:EdgePointRole;
description "edge role for TP, for example:UNI/NNI ";
}
Chen, et al. Expires April 27, 2017 [Page 39]
Internet-Draft Composite VPN Service Delivery Model October 2016
leaf topologyRole {
type CommonTypes:TopoNodeRole;
description "hub/spoke role, etc";
}
leaf Type
{
type CommonTypes:TpType;
description "Type";
}
leaf workingLayer {
type CommonTypes:LayerRate;
description "working layer";
}
list typeSpecList {
key "layerRate";
uses TPTypes:TpTypeSpec;
description "typeSpecList";
}
leaf adminStatus {
type CommonTypes:AdminStatus;
description "administrative status.";
}
container tpQosNode {
description "tpQosNode";
uses QosTypes:TPQosNode;
}
container flowServices{
description "flow services in one TP";
uses QosTypes:FlowServices;
}
list addtionalInfo {
key "name";
uses CommonTypes:nvstring;
description "addtionalInfo";
}
}
//TpTypeSpec
grouping TpTypeSpec{
description "TpTypeSpec Grouping.";
Chen, et al. Expires April 27, 2017 [Page 40]
Internet-Draft Composite VPN Service Delivery Model October 2016
leaf layerRate {
type CommonTypes:LayerRate;
description "layerRate";
}
choice specValue {
description "specValue";
case LR_Ethernet {
container ethernetSpec {
description "ethernetSpec";
uses TPTypes:EthernetSpec;
}
}
case LR_IP {
container ipSpec {
description "ipSpec";
uses TPTypes:IpSpec;
}
}
case LR_Vxlan {
container vxlanSpec {
description "vxlanSpec";
uses TPTypes:VxlanSpec;
}
}
}
}
//----------------------------------------------//
//typedef
//----------------------------------------------//
typedef PWTagMode {
type enumeration {
enum RAW{
description "RAW";
}
enum TAGGED{
description "TAGGED";
}
}
description "PWTagMode";
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-nvo-vpn-routeprotocol.yang"
module ietf-nvo-vpn-routeprotocol {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-vpn-routeprotocol";
Chen, et al. Expires April 27, 2017 [Page 41]
Internet-Draft Composite VPN Service Delivery Model October 2016
prefix RouteProtocol;
import ietf-yang-types { prefix yang; }
import ietf-nvo-common-types {
prefix CommonTypes;
}
organization "";
contact "";
description "ietf-nvo-vpn-routeprotocol";
revision 2016-10-24 {
reference "draft-chen-opsawg-composite-vpn-dm-00";
}
grouping RouteProtocolSpec {
description "RouteProtocolSpec Grouping.";
leaf type {
type CommonTypes:RouteProtocolType;
description "Protocol type" ;
}
choice para {
description "para" ;
case staticRouting {
list staticRouteItems {
key "index";
uses RouteProtocol:StaticRouteItem;
description "staticRouteItems" ;
}
}
case bgp {
list bgpProtocols {
key "index";
uses RouteProtocol:BGPProtocolItem;
description "bgpProtocols" ;
}
}
}
}
grouping StaticRouteItem {
description "StaticRouteItem Grouping.";
leaf index {
type uint32;
description "static item index";
}
leaf destinationCidr {
Chen, et al. Expires April 27, 2017 [Page 42]
Internet-Draft Composite VPN Service Delivery Model October 2016
type string;
description "destination ip cidr. ";
}
leaf egressTP {
type yang:uuid;
description "egress tp";
}
leaf routePreference {
type string;
description "route priority. Ordinary, work route have
higher priority.";
}
leaf nextHopIp {
type string {length "0..200";}
description "nextHopIp";
}
}
grouping BGPProtocolItem {
description "BGPProtocolItem Grouping.";
leaf index {
type uint32;
description "index of BGP protocol item";
}
leaf peerAsNumber {
type uint64;
description "";
}
leaf bgpMaxPrefix {
type int32;
description "";
}
leaf bgpMaxPrefixAlarm {
type uint32;
description "alarm threshold of BGP rout";
}
leaf peerIp {
type string;
description "peerIp";
}
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-nvo-vpn-types.yang"
module ietf-nvo-vpn-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-nvo-vpn-types" ;
Chen, et al. Expires April 27, 2017 [Page 43]
Internet-Draft Composite VPN Service Delivery Model October 2016
prefix VPNTypes ;
import ietf-nvo-common-types {
prefix CommonTypes;
}
organization "";
contact "";
description "ietf-nvo-vpn-types";
revision 2016-10-24 {
reference "draft-chen-opsawg-composite-vpn-dm-00";
}
typedef ProtectionRole {
type enumeration {
enum NOP{
description "NOP";
}
enum MAIN{
description "MAIN";
}
}
description "ProtectionRole";
}
grouping VPNBasicInfo {
description "VPNBasicInfo Grouping.";
leaf topology {
type CommonTypes:Topology;
description "current support for full-mesh and
point_to_multipoint(hub-spoke), others is reserved for
future extensions." ;
}
leaf serviceType {
type VPNTypes:ServiceType;
description "current support for mpls l3vpn/vxlan/L2VPN
overlay, others is reserved for future extensions." ;
}
leaf technology {
type VPNTypes:VPNTunnelType;
description "mpls|vxlan overlay l3vpn|eth over sdh|nop";
}
leaf adminStatus {
type CommonTypes:AdminStatus;
Chen, et al. Expires April 27, 2017 [Page 44]
Internet-Draft Composite VPN Service Delivery Model October 2016
description "administrative status." ;
}
}
typedef VPNTunnelType {
type enumeration {
enum NOP{
description "NOP";
}
enum MPLS{
description "MPLS";
}
enum MPLS-TP{
description "MPLS-TP";
}
}
description "VPNTunnelType";
}
typedef ServiceType {
type enumeration {
enum l3vpn {
description "l3vpn" ;
}
enum l2vpn {
description "l2vpn" ;
}
}
description "ServiceType";
}
}
<CODE ENDS>
7. IANA Considerations
TBD
8. Security Considerations
TBD
9. Acknowledgements
TBD
Chen, et al. Expires April 27, 2017 [Page 45]
Internet-Draft Composite VPN Service Delivery Model October 2016
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC4110] Callon, R. and M. Suzuki, "A Framework for Layer 3
Provider-Provisioned Virtual Private Networks (PPVPNs)",
RFC 4110, DOI 10.17487/RFC4110, July 2005,
<http://www.rfc-editor.org/info/rfc4110>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<http://www.rfc-editor.org/info/rfc7950>.
10.2. Informative References
[I-D.ietf-l3sm-l3vpn-service-model]
Litkowski, S., Tomotaki, L., and K. Ogaki, "YANG Data
Model for L3VPN service delivery", draft-ietf-l3sm-l3vpn-
service-model-18 (work in progress), October 2016.
[I-D.wu-opsawg-service-model-explained]
Wu, Q., LIU, S., and A. Farrel, "Service Models
Explained", draft-wu-opsawg-service-model-explained-03
(work in progress), September 2016.
Authors' Addresses
Rui Chen
Huawei Technologies
Bantian, Longgang District
Shenzhen 518129
China
Email: chenrui@huawei.com
Liya Zhang
Huawei Technologies
Wuhan
China
Email: zhangliya@huawei.com
Chen, et al. Expires April 27, 2017 [Page 46]
Internet-Draft Composite VPN Service Delivery Model October 2016
Hui Deng
Huawei Technologies
Beijing
China
Email: denghui02@hotmail.com
Liang Geng
China Mobile
No.32 Xuanwumen West Street
Beijing 100053
China
Email: liang.geng@hotmail.com
Chongfeng Xie
China Telecom
Beijing
China
Email: xiechf@ctbri.com.cn
Chen, et al. Expires April 27, 2017 [Page 47]