VLAN Range SAPs for VPLS and Epipe Services

This chapter provides information about VLAN range SAPs for VPLS and Epipe services.

Topics in this chapter include:

Applicability

This chapter was initially written for SR OS Release 14.0.R6, but the MD-CLI in the current edition is based on SR OS Release 21.2.R1. Connection-Profile VLAN SAPs (CP SAPs) are supported in SR OS Release 14.0.R1, and later.

Overview

Backhaul services through metro Ethernet networks require bundled interface support. In SR OS terminology, bundling refers to Connection-Profile VLAN SAPs (CP SAPs)—special SAPs that capture the traffic of a range of CE VLAN IDs (VIDs) entering an Ethernet port. CP SAPs are fully compatible with Metro Ethernet Forum (MEF) 10.3 bundling service attributes and RFC 7432 EVPN VLAN bundle service interfaces. CP SAPs are supported in Layer 2 services only, and can be configured together with other SAPs and/or SDP-bindings.

For frames with an ingress VID contained in the range configured in the SAP's CP, the behavior is similar to default SAPs, such as 1/1/1:*, where "*" spans the entire VID range from 0 to 4095 and serves as a wildcard. However, unlike a default SAP, a CP SAP cannot co-exist with a VLAN SAP that is in the same range and on the same port or LAG. For example, 1/1/1:* and 1/1/1:100 can co-exist whereas 1/1/2:cp-1 (where cp-1 corresponds to the VLAN range from 1 to 200) and 1/1/2:100 cannot co-exist.

The VLAN manipulation between VLAN SAPs, default SAPs, and CP SAPs is compared in VLAN manipulation in SAPs .

Table 1. VLAN manipulation in SAPs

VLAN SAP

Default SAP

CP SAP

Service-delimiting VLAN

Yes

For example: VLAN 100 in 1/1/1:100

No

No

Push/pop VLAN tags in egress/ingress frames

Yes

No

No

VLAN translation

Yes

No

No

Customer VID is popped and pushed by VLAN SAPs - VLAN translation shows how dot1q VLAN SAPs pop the customer VLAN tag in ingress frames and push the VLAN tag in egress frames. Therefore, frames are untagged between PE-1 and PE-2. VLAN translation is possible when the VIDs in the VLAN tags that are popped or pushed at the SAPs are different at ingress and egress, as follows.

Figure 1. Customer VID is popped and pushed by VLAN SAPs - VLAN translation

Customer VID is preserved between dot1q CP SAPs - no VLAN translation shows that dot1q CP SAPs do not pop or push the CE VID. Frames keep the same tag end-to-end; therefore, VLAN translation is not possible.

Figure 2. Customer VID is preserved between dot1q CP SAPs - no VLAN translation

Customer VID is preserved between QinQ CP SAPs - no VLAN translation shows that QinQ CP SAPs only pop or push the service delimiting VID (VID 100), but not the customer VID in the CP range, as follows:

Figure 3. Customer VID is preserved between QinQ CP SAPs - no VLAN translation

VID 100 is service delimiting and can be different in both SAPs, but the customer VID in the VLAN range of the CP is not.

Connection profile VLAN

Note:

The connection-profile>vlan context is different from the connection-profile used for ATM connectivity.

CP SAPs refer to connection profiles that can contain up to 32 ranges of customer VIDs. Connection profiles are configured with the following command:

[ex:/configure connection-profile]
A:admin@PE-1# vlan ?

 [connection-profile-id] <number>
 <number>  - <1..8000>

    Identifier of this connection profile

VLAN ranges in a CP contain one or more consecutive VIDs, as follows:

*[ex:/configure connection-profile vlan 10]
A:admin@PE-1# qtag-range ?

 [start] <number>
 <number>  - <1..4094>

    Lower bound of VLAN range for connection profile
*[ex:/configure connection-profile vlan 10]
A:admin@PE-1# qtag-range 150 ?

 qtag-range

 Immutable fields      - end

 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 end                   - Upper bound of VLAN range for connection profile

Following is an example of a CP configuration containing three non-overlapping VLAN ranges:

