ietf-l2vpn-svc@2018-10-09.yang   ietf-l2vpn-svc@2018-10-09.yang 
skipping to change at line 203 skipping to change at line 203
description description
"Enables the MAC loop-prevention capability in a VPN."; "Enables the MAC loop-prevention capability in a VPN.";
} }
feature lacp { feature lacp {
description description
"Enables the Link Aggregation Control Protocol (LACP) "Enables the Link Aggregation Control Protocol (LACP)
capability in a VPN."; capability in a VPN.";
} }
feature mac-addr-limit{ feature mac-addr-limit {
description description
"Enables the MAC address limit capability in a VPN."; "Enables the MAC address limit capability in a VPN.";
} }
feature acl { feature acl {
description description
"Enables the ACL capability in a VPN."; "Enables the ACL capability in a VPN.";
} }
feature cfm { feature cfm {
description description
"Enables the 802.1ag CFM capability in a VPN."; "Enables the 802.1ag CFM capability in a VPN.";
} }
feature y-1731 { feature y-1731 {
description description
"Enables the Y.1731 capability in a VPN."; "Enables the Y.1731 capability in a VPN.";
} }
typedef svc-id { typedef svc-id {
type string; type string;
description description
"Defines the type of service component identifier."; "Defines the type of service component identifier.";
} }
typedef ccm-priority-type { typedef ccm-priority-type {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description description
"A 3-bit priority value to be used in the VLAN tag, "A 3-bit priority value to be used in the VLAN tag,
if present in the transmitted frame."; if present in the transmitted frame.";
} }
typedef control-mode { typedef control-mode {
type enumeration { type enumeration {
enum "peer" { enum peer {
description description
"'peer' mode, i.e., participate in the protocol towards "'peer' mode, i.e., participate in the protocol towards
the CE. Peering is common for LACP and the Ethernet the CE. Peering is common for LACP and the Ethernet
Local Management Interface (E-LMI) and, occasionally, Local Management Interface (E-LMI) and, occasionally,
for LLDP. For VPLSs and VPWSs, the subscriber can also for LLDP. For VPLSs and VPWSs, the subscriber can also
request that the SP peer enable spanning tree."; request that the SP peer enable spanning tree.";
} }
enum "tunnel" { enum tunnel {
description description
"'tunnel' mode, i.e., pass to the egress or destination "'tunnel' mode, i.e., pass to the egress or destination
site. For EPLs, the expectation is that L2CP frames are site. For EPLs, the expectation is that L2CP frames are
tunneled."; tunneled.";
} }
enum "discard" { enum discard {
description description
"'discard' mode, i.e., discard the frame."; "'discard' mode, i.e., discard the frame.";
} }
} }
description description
"Defines the type of control mode on L2CP protocols."; "Defines the type of control mode on L2CP protocols.";
} }
typedef neg-mode { typedef neg-mode {
type enumeration { type enumeration {
enum "full-duplex" { enum full-duplex {
description description
"Defines full-duplex mode."; "Defines full-duplex mode.";
} }
enum "auto-neg" { enum auto-neg {
description description
"Defines auto-negotiation mode."; "Defines auto-negotiation mode.";
} }
} }
description description
"Defines the type of negotiation mode."; "Defines the type of negotiation mode.";
} }
identity site-network-access-type { identity site-network-access-type {
description description
skipping to change at line 328 skipping to change at line 328
identity multicast-tree-type { identity multicast-tree-type {
description description
"Base identity for the multicast tree type."; "Base identity for the multicast tree type.";
} }
identity ssm-tree-type { identity ssm-tree-type {
base multicast-tree-type; base multicast-tree-type;
description description
"Identity for the Source-Specific Multicast (SSM) tree type."; "Identity for the Source-Specific Multicast (SSM) tree type.";
reference reference "RFC 8299: YANG Data Model for L3VPN Service Delivery";
"RFC 8299: YANG Data Model for L3VPN Service Delivery";
} }
identity asm-tree-type { identity asm-tree-type {
base multicast-tree-type; base multicast-tree-type;
description description
"Identity for the Any-Source Multicast (ASM) tree type."; "Identity for the Any-Source Multicast (ASM) tree type.";
reference reference "RFC 8299: YANG Data Model for L3VPN Service Delivery";
"RFC 8299: YANG Data Model for L3VPN Service Delivery";
} }
identity bidir-tree-type { identity bidir-tree-type {
base multicast-tree-type; base multicast-tree-type;
description description
"Identity for the bidirectional tree type."; "Identity for the bidirectional tree type.";
reference reference "RFC 8299: YANG Data Model for L3VPN Service Delivery";
"RFC 8299: YANG Data Model for L3VPN Service Delivery";
} }
identity multicast-gp-address-mapping { identity multicast-gp-address-mapping {
description description
"Identity for mapping type."; "Identity for mapping type.";
} }
identity static-mapping { identity static-mapping {
base multicast-gp-address-mapping; base multicast-gp-address-mapping;
description description
skipping to change at line 1239 skipping to change at line 1241
} }
description description
"Grouping that defines the ACL."; "Grouping that defines the ACL.";
} }
grouping site-bum { grouping site-bum {
container broadcast-unknown-unicast-multicast { container broadcast-unknown-unicast-multicast {
if-feature "bum"; if-feature "bum";
leaf multicast-site-type { leaf multicast-site-type {
type enumeration { type enumeration {
enum "receiver-only" { enum receiver-only {
description description
"The site only has receivers."; "The site only has receivers.";
} }
enum "source-only" { enum source-only {
description description
"The site only has sources."; "The site only has sources.";
} }
enum "source-receiver" { enum source-receiver {
description description
"The site has both sources and receivers."; "The site has both sources and receivers.";
} }
} }
default "source-receiver"; default "source-receiver";
description description
"Type of multicast site."; "Type of multicast site.";
} }
list multicast-gp-address-mapping { list multicast-gp-address-mapping {
key "id"; key "id";
leaf id { leaf id {
type uint16; type uint16;
description description
"Unique identifier for the mapping."; "Unique identifier for the mapping.";
skipping to change at line 1371 skipping to change at line 1372
ordered-by user; ordered-by user;
leaf id { leaf id {
type string; type string;
description description
"A description identifying the QoS classification "A description identifying the QoS classification
policy rule."; policy rule.";
} }
choice match-type { choice match-type {
default "match-flow"; default "match-flow";
case match-flow { case match-flow {
container match-flow { container match-flow {
leaf dscp { leaf dscp {
type inet:dscp; type inet:dscp;
description description
"DSCP value."; "DSCP value.";
} }
leaf dot1q { leaf dot1q {
type uint16; type uint16;
description description
"802.1Q matching. It is a VLAN tag added into a frame."; "802.1Q matching. It is a VLAN tag added into
} a frame.";
leaf pcp { }
type uint8 { leaf pcp {
range "0..7"; type uint8 {
} range "0..7";
description }
"PCP value."; description
} "PCP value.";
leaf src-mac { }
type yang:mac-address; leaf src-mac {
description type yang:mac-address;
"Source MAC."; description
} "Source MAC.";
leaf dst-mac { }
type yang:mac-address; leaf dst-mac {
description type yang:mac-address;
"Destination MAC."; description
} "Destination MAC.";
leaf color-type { }
type identityref { leaf color-type {
base color-type; type identityref {
} base color-type;
description }
"Color types."; description
} "Color types.";
leaf-list target-sites { }
if-feature "target-sites"; leaf-list target-sites {
type svc-id; if-feature "target-sites";
description type svc-id;
"Identifies a site as a traffic destination."; description
} "Identifies a site as a traffic destination.";
leaf any { }
type empty; leaf any {
description type empty;
"Allow all."; description
} "Allow all.";
leaf vpn-id { }
type svc-id; leaf vpn-id {
description type svc-id;
"Reference to the target VPN."; description
} "Reference to the target VPN.";
description }
"Describes flow-matching criteria."; description
} "Describes flow-matching criteria.";
}
} }
case match-application { case match-application {
leaf match-application { leaf match-application {
type identityref { type identityref {
base customer-application; base customer-application;
} }
description description
"Defines the application to match."; "Defines the application to match.";
} }
} }
skipping to change at line 1462 skipping to change at line 1464
choice qos-profile { choice qos-profile {
description description
"Choice for the QoS profile. "Choice for the QoS profile.
Can be a standard profile or a customized profile."; Can be a standard profile or a customized profile.";
case standard { case standard {
description description
"Standard QoS profile."; "Standard QoS profile.";
leaf profile { leaf profile {
type leafref { type leafref {
path "/l2vpn-svc/vpn-profiles/" path "/l2vpn-svc/vpn-profiles/"
+ "valid-provider-identifiers" + "valid-provider-identifiers/"
+ "/qos-profile-identifier"; + "qos-profile-identifier";
} }
description description
"QoS profile to be used."; "QoS profile to be used.";
} }
} }
case custom { case custom {
description description
"Customized QoS profile."; "Customized QoS profile.";
container classes { container classes {
if-feature "qos-custom"; if-feature "qos-custom";
skipping to change at line 1634 skipping to change at line 1636
} }
description description
"Container for CsC."; "Container for CsC.";
} }
description description
"Grouping for CsC."; "Grouping for CsC.";
} }
container l2vpn-svc { container l2vpn-svc {
container vpn-profiles { container vpn-profiles {
container valid-provider-identifiers { container valid-provider-identifiers {
leaf-list cloud-identifier { leaf-list cloud-identifier {
if-feature "cloud-access"; if-feature "cloud-access";
type string; type string;
description description
"Identification of the public cloud service or "Identification of the public cloud service or
Internet service. Local to each administration."; Internet service. Local to each administration.";
} }
leaf-list qos-profile-identifier { leaf-list qos-profile-identifier {
type string; type string;
description description
"Identification of the QoS profile to be used. "Identification of the QoS profile to be used.
Local to each administration."; Local to each administration.";
} }
leaf-list bfd-profile-identifier { leaf-list bfd-profile-identifier {
type string; type string;
description description
"Identification of the SP BFD profile to be used. "Identification of the SP BFD profile to be used.
Local to each administration."; Local to each administration.";
} }
leaf-list remote-carrier-identifier { leaf-list remote-carrier-identifier {
type string; type string;
description description
"Identification of the remote carrier name to be used. "Identification of the remote carrier name to be used.
It can be an L2VPN partner, data-center SP, or It can be an L2VPN partner, data-center SP, or
private CSP. Local to each administration."; private CSP. Local to each administration.";
}
nacm:default-deny-write;
description
"Container for valid provider identifiers.";
} }
nacm:default-deny-write;
description
"Container for valid provider identifiers.";
}
description description
"Container for VPN profiles."; "Container for VPN profiles.";
} }
container vpn-services { container vpn-services {
list vpn-service { list vpn-service {
key "vpn-id"; key "vpn-id";
leaf vpn-id { leaf vpn-id {
type svc-id; type svc-id;
description description
"Defines a service identifier."; "Defines a service identifier.";
skipping to change at line 1698 skipping to change at line 1700
} }
leaf svc-topo { leaf svc-topo {
type identityref { type identityref {
base vpn-topology; base vpn-topology;
} }
default "any-to-any"; default "any-to-any";
description description
"Defines the service topology, e.g., "Defines the service topology, e.g.,
'any-to-any', 'hub-spoke'."; 'any-to-any', 'hub-spoke'.";
} }
container cloud-accesses { container cloud-accesses {
if-feature "cloud-access"; if-feature "cloud-access";
list cloud-access { list cloud-access {
key "cloud-identifier"; key "cloud-identifier";
leaf cloud-identifier { leaf cloud-identifier {
type leafref {
path "/l2vpn-svc/vpn-profiles/valid-provider-identifiers"
+ "/cloud-identifier";
}
description
"Identification of the cloud service.
Local to each administration.";
}
choice list-flavor {
case permit-any {
leaf permit-any {
type empty;
description
"Allow all sites.";
}
}
case deny-any-except {
leaf-list permit-site {
type leafref { type leafref {
path "/l2vpn-svc/sites/site/site-id"; path "/l2vpn-svc/vpn-profiles/"
+ "valid-provider-identifiers"
+ "/cloud-identifier";
} }
description description
"Site ID to be authorized."; "Identification of the cloud service.
Local to each administration.";
} }
} choice list-flavor {
case permit-any-except { case permit-any {
leaf-list deny-site { leaf permit-any {
type leafref { type empty;
path "/l2vpn-svc/sites/site/site-id"; description
"Allow all sites.";
}
}
case deny-any-except {
leaf-list permit-site {
type leafref {
path "/l2vpn-svc/sites/site/site-id";
}
description
"Site ID to be authorized.";
}
}
case permit-any-except {
leaf-list deny-site {
type leafref {
path "/l2vpn-svc/sites/site/site-id";
}
description
"Site ID to be denied.";
}
} }
description description
"Site ID to be denied."; "Choice for cloud access policy.
By default, all sites in the L2VPN
MUST be authorized to access the cloud.";
} }
description
"Cloud access configuration.";
} }
description description
"Choice for cloud access policy. "Container for cloud access configurations.";
By default, all sites in the L2VPN
MUST be authorized to access the cloud.";
} }
description container frame-delivery {
"Cloud access configuration."; if-feature "bum";
} container customer-tree-flavors {
description leaf-list tree-flavor {
"Container for cloud access configurations."; type identityref {
} base multicast-tree-type;
container frame-delivery { }
if-feature "bum"; description
container customer-tree-flavors { "Type of tree to be used.";
leaf-list tree-flavor { }
type identityref { description
base multicast-tree-type; "Types of trees used by the customer.";
} }
description container bum-deliveries {
"Type of tree to be used."; list bum-delivery {
} key "frame-type";
description leaf frame-type {
"Types of trees used by the customer."; type identityref {
} base tf-type;
container bum-deliveries { }
list bum-delivery { description
key "frame-type"; "Type of frame delivery. It supports unicast
leaf frame-type { frame delivery, multicast frame delivery,
type identityref { and broadcast frame delivery.";
base tf-type; }
leaf delivery-mode {
type identityref {
base frame-delivery-mode;
}
default "unconditional";
description
"Defines the frame delivery mode
('unconditional' (default), 'conditional',
or 'discard'). By default, service frames are
unconditionally delivered to the destination site.";
}
description
"List of frame delivery types and modes.";
}
description
"Defines the frame delivery types and modes.";
}
leaf multicast-gp-port-mapping {
type identityref {
base multicast-gp-address-mapping;
}
mandatory true;
description
"Describes the way in which each interface is
associated with the multicast group.";
} }
description description
"Type of frame delivery. It supports unicast "Multicast global parameters for the VPN service.";
frame delivery, multicast frame delivery,
and broadcast frame delivery.";
} }
leaf delivery-mode { container extranet-vpns {
type identityref { if-feature "extranet-vpn";
base frame-delivery-mode; list extranet-vpn {
key "vpn-id";
leaf vpn-id {
type svc-id;
description
"Identifies the target VPN that the local VPN wants to
access.";
}
leaf local-sites-role {
type identityref {
base site-role;
}
default "any-to-any-role";
description
"Describes the role of the local sites in the target
VPN topology. In the any-to-any VPN service topology,
the local sites must have the same role, which will be
'any-to-any-role'. In the Hub-and-Spoke VPN service
topology or the Hub-and-Spoke-Disjoint VPN service
topology, the local sites must have a Hub role or a
Spoke role.";
}
description
"List of extranet VPNs to which the local VPN
is attached.";
} }
default "unconditional";
description description
"Defines the frame delivery mode "Container for extranet VPN configurations.";
('unconditional' (default), 'conditional',
or 'discard'). By default, service frames are
unconditionally delivered to the destination site.";
}
description
"List of frame delivery types and modes.";
}
description
"Defines the frame delivery types and modes.";
}
leaf multicast-gp-port-mapping {
type identityref {
base multicast-gp-address-mapping;
} }
mandatory true; leaf ce-vlan-preservation {
description type boolean;
"Describes the way in which each interface is mandatory true;
associated with the multicast group.";
}
description
"Multicast global parameters for the VPN service.";
}
container extranet-vpns {
if-feature "extranet-vpn";
list extranet-vpn {
key "vpn-id";
leaf vpn-id {
type svc-id;
description description
"Identifies the target VPN that the local VPN wants to "Preserves the CE-VLAN ID from ingress to egress, i.e.,
access."; the CE-VLAN tag of the egress frame is identical to
that of the ingress frame that yielded this
egress service frame. If all-to-one bundling within
a site is enabled, then preservation applies to all
ingress service frames. If all-to-one bundling is
disabled, then preservation applies to tagged
ingress service frames having CE-VLAN IDs 1 through 4094.";
} }
leaf local-sites-role { leaf ce-vlan-cos-preservation {
type identityref { type boolean;
base site-role; mandatory true;
}
default "any-to-any-role";
description description
"Describes the role of the local sites in the target "CE VLAN CoS preservation. The PCP bits in the CE-VLAN tag
VPN topology. In the any-to-any VPN service topology, of the egress frame are identical to those of the
the local sites must have the same role, which will be ingress frame that yielded this egress service frame.";
'any-to-any-role'. In the Hub-and-Spoke VPN service
topology or the Hub-and-Spoke-Disjoint VPN service
topology, the local sites must have a Hub role or a
Spoke role.";
} }
description
"List of extranet VPNs to which the local VPN
is attached.";
}
description
"Container for extranet VPN configurations.";
}
leaf ce-vlan-preservation {
type boolean;
mandatory true;
description
"Preserves the CE-VLAN ID from ingress to egress, i.e.,
the CE-VLAN tag of the egress frame is identical to
that of the ingress frame that yielded this
egress service frame. If all-to-one bundling within
a site is enabled, then preservation applies to all
ingress service frames. If all-to-one bundling is
disabled, then preservation applies to tagged
ingress service frames having CE-VLAN IDs 1 through 4094.";
}
leaf ce-vlan-cos-preservation {
type boolean;
mandatory true;
description
"CE VLAN CoS preservation. The PCP bits in the CE-VLAN tag
of the egress frame are identical to those of the
ingress frame that yielded this egress service frame.";
}
leaf carrierscarrier { leaf carrierscarrier {
if-feature "carrierscarrier"; if-feature "carrierscarrier";
type boolean; type boolean;
default "false"; default "false";
description description
"The VPN is using CsC, and so MPLS is required."; "The VPN is using CsC, and so MPLS is required.";
} }
description description
"List of VPN services."; "List of VPN services.";
} }
skipping to change at line 1875 skipping to change at line 1878
"Container for VPN services."; "Container for VPN services.";
} }
container sites { container sites {
list site { list site {
key "site-id"; key "site-id";
leaf site-id { leaf site-id {
type string; type string;
description description
"Identifier of the site."; "Identifier of the site.";
} }
leaf site-vpn-flavor { leaf site-vpn-flavor {
type identityref { type identityref {
base site-vpn-flavor; base site-vpn-flavor;
}
default "site-vpn-flavor-single";
description
"Defines the way that the VPN multiplexing is
done, e.g., whether the site belongs to
a single VPN site or a multi-VPN site. By
default, the site belongs to a single VPN.";
}
container devices {
when "derived-from-or-self(../management/type, "
+ "'l2vpn-svc:provider-managed') or "
+ "derived-from-or-self(../management/type, "
+ "'l2vpn-svc:co-managed')" {
description
"Applicable only for a provider-managed or
co-managed device.";
}
list device {
key "device-id";
leaf device-id {
type string;
description
"Identifier for the device.";
}
leaf location {
type leafref {
path "../../../locations/location/location-id";
} }
mandatory true; default "site-vpn-flavor-single";
description description
"Location of the device."; "Defines the way that the VPN multiplexing is
done, e.g., whether the site belongs to
a single VPN site or a multi-VPN site. By
default, the site belongs to a single VPN.";
} }
container management { container devices {
when "derived-from-or-self(../../../management/type, " when "derived-from-or-self(../management/type, "
+ "'l2vpn-svc:provider-managed') or "
+ "derived-from-or-self(../management/type, "
+ "'l2vpn-svc:co-managed')" { + "'l2vpn-svc:co-managed')" {
description description
"Applicable only for a co-managed device."; "Applicable only for a provider-managed or
co-managed device.";
} }
leaf transport { list device {
type identityref { key "device-id";
base address-family; leaf device-id {
type string;
description
"Identifier for the device.";
} }
description leaf location {
"Transport protocol or address family type leafref {
used for management."; path "../../../locations/location/location-id";
} }
leaf address { mandatory true;
when "(../ transport)" {
description description
"If the address family is specified, then the address "Location of the device.";
should also be specified. If the transport is not }
specified, then the address should not be container management {
specified."; when "derived-from-or-self(../../../management/type, "
+ "'l2vpn-svc:co-managed')" {
description
"Applicable only for a co-managed device.";
}
leaf transport {
type identityref {
base address-family;
}
description
"Transport protocol or address family
used for management.";
}
leaf address {
when '(../ transport)' {
description
"If the address family is specified, then the
address should also be specified. If the
transport is not specified, then the address
should not be specified.";
}
type inet:ip-address;
description
"Management address.";
}
description
"Management configuration. Applicable only for a
co-managed device.";
} }
type inet:ip-address;
description description
"Management address."; "List of devices requested by the customer.";
} }
description description
"Management configuration. Applicable only for a "Device configurations.";
co-managed device.";
}
description
"List of devices requested by the customer.";
}
description
"Device configurations.";
}
container management {
leaf type {
type identityref {
base management;
}
mandatory true;
description
"Management type of the connection.";
}
description
"Management configuration.";
}
container locations {
list location {
key "location-id";
leaf location-id {
type string;
description
"Location ID.";
}
leaf address {
type string;
description
"Address (number and street) of the site.";
}
leaf postal-code {
type string;
description
"Postal code of the site. The format of 'postal-code'
is similar to the 'PC' (postal code) label format
defined in RFC 4119.";
}
leaf state {
type string;
description
"State (region) of the site. This leaf can also be used
to describe a region of a country that does not have
states.";
}
leaf city {
type string;
description
"City of the site.";
}
leaf country-code {
type string;
description
"Country of the site. The format of 'country-code' is
similar to the 'country' label defined in RFC 4119.";
} }
description container management {
"List of locations."; leaf type {
} type identityref {
description base management;
"Location of the site."; }
} mandatory true;
container site-diversity {
if-feature "site-diversity";
container groups {
list group {
key "group-id";
leaf group-id {
type string;
description description
"The group-id to which the site belongs."; "Management type of the connection.";
} }
description description
"List of group-ids."; "Management configuration.";
}
description
"Groups to which the site belongs.
All site network accesses will inherit those group
values.";
}
description
"The type of diversity constraint.";
}
container vpn-policies {
list vpn-policy {
key "vpn-policy-id";
leaf vpn-policy-id {
type string;
description
"Unique identifier for the VPN policy.";
} }
list entries { container locations {
key "id"; list location {
leaf id { key "location-id";
type string; leaf location-id {
type string;
description
"Location ID.";
}
leaf address {
type string;
description
"Address (number and street) of the site.";
}
leaf postal-code {
type string;
description
"Postal code of the site. The format of 'postal-code'
is similar to the 'PC' (postal code) label format
defined in RFC 4119.";
}
leaf state {
type string;
description
"State (region) of the site. This leaf can also be used
to describe a region of a country that does not have
states.";
}
leaf city {
type string;
description
"City of the site.";
}
leaf country-code {
type string;
description
"Country of the site. The format of 'country-code' is
similar to the 'country' label defined in RFC 4119.";
}
description description
"Unique identifier for the policy entry."; "List of locations.";
} }
container filters { description
list filter { "Location of the site.";
key "type"; }
ordered-by user; container site-diversity {
leaf type { if-feature "site-diversity";
type identityref { container groups {
base vpn-policy-filter-type; list group {
} key "group-id";
description leaf group-id {
"Type of VPN policy filter."; type string;
}
leaf-list lan-tag {
when "derived-from-or-self(../type, 'l2vpn-svc:lan')" {
description
"Only applies when the VPN policy filter is a
LAN tag filter.";
}
if-feature "lan-tag";
type uint32;
description description
"List of Ethernet LAN tags to be matched. An "The group-id to which the site belongs.";
Ethernet LAN tag identifies a particular broadcast
domain in a VPN.";
} }
description description
"List of filters used on the site. This list can "List of group-ids.";
be augmented.";
} }
description description
"If a more granular VPN attachment is necessary, "Groups to which the site belongs.
filtering can be used. If used, it permits the All site network accesses will inherit those group
splitting of site LANs among multiple VPNs. The values.";
site LAN can be split based on either the LAN tag or
the LAN prefix. If no filter is used, all the LANs
will be part of the same VPNs with the same role.";
} }
list vpn { description
key "vpn-id"; "The type of diversity constraint.";
leaf vpn-id { }
type leafref { container vpn-policies {
path "/l2vpn-svc/vpn-services/vpn-service/vpn-id"; list vpn-policy {
} key "vpn-policy-id";
leaf vpn-policy-id {
type string;
description description
"Reference to an L2VPN."; "Unique identifier for the VPN policy.";
} }
leaf site-role { list entries {
type identityref { key "id";
base site-role; leaf id {
type string;
description
"Unique identifier for the policy entry.";
}
container filters {
list filter {
key "type";
ordered-by user;
leaf type {
type identityref {
base vpn-policy-filter-type;
}
description
"Type of VPN policy filter.";
}
leaf-list lan-tag {
when "derived-from-or-self(../type, "
+ "'l2vpn-svc:lan')" {
description
"Only applies when the VPN policy filter is a
LAN tag filter.";
}
if-feature "lan-tag";
type uint32;
description
"List of Ethernet LAN tags to be matched. An
Ethernet LAN tag identifies a particular
broadcast domain in a VPN.";
}
description
"List of filters used on the site. This list can
be augmented.";
}
description
"If a more granular VPN attachment is necessary,
filtering can be used. If used, it permits the
splitting of site LANs among multiple VPNs. The
site LAN can be split based on either the LAN tag or
the LAN prefix. If no filter is used, all the LANs
will be part of the same VPNs with the same role.";
}
list vpn {
key "vpn-id";
leaf vpn-id {
type leafref {
path "/l2vpn-svc/vpn-services/vpn-service/vpn-id";
}
description
"Reference to an L2VPN.";
}
leaf site-role {
type identityref {
base site-role;
}
default "any-to-any-role";
description
"Role of the site in the L2VPN.";
}
description
"List of VPNs with which the LAN is associated.";
} }
default "any-to-any-role";
description description
"Role of the site in the L2VPN."; "List of entries for an export policy.";
} }
description description
"List of VPNs with which the LAN is associated."; "List of VPN policies.";
} }
description description
"List of entries for an export policy."; "VPN policy.";
}
container service {
uses site-service-qos-profile;
uses site-service-mpls;
description
"Service parameters on the attachment.";
} }
description
"List of VPN policies.";
}
description
"VPN policy.";
}
container service {
uses site-service-qos-profile;
uses site-service-mpls;
description
"Service parameters on the attachment.";
}
uses site-bum; uses site-bum;
uses site-mac-loop-prevention; uses site-mac-loop-prevention;
uses site-acl; uses site-acl;
leaf actual-site-start { leaf actual-site-start {
type yang:date-and-time; type yang:date-and-time;
config false; config false;
description description
"This leaf is optional. It indicates the date and time "This leaf is optional. It indicates the date and time
when the service at a particular site actually started."; when the service at a particular site actually started.";
} }
leaf actual-site-stop { leaf actual-site-stop {
type yang:date-and-time; type yang:date-and-time;
config false; config false;
description description
"This leaf is optional. It indicates the date and time "This leaf is optional. It indicates the date and time
when the service at a particular site actually stopped."; when the service at a particular site actually stopped.";
} }
leaf bundling-type { leaf bundling-type {
type identityref { type identityref {
base bundling-type; base bundling-type;
} }
default "one2one-bundling"; default "one2one-bundling";
description description
"Bundling type. By default, each L2VPN "Bundling type. By default, each L2VPN
can be associated with only one can be associated with only one
CE-VLAN, i.e., one-to-one bundling is used."; CE-VLAN, i.e., one-to-one bundling is used.";
} }
leaf default-ce-vlan-id { leaf default-ce-vlan-id {
type uint32; type uint32;
mandatory true; mandatory true;
description description
"Default CE VLAN ID set at the site level."; "Default CE VLAN ID set at the site level.";
} }
container site-network-accesses { container site-network-accesses {
list site-network-access { list site-network-access {
key "network-access-id"; key "network-access-id";
leaf network-access-id { leaf network-access-id {
type string; type string;
description description
"Identifier of network access."; "Identifier of network access.";
} }
leaf remote-carrier-name { leaf remote-carrier-name {
when "derived-from-or-self(../../../site-vpn-flavor," when "derived-from-or-self(../../../site-vpn-flavor,"
skipping to change at line 2173 skipping to change at line 2174
+ "/remote-carrier-identifier"; + "/remote-carrier-identifier";
} }
description description
"Remote carrier name. The 'remote-carrier-name' "Remote carrier name. The 'remote-carrier-name'
parameter must be configured only when parameter must be configured only when
'site-vpn-flavor' is set to 'site-vpn-flavor-nni'. 'site-vpn-flavor' is set to 'site-vpn-flavor-nni'.
If it is not set, it indicates that the customer If it is not set, it indicates that the customer
does not know the remote carrier's name does not know the remote carrier's name
beforehand."; beforehand.";
} }
leaf type { leaf type {
type identityref { type identityref {
base site-network-access-type; base site-network-access-type;
} }
default "point-to-point"; default "point-to-point";
description description
"Describes the type of connection, e.g., "Describes the type of connection, e.g.,
point-to-point or multipoint."; point-to-point or multipoint.";
}
choice location-flavor {
case location {
when "derived-from-or-self(../../management/type, "
+ "'l2vpn-svc:customer-managed')" {
description
"Applicable only for a customer-managed device.";
}
leaf location-reference {
type leafref {
path "../../../locations/location/location-id";
}
description
"Location of the site-network-access.";
}
}
case device {
when "derived-from-or-self(../../management/type, "
+ "'l2vpn-svc:provider-managed') or "
+ "derived-from-or-self(../../management/type, "
+ "'l2vpn-svc:co-managed')" {
description
"Applicable only for a provider-managed
or co-managed device.";
}
leaf device-reference {
type leafref {
path "../../../devices/device/device-id";
}
description
"Identifier of the CE to use.";
}
}
mandatory true;
description
"Choice of how to describe the site's location.";
}
container access-diversity {
if-feature "site-diversity";
container groups {
list group {
key "group-id";
leaf group-id {
type string;
description
"Group-id to which the site belongs.";
}
description
"List of group-ids.";
}
description
"Groups to which the site or site-network-access belongs.";
}
container constraints {
list constraint {
key "constraint-type";
leaf constraint-type {
type identityref {
base placement-diversity;
} }
description choice location-flavor {
"The type of diversity constraint."; case location {
} when "derived-from-or-self(../../management/type, "
container target { + "'l2vpn-svc:customer-managed')" {
choice target-flavor { description
default "id"; "Applicable only for a customer-managed device.";
case id { }
leaf location-reference {
type leafref {
path "../../../locations/location/location-id";
}
description
"Location of the site-network-access.";
}
}
case device {
when "derived-from-or-self(../../management/type, "
+ "'l2vpn-svc:provider-managed') or "
+ "derived-from-or-self(../../management/type, "
+ "'l2vpn-svc:co-managed')" {
description
"Applicable only for a provider-managed
or co-managed device.";
}
leaf device-reference {
type leafref {
path "../../../devices/device/device-id";
}
description
"Identifier of the CE to use.";
}
}
mandatory true;
description
"Choice of how to describe the site's location.";
}
container access-diversity {
if-feature "site-diversity";
container groups {
list group { list group {
key "group-id"; key "group-id";
leaf group-id { leaf group-id {
type string; type string;
description description
"The constraint will apply against this "Group-id to which the site belongs.";
particular group-id.";
} }
description description
"List of groups."; "List of group-ids.";
} }
description
"Groups to which the site or site-network-access
belongs.";
} }
case all-accesses { container constraints {
leaf all-other-accesses { list constraint {
type empty; key "constraint-type";
leaf constraint-type {
type identityref {
base placement-diversity;
}
description
"The type of diversity constraint.";
}
container target {
choice target-flavor {
default "id";
case id {
list group {
key "group-id";
leaf group-id {
type string;
description
"The constraint will apply against this
particular group-id.";
}
description
"List of groups.";
}
}
case all-accesses {
leaf all-other-accesses {
type empty;
description
"The constraint will apply against all other
site network accesses of this site.";
}
}
case all-groups {
leaf all-other-groups {
type empty;
description
"The constraint will apply against all other
groups the customer is managing.";
}
}
description
"Choice for the group definition.";
}
description
"The constraint will apply against
this list of groups.";
}
description description
"The constraint will apply against all other "List of constraints.";
site network accesses of this site.";
} }
description
"Constraints for placing this site network access.";
} }
case all-groups { description
leaf all-other-groups { "Diversity parameters.";
type empty; }
container bearer {
container requested-type {
if-feature "requested-type";
leaf type {
type string;
description description
"The constraint will apply against all other "Type of requested bearer: Ethernet, ATM, Frame
groups the customer is managing."; Relay, IP Layer 2 transport, Frame Relay Data
Link Connection Identifier (DLCI), SONET/SDH,
PPP.";
}
leaf strict {
type boolean;
default "false";
description
"Defines whether the requested type is a preference
or a strict requirement.";
} }
description
"Container for requested types.";
}
leaf always-on {
if-feature "always-on";
type boolean;
default "true";
description
"Request for an 'always-on' access type.
For example, this could mean no dial-in access
type.";
}
leaf bearer-reference {
if-feature "bearer-reference";
type string;
description
"An internal reference for the SP.";
} }
description description
"Choice for the group definition."; "Bearer-specific parameters. To be augmented.";
} }
description container connection {
"The constraint will apply against leaf encapsulation-type {
this list of groups."; type identityref {
} base encapsulation-type;
description }
"List of constraints."; default "ethernet";
} description
description "Encapsulation type. By default, the
"Constraints for placing this site network access."; encapsulation type is set to 'ethernet'.";
} }
description leaf eth-inf-type {
"Diversity parameters."; type identityref {
} base eth-inf-type;
container bearer { }
container requested-type { default "untagged";
if-feature "requested-type"; description
leaf type { "Ethernet interface type. By default, the
type string; Ethernet interface type is set to 'untagged'.";
description }
"Type of requested bearer: Ethernet, ATM, Frame Relay, container tagged-interface {
IP Layer 2 transport, Frame Relay Data Link leaf type {
Connection Identifier (DLCI), SONET/SDH, PPP."; type identityref {
} base tagged-inf-type;
leaf strict { }
type boolean; default "priority-tagged";
default "false"; description
description "Tagged interface type. By default,
"Defines whether the requested type is a preference the type of the tagged interface is
or a strict requirement."; 'priority-tagged'.";
} }
description container dot1q-vlan-tagged {
"Container for requested types."; when "derived-from-or-self(../type, "
} + "'l2vpn-svc:dot1q')" {
leaf always-on { description
if-feature "always-on"; "Only applies when the type of the tagged
type boolean; interface is 'dot1q'.";
default "true"; }
description if-feature "dot1q";
"Request for an 'always-on' access type. leaf tg-type {
For example, this could mean no dial-in access type."; type identityref {
} base tag-type;
leaf bearer-reference { }
if-feature "bearer-reference"; default "c-vlan";
type string; description
description "Tag type. By default, the tag type is
"An internal reference for the SP."; 'c-vlan'.";
} }
description leaf cvlan-id {
"Bearer-specific parameters. To be augmented."; type uint16;
} mandatory true;
container connection { description
leaf encapsulation-type { "VLAN identifier.";
type identityref { }
base encapsulation-type; description
} "Tagged interface.";
default "ethernet"; }
description container priority-tagged {
"Encapsulation type. By default, the when "derived-from-or-self(../type, "
encapsulation type is set to 'ethernet'."; + "'l2vpn-svc:priority-tagged')" {
} description
leaf eth-inf-type { "Only applies when the type of the tagged
type identityref { interface is 'priority-tagged'.";
base eth-inf-type; }
} leaf tag-type {
default "untagged"; type identityref {
description base tag-type;
"Ethernet interface type. By default, the }
Ethernet interface type is set to 'untagged'."; default "c-vlan";
} description
container tagged-interface { "Tag type. By default, the tag type is
leaf type { 'c-vlan'.";
type identityref { }
base tagged-inf-type; description
} "Priority tagged.";
default "priority-tagged"; }
description container qinq {
"Tagged interface type. By default, when "derived-from-or-self(../type, "
the type of the tagged interface is 'priority-tagged'."; + "'l2vpn-svc:qinq')" {
} description
container dot1q-vlan-tagged { "Only applies when the type of the tagged
when "derived-from-or-self(../type, 'l2vpn-svc:dot1q')" { interface is 'qinq'.";
description }
"Only applies when the type of the tagged interface if-feature "qinq";
is 'dot1q'."; leaf tag-type {
} type identityref {
if-feature "dot1q"; base tag-type;
leaf tg-type { }
type identityref { default "c-s-vlan";
base tag-type; description
} "Tag type. By default, the tag type is
default "c-vlan"; 'c-s-vlan'.";
description }
"Tag type. By default, the tag type is 'c-vlan'."; leaf svlan-id {
} type uint16;
leaf cvlan-id { mandatory true;
type uint16; description
mandatory true; "SVLAN identifier.";
description }
"VLAN identifier."; leaf cvlan-id {
} type uint16;
description mandatory true;
"Tagged interface."; description
} "CVLAN identifier.";
container priority-tagged { }
when "derived-from-or-self(../type, " description
+ "'l2vpn-svc:priority-tagged')" { "QinQ.";
description }
"Only applies when the type of the tagged interface container qinany {
is 'priority-tagged'."; when "derived-from-or-self(../type, "
} + "'l2vpn-svc:qinany')" {
leaf tag-type { description
type identityref { "Only applies when the type of the tagged
base tag-type; interface is 'qinany'.";
} }
default "c-vlan"; if-feature "qinany";
description leaf tag-type {
"Tag type. By default, the tag type is 'c-vlan'."; type identityref {
} base tag-type;
description }
"Priority tagged."; default "s-vlan";
} description
container qinq { "Tag type. By default, the tag type is
when "derived-from-or-self(../type, 'l2vpn-svc:qinq')" { 's-vlan'.";
description }
"Only applies when the type of the tagged interface leaf svlan-id {
is 'qinq'."; type uint16;
} mandatory true;
if-feature "qinq"; description
leaf tag-type { "SVLAN ID.";
type identityref { }
base tag-type; description
} "Container for QinAny.";
default "c-s-vlan"; }
description container vxlan {
"Tag type. By default, the tag type is 'c-s-vlan'."; when "derived-from-or-self(../type, "
} + "'l2vpn-svc:vxlan')" {
leaf svlan-id { description
type uint16; "Only applies when the type of the tagged
mandatory true; interface is 'vxlan'.";
description }
"SVLAN identifier."; if-feature "vxlan";
} leaf vni-id {
leaf cvlan-id { type uint32;
type uint16; mandatory true;
mandatory true; description
description "VXLAN Network Identifier (VNI).";
"CVLAN identifier."; }
} leaf peer-mode {
description type identityref {
"QinQ."; base vxlan-peer-mode;
} }
container qinany { default "static-mode";
when "derived-from-or-self(../type, 'l2vpn-svc:qinany')" { description
description "Specifies the VXLAN access mode. By default,
"Only applies when the type of the tagged interface the peer mode is set to 'static-mode'.";
is 'qinany'."; }
} list peer-list {
if-feature "qinany"; key "peer-ip";
leaf tag-type { leaf peer-ip {
type identityref { type inet:ip-address;
base tag-type; description
} "Peer IP.";
default "s-vlan"; }
description description
"Tag type. By default, the tag type is 's-vlan'."; "List of peer IP addresses.";
} }
leaf svlan-id { description
type uint16; "QinQ.";
mandatory true; }
description description
"SVLAN ID."; "Container for tagged interfaces.";
} }
description container untagged-interface {
"Container for QinAny."; leaf speed {
} type uint32;
container vxlan { units "mbps";
when "derived-from-or-self(../type, 'l2vpn-svc:vxlan')" { default "10";
description description
"Only applies when the type of the tagged interface "Port speed.";
is 'vxlan'."; }
} leaf mode {
if-feature "vxlan"; type neg-mode;
leaf vni-id { default "auto-neg";
type uint32; description
mandatory true; "Negotiation mode.";
description }
"VXLAN Network Identifier (VNI)."; leaf phy-mtu {
} type uint32;
leaf peer-mode { units "bytes";
type identityref { description
base vxlan-peer-mode; "PHY MTU.";
} }
default "static-mode"; leaf lldp {
description type boolean;
"Specifies the VXLAN access mode. By default, default "false";
the peer mode is set to 'static-mode'."; description
} "LLDP. Indicates that LLDP is supported.";
list peer-list { }
key "peer-ip"; container oam-802.3ah-link {
leaf peer-ip { if-feature "oam-3ah";
type inet:ip-address; leaf enabled {
description type boolean;
"Peer IP."; default "false";
} description
description "Indicates whether or not to support
"List of peer IP addresses."; OAM 802.3ah links.";
} }
description description
"QinQ."; "Container for OAM 802.3ah links.";
} }
leaf uni-loop-prevention {
description type boolean;
"Container for tagged interfaces."; default "false";
} description
container untagged-interface { "If this leaf is set to 'true', then the port
leaf speed { automatically goes down when a physical
type uint32; loopback is detected.";
units "mbps"; }
default "10"; description
description "Container of untagged interface attribute
"Port speed."; configurations.";
} }
leaf mode { container lag-interfaces {
type neg-mode; if-feature "lag-interface";
default "auto-neg"; list lag-interface {
description key "index";
"Negotiation mode."; leaf index {
} type string;
leaf phy-mtu { description
type uint32; "LAG interface index.";
units "bytes"; }
description container lacp {
"PHY MTU."; if-feature "lacp";
} leaf enabled {
leaf lldp { type boolean;
type boolean; default "false";
default "false"; description
description "LACP on/off. By default, LACP is disabled.";
"LLDP. Indicates that LLDP is supported."; }
} leaf mode {
container oam-802.3ah-link { type neg-mode;
if-feature "oam-3ah"; description
leaf enabled { "LACP mode. LACP modes have active mode and
type boolean; passive mode ('false'). 'Active mode' means
default "false"; initiating the auto-speed negotiation and
description trying to form an Ethernet channel with the
"Indicates whether or not to support other end. 'Passive mode' means not initiating
OAM 802.3ah links."; the negotiation but responding to LACP packets
} initiated by the other end (e.g., full duplex
description or half duplex).";
"Container for OAM 802.3ah links."; }
} leaf speed {
leaf uni-loop-prevention { type uint32;
type boolean; units "mbps";
default "false"; default "10";
description description
"If this leaf is set to 'true', then the port automatically "LACP speed. By default, the LACP speed is 10
goes down when a physical loopback is detected."; Mbps.";
} }
description leaf mini-link-num {
"Container of untagged interface attribute configurations."; type uint32;
} description
container lag-interfaces { "Defines the minimum number of links that must
if-feature "lag-interface"; be active before the aggregating link is put
list lag-interface { into service.";
key "index"; }
leaf index { leaf system-priority {
type string; type uint16;
description default "32768";
"LAG interface index."; description
} "Indicates the LACP priority for the system.
container lacp { The range is from 0 to 65535.
if-feature "lacp"; The default is 32768.";
leaf enabled { }
type boolean; container micro-bfd {
if-feature "micro-bfd";
default "false"; leaf enabled {
description type enumeration {
"LACP on/off. By default, LACP is disabled."; enum on {
} description
leaf mode { "Micro-bfd on.";
type neg-mode; }
description enum off {
"LACP mode. LACP modes have active mode and description
passive mode ('false'). 'Active mode' means "Micro-bfd off.";
initiating the auto-speed negotiation and trying }
to form an Ethernet channel with the other end. }
'Passive mode' means not initiating the negotiation default "off";
but responding to LACP packets initiated by the description
other end (e.g., full duplex or half duplex)."; "Micro-BFD on/off. By default, micro-BFD
} is set to 'off'.";
leaf speed { }
type uint32; leaf interval {
units "mbps"; type uint32;
default "10"; units "milliseconds";
description description
"LACP speed. By default, the LACP speed is 10 Mbps."; "BFD interval.";
} }
leaf mini-link-num { leaf hold-timer {
type uint32; type uint32;
description units "milliseconds";
"Defines the minimum number of links that must be description
active before the aggregating link is put "BFD hold timer.";
into service."; }
} description
leaf system-priority { "Container of micro-BFD configurations.";
type uint16; }
default "32768"; container bfd {
description if-feature "bfd";
"Indicates the LACP priority for the system. leaf enabled {
The range is from 0 to 65535. type boolean;
The default is 32768."; default "false";
} description
container micro-bfd { "BFD activation. By default, BFD is not
if-feature "micro-bfd"; activated.";
leaf enabled { }
type enumeration { choice holdtime {
enum "on" { default "fixed";
case profile {
leaf profile-name {
type leafref {
path "/l2vpn-svc/vpn-profiles/"
+ "valid-provider-identifiers"
+ "/bfd-profile-identifier";
}
description
"SP well-known profile.";
}
description
"SP well-known profile.";
}
case fixed {
leaf fixed-value {
type uint32;
units "milliseconds";
description
"Expected hold time expressed in
milliseconds.";
}
}
description
"Choice for the hold-time flavor.";
}
description
"Container for BFD.";
}
container member-links {
list member-link {
key "name";
leaf name {
type string;
description
"Member link name.";
}
leaf speed {
type uint32;
units "mbps";
default "10";
description
"Port speed.";
}
leaf mode {
type neg-mode;
default "auto-neg";
description
"Negotiation mode.";
}
leaf link-mtu {
type uint32;
units "bytes";
description
"Link MTU size.";
}
container oam-802.3ah-link {
if-feature "oam-3ah";
leaf enabled {
type boolean;
default "false";
description
"Indicates whether OAM 802.3ah links are
supported.";
}
description
"Container for OAM 802.3ah links.";
}
description
"Member link.";
}
description
"Container of the member link list.";
}
leaf flow-control {
type boolean;
default "false";
description
"Flow control. Indicates whether flow control
is supported.";
}
leaf lldp {
type boolean;
default "false";
description
"LLDP. Indicates whether LLDP is supported.";
}
description
"LACP.";
}
description
"List of LAG interfaces.";
}
description
"Container of LAG interface attribute
configurations.";
}
list cvlan-id-to-svc-map {
key "svc-id";
leaf svc-id {
type leafref {
path "/l2vpn-svc/vpn-services/vpn-service/vpn-id";
}
description
"VPN service identifier.";
}
list cvlan-id {
key "vid";
leaf vid {
type uint16;
description
"CVLAN ID.";
}
description
"List of CVLAN-ID-to-SVC-map configurations.";
}
description
"List of CVLAN-ID-to-L2VPN-service-map
configurations.";
}
container l2cp-control {
if-feature "l2cp-control";
leaf stp-rstp-mstp {
type control-mode;
description
"STP / Rapid STP (RSTP) / Multiple STP (MSTP)
protocol type applicable to all sites.";
}
leaf pause {
type control-mode;
description
"Pause protocol type applicable to all sites.";
}
leaf lacp-lamp {
type control-mode;
description
"LACP / Link Aggregation Marker Protocol (LAMP).";
}
leaf link-oam {
type control-mode;
description
"Link OAM.";
}
leaf esmc {
type control-mode;
description
"Ethernet Synchronization Messaging Channel
(ESMC).";
}
leaf l2cp-802.1x {
type control-mode;
description
"IEEE 802.1x.";
}
leaf e-lmi {
type control-mode;
description
"E-LMI.";
}
leaf lldp {
type boolean;
description
"LLDP protocol type applicable to all sites.";
}
leaf ptp-peer-delay {
type control-mode;
description
"Precision Time Protocol (PTP) peer delay.";
}
leaf garp-mrp {
type control-mode;
description
"GARP/MRP.";
}
description
"Container of L2CP control configurations.";
}
container oam {
if-feature "ethernet-oam";
leaf md-name {
type string;
mandatory true;
description
"Maintenance domain name.";
}
leaf md-level {
type uint16 {
range "0..255";
}
mandatory true;
description
"Maintenance domain level. The level may be
restricted in certain protocols (e.g.,
protocols in Layer 0 to Layer 7).";
}
list cfm-8021-ag {
if-feature "cfm";
key "maid";
leaf maid {
type string;
mandatory true;
description
"Identifies a Maintenance Association (MA).";
}
leaf mep-id {
type uint32;
description
"Local Maintenance Entity Group End Point (MEP)
ID. The non-existence of this leaf means
that no defects are to be reported.";
}
leaf mep-level {
type uint32;
description
"Defines the MEP level. The non-existence of this
leaf means that no defects are to be reported.";
}
leaf mep-up-down {
type enumeration {
enum up {
description
"MEP up.";
}
enum down {
description
"MEP down.";
}
}
default "up";
description
"MEP up/down. By default, MEP up is used.
The non-existence of this leaf means that
no defects are to be reported.";
}
leaf remote-mep-id {
type uint32;
description
"Remote MEP ID. The non-existence of this leaf
means that no defects are to be reported.";
}
leaf cos-for-cfm-pdus {
type uint32;
description
"CoS for CFM PDUs. The non-existence of this leaf
means that no defects are to be reported.";
}
leaf ccm-interval {
type uint32;
units "milliseconds";
default "10000";
description
"CCM interval. By default, the CCM interval is
10,000 milliseconds (10 seconds).";
}
leaf ccm-holdtime {
type uint32;
units "milliseconds";
default "35000";
description
"CCM hold time. By default, the CCM hold time
is 3.5 times the CCM interval.";
}
leaf alarm-priority-defect {
type identityref {
base fault-alarm-defect-type;
}
default "remote-invalid-ccm";
description
"The lowest-priority defect that is
allowed to generate a fault alarm. By default,
'fault-alarm-defect-type' is set to
'remote-invalid-ccm'. The non-existence of
this leaf means that no defects are
to be reported.";
}
leaf ccm-p-bits-pri {
type ccm-priority-type;
description
"The priority parameter for CCMs transmitted by
the MEP. The non-existence of this leaf means
that no defects are to be reported.";
}
description
"List of 802.1ag CFM attributes.";
}
list y-1731 {
if-feature "y-1731";
key "maid";
leaf maid {
type string;
mandatory true;
description
"Identifies an MA.";
}
leaf mep-id {
type uint32;
description
"Local MEP ID. The non-existence of this leaf
means that no measurements are to be reported.";
}
leaf type {
type identityref {
base pm-type;
}
default "delay";
description
"Performance-monitoring types. By default, the
performance-monitoring type is set to 'delay'.
The non-existence of this leaf means that no
measurements are to be reported.";
}
leaf remote-mep-id {
type uint32;
description
"Remote MEP ID. The non-existence of this
leaf means that no measurements are to be
reported.";
}
leaf message-period {
type uint32;
units "milliseconds";
default "10000";
description
"Defines the interval between Y.1731
performance-monitoring messages. The message
period is expressed in milliseconds.";
}
leaf measurement-interval {
type uint32;
units "seconds";
description
"Specifies the measurement interval for
statistics. The measurement interval is
expressed in seconds.";
}
leaf cos {
type uint32;
description
"CoS. The non-existence of this leaf means that
no measurements are to be reported.";
}
leaf loss-measurement {
type boolean;
default "false";
description
"Indicates whether or not to enable loss
measurement. By default, loss
measurement is not enabled.";
}
leaf synthetic-loss-measurement {
type boolean;
default "false";
description
"Indicates whether or not to enable synthetic loss
measurement. By default, synthetic loss
measurement is not enabled.";
}
container delay-measurement {
leaf enable-dm {
type boolean;
default "false";
description
"Indicates whether or not to enable delay
measurement. By default, delay measurement
is not enabled.";
}
leaf two-way {
type boolean;
default "false";
description
"Indicates whether delay measurement is two-way
('true') or one-way ('false'). By default,
one-way measurement is enabled.";
}
description
"Container for delay measurement.";
}
leaf frame-size {
type uint32;
units "bytes";
description
"Frame size. The non-existence of this leaf
means that no measurements are to be reported.";
}
leaf session-type {
type enumeration {
enum proactive {
description
"Proactive mode.";
}
enum on-demand {
description
"On-demand mode.";
}
}
default "on-demand";
description
"Session type. By default, the session type
is 'on-demand'. The non-existence of this
leaf means that no measurements are to be
reported.";
}
description
"List of configured Y-1731 instances.";
}
description
"Container for Ethernet Service OAM.";
}
description description
"Micro-bfd on."; "Container for connection requirements.";
} }
enum "off" { container availability {
leaf access-priority {
type uint32;
default "100";
description
"Access priority. The higher the access-priority
value, the higher the preference will be for the
access in question.";
}
choice redundancy-mode {
case single-active {
leaf single-active {
type empty;
description
"Single-active mode.";
}
description
"In single-active mode, only one node forwards
traffic to and from the Ethernet segment.";
}
case all-active {
leaf all-active {
type empty;
description
"All-active mode.";
}
description
"In all-active mode, all nodes can forward
traffic.";
}
description
"Redundancy mode choice.";
}
description description
"Micro-bfd off."; "Container of available optional configurations.";
} }
} container vpn-attachment {
default "off"; choice attachment-flavor {
description case vpn-id {
"Micro-BFD on/off. By default, micro-BFD leaf vpn-id {
is set to 'off'."; type leafref {
} path "/l2vpn-svc/vpn-services/vpn-service/vpn-id";
leaf interval { }
type uint32; description
units "milliseconds"; "Reference to an L2VPN. Referencing a vpn-id
description provides an easy way to attach a particular
"BFD interval."; logical access to a VPN. In this case,
} the vpn-id must be configured.";
leaf hold-timer { }
type uint32; leaf site-role {
units "milliseconds"; type identityref {
description base site-role;
"BFD hold timer."; }
} default "any-to-any-role";
description description
"Container of micro-BFD configurations."; "Role of the site in the L2VPN. When referencing
} a vpn-id, the site-role setting must be added to
container bfd { express the role of the site in the target VPN
if-feature "bfd"; service topology.";
leaf enabled { }
type boolean; }
default "false"; case vpn-policy-id {
description leaf vpn-policy-id {
"BFD activation. By default, BFD is not activated."; type leafref {
} path "../../../../vpn-policies/vpn-policy/"
choice holdtime { + "vpn-policy-id";
default "fixed"; }
case profile { description
leaf profile-name { "Reference to a VPN policy.";
type leafref { }
path "/l2vpn-svc/vpn-profiles/" }
+ "valid-provider-identifiers" mandatory true;
+ "/bfd-profile-identifier"; description
"Choice for the VPN attachment flavor.";
} }
description description
"SP well-known profile."; "Defines the VPN attachment of a site.";
} }
description container service {
"SP well-known profile."; container svc-bandwidth {
} if-feature "input-bw";
case fixed { list bandwidth {
leaf fixed-value { key "direction type";
type uint32; leaf direction {
units "milliseconds"; type identityref {
base bw-direction;
}
description
"Indicates the bandwidth direction. It can be
the bandwidth download direction from the SP to
the site or the bandwidth upload direction from
the site to the SP.";
}
leaf type {
type identityref {
base bw-type;
}
description
"Bandwidth type. By default, the bandwidth type
is set to 'bw-per-cos'.";
}
leaf cos-id {
when "derived-from-or-self(../type, "
+ "'l2vpn-svc:bw-per-cos')" {
description
"Relevant when the bandwidth type is set to
'bw-per-cos'.";
}
type uint8;
description
"Identifier of the CoS, indicated by DSCP or a
CE-VLAN CoS (802.1p) value in the service frame.
If the bandwidth type is set to 'bw-per-cos',
the CoS ID MUST also be specified.";
}
leaf vpn-id {
when "derived-from-or-self(../type, "
+ "'l2vpn-svc:bw-per-svc')" {
description
"Relevant when the bandwidth type is
set as bandwidth per VPN service.";
}
type svc-id;
description
"Identifies the target VPN. If the bandwidth
type is set as bandwidth per VPN service, the
vpn-id MUST be specified.";
}
leaf cir {
type uint64;
units "bps";
mandatory true;
description
"Committed Information Rate. The maximum number
of bits that a port can receive or send over
an interface in one second.";
}
leaf cbs {
type uint64;
units "bps";
mandatory true;
description
"Committed Burst Size (CBS). Controls the bursty
nature of the traffic. Traffic that does not
use the configured Committed Information Rate
(CIR) accumulates credits until the credits
reach the configured CBS.";
}
leaf eir {
type uint64;
units "bps";
description
"Excess Information Rate (EIR), i.e., excess frame
delivery allowed that is not subject to an SLA.
The traffic rate can be limited by the EIR.";
}
leaf ebs {
type uint64;
units "bps";
description
"Excess Burst Size (EBS). The bandwidth available
for burst traffic from the EBS is subject to the
amount of bandwidth that is accumulated during
periods when traffic allocated by the EIR
policy is not used.";
}
leaf pir {
type uint64;
units "bps";
description
"Peak Information Rate, i.e., maximum frame
delivery allowed. It is equal to or less
than the sum of the CIR and the EIR.";
}
leaf pbs {
type uint64;
units "bps";
description
"Peak Burst Size. It is measured in bytes per
second.";
}
description
"List of bandwidth values (e.g., per CoS,
per vpn-id).";
}
description
"From the customer site's perspective, the service
input/output bandwidth of the connection or
download/upload bandwidth from the SP/site
to the site/SP.";
}
leaf svc-mtu {
type uint16;
units "bytes";
mandatory true;
description
"SVC MTU. It is also known as the maximum
transmission unit or maximum frame size. When
a frame is larger than the MTU, it is broken
down, or fragmented, into smaller pieces by
the network protocol to accommodate the MTU
of the network. If CsC is enabled,
the requested svc-mtu leaf will refer to the
MPLS MTU and not to the link MTU.";
}
uses site-service-qos-profile;
uses site-service-mpls;
description description
"Expected hold time expressed in milliseconds."; "Container for services.";
} }
} uses site-bum;
description uses site-mac-loop-prevention;
"Choice for the hold-time flavor."; uses site-acl;
} container mac-addr-limit {
description if-feature "mac-addr-limit";
"Container for BFD."; leaf limit-number {
} type uint16;
container member-links { default "2";
list member-link { description
key "name"; "Maximum number of MAC addresses learned from
leaf name { the subscriber for a single service instance.
type string; The default allowed maximum number of MAC
description addresses is 2.";
"Member link name."; }
} leaf time-interval {
leaf speed { type uint32;
type uint32; units "seconds";
units "mbps"; default "300";
default "10"; description
description "The aging time of the MAC address. By default,
"Port speed."; the aging time is set to 300 seconds.";
} }
leaf mode { leaf action {
type neg-mode; type identityref {
default "auto-neg"; base mac-action;
description }
"Negotiation mode."; default "warning";
} description
leaf link-mtu { "Specifies the action taken when the upper limit is
type uint32; exceeded: drop the packet, flood the packet, or
units "bytes"; simply send a warning log message. By default,
description the action is set to 'warning'.";
"Link MTU size."; }
}
container oam-802.3ah-link {
if-feature "oam-3ah";
leaf enabled {
type boolean;
default "false";
description description
"Indicates whether OAM 802.3ah links are supported."; "Container of MAC address limit configurations.";
}
description
"Container for OAM 802.3ah links.";
}
description
"Member link.";
}
description
"Container of the member link list.";
}
leaf flow-control {
type boolean;
default "false";
description
"Flow control. Indicates whether flow control is
supported.";
}
leaf lldp {
type boolean;
default "false";
description
"LLDP. Indicates whether LLDP is supported.";
}
description
"LACP.";
}
description
"List of LAG interfaces.";
}
description
"Container of LAG interface attribute configurations.";
}
list cvlan-id-to-svc-map {
key "svc-id";
leaf svc-id {
type leafref {
path "/l2vpn-svc/vpn-services/vpn-service/vpn-id";
}
description
"VPN service identifier.";
}
list cvlan-id {
key "vid";
leaf vid {
type uint16;
description
"CVLAN ID.";
}
description
"List of CVLAN-ID-to-SVC-map configurations.";
}
description
"List of CVLAN-ID-to-L2VPN-service-map configurations.";
}
container l2cp-control {
if-feature "l2cp-control";
leaf stp-rstp-mstp {
type control-mode;
description
"STP / Rapid STP (RSTP) / Multiple STP (MSTP) protocol type
applicable to all sites.";
}
leaf pause {
type control-mode;
description
"Pause protocol type applicable to all sites.";
}
leaf lacp-lamp {
type control-mode;
description
"LACP / Link Aggregation Marker Protocol (LAMP).";
}
leaf link-oam {
type control-mode;
description
"Link OAM.";
}
leaf esmc {
type control-mode;
description
"Ethernet Synchronization Messaging Channel (ESMC).";
}
leaf l2cp-802.1x {
type control-mode;
description
"IEEE 802.1x.";
}
leaf e-lmi {
type control-mode;
description
"E-LMI.";
}
leaf lldp {
type boolean;
description
"LLDP protocol type applicable to all sites.";
}
leaf ptp-peer-delay {
type control-mode;
description
"Precision Time Protocol (PTP) peer delay.";
}
leaf garp-mrp {
type control-mode;
description
"GARP/MRP.";
}
description
"Container of L2CP control configurations.";
}
container oam {
if-feature "ethernet-oam";
leaf md-name {
type string;
mandatory true;
description
"Maintenance domain name.";
}
leaf md-level {
type uint16 {
range "0..255";
}
mandatory true;
description
"Maintenance domain level. The level may be
restricted in certain protocols (e.g.,
protocols in Layer 0 to Layer 7).";
}
list cfm-8021-ag {
if-feature "cfm";
key "maid";
leaf maid {
type string;
mandatory true;
description
"Identifies a Maintenance Association (MA).";
}
leaf mep-id {
type uint32;
description
"Local Maintenance Entity Group End Point (MEP) ID.
The non-existence of this leaf means
that no defects are to be reported.";
}
leaf mep-level {
type uint32;
description
"Defines the MEP level. The non-existence of this leaf
means that no defects are to be reported.";
}
leaf mep-up-down {
type enumeration {
enum "up" {
description
"MEP up.";
}
enum "down" {
description
"MEP down.";
}
}
default "up";
description
"MEP up/down. By default, MEP up is used.
The non-existence of this leaf means that
no defects are to be reported.";
}
leaf remote-mep-id {
type uint32;
description
"Remote MEP ID. The non-existence of this leaf means
that no defects are to be reported.";
}
leaf cos-for-cfm-pdus {
type uint32;
description
"CoS for CFM PDUs. The non-existence of this leaf means
that no defects are to be reported.";
}
leaf ccm-interval {
type uint32;
units "milliseconds";
default "10000";
description
"CCM interval. By default, the CCM interval is
10,000 milliseconds (10 seconds).";
}
leaf ccm-holdtime {
type uint32;
units "milliseconds";
default "35000";
description
"CCM hold time. By default, the CCM hold time
is 3.5 times the CCM interval.";
}
leaf alarm-priority-defect {
type identityref {
base fault-alarm-defect-type;
}
default "remote-invalid-ccm";
description
"The lowest-priority defect that is
allowed to generate a fault alarm. By default,
'fault-alarm-defect-type' is set to 'remote-invalid-ccm'.
The non-existence of this leaf means
that no defects are to be reported.";
}
leaf ccm-p-bits-pri {
type ccm-priority-type;
description
"The priority parameter for CCMs transmitted by the MEP.
The non-existence of this leaf means
that no defects are to be reported.";
}
description
"List of 802.1ag CFM attributes.";
}
list y-1731 {
if-feature "y-1731";
key "maid";
leaf maid {
type string;
mandatory true;
description
"Identifies an MA.";
}
leaf mep-id {
type uint32;
description
"Local MEP ID. The non-existence of this leaf
means that no measurements are to be reported.";
}
leaf type {
type identityref {
base pm-type;
}
default "delay";
description
"Performance-monitoring types. By default, the
performance-monitoring type is set to 'delay'.
The non-existence of this leaf means that no
measurements are to be reported.";
}
leaf remote-mep-id {
type uint32;
description
"Remote MEP ID. The non-existence of this
leaf means that no measurements are to be
reported.";
}
leaf message-period {
type uint32;
units "milliseconds";
default "10000";
description
"Defines the interval between Y.1731
performance-monitoring messages. The message
period is expressed in milliseconds.";
}
leaf measurement-interval {
type uint32;
units "seconds";
description
"Specifies the measurement interval for statistics.
The measurement interval is expressed in seconds.";
}
leaf cos {
type uint32;
description
"CoS. The non-existence of this leaf means that
no measurements are to be reported.";
}
leaf loss-measurement {
type boolean;
default "false";
description
"Indicates whether or not to enable loss measurement.
By default, loss measurement is not enabled.";
}
leaf synthetic-loss-measurement {
type boolean;
default "false";
description
"Indicates whether or not to enable synthetic loss
measurement. By default, synthetic loss
measurement is not enabled.";
}
container delay-measurement {
leaf enable-dm {
type boolean;
default "false";
description
"Indicates whether or not to enable delay measurement.
By default, delay measurement is not enabled.";
}
leaf two-way {
type boolean;
default "false";
description
"Indicates whether delay measurement is two-way ('true')
or one-way ('false'). By default, one-way measurement
is enabled.";
}
description
"Container for delay measurement.";
}
leaf frame-size {
type uint32;
units "bytes";
description
"Frame size. The non-existence of this leaf means
that no measurements are to be reported.";
}
leaf session-type {
type enumeration {
enum "proactive" {
description
"Proactive mode.";
}
enum "on-demand" {
description
"On-demand mode.";
}
}
default "on-demand";
description
"Session type. By default, the session type is
'on-demand'. The non-existence of this leaf means
that no measurements are to be reported.";
}
description
"List of configured Y-1731 instances.";
}
description
"Container for Ethernet Service OAM.";
}
description
"Container for connection requirements.";
}
container availability {
leaf access-priority {
type uint32;
default "100";
description
"Access priority. The higher the access-priority value,
the higher the preference will be for the access
in question.";
}
choice redundancy-mode {
case single-active {
leaf single-active {
type empty;
description
"Single-active mode.";
}
description
"In single-active mode, only one node forwards traffic
to and from the Ethernet segment.";
}
case all-active {
leaf all-active {
type empty;
description
"All-active mode.";
}
description
"In all-active mode, all nodes can forward traffic.";
}
description
"Redundancy mode choice.";
}
description
"Container of available optional configurations.";
}
container vpn-attachment {
choice attachment-flavor {
case vpn-id {
leaf vpn-id {
type leafref {
path "/l2vpn-svc/vpn-services/vpn-service/vpn-id";
}
description
"Reference to an L2VPN. Referencing a vpn-id provides
an easy way to attach a particular logical access to
a VPN. In this case, the vpn-id must be configured.";
}
leaf site-role {
type identityref {
base site-role;
}
default "any-to-any-role";
description
"Role of the site in the L2VPN. When referencing a
vpn-id, the site-role setting must be added to express
the role of the site in the target VPN service
topology.";
}
}
case vpn-policy-id {
leaf vpn-policy-id {
type leafref {
path "../../../../vpn-policies/vpn-policy/vpn-policy-id";
} }
description description
"Reference to a VPN policy.";
}
}
mandatory true;
description
"Choice for the VPN attachment flavor.";
}
description
"Defines the VPN attachment of a site.";
}
container service {
container svc-bandwidth {
if-feature "input-bw";
list bandwidth {
key "direction type";
leaf direction {
type identityref {
base bw-direction;
}
description
"Indicates the bandwidth direction. It can be
the bandwidth download direction from the SP to the site
or the bandwidth upload direction from the site to
the SP.";
}
leaf type {
type identityref {
base bw-type;
}
description
"Bandwidth type. By default, the bandwidth type is set
to 'bw-per-cos'.";
}
leaf cos-id {
when "derived-from-or-self(../type, 'l2vpn-svc:bw-per-cos')" {
description
"Relevant when the bandwidth type is set to
'bw-per-cos'.";
}
type uint8;
description
"Identifier of the CoS, indicated by DSCP or a
CE-VLAN CoS (802.1p) value in the service frame.
If the bandwidth type is set to 'bw-per-cos',
the CoS ID MUST also be specified.";
}
leaf vpn-id {
when "derived-from-or-self(../type, "
+ "'l2vpn-svc:bw-per-svc')" {
description
"Relevant when the bandwidth type is
set as bandwidth per VPN service.";
}
type svc-id;
description
"Identifies the target VPN. If the bandwidth
type is set as bandwidth per VPN service, the
vpn-id MUST be specified.";
}
leaf cir {
type uint64;
units "bps";
mandatory true;
description
"Committed Information Rate. The maximum number of
bits that a port can receive or send over an interface
in one second.";
}
leaf cbs {
type uint64;
units "bps";
mandatory true;
description
"Committed Burst Size (CBS). Controls the bursty nature
of the traffic. Traffic that does not use the
configured Committed Information Rate (CIR) accumulates
credits until the credits reach the configured CBS.";
}
leaf eir {
type uint64;
units "bps";
description
"Excess Information Rate (EIR), i.e., excess frame
delivery allowed that is not subject to an SLA.
The traffic rate can be limited by the EIR.";
}
leaf ebs {
type uint64;
units "bps";
description
"Excess Burst Size (EBS). The bandwidth available for
burst traffic from the EBS is subject to the amount of
bandwidth that is accumulated during periods when
traffic allocated by the EIR policy is not used.";
}
leaf pir {
type uint64;
units "bps";
description
"Peak Information Rate, i.e., maximum frame delivery
allowed. It is equal to or less than the sum of
the CIR and the EIR.";
}
leaf pbs {
type uint64;
units "bps";
description
"Peak Burst Size. It is measured in bytes per second.";
}
description
"List of bandwidth values (e.g., per CoS, per vpn-id).";
}
description
"From the customer site's perspective, the service
input/output bandwidth of the connection or download/upload
bandwidth from the SP/site to the site/SP.";
}
leaf svc-mtu {
type uint16;
units "bytes";
mandatory true;
description
"SVC MTU. It is also known as the maximum transmission unit
or maximum frame size. When a frame is larger than the MTU,
it is broken down, or fragmented, into smaller pieces by the
network protocol to accommodate the MTU of the network.
If CsC is enabled, the requested svc-mtu leaf will refer to
the MPLS MTU and not to the link MTU.";
}
uses site-service-qos-profile;
uses site-service-mpls;
description
"Container for services.";
}
uses site-bum;
uses site-mac-loop-prevention;
uses site-acl;
container mac-addr-limit {
if-feature "mac-addr-limit";
leaf limit-number {
type uint16;
default "2";
description
"Maximum number of MAC addresses learned from
the subscriber for a single service instance.
The default allowed maximum number of MAC
addresses is 2.";
}
leaf time-interval {
type uint32;
units "seconds";
default "300";
description
"The aging time of the MAC address. By default,
the aging time is set to 300 seconds.";
}
leaf action {
type identityref {
base mac-action;
}
default "warning";
description
"Specifies the action taken when the upper limit is
exceeded: drop the packet, flood the packet, or
simply send a warning log message. By default,
the action is set to 'warning'.";
}
description
"Container of MAC address limit configurations.";
}
description
"List of site network accesses."; "List of site network accesses.";
} }
description description
"Container of port configurations."; "Container of port configurations.";
} }
description description
"List of sites."; "List of sites.";
} }
description description
"Container of site configurations."; "Container of site configurations.";
 End of changes. 94 change blocks. 
1522 lines changed or deleted 1555 lines changed or added

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