8. YANG Module
This YANG module imports typedefs from [RFC6991] and [RFC8341]. <CODE BEGINS> file "ietf-l2vpn-svc@2018-10-09.yang" module ietf-l2vpn-svc { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-l2vpn-svc"; prefix l2vpn-svc; import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } import ietf-netconf-acm { prefix nacm; }
organization "IETF L2SM Working Group."; contact "WG Web: <https://datatracker.ietf.org/wg/l2sm/> WG List: <mailto:l2sm@ietf.org> Editor: Giuseppe Fioccola <mailto:giuseppe.fioccola@tim.it>"; description "This YANG module defines a generic service configuration model for Layer 2 VPN services common across all vendor implementations. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8466; see the RFC itself for full legal notices."; revision 2018-10-09 { description "Initial revision."; reference "RFC 8466: A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery"; } feature carrierscarrier { description "Enables the support of carriers' carriers (CsC)."; } feature ethernet-oam { description "Enables the support of Ethernet Service OAM."; } feature extranet-vpn { description "Enables the support of extranet VPNs."; }
feature l2cp-control { description "Enables the support of L2CP control."; } feature input-bw { description "Enables the support of input bandwidth in a VPN."; } feature output-bw { description "Enables the support of output bandwidth in a VPN."; } feature uni-list { description "Enables the support of a list of UNIs in a VPN."; } feature cloud-access { description "Allows the VPN to connect to a Cloud Service Provider (CSP) or an ISP."; } feature oam-3ah { description "Enables the support of OAM 802.3ah."; } feature micro-bfd { description "Enables the support of micro-BFD."; } feature bfd { description "Enables the support of BFD."; } feature signaling-options { description "Enables the support of signaling options."; } feature site-diversity { description
"Enables the support of site diversity constraints in a VPN."; } feature encryption { description "Enables the support of encryption."; } feature always-on { description "Enables support for the 'always-on' access constraint."; } feature requested-type { description "Enables support for the 'requested-type' access constraint."; } feature bearer-reference { description "Enables support for the 'bearer-reference' access constraint."; } feature qos { description "Enables support for QoS."; } feature qos-custom { description "Enables the support of a custom QoS profile."; } feature lag-interface { description "Enables LAG interfaces."; } feature vlan { description "Enables the support of VLANs."; } feature dot1q { description "Enables the support of dot1Q."; }
feature qinq { description "Enables the support of QinQ."; } feature qinany { description "Enables the support of QinAny."; } feature vxlan { description "Enables the support of VXLANs."; } feature lan-tag { description "Enables LAN tag support in a VPN."; } feature target-sites { description "Enables the support of the 'target-sites' match-flow parameter."; } feature bum { description "Enables BUM capabilities in a VPN."; } feature mac-loop-prevention { description "Enables the MAC loop-prevention capability in a VPN."; } feature lacp { description "Enables the Link Aggregation Control Protocol (LACP) capability in a VPN."; } feature mac-addr-limit { description "Enables the MAC address limit capability in a VPN."; } feature acl {
description "Enables the ACL capability in a VPN."; } feature cfm { description "Enables the 802.1ag CFM capability in a VPN."; } feature y-1731 { description "Enables the Y.1731 capability in a VPN."; } typedef svc-id { type string; description "Defines the type of service component identifier."; } typedef ccm-priority-type { type uint8 { range "0..7"; } description "A 3-bit priority value to be used in the VLAN tag, if present in the transmitted frame."; } typedef control-mode { type enumeration { enum peer { description "'peer' mode, i.e., participate in the protocol towards the CE. Peering is common for LACP and the Ethernet Local Management Interface (E-LMI) and, occasionally, for LLDP. For VPLSs and VPWSs, the subscriber can also request that the SP peer enable spanning tree."; } enum tunnel { description "'tunnel' mode, i.e., pass to the egress or destination site. For EPLs, the expectation is that L2CP frames are tunneled."; } enum discard { description "'discard' mode, i.e., discard the frame.";
} } description "Defines the type of control mode on L2CP protocols."; } typedef neg-mode { type enumeration { enum full-duplex { description "Defines full-duplex mode."; } enum auto-neg { description "Defines auto-negotiation mode."; } } description "Defines the type of negotiation mode."; } identity site-network-access-type { description "Base identity for the site-network-access type."; } identity point-to-point { base site-network-access-type; description "Identity for a point-to-point connection."; } identity multipoint { base site-network-access-type; description "Identity for a multipoint connection, e.g., an Ethernet broadcast segment."; } identity tag-type { description "Base identity from which all tag types are derived."; } identity c-vlan { base tag-type; description "A CVLAN tag, normally using the 0x8100 Ethertype.";
} identity s-vlan { base tag-type; description "An SVLAN tag."; } identity c-s-vlan { base tag-type; description "Using both a CVLAN tag and an SVLAN tag."; } identity multicast-tree-type { description "Base identity for the multicast tree type."; } identity ssm-tree-type { base multicast-tree-type; description "Identity for the Source-Specific Multicast (SSM) tree type."; reference "RFC 8299: YANG Data Model for L3VPN Service Delivery"; } identity asm-tree-type { base multicast-tree-type; description "Identity for the Any-Source Multicast (ASM) tree type."; reference "RFC 8299: YANG Data Model for L3VPN Service Delivery"; } identity bidir-tree-type { base multicast-tree-type; description "Identity for the bidirectional tree type."; reference "RFC 8299: YANG Data Model for L3VPN Service Delivery"; } identity multicast-gp-address-mapping { description "Identity for mapping type."; } identity static-mapping { base multicast-gp-address-mapping; description
"Identity for static mapping, i.e., attach the interface to the multicast group as a static member."; } identity dynamic-mapping { base multicast-gp-address-mapping; description "Identity for dynamic mapping, i.e., an interface was added to the multicast group as a result of snooping."; } identity tf-type { description "Identity for the traffic type."; } identity multicast-traffic { base tf-type; description "Identity for multicast traffic."; } identity broadcast-traffic { base tf-type; description "Identity for broadcast traffic."; } identity unknown-unicast-traffic { base tf-type; description "Identity for unknown unicast traffic."; } identity encapsulation-type { description "Identity for the encapsulation type."; } identity ethernet { base encapsulation-type; description "Identity for Ethernet type."; } identity vlan { base encapsulation-type; description
"Identity for the VLAN type."; } identity carrierscarrier-type { description "Identity of the CsC type."; } identity ldp { base carrierscarrier-type; description "Use LDP as the signaling protocol between the PE and the CE."; } identity bgp { base carrierscarrier-type; description "Use BGP (as per RFC 8277) as the signaling protocol between the PE and the CE. In this case, BGP must also be configured as the routing protocol."; } identity eth-inf-type { description "Identity of the Ethernet interface type."; } identity tagged { base eth-inf-type; description "Identity of the tagged interface type."; } identity untagged { base eth-inf-type; description "Identity of the untagged interface type."; } identity lag { base eth-inf-type; description "Identity of the LAG interface type."; } identity bw-type {
description "Identity of the bandwidth type."; } identity bw-per-cos { base bw-type; description "Bandwidth is per CoS."; } identity bw-per-port { base bw-type; description "Bandwidth is per site network access."; } identity bw-per-site { base bw-type; description "Bandwidth is per site. It is applicable to all the site network accesses within the site."; } identity bw-per-svc { base bw-type; description "Bandwidth is per VPN service."; } identity site-vpn-flavor { description "Base identity for the site VPN service flavor."; } identity site-vpn-flavor-single { base site-vpn-flavor; description "Identity for the site VPN service flavor. Used when the site belongs to only one VPN."; } identity site-vpn-flavor-multi { base site-vpn-flavor; description "Identity for the site VPN service flavor. Used when a logical connection of a site belongs to multiple VPNs."; }
identity site-vpn-flavor-nni { base site-vpn-flavor; description "Identity for the site VPN service flavor. Used to describe an NNI option A connection."; } identity service-type { description "Base identity of the service type."; } identity vpws { base service-type; description "Point-to-point Virtual Private Wire Service (VPWS) service type."; } identity pwe3 { base service-type; description "Pseudowire Emulation Edge to Edge (PWE3) service type."; } identity ldp-l2tp-vpls { base service-type; description "LDP-based or L2TP-based multipoint Virtual Private LAN Service (VPLS) service type. This VPLS uses LDP-signaled Pseudowires or L2TP-signaled Pseudowires."; } identity bgp-vpls { base service-type; description "BGP-based multipoint VPLS service type. This VPLS uses a BGP control plane as described in RFCs 4761 and 6624."; } identity vpws-evpn { base service-type; description "VPWS service type using Ethernet VPNs (EVPNs) as specified in RFC 7432."; } identity pbb-evpn {
base service-type; description "Provider Backbone Bridge (PBB) service type using EVPNs as specified in RFC 7432."; } identity bundling-type { description "The base identity for the bundling type. It supports multiple CE-VLANs associated with an L2VPN service or all CE-VLANs associated with an L2VPN service."; } identity multi-svc-bundling { base bundling-type; description "Identity for multi-service bundling, i.e., multiple CE-VLAN IDs can be associated with an L2VPN service at a site."; } identity one2one-bundling { base bundling-type; description "Identity for one-to-one service bundling, i.e., each L2VPN can be associated with only one CE-VLAN ID at a site."; } identity all2one-bundling { base bundling-type; description "Identity for all-to-one bundling, i.e., all CE-VLAN IDs are mapped to one L2VPN service."; } identity color-id { description "Base identity of the color ID."; } identity color-id-cvlan { base color-id; description "Identity of the color ID based on a CVLAN."; } identity cos-id {
description "Identity of the CoS ID."; } identity cos-id-pcp { base cos-id; description "Identity of the CoS ID based on the Port Control Protocol (PCP)."; } identity cos-id-dscp { base cos-id; description "Identity of the CoS ID based on DSCP."; } identity color-type { description "Identity of color types."; } identity green { base color-type; description "Identity of the 'green' color type."; } identity yellow { base color-type; description "Identity of the 'yellow' color type."; } identity red { base color-type; description "Identity of the 'red' color type."; } identity policing { description "Identity of the type of policing applied."; } identity one-rate-two-color { base policing; description
"Identity of one-rate, two-color (1R2C)."; } identity two-rate-three-color { base policing; description "Identity of two-rate, three-color (2R3C)."; } identity bum-type { description "Identity of the BUM type."; } identity broadcast { base bum-type; description "Identity of broadcast."; } identity unicast { base bum-type; description "Identity of unicast."; } identity multicast { base bum-type; description "Identity of multicast."; } identity loop-prevention-type { description "Identity of loop prevention."; } identity shut { base loop-prevention-type; description "Identity of shut protection."; } identity trap { base loop-prevention-type; description "Identity of trap protection."; }
identity lacp-state { description "Identity of the LACP state."; } identity lacp-on { base lacp-state; description "Identity of LACP on."; } identity lacp-off { base lacp-state; description "Identity of LACP off."; } identity lacp-mode { description "Identity of the LACP mode."; } identity lacp-passive { base lacp-mode; description "Identity of LACP passive."; } identity lacp-active { base lacp-mode; description "Identity of LACP active."; } identity lacp-speed { description "Identity of the LACP speed."; } identity lacp-fast { base lacp-speed; description "Identity of LACP fast."; } identity lacp-slow { base lacp-speed; description
"Identity of LACP slow."; } identity bw-direction { description "Identity for the bandwidth direction."; } identity input-bw { base bw-direction; description "Identity for the input bandwidth."; } identity output-bw { base bw-direction; description "Identity for the output bandwidth."; } identity management { description "Base identity for the site management scheme."; } identity co-managed { base management; description "Identity for a co-managed site."; } identity customer-managed { base management; description "Identity for a customer-managed site."; } identity provider-managed { base management; description "Identity for a provider-managed site."; } identity address-family { description "Identity for an address family."; }
identity ipv4 { base address-family; description "Identity for an IPv4 address family."; } identity ipv6 { base address-family; description "Identity for an IPv6 address family."; } identity vpn-topology { description "Base identity for the VPN topology."; } identity any-to-any { base vpn-topology; description "Identity for the any-to-any VPN topology."; } identity hub-spoke { base vpn-topology; description "Identity for the Hub-and-Spoke VPN topology."; } identity hub-spoke-disjoint { base vpn-topology; description "Identity for the Hub-and-Spoke VPN topology, where Hubs cannot communicate with each other."; } identity site-role { description "Base identity for a site type."; } identity any-to-any-role { base site-role; description "Site in an any-to-any L2VPN."; } identity spoke-role {
base site-role; description "Spoke site in a Hub-and-Spoke L2VPN."; } identity hub-role { base site-role; description "Hub site in a Hub-and-Spoke L2VPN."; } identity pm-type { description "Performance-monitoring type."; } identity loss { base pm-type; description "Loss measurement."; } identity delay { base pm-type; description "Delay measurement."; } identity fault-alarm-defect-type { description "Indicates the alarm-priority defect (i.e., the lowest-priority defect that is allowed to generate a fault alarm)."; } identity remote-rdi { base fault-alarm-defect-type; description "Indicates the aggregate health of the Remote MEPs."; } identity remote-mac-error { base fault-alarm-defect-type; description "Indicates that one or more of the Remote MEPs are reporting a failure in their Port Status TLVs or Interface Status TLVs.";
} identity remote-invalid-ccm { base fault-alarm-defect-type; description "Indicates that at least one of the Remote MEP state machines is not receiving valid Continuity Check Messages (CCMs) from its Remote MEP."; } identity invalid-ccm { base fault-alarm-defect-type; description "Indicates that one or more invalid CCMs have been received and that a period of time 3.5 times the length of those CCMs' transmission intervals has not yet expired."; } identity cross-connect-ccm { base fault-alarm-defect-type; description "Indicates that one or more cross-connect CCMs have been received and that 3.5 times the period of at least one of those CCMs' transmission intervals has not yet expired."; } identity frame-delivery-mode { description "Delivery types."; } identity discard { base frame-delivery-mode; description "Service frames are discarded."; } identity unconditional { base frame-delivery-mode; description "Service frames are unconditionally delivered to the destination site."; } identity unknown-discard { base frame-delivery-mode; description "Service frames are conditionally delivered to the
destination site. Packets with unknown destination addresses will be discarded."; } identity placement-diversity { description "Base identity for site placement constraints."; } identity bearer-diverse { base placement-diversity; description "Identity for bearer diversity. The bearers should not use common elements."; } identity pe-diverse { base placement-diversity; description "Identity for PE diversity."; } identity pop-diverse { base placement-diversity; description "Identity for POP diversity."; } identity linecard-diverse { base placement-diversity; description "Identity for linecard diversity."; } identity same-pe { base placement-diversity; description "Identity for having sites connected on the same PE."; } identity same-bearer { base placement-diversity; description "Identity for having sites connected using the same bearer."; } identity tagged-inf-type { description
"Identity for the tagged interface type."; } identity priority-tagged { base tagged-inf-type; description "Identity for the priority-tagged interface."; } identity qinq { base tagged-inf-type; description "Identity for the QinQ tagged interface."; } identity dot1q { base tagged-inf-type; description "Identity for the dot1Q VLAN tagged interface."; } identity qinany { base tagged-inf-type; description "Identity for the QinAny tagged interface."; } identity vxlan { base tagged-inf-type; description "Identity for the VXLAN tagged interface."; } identity provision-model { description "Base identity for the provision model."; } identity single-side-provision { description "Identity for single-sided provisioning with discovery."; } identity doubled-side-provision { description "Identity for double-sided provisioning."; }
identity mac-learning-mode { description "MAC learning mode."; } identity data-plane { base mac-learning-mode; description "User MAC addresses are learned through ARP broadcast."; } identity control-plane { base mac-learning-mode; description "User MAC addresses are advertised through EVPN-BGP."; } identity vpn-policy-filter-type { description "Base identity for the filter type."; } identity lan { base vpn-policy-filter-type; description "Identity for a LAN tag filter type."; } identity mac-action { description "Base identity for a MAC action."; } identity drop { base mac-action; description "Identity for dropping a packet."; } identity flood { base mac-action; description "Identity for packet flooding."; } identity warning { base mac-action; description
"Identity for sending a warning log message."; } identity qos-profile-direction { description "Base identity for the QoS-profile direction."; } identity site-to-wan { base qos-profile-direction; description "Identity for the site-to-WAN direction."; } identity wan-to-site { base qos-profile-direction; description "Identity for the WAN-to-site direction."; } identity bidirectional { base qos-profile-direction; description "Identity for both the WAN-to-site direction and the site-to-WAN direction."; } identity vxlan-peer-mode { description "Base identity for the VXLAN peer mode."; } identity static-mode { base vxlan-peer-mode; description "Identity for VXLAN access in the static mode."; } identity bgp-mode { base vxlan-peer-mode; description "Identity for VXLAN access by BGP EVPN learning."; } identity customer-application { description "Base identity for a customer application."; }
identity web { base customer-application; description "Identity for a web application (e.g., HTTP, HTTPS)."; } identity mail { base customer-application; description "Identity for a mail application."; } identity file-transfer { base customer-application; description "Identity for a file-transfer application (e.g., FTP, SFTP)."; } identity database { base customer-application; description "Identity for a database application."; } identity social { base customer-application; description "Identity for a social-network application."; } identity games { base customer-application; description "Identity for a gaming application."; } identity p2p { base customer-application; description "Identity for a peer-to-peer application."; } identity network-management { base customer-application; description "Identity for a management application (e.g., Telnet, syslog, SNMP).";
} identity voice { base customer-application; description "Identity for a voice application."; } identity video { base customer-application; description "Identity for a videoconference application."; } identity embb { base customer-application; description "Identity for the enhanced Mobile Broadband (eMBB) application. Note that the eMBB application requires strict threshold values for a wide variety of network performance parameters (e.g., data rate, latency, loss rate, reliability)."; } identity urllc { base customer-application; description "Identity for the Ultra-Reliable and Low Latency Communications (URLLC) application. Note that the URLLC application requires strict threshold values for a wide variety of network performance parameters (e.g., latency, reliability)."; } identity mmtc { base customer-application; description "Identity for the massive Machine Type Communications (mMTC) application. Note that the mMTC application requires strict threshold values for a wide variety of network performance parameters (e.g., data rate, latency, loss rate, reliability)."; } grouping site-acl { container access-control-list { if-feature "acl"; list mac {
key "mac-address"; leaf mac-address { type yang:mac-address; description "MAC addresses."; } description "List of MAC addresses."; } description "Container for the ACL."; } description "Grouping that defines the ACL."; } grouping site-bum { container broadcast-unknown-unicast-multicast { if-feature "bum"; leaf multicast-site-type { type enumeration { enum receiver-only { description "The site only has receivers."; } enum source-only { description "The site only has sources."; } enum source-receiver { description "The site has both sources and receivers."; } } default "source-receiver"; description "Type of multicast site."; } list multicast-gp-address-mapping { key "id"; leaf id { type uint16; description "Unique identifier for the mapping."; } leaf vlan-id { type uint16 { range "0..1024";
} mandatory true; description "The VLAN ID of the multicast group. The range of the 12-bit VLAN ID is 0 to 1024."; } leaf mac-gp-address { type yang:mac-address; mandatory true; description "The MAC address of the multicast group."; } leaf port-lag-number { type uint32; description "The ports/LAGs belonging to the multicast group."; } description "List of port-to-group mappings."; } leaf bum-overall-rate { type uint64; units "bps"; description "Overall rate for BUM."; } list bum-rate-per-type { key "type"; leaf type { type identityref { base bum-type; } description "BUM type."; } leaf rate { type uint64; units "bps"; description "Rate for BUM."; } description "List of limit rates for the BUM type."; } description "Container of BUM configurations."; } description
"Grouping for BUM."; } grouping site-mac-loop-prevention { container mac-loop-prevention { if-feature "mac-loop-prevention"; leaf protection-type { type identityref { base loop-prevention-type; } default "trap"; description "Protection type. By default, the protection type is 'trap'."; } leaf frequency { type uint32; default "5"; description "The number of times to detect MAC duplication, where a 'duplicate MAC address' situation has occurred and the duplicate MAC address has been added to a list of duplicate MAC addresses. By default, the number of times is 5."; } leaf retry-timer { type uint32; units "seconds"; description "The retry timer. When the retry timer expires, the duplicate MAC address will be flushed from the MAC-VRF."; } description "Container of MAC loop-prevention parameters."; } description "Grouping for MAC loop prevention."; } grouping site-service-qos-profile { container qos { if-feature "qos"; container qos-classification-policy { list rule { key "id"; ordered-by user; leaf id {
type string; description "A description identifying the QoS classification policy rule."; } choice match-type { default "match-flow"; case match-flow { container match-flow { leaf dscp { type inet:dscp; description "DSCP value."; } leaf dot1q { type uint16; description "802.1Q matching. It is a VLAN tag added into a frame."; } leaf pcp { type uint8 { range "0..7"; } description "PCP value."; } leaf src-mac { type yang:mac-address; description "Source MAC."; } leaf dst-mac { type yang:mac-address; description "Destination MAC."; } leaf color-type { type identityref { base color-type; } description "Color types."; } leaf-list target-sites { if-feature "target-sites"; type svc-id; description
"Identifies a site as a traffic destination."; } leaf any { type empty; description "Allow all."; } leaf vpn-id { type svc-id; description "Reference to the target VPN."; } description "Describes flow-matching criteria."; } } case match-application { leaf match-application { type identityref { base customer-application; } description "Defines the application to match."; } } description "Choice for classification."; } leaf target-class-id { type string; description "Identification of the CoS. This identifier is internal to the administration."; } description "List of marking rules."; } description "Configuration of the traffic classification policy."; } container qos-profile { choice qos-profile { description "Choice for the QoS profile. Can be a standard profile or a customized profile."; case standard { description
"Standard QoS profile."; leaf profile { type leafref { path "/l2vpn-svc/vpn-profiles/" + "valid-provider-identifiers/" + "qos-profile-identifier"; } description "QoS profile to be used."; } } case custom { description "Customized QoS profile."; container classes { if-feature "qos-custom"; list class { key "class-id"; leaf class-id { type string; description "Identification of the CoS. This identifier is internal to the administration."; } leaf direction { type identityref { base qos-profile-direction; } default "bidirectional"; description "The direction in which the QoS profile is applied. By default, the direction is bidirectional."; } leaf policing { type identityref { base policing; } default "one-rate-two-color"; description "The policing type can be either one-rate, two-color (1R2C) or two-rate, three-color (2R3C). By default, the policing type is 'one-rate-two-color'."; } leaf byte-offset { type uint16; description
"Number of bytes in the service frame header that are excluded from the QoS calculation (e.g., extra VLAN tags)."; } container frame-delay { choice flavor { case lowest { leaf use-lowest-latency { type empty; description "The traffic class should use the path with the lowest delay."; } } case boundary { leaf delay-bound { type uint16; units "milliseconds"; description "The traffic class should use a path with a defined maximum delay."; } } description "Delay constraint on the traffic class."; } description "Delay constraint on the traffic class."; } container frame-jitter { choice flavor { case lowest { leaf use-lowest-jitter { type empty; description "The traffic class should use the path with the lowest jitter."; } } case boundary { leaf delay-bound { type uint32; units "microseconds"; description "The traffic class should use a path with a defined maximum jitter."; } }
description "Jitter constraint on the traffic class."; } description "Jitter constraint on the traffic class."; } container frame-loss { leaf rate { type decimal64 { fraction-digits 2; range "0..100"; } units "percent"; description "Frame loss rate constraint on the traffic class."; } description "Container for frame loss rate."; } container bandwidth { leaf guaranteed-bw-percent { type decimal64 { fraction-digits 5; range "0..100"; } units "percent"; mandatory true; description "Used to define the guaranteed bandwidth as a percentage of the available service bandwidth."; } leaf end-to-end { type empty; description "Used if the bandwidth reservation must be done on the MPLS network too."; } description "Bandwidth constraint on the traffic class."; } description "List of CoS entries."; } description "Container for list of CoS entries."; }
} } description "Qos profile configuration."; } description "QoS configuration."; } description "Grouping that defines QoS parameters for a site."; } grouping site-service-mpls { container carrierscarrier { if-feature "carrierscarrier"; leaf signaling-type { type identityref { base carrierscarrier-type; } default "bgp"; description "CsC. By default, the signaling type is 'bgp'."; } description "Container for CsC."; } description "Grouping for CsC."; } container l2vpn-svc { container vpn-profiles { container valid-provider-identifiers { leaf-list cloud-identifier { if-feature "cloud-access"; type string; description "Identification of the public cloud service or Internet service. Local to each administration."; } leaf-list qos-profile-identifier { type string; description "Identification of the QoS profile to be used. Local to each administration."; } leaf-list bfd-profile-identifier { type string;
description "Identification of the SP BFD profile to be used. Local to each administration."; } leaf-list remote-carrier-identifier { type string; description "Identification of the remote carrier name to be used. It can be an L2VPN partner, data-center SP, or private CSP. Local to each administration."; } nacm:default-deny-write; description "Container for valid provider identifiers."; } description "Container for VPN profiles."; } container vpn-services { list vpn-service { key "vpn-id"; leaf vpn-id { type svc-id; description "Defines a service identifier."; } leaf vpn-svc-type { type identityref { base service-type; } default "vpws"; description "Service type. By default, the service type is 'vpws'."; } leaf customer-name { type string; description "Customer name."; } leaf svc-topo { type identityref { base vpn-topology; } default "any-to-any"; description "Defines the service topology, e.g., 'any-to-any', 'hub-spoke'."; }