configure {
    connection-profile {
        vlan 10 {
            qtag-range 5 {
                end 100
            }
            qtag-range 150 {
                end 300
            }
            qtag-range 350 {
                end 350
            }
        }

Overlapping ranges are not allowed within the same CP. The following error is raised when attempting to add a VLAN range from 7 to 9 to the preceding CP.

*[ex:/configure connection-profile vlan 10 qtag-range 7]
A:admin@PE-1# commit
MINOR: SVCMGR #9012: configure connection-profile vlan 10 - Overlapping range - configure connection-profile vlan 10 qtag-range 7 end

Additional VLAN ranges can be configured to the CP defined in an existing and operationally up SAP. The CP's VLAN ranges can also be removed on the fly. When a user wants to extend a VLAN range, for example, VLAN range 350 becoming a range from 350 to 400, the existing VLAN range is overwritten, as follows:

[ex:configure connection-profile vlan 10]
A:admin@PE-1# qtag-range 350 {

[ex:configure connection-profile vlan 10 qtag-range 350]
A:admin@PE-1# end 400

*[ex:configure connection-profile vlan 10 qtag-range 350]
A:admin@PE-1# }

*[ex:configure connection-profile vlan 10]
A:admin@PE-1# commit

[ex:configure connection-profile vlan 10]
A:admin@PE-1# info
    qtag-range 5 {
        end 100
    }
    qtag-range 150 {
        end 300
    }
    qtag-range 350 {
        end 400
    }

The following example shows three VLAN ranges in CP 10, with a timestamp of the last change for each VLAN range:

[/]
A:admin@PE-1# show connection-profile-vlan 10

===============================================================================
Connection Profile 10 Information
===============================================================================
Description : (Not Specified)
Last Change : 03/31/2021 09:02:03


===============================================================================
Connection Profile Vlan Eth Information
===============================================================================
Range Start         Range End                     Last Change
-------------------------------------------------------------------------------
5                   100                           03/31/2021 09:11:59
150                 300                           03/31/2021 09:11:59
350                 400                           03/31/2021 09:12:08
===============================================================================
===============================================================================

If a VLAN tag combination matches different SAPs, the highest priority SAP will be picked regardless of the operational status. For completeness, the following two tables show the SAP lookup matching order for dot1q and QinQ ports.

Table 2. SAP lookup order for dot1q ports

Incoming frame qtag VID value

SAP lookup precedence order

(:0 and :* are mutually exclusive on the same port)

:X

:CP

:0

:*

X (belongs to the CP range)

1st

1st

2nd

0

1st

1st

<untagged>

1st

1st

Table 3. SAP lookup order for QinQ ports

Incoming frame

qtag1.qtag2

System/port settings = new-qinq-untagged-sap

SAP lookup precedence order (assumption: X and Y are defined in CP ranges)

:X.Y

:X.0

:X.CP

:CP.*

:X.*

:0.*

:*.null

:*.*

X.Y

1st

1st

2nd

2nd

3rd

X.0

1st

2nd

2nd

3rd

0.Y

1st

2nd

0.0

1st

2nd

X

1st

2nd

2nd

3rd

4th

0

1st

2nd

3rd

<untagged>

1st

2nd

3rd

For example, ingress frames with VIDs 100.20 are classified as part of CP SAP 1/2/1:100.cp-10, not of CP SAP 1/2/3:cp-10.*. Only when SAP 1/2/1:100.cp-10 is removed from the configuration, frames with VIDs 100.20 will go to SAP 1/2/3:cp-10.*.

Assign CP SAPs to VPLS or Epipe services

Like ordinary SAPs, CP SAPs can be assigned to VPLS or Epipe services, as follows. The VPLS and Epipe can be EVPN services or not. In the following example, VPLS 1 has BGP-EVPN enabled, whereas Epipe 2 does not:

# on PE-1:
configure {
    service {
        epipe "Epipe 2" {
            admin-state enable
            service-id 2
            customer "1"
            spoke-sdp 12:2 {
            }
            sap 1/2/1:200.cp-10 {
            }
        }
        sdp 12 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 192.0.2.2
            }
        }
        vpls "VPLS 1" {
            admin-state enable
            service-id 1
            customer "1"
            bgp 1 {
            }
            bgp-evpn {
                evi 1
                mpls 1 {
                    admin-state enable
                    ingress-replication-bum-label true
                    auto-bind-tunnel {
                        resolution any
                    }
                }
            }
            sap 1/1/3:cp-10 {
            }
            sap 1/2/1:1.11 {
            }
            sap 1/2/1:100.cp-10 {
            }
            sap 1/2/3:cp-10.* {
            }
        }

CP SAPs are configured in the same way as VLAN SAPs and default SAPs, with the following restrictions:

  • A CP can be defined for inner or outer tags as shown in the preceding configuration, but not both at the same time, as follows:

    *[ex:/configure service vpls "VPLS 1" sap 1/2/1:cp-3.cp-10]
    A:admin@PE-1# commit
    MINOR: MGMT_CORE #4001: configure service vpls "VPLS 1" sap 1/2/1:cp-3.cp-10 - SAP and port encapsulation values are incompatible - configure port 1/2/1 ethernet encap-type
    
  • If a CP is defined for the outer VID, the inner VID cannot be a specific VID, as follows. The inner VID can only be a "*" (where the inner tag can have any value) or a "0" (where the inner tag can be 0 or null).

    *[ex:/configure service vpls "VPLS 1" sap 1/2/1:cp-3.4]
    A:admin@PE-1# commit
    MINOR: MGMT_CORE #4001: configure service vpls "VPLS 1" sap 1/2/1:cp-3.4 - SAP and port encapsulation values are incompatible - configure port 1/2/1 ethernet encap-type
    
  • No VLAN SAP can be added on a port in dot1q (or a combination of port and service-delimiting VLAN in case of QinQ) when the VLAN is included in the VLAN range in a CP SAP on the same port. One of the VLAN ranges in CP 10 contains all VIDs from 5 to 100. Therefore, it is not allowed to configure a VLAN SAP with VID 100 on port 1/1/3, where a CP SAP is configured with CP 10, as follows:

    *[ex:/configure service vpls "VPLS 1" sap 1/1/3:100]
    A:admin@PE-1# commit
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/1/3:100 - Configuration change failed validation - sap conflicts with connection-profile-vlan 10
    
  • No CP SAPs can be added with overlapping VLAN ranges on the same port for dot1q (or on the same port- and service-delimiting tag for QinQ), as follows. CP 1 contains VLAN range from 7 to 9, which overlaps with VLAN range from 5 to 100 in CP 10.

    # on PE-1:
    configure {
        connection-profile {
            vlan 1 {
                qtag-range 7 {
                    end 9 
                }
    
    *[ex:/configure service vpls "VPLS 1" sap 1/1/3:cp-1]
    A:admin@PE-1# commit
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/1/3:cp-1 - Configuration change failed validation - a sap 1/1/3:7 in the connection-profile-vlan conflicts with connect-profile-vlan 10
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/1/3:cp-1 - Configuration change failed validation - a sap 1/1/3:8 in the connection-profile-vlan conflicts with connect-profile-vlan 10
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/1/3:cp-1 - Configuration change failed validation - a sap 1/1/3:9 in the connection-profile-vlan conflicts with connect-profile-vlan 10
    
    *[ex:/configure service vpls "VPLS 1" sap 1/2/1:100.cp-1]
    A:admin@PE-1# commit
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/2/1:100.cp-1 - Configuration change failed validation - a sap 1/2/1:100.7 in the connection-profile-vlan conflicts with connect-profile-vlan 10
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/2/1:100.cp-1 - Configuration change failed validation - a sap 1/2/1:100.8 in the connection-profile-vlan conflicts with connect-profile-vlan 10
    MINOR: COMMON #238: configure service vpls "VPLS 1" sap 1/2/1:100.cp-1 - Configuration change failed validation - a sap 1/2/1:100.9 in the connection-profile-vlan conflicts with connect-profile-vlan 10
    

    However, the CP can be referred to by SAPs on other ports for dot1q or for QinQ on other combinations of port and service-delimiting VLAN.

  • CP SAPs can be added when they contain non-overlapping VLAN ranges on the same port, as follows. CP 3 contains one VLAN range with only one VID: 3. This VLAN range (3) does not overlap with any VLAN range in the CP SAPs assigned to VPLS 1.

    # on PE-1:
    configure {
        connection-profile {
            vlan 3 {
                qtag-range 3 {
                    end 3
                }
            }
        }
        service {
            vpls "VPLS 1" {
                sap 1/1/3:cp-3 {
                }
                sap 1/2/1:100.cp-3 {
                }
    

VPLS 1 contains the following SAPs. There is no overlap between the VLAN ranges on a port (or port and service-delimiting tag for QinQ).

[/]
A:admin@PE-1# show service id 1 sap

===============================================================================
SAP(Summary), Service 1
===============================================================================
PortId                          SvcId      Ing.  Ing.    Egr.  Egr.   Adm  Opr
                                           QoS   Fltr    QoS   Fltr
-------------------------------------------------------------------------------
1/1/3:cp-3                      1          1     none    1     none   Up   Up
1/1/3:cp-10                     1          1     none    1     none   Up   Up
1/2/1:cp-3.0                    1          1     none    1     none   Up   Up
1/2/1:1.11                      1          1     none    1     none   Up   Up
1/2/1:cp-10.*                   1          1     none    1     none   Up   Up
1/2/1:101.cp-1                  1          1     none    1     none   Up   Up
1/2/1:100.cp-3                  1          1     none    1     none   Up   Up
1/2/1:100.cp-10                 1          1     none    1     none   Up   Up
1/2/3:cp-10.*                   1          1     none    1     none   Up   Up
-------------------------------------------------------------------------------
Number of SAPs : 9
-------------------------------------------------------------------------------
===============================================================================

Constraints to be considered when applying CP SAPs in Layer 2 services are described in the Release Notes, section "Known Limitations" - "Services General".

Consumed resources for CP SAPs

The following SAPs are used on PE-1: nine SAPs are used in VPLS 1 and one SAP is used in Epipe 2:

[/]
A:admin@PE-1# show service sap-using
 
===============================================================================
Service Access Points 
===============================================================================
PortId                          SvcId      Ing.  Ing.    Egr.  Egr.   Adm  Opr
                                           QoS   Fltr    QoS   Fltr        
-------------------------------------------------------------------------------
1/1/3:cp-3                      1          1     none    1     none   Up   Up
1/1/3:cp-10                     1          1     none    1     none   Up   Up
1/2/1:cp-3.0                    1          1     none    1     none   Up   Up
1/2/1:1.11                      1          1     none    1     none   Up   Up
1/2/1:cp-10.*                   1          1     none    1     none   Up   Up
1/2/1:101.cp-1                  1          1     none    1     none   Up   Up
1/2/1:100.cp-3                  1          1     none    1     none   Up   Up
1/2/1:100.cp-10                 1          1     none    1     none   Up   Up
1/2/3:cp-10.*                   1          1     none    1     none   Up   Up
1/2/1:200.cp-10                 2          1     none    1     none   Up   Up
-------------------------------------------------------------------------------
Number of SAPs : 10
-------------------------------------------------------------------------------
===============================================================================

Regular and default SAPs consume one SAP instance each, whereas CP SAPs consume a number of SAP instances equal to the number of VLANs in the range. The following shows that there are ten SAP entries (in this example, nine SAPs in VPLS 1 and one SAP in Epipe 2), which can be regular, default, or CP SAP entries:

[/]
A:admin@PE-1# tools dump resource-usage system

===============================================================================
Resource Usage Information for System
===============================================================================
                                                  Total   Allocated        Free
-------------------------------------------------------------------------------
                 SAP Ingress QoS Policies |        3071           1        3070
                  SAP Egress QoS Policies |        3071           1        3070
            Ingress Queue-Group Templates |        2047           4        2043
             Egress Queue-Group Templates |        2047           5        2042
        Egress Port Queue-Group Instances |      163839           8      163831
         Ingress FP Queue-Group Instances |       16383           0       16383
              Fast Depth Monitored Queues |       50000           0       50000
                        Egress Port VPort |       40959           0       40959
        Dynamic Services Next-Hop Entries +      511999           0      511999
                   IPSec Next-Hop Entries -      500000           0      500000
              Subscriber Next-Hop Entries -      500000           0      500000
                              SAP Entries +      262143          10      262133
                     (in use by:   Apipe) -                       0
                     (in use by:   Cpipe) -                       0
                     (in use by:   Epipe) -                       1
                     (in use by:   Fpipe) -                       0
                     (in use by:   Ipipe) -                       0
                     (in use by:     Ies) -                       0
                     (in use by:  Mirror) -                       0
                     (in use by:    Vpls) -                       9
                     (in use by:    Vprn) -                       0
===============================================================================

However, the number of SAP instances consumed for card 1 FP 1 exceeds the number of SAP entries in the system, as follows:

[/]
A:admin@PE-1# tools dump resource-usage card 1 fp 1 

===============================================================================
Resource Usage Information for Card Slot #1 FP #1
===============================================================================
                                                  Total   Allocated        Free
-------------------------------------------------------------------------------
---snip---
                               SAP Instances |      63999       1497      62502
---snip---
===============================================================================

The calculation of the number of SAP instances is as follows. In this example, CP 10 is used in five SAPs (four in VPLS 1 and one in Epipe 2) and contains the following VLAN ranges:

[/]
A:admin@PE-1# show connection-profile-vlan 10

===============================================================================
Connection Profile 10 Information
===============================================================================
Description : (Not Specified)
Last Change : 03/31/2021 09:02:03


===============================================================================
Connection Profile Vlan Eth Information
===============================================================================
Range Start         Range End                     Last Change
-------------------------------------------------------------------------------
5                   100                           03/31/2021 09:11:59
150                 300                           03/31/2021 09:11:59
350                 400                           03/31/2021 09:12:08
===============================================================================
===============================================================================

The number of VLANs in the VLAN ranges of CP 10 equals 298. For each of the five SAP entries with CP 10, 298 SAP instances are used, for a total of 1490. As well, there is one CP SAP using CP 1 with three VLANs in the VLAN range from 7 to 9 (for three more SAP instances). Three CP SAPs use CP 3 with only VID 3 in the VLAN range (for three more SAP instances), and one SAP is a regular SAP that consumes one SAP instance. Therefore, the total number of SAP instances is 1497.

Configuration

Example topology shows the example topology used in this chapter.

Figure 4. Example topology

The initial configuration on the PEs includes the following:

  • Cards, MDAs, ports

  • Router interfaces

  • IS-IS (or OSPF) between the PEs

  • LDP between the PEs

In this example, no BGP is configured and no BGP-EVPN will be configured in the VPLS and Epipe services. However, VLAN ranges can be applied in EVPN VPLS and EVPN Epipe services.

VLAN ranges in VPLS services

Example topology for VLAN ranges in VPLS 1 shows the example topology for VPLS 1 with a combination on VLAN SAPs and CP SAPs. The port:VID represents the port to which the CE is connected and the VID sent by the CE; for example, CE-17 is connected to port 1/1/3 on PE-1 and sends frames with VID 7. When VLAN ranges are used, the port:VID 1/1/3:7 does not represent the configured SAP, which is 1/1/3:cp-1.

Figure 5. Example topology for VLAN ranges in VPLS 1

The service configuration for VPLS 1 on PE-1 is as follows:

# on PE-1:
configure {
    service {
        sdp 12 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 192.0.2.2
            }
        }
        vpls "VPLS 1" {
            admin-state enable
            service-id 1
            customer "1"
            spoke-sdp 12:1 {
            }
            sap 1/1/3:cp-1 {
            }
            sap 1/2/1:1.11 {
            }
            sap 1/2/1:100.cp-1 {
            }
            sap 1/2/3:cp-1.* {
            }
        }

The configuration of VPLS 1 on PE-2 is as follows:

‛# on PE-2:
configure {
    service {
        sdp 21 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 192.0.2.1
            }
        }
        vpls "VPLS 1" {
            admin-state enable
            service-id 1
            customer "1"
            spoke-sdp 21:1 {
            }
            sap 1/1/3:cp-1 {
            }
            sap 1/2/1:1.21 {
            }
            sap 1/2/1:100.cp-1 {
            }
            sap 1/2/3:cp-1.* {
            }
        }

When the CEs send traffic to each other, such as ICMP echo requests, the MAC addresses are learned in the SAPs, and the forwarding database (FDB) on PE-1 is as follows:

[/]
A:admin@PE-1# show service id 1 fdb detail

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:01:11:11:11 sap:1/2/1:1.11          L/90     03/31/21 10:31:01
1          00:00:01:17:17:17 sap:1/1/3:cp-1          L/90     03/31/21 10:26:44
1          00:00:01:18:18:18 sap:1/2/1:100.cp-1      L/90     03/31/21 10:26:44
1          00:00:01:19:19:19 sap:1/2/3:cp-1.*        L/90     03/31/21 10:26:44
1          00:00:02:21:21:21 sdp:12:1                L/90     03/31/21 10:31:01
1          00:00:02:27:27:27 sdp:12:1                L/90     03/31/21 10:26:44
1          00:00:02:28:28:28 sdp:12:1                L/90     03/31/21 10:26:44
1          00:00:02:29:29:29 sdp:12:1                L/90     03/31/21 10:26:44
-------------------------------------------------------------------------------
No. of MAC Entries: 8
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

VLAN manipulation in dot1q SAPs

Customer VIDs are popped and pushed by dot1q VLAN SAPs shows the VLAN manipulation for VLAN SAPs. CE-17 and CE-18 are connected to VLAN SAPs, where the VLAN tag with VID 7 will be popped or pushed. VLAN translation is possible, but does not apply. The configuration of the SAPs in VPLS 1 on PE-1 and PE-2 is modified as follows:

# on PE-1, PE-2:
configure {
    service {
        vpls "VPLS 1" {
            delete sap 1/1/3:cp-1 
            sap 1/1/3:7 {
            }
Figure 6. Customer VIDs are popped and pushed by dot1q VLAN SAPs

Customer VID is preserved between two dot1q CP SAPs shows how the customer VID 7 is preserved between CE-17 and CE-27 when CP SAPs are used instead of VLAN SAPs. The configuration for the SAPs is modified as follows:

# on PE-1, PE-2:
configure {
    service {
        vpls "VPLS 1" {
            delete sap 1/1/3:7 
            sap 1/1/3:cp-1 {
            }

CE-17 sends frames with VID 7 to dot1q CP SAP 1/1/3:cp-1 in VPLS 1 on PE-1, and this CP SAP preserves the VLAN tag. When the frames with VID 7 reach the egress CP SAP 1/1/3:cp-1 of VPLS 1 on PE-2, the egress CP SAP preserves the VID, and the frames are forwarded to CE-27. Traffic in the opposite direction is treated in the same way: the customer VID is preserved between the CEs.

Figure 7. Customer VID is preserved between two dot1q CP SAPs

No traffic is possible between a CP SAP in VPLS 1 on PE-1 and a VLAN SAP in VPLS 1 on PE-2, as shown in No traffic between dot1q CP SAP and dot1q VLAN SAP.

Figure 8. No traffic between dot1q CP SAP and dot1q VLAN SAP

The CP SAP 1/1/3:cp-1 in VPLS 1 on PE-1 remains unchanged, whereas the SAP in VPLS 1 on PE-2 is reconfigured as VLAN SAP 1/1/3:7 for VLAN 7, as follows:

# on PE-2:
configure {
    service {
        vpls "VPLS 1" {
            delete sap 1/1/3:cp-1 
            sap 1/1/3:7 {
            }

Frames from CE-17 are forwarded by CP SAP 1/1/3:cp-1 in VPLS 1 on PE-1 without any changes to the VLAN tag. The tagged frames reach the VLAN SAP 1/1/3:7, where another VLAN tag with VID 7 is pushed onto the frame. The receiver CE-27 rejects the double-tagged frame. When CE-27 sends traffic to CE-17, the VLAN SAP 1/1/3:7 in VPLS 1 on PE-2 pops the VLAN tag and the frame is forwarded untagged to PE-1. The CP SAP 1/1/3:cp-1 on PE-1 does not push any VLAN tag and the frame is forwarded untagged to CE-17, where it is rejected.

VLAN manipulation in QinQ SAPs

Traffic between two QinQ VLAN SAPs - VLAN translation shows the VLAN manipulation in QinQ VLAN SAPs that pop and push the VLAN labels. In the example, the customer VID is translated.

Figure 9. Traffic between two QinQ VLAN SAPs - VLAN translation

CE-11 sends double-tagged traffic to QinQ VLAN SAP 1/2/1:1.11 in VPLS 1 on PE-1. This VLAN SAP pops both labels and forwards the frame untagged to PE-2. The egress VLAN SAP 1/2/1:1.21 in VPLS 1 on PE-2 pushes a label stack with two labels: the inner label with VID 21 and the outer label with VID 1. Both VIDs can be translated, but in this example, only the inner label gets another VID.

No traffic between two QinQ CP SAPs - VLAN translation not supported shows that VLAN translation is not possible between two QinQ CP SAPs. In the example, the outer tag with VID 1 is popped by the CP SAPs (VLAN translation is possible for this VLAN tag, but not done here) and the inner tag with VID 11 or 21 is preserved by the CP SAPs, which implies that the received frames will be rejected.

In this example, CP 2 is configured on both PE-1 and PE-2 with one VLAN range with one VID (11 or 21), as follows:

# on PE-1:
configure {
    connection-profile {
        vlan 2 {
            qtag-range 11 {
                end 11
            }
# on PE-2:
configure {
    connection-profile {
        vlan 2 {
            qtag-range 21 {
                end 21
            }

The VLAN SAP 1/2/1:1.11 is replaced by CP SAP 1/2/1:1.cp-2, as follows:

# on PE-1:
configure {
    service {
        vpls "VPLS 1" {
            delete sap 1/2/1:1.11 
            sap sap 1/2/1:1.cp-2 {
            }

Likewise, the VLAN 1/2/1:1.21 is replaced by CP SAP 1/2/1:1.cp-2, as follows:

# on PE-2:
configure {
    service {
        vpls "VPLS 1" {
            delete sap 1/2/1:1.21 
            sap sap 1/2/1:1.cp-2 {
            }
Figure 10. No traffic between two QinQ CP SAPs - VLAN translation not supported

CE-11 sends double-tagged frames to SAP 1/2/1:1.cp-2 in VPLS 1 on PE-1. This CP SAP pops the outer tag with VID 1, but preserves the VLAN tag with VID 11. The single-tagged frame is sent to PE-2 where CP SAP 1/2/1:1.cp-2 pushes an outer tag with VID 1 onto the frame. This double-tagged frame is sent to CE-12 where it is rejected, because an inner label with VID 21 is expected.

When CE-21 sends frames to CE-11, the frames will be double-tagged with inner tag VID 21 and outer tag 1. The outer tag is popped by the ingress SAP 1/2/1:1.cp-2 in VPLS 1 on PE-2, but the inner tag is preserved. The egress SAP 1/2/1:1.cp-2 in VPLS 1 on PE-1 preserves the inner tag with VID 21 and pushes an outer tag with VID 1. This double-tagged frame is rejected by CE-11, because another inner tag is expected, with VID 11 instead of VID 21.

Traffic between two QinQ CP SAPs - no VLAN translation shows how traffic is sent between two QinQ CP SAPs without VLAN translation. Both CE-18 and CE-28 send double-tagged frames with inner tag VID 8 and outer tag VID 100. The tag with VID 100 need not be the same on both CEs, because it is popped and pushed by the CP SAPs; only the tag with VID 8 from the VLAN range must be unchanged.

Figure 11. Traffic between two QinQ CP SAPs - no VLAN translation

VLAN ranges in Epipe services

Example topology for VLAN ranges in Epipe 2 shows the example topology for VLAN ranges in Epipe 2.

Figure 12. Example topology for VLAN ranges in Epipe 2

Epipe 2 is configured with one CP SAP and a spoke-SDP, as follows:

# on PE-1:
configure {
    service {
        epipe "Epipe 2" {
            admin-state enable
            service-id 2
            customer "1"
            spoke-sdp 12:2 {
            }
            sap 1/2/1:200.cp-1 {
            }
        }
        sdp 12 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 192.0.2.2
            }
        }

CE-170 and CE-270 send double-tagged frames with inner VID 7 and outer VID 200. The inner VID 7 is preserved by the CP SAPs; therefore, CE-170 can only communicate with CE-270, not with any other CE at the other end, because they have different customer VIDs.

Conclusion

CP SAPs can be used to build services that can be bundled as per MEF 10.3 and RFC 7432. Multiple customer VIDs can be mapped to one CP-SAP.