| 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/ | ||||