EVPN VPLS Services Using SRv6 Transport

This chapter provides information about EVPN VPLS using SRv6 transport.

Topics in this chapter include:

Applicability

The information and MD-CLI configuration in this chapter are based on SR OS Release 24.3.R1.

EVPN VPLS services over SRv6 are supported on FP4-based platforms in SR OS Release 22.7.R1 and later. For FP platforms, both all-active and single-active multihoming modes in EVPN VPLS services over SRv6 are supported in SR OS Release 23.10.R1 and later.

For migration scenarios from EVPN MPLS to EVPN SRv6 or from EVPN VXLAN to EVPN SRv6, see the EVPN VPLS with MPLS to SRv6 or VXLAN to SRv6 Stitching chapter.

Overview

SRv6 locator and micro-segment locator

An EVPN VPLS service using SRv6 transport can be configured with a locator for segment identifiers (SIDs) or with a micro-segment locator for micro-SIDs (uSIDs). The micro-SID is an extension of the SRv6 architecture that allows for better efficiency. For micro-SIDs, multiple uSID instructions can be encoded within a single 128-bit SID address, with a maximum of six uSID instructions. Any SID in the destination address or segment routing header can be an SRv6 uSID carrier containing one or more uSIDs.

Locator for SID

SRv6 SID encoding shows two examples of SRv6 SID encoding: one with a 96-bit locator and one with a 64-bit locator. The 64-bit locator contains a 48-bit block address B and a 16-bit node-specific address N.
Figure 1. SRv6 SID encoding

The block length, function length, and argument length can be configured with the following command:

[ex:/configure router "Base" segment-routing segment-routing-v6]
A:admin@PE-2# locator "PE2-loc" ?

 locator

 admin-state           - Administrative state of the locator
 algorithm             - IGP flexible algorithm ID
 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 argument-length       - SRv6 locator argument length
 block-length          - SRv6 locator block address length
 function-length       - Function length
 label-block           - Reserved label block name for service termination
 prefix                + Enter the prefix context
 static-function       + Enter the static-function context
 termination-fpe       - List of the SRv6 termination FPE

The only two possible values for the argument length are 0 (default) and 16, as follows:

[ex:/configure router "Base" segment-routing segment-routing-v6 locator "PE2-loc"]
A:admin@PE-2# argument-length ?

 argument-length <number>
 <number> - <0,16>
 Default  - 0

    SRv6 locator argument length

    Warning: Modifying this element toggles 'configure router "Base" segment-routing 
    segment-routing-v6 locator "PE2-loc" admin-state' automatically for the new value 
    to take effect.

The block length can have any value from 0 to 96, as follows:

[ex:/configure router "Base" segment-routing segment-routing-v6 locator "PE2-loc"]
A:admin@PE-2# block-length ?

 block-length <number>
 <number> - <0..96>
 Default  - 0

    SRv6 locator block address length

    Warning: Modifying this element toggles 'configure router "Base" segment-routing 
    segment-routing-v6 locator "PE2-loc" admin-state' automatically for the new value 
    to take effect.

The function length can be 16 or any value from 20 to 96, as follows:

[ex:/configure router "Base" segment-routing segment-routing-v6 locator "PE2-loc"]
A:admin@PE-2# function-length ?

 function-length <number>
 <number>        - <16,20..96>
 Dynamic Default - 20

    Function length

    Warning: Modifying this element toggles 'configure router "Base" segment-routing 
    segment-routing-v6 locator "PE2-loc" admin-state' automatically for the new value
    to take effect.
For an EVPN VPLS service using SRv6 transport and configured with a locator, the egress PE signals the following functions to the ingress PE:
  • End.DT2U for known unicast traffic, encoded in EVPN MAC/IP advertisement routes
  • End.DT2M for BUM traffic, encoded in Inclusive Multicast Ethernet Tag (IMET) routes

In EVPN VPLS services, End.DT2U must be configured (with or without a static value) so that MAC/IP routes can be advertised. Similarly, End.DT2M must be configured (with or without a—different—static value) so that IMET routes can be advertised.

Micro-segment locator for micro-SID

A maximum of six 16-bit micro-SID instructions can be encoded within a single 128-bit SID address, as follows:

<32-bit prefix>:<uSID1>:<uSID2>:<uSID3>:<uSID4>:<uSID5>:<uSID6>

The prefix length or block length is 32 in the preceding example, but can be any multiple of 8, with a maximum of 64. Any SRv6 instruction starting with this 32-bit prefix can contain up to six micro-instructions <uSIDx>. In the case that less than six uSIDs are used with this 32-bit prefix, the unused micro-instructions are set to 0x0000.

SRv6 micro-SID encoding shows an example of SRv6 micro-SID encoding with a 32-bit uSID prefix (block B), a 16-bit uSID identifying the node (uN), a 16-bit function, and optionally a 16-bit argument:

Figure 2. SRv6 micro-SID encoding

Micro-segments can be configured with the following command:

[ex:/configure router "Base" segment-routing segment-routing-v6]
A:admin@PE-2# micro-segment ?

 micro-segment

 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 argument-length       - Micro-segment argument length
 block                 + Enter the block list instance
 block-length          - Micro-SID block length
 global-sid-entries    - Maximum number of micro-segment locators network wide
 sid-length            - Micro-SID length

The argument length is either 0 or 16, as follows:

[ex:/configure router "Base" segment-routing segment-routing-v6 micro-segment]
A:admin@PE-2# argument-length ?

 argument-length <number>
 <number> - <0,16>
 Default  - 0

    Micro-segment argument length

For micro-segments, the block length must be a multiple of 8, with a maximum of 64, as follows:

[ex:/configure router "Base" segment-routing segment-routing-v6 micro-segment]
A:admin@PE-2# block-length ?

 block-length <number>
 <number> - <8,16,24,32,40,48,56,64>
 Default  - 32

    Micro-SID block length

The micro-segment SID length can only be 16, as follows:

[ex:/configure router "Base" segment-routing segment-routing-v6 micro-segment]
A:admin@PE-2# sid-length ?

 sid-length <number>
 <number> - <16>
 Default  - 16

    Micro-SID length
In the case of a micro-segment locator, the egress PE signals the following functions to the ingress PE:
  • End.uDT2U for known unicast traffic
  • End.uDT2M for BUM traffic

EVPN VPLS services using SRv6 transport

An EVPN VPLS service using SRv6 can either be configured with a locator or a micro-segment locator, as follows:

[ex:/configure service vpls "VPLS-2" segment-routing-v6 1]
A:admin@PE-2# ?

 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 locator               + Enter the locator list instance
 micro-segment-        + Enter the micro-segment-locator list instance
  locator

The EVPN VPLS can be configured with an SRv6 locator, as follows:

[ex:/configure service vpls "VPLS-2" segment-routing-v6 1 micro-segment-locator "PE2-mloc"]
A:admin@PE-2# ?

 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 function              + Enter the function context

When a locator is configured, the possible functions are End.DT2U for known unicast traffic and End.DT2M for BUM traffic, as follows:

[ex:/configure service vpls "VPLS-1" segment-routing-v6 1 locator "PE2-loc"]
A:admin@PE-2# function ?

 function

 end-dt2m              + Enable the end-dt2m context
 end-dt2u              + Enable the end-dt2u context

When a micro-segment locator is configured, the functions are End.uDT2U for known unicast traffic and End.uDT2M for BUM traffic, as follows:

[ex:/configure service vpls "VPLS-2" segment-routing-v6 1 micro-segment-locator "PE2-mloc"]
A:admin@PE-2# function ?

 function

 udt2m                 + Enable the udt2m context
 udt2u                 + Enable the udt2u context

In the bgp-evpn segment-routing-v6 context, the following can be configured:

[ex:/configure service vpls "VPLS-1" bgp-evpn]
A:admin@PE-2# segment-routing-v6 1 ?

 segment-routing-v6

 admin-state           - Administrative state of segment routing over IPv6
 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 default-route-tag     - Default route tag
 ecmp                  - Maximum ECMP value configured on the service
 evi-three-byte-auto-  - Auto-derive the BGP EVPN route target
  rt
 fdb                   + Enter the fdb context
 force-vc-forwarding   - Datapath forwarding to force vlan-vc-type
 mh-mode               - Multihoming mode
 oper-group            - Operational group
 resolution            - Resolution options for routes
 route-next-hop        + Enter the route-next-hop context
 source-address        - Source IPv6 address
 split-horizon-group   - Split horizon group
 srv6                  + Enter the srv6 context
The following parameters are specific to BGP-EVPN SRv6:
  • The default-route-tag command is used to match BGP-EVPN routes for the service on export policies, for example, to add or modify BGP attributes.
  • The ecmp command is used for aliasing on remote SRv6 EVPN Ethernet segment (ES) destinations.
  • The evi-three-byte-auto-rt command is used to enable or disable 3-byte EVI auto-RT.
  • The force-vc-forwarding {vlan|qinq-c-tag-c-tag|qinq-s-tag-c-tag} command is used to preserve VLAN tags in the SRv6 tunnel.
  • The mh-mode option can be configured with the values access or network (needed in the case of multi-instance VPLS services).
  • The oper-group command is required for fault propagation purposes.
  • The resolution {route-table|tunnel-table|fallback-tunnel-to-route-table} command allows for setting the resolution of SRv6 routes in the route table or tunnel table (needed for SRv6 policies), and even a fallback from tunnel to route table resolution.
  • The fdb protected-src-mac-violation-action discard command is required for loop avoidance.
  • The route-next-hop command controls the BGP next hop used for service routes. The default is system IPv4 address.
  • The source-address command does not need to be reachable or even exist on a local interface. This is possible because the source address is not looked up in the data path at the remote PE. If not configured, the source address is inherited from the locator's source address.
  • The split-horizon-group command is used for a seamless integration with spoke SDPs and migration from the EVPN-MPLS services (multi-instance services).

AD per-ES routes in EVPN SRv6 multihoming

An EVPN VPLS service over SRv6 cannot be configured with all-active or single-active multihoming with the ESI label when the SRv6 locator has—the default—argument length 0. The following error is raised when attempting to configure a SAP with a LAG that is associated to an all-active ES in an EVPN VPLS service with SRv6 locator with argument length 0:

*[ex:/configure service vpls "VPLS-4" sap lag-1:4]
A:admin@PE-3# commit
MINOR: MGMT_CORE #4001: configure service vpls "VPLS-4" sap lag-1:4 description - 
locator argument-length must not be default when MH is configured - 
configure router "Base" segment-routing segment-routing-v6 locator "PE2-loc-arg0" 
argument-length

The arg.fe2 argument is advertised along with the AD per-ES routes for all-active or single-active multihoming with the ESI label. The arg.fe2 argument is used along with the End.DT2M or End.uDT2M functions and supports the transposition into the ESI label extended community label field.

The arg.fe2 argument is dynamically allocated and encoded as follows:
  • The allocated arg.fe2 value is encoded in the high-order 16 bits of the ESI label field.
  • The SRv6 SID value is always 0.
  • The SID structure advertised in the SRv6 SID sub-sub-TLV follows the length of the locator associated with the VPLS (block length, node length, function length).
Note: If the ES is configured as multi-homing single-active no-esi-label, the AD per-ES routes are advertised with ESI label 3 (for an implicit-null label) and without the arg.fe2 argument.

Configuration

The Example topology shows the topology with six SR OS nodes:
Figure 3. Example topology
The initial configuration includes:
  • cards, MDAs, ports
  • LAG 1 between MTU-1, PE-2, and PE-3
  • router interfaces
  • IS-IS on the router interfaces
  • BGP for the EVPN address family on PE-2, PE-3, PE-4, and PE-5

As an example, the BGP configuration on PE-2 is as follows:

# on PE-2:
configure {
    router "Base" {
        autonomous-system 64500
        bgp {
            vpn-apply-export true
            vpn-apply-import true
            rapid-withdrawal true
            peer-ip-tracking true
            split-horizon true
            rapid-update {
                evpn true
            }
            group "internal" {
                peer-as 64500
                family {
                    evpn true
                }
            }
            neighbor "2001:db8::2:3" {
                group "internal"
            }
            neighbor "2001:db8::2:4" {
                group "internal"
            }
            neighbor "2001:db8::2:5" {
                group "internal"
            }
        }
Two use cases are described in the following sections:

EVPN VPLS using SRv6 with locator

The core PEs in Example topology with VPLS-1 are connected through an SRv6 network. All-active multihoming applies between PE-2 and PE-3, while single-active multihoming applies between PE-4 and PE-5.

Figure 4. Example topology with VPLS-1

SRv6 configuration with locator

SRv6 is configured on the core PEs. The configuration on PE-2 is as follows:

# on PE-2:
configure {
    card 1 {
        mda 1 {
            xconnect {
                mac 1 {
                    loopback 1 {
                    }
                    loopback 2 {
                    }
                }
            }
        }
    }
    fwd-path-ext {
        fpe 1 {
            path {
                pxc 1
            }
            application {
                srv6 {
                    type origination
                }
            }
        }
        fpe 2 {
            path {
                pxc 2
            }
            application {
                srv6 {
                    type termination
                }
            }
        }
    }
    port pxc-1.a {
        admin-state enable
    }
    port pxc-1.b {
        admin-state enable
    }
    port pxc-2.a {
        admin-state enable
    }
    port pxc-2.b {
        admin-state enable
    }
---snip---
    port 1/1/m1/1 {
        admin-state enable
    }
    port 1/1/m1/2 {
        admin-state enable
    }
    port-xc {
        pxc 1 {
            admin-state enable
            port-id 1/1/m1/1
        }
        pxc 2 {
            admin-state enable
            port-id 1/1/m1/2
        }
    }
    router "Base" {
---snip---
        mpls-labels {
            reserved-label-block "srv6-labels" {          # optional
                start-label 20000
                end-label 20999
            }
        }
        isis 0 {
            admin-state enable
            advertise-passive-only true
            advertise-router-capability as
            ipv6-routing native
            traffic-engineering true
            area-address [49.0001]
            traffic-engineering-options {
                ipv6 true
                application-link-attributes {
                }
            }
            segment-routing-v6 {
                admin-state enable
                locator "PE2-loc" {
                }
            }
            interface "int-PE-2-PE-3" {
                interface-type point-to-point
                level-capability 2
            }
            interface "int-PE-2-PE-4" {
                interface-type point-to-point
                level-capability 2
            }
            interface "int-PE-2-PE-5" {
                interface-type point-to-point
                level-capability 2
            }
            interface "system" {
                passive true
            }
            level 1 {
                wide-metrics-only true
            }
            level 2 {
                wide-metrics-only true
            }
        }
        segment-routing {
            segment-routing-v6 {
                origination-fpe [1]
                source-address 2001:db8::2:2
                locator "PE2-loc" {
                    admin-state enable
                    block-length 48
                    function-length 16
                    termination-fpe [2]
                    label-block "srv6-labels"
                    argument-length 16
                    prefix {
                        ip-prefix 2001:db8:aaaa:102::/64
                    }
                }
                base-routing-instance {
                    locator "PE2-loc" {
                        function {
                            end 1 {
                                srh-mode usp
                            }
                            end-x-auto-allocate psp protection unprotected { }
                        }
                    }
                }
            }
        }

The configuration on the other PEs is similar. On PE-5, no reserved MPLS label block is configured and the labels will be allocated by the system from the dynamic label range. The function length of the locator "PE5-loc" is 24 and the argument length is 16.

EVPN VPLS service configuration

VPLS-1 is configured on all nodes. The configuration on MTU-1 is as follows:

# on MTU-1:
configure {
    service {
        vpls "VPLS-1" {
            admin-state enable
            service-id 1
            customer "1"
            sap 1/1/c10/1:1 {
                description "SAP to CE-11"
            }
            sap lag-1:1 {
            }
        }

On PE-2 and PE-3, all-active multihoming is configured, as follows:

# on PE-2:
configure exclusive
    service {
        system {
            bgp {
                evpn {
                    ethernet-segment "AA-vES-23-1" {
                        admin-state enable
                        type virtual
                        esi 01:00:00:00:00:23:00:00:01:01
                        orig-ip 2001:db8::2:2                 # on PE-3: 2001:db8::2:3
                        route-next-hop 2001:db8::2:2          # on PE-3: 2001:db8::2:3
                        multi-homing-mode all-active
                        df-election {
                            es-activation-timer 3
                            service-carving-mode manual
                            manual {
                                preference {
                                    mode non-revertive
                                    value 100                 # on PE-3: value 150
                                }
                            }
                        }
                        association {
                            lag "lag-1" {
                                virtual-ranges {
                                    dot1q {
                                        q-tag 1 {
                                            end 4
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        vpls "VPLS-1" {
            admin-state enable
            service-id 1
            customer "1"
            segment-routing-v6 1 {
                locator "PE2-loc" {    # on PE-3: "PE3-loc"
                    function {
                        end-dt2u {     # label dynamically allocated; label block
                        }
                        end-dt2m {     # label dynamically allocated; label block
                        }
                    }
                }
            }
            bgp 1 {
            }
            bgp-evpn {
                evi 1
                segment-routing-v6 1 {
                    admin-state enable
                    ecmp 2
                    source-address 2001:db8::2:2           # on PE-3: 2001:db8::2:3
                    srv6 {
                        instance 1
                        default-locator "PE2-loc"          # on PE-3: "PE3-loc"
                    }
                    route-next-hop {
                        ip-address 2001:db8::2:2           # on PE-3: 2001:db8::2:3
                    }
                }
            }
            sap lag-1:1 {
            }
        }

On PE-4, the function values are manually configured with a value of 10 for End.DT2U and a value of 11 for End.DT2M. The locator "PE4-loc" refers to the MPLS label block and the number of static functions is 16. Single-active multihoming applies between PE-4 and PE-5. The corresponding SDPs use LDP IPv6 tunnels, as follows:

# on PE-4:
configure {
    router "Base" {
        segment-routing {
             segment-routing-v6 {
                origination-fpe [1]
                source-address 2001:db8::2:4
                locator "PE4-loc" {
                    admin-state enable
                    block-length 48
                    function-length 16
                    termination-fpe [2]
                    label-block "srv6-labels"
                    argument-length 16
                    prefix {
                        ip-prefix 2001:db8:aaaa:104::/64
                    }
                    static-function {
                        max-entries 16      # for configured function values
                    }
                }
            }
        }
    }
    service {
        system {
            bgp {
                evpn {
                    ethernet-segment "SA-ES-45" {
                        admin-state enable
                        esi 01:00:00:00:00:45:00:00:00:01
                        orig-ip 2001:db8::2:4
                        route-next-hop 2001:db8::2:4
                        multi-homing-mode single-active
                        df-election {
                            es-activation-timer 3
                        }
                        association {
                            sdp 46 {
                            }
                        }
                    }
                }
            }
        }
        sdp 46 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 2001:db8::2:6
            }
        }
        vpls "VPLS-1" {
            admin-state enable
            service-id 1
            customer "1"
            segment-routing-v6 1 {
                locator "PE4-loc" {
                    function {
                        end-dt2u {
                            value 10     # configured function value
                        }
                        end-dt2m {
                            value 11     # configured function value
                        }
                    }
                }
            }
            bgp 1 {
            }
            bgp-evpn {
                evi 1
                segment-routing-v6 1 {
                    admin-state enable
                    ecmp 2
                    source-address 2001:db8::2:4
                    srv6 {
                        instance 1
                        default-locator "PE4-loc"
                    }
                    route-next-hop {
                        ip-address 2001:db8::2:4
                    }
                }
            }
            spoke-sdp 46:1 {
            }
        }

The configuration on PE-5 does not include an MPLS label block and the function values are dynamically allocated from the dynamic label range, as follows:

# on PE-5:
configure {
    router "Base" {
        segment-routing {
            segment-routing-v6 {
                origination-fpe [1]
                source-address 2001:db8::2:5
                locator "PE5-loc" {
                    admin-state enable
                    block-length 48
                    function-length 24
                    termination-fpe [2]
                    argument-length 16
                    prefix {
                        ip-prefix 2001:db8:aaaa:105::/64
                    }
                }
                base-routing-instance {
                    locator "PE5-loc" {
                        function {
                            end 1 {
                                srh-mode usp
                            }
                            end-x-auto-allocate psp protection unprotected { }
                        }
                    }
                }
            }
        }
    }
    service {
        system {
            bgp {
                evpn {
                    ethernet-segment "SA-ES-45" {
                        admin-state enable
                        esi 01:00:00:00:00:45:00:00:00:01
                        orig-ip 2001:db8::2:5
                        route-next-hop 2001:db8::2:5
                        multi-homing-mode single-active
                        df-election {
                            es-activation-timer 3
                        }
                        association {
                            sdp 56 {
                            }
                        }
                    }
                }
            }
        }
        sdp 56 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 2001:db8::2:6
            }
        }
        vpls "VPLS-1" {
            admin-state enable
            service-id 1
            customer "1"
            segment-routing-v6 1 {
                locator "PE5-loc" {
                    function {
                        end-dt2u {        # dynamic label; no label block defined
                        }
                        end-dt2m {        # dynamic label; no label block defined
                        }
                    }
                }
            }
            bgp 1 {
            }
            bgp-evpn {
                evi 1
                segment-routing-v6 1 {
                    admin-state enable
                    ecmp 2
                    source-address 2001:db8::2:5
                    srv6 {
                        instance 1
                        default-locator "PE5-loc"
                    }
                    route-next-hop {
                        ip-address 2001:db8::2:5
                    }
                }
            }
            spoke-sdp 56:1 {
            }
        }

The service configuration on MTU-6 is as follows:

# on MTU-6:
configure {
    service {
        sdp 64 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 2001:db8::2:4
            }
        }
        sdp 65 {
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 2001:db8::2:5
            }
        }
        vpls "VPLS-1" {
            admin-state enable
            service-id 1
            customer "1"
            endpoint "CORE" {
            }
            spoke-sdp 64:1 {
                endpoint {
                    name "CORE"
                }
                stp {
                    admin-state disable
                }
            }
            spoke-sdp 65:1 {
                endpoint {
                    name "CORE"
                }
                stp {
                    admin-state disable
                }
            }
            sap 1/1/c10/1:1 {
            }
        }

Verification

The following command shows the configured BGP-EVPN SRv6 parameters:

[/]
A:admin@PE-2# show service id "VPLS-1" bgp-evpn segment-routing-v6

===============================================================================
BGP EVPN Segment Routing v6 Information
===============================================================================
Admin State             : Enabled                 Bgp Instance  : 1
Srv6 Instance           : 1
Default Locator         : PE2-loc

Oper Group              : (none)
Default Route Tag       : 0x0
Source Address          : 2001:db8::2:2
ECMP                    : 2
Force Vlan VC Fwd       : Disabled
Next Hop Type           : explicit
Next Hop Address        : 2001:db8::2:2
Evi 3-byte Auto-RT      : disabled
Route Resolution        : route-table
Force QinQ VC Fwd       : none
MH Mode                 : network
Rest Prot Src Mac       : disabled
Split Horizon Group     : n/a
===============================================================================

The following command shows the SID values and the status of the End.DT2U and End.DT2M functions in SRv6 instance 1 in VPLS-1 on PE-3:

[/]
A:admin@PE-3# show service id "VPLS-1" segment-routing-v6 instance 1

===============================================================================
Segment Routing v6 Instance 1 Service 1
===============================================================================
Locator
 Type          Function  SID                                     Status
-------------------------------------------------------------------------------
PE3-loc
  End.DT2U     *3        2001:db8:aaaa:103:3::                   ok
  End.DT2M     *4        2001:db8:aaaa:103:4::                   ok
===============================================================================
Legend: * - System allocated

The SID 2001:db8:aaaa:103:4:: corresponding to the End.DT2M function is one of the SRv6 destinations for VPLS-1 on PE-2, as follows:

[/]
A:admin@PE-2# show service id "VPLS-1" segment-routing-v6 destinations

===============================================================================
TEP, SID (Instance 1)
===============================================================================
TEP Address                Segment Id                          Oper  Mcast Num
                                                               State       MACs
-------------------------------------------------------------------------------
2001:db8::2:3              2001:db8:aaaa:103:4::               Up    BUM   0
2001:db8::2:4              2001:db8:aaaa:104:b::               Up    BUM   0
2001:db8::2:5              2001:db8:aaaa:105:7ff:f900::        Up    BUM   0
-------------------------------------------------------------------------------
Number of TEP, SID: 3
-------------------------------------------------------------------------------
===============================================================================

===============================================================================
Segment Routing v6 Ethernet Segment Dest (Instance 1)
===============================================================================
Eth SegId                                 Num. Macs     Last Update
-------------------------------------------------------------------------------
01:00:00:00:00:45:00:00:00:01             1             04/23/2024 11:09:52
-------------------------------------------------------------------------------
Number of entries: 1
-------------------------------------------------------------------------------
===============================================================================

The two other SRv6 destinations for VPLS-1 on PE-2 correspond to the End.DT2M function in VPLS-1 on PE-4 and PE-5.

Multihoming, route tables, FDBs

PE-3 acts as the designated forwarder (DF) for VPLS-1 in the all-active ES "AA-vES-23-1", as follows:

[/]
A:admin@PE-3# show service id "VPLS-1" ethernet-segment

===============================================================================
SAP Ethernet-Segment Information
===============================================================================
SAP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
lag-1:1               AA-vES-23-1                      DF
===============================================================================
No sdp entries
No vxlan instance entries

PE-2 is an NDF in the all-active ES "AA-vES-23-1", as follows:

[/]
A:admin@PE-2# show service id "VPLS-1" ethernet-segment

===============================================================================
SAP Ethernet-Segment Information
===============================================================================
SAP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
lag-1:1               AA-vES-23-1                      NDF
===============================================================================
No sdp entries
No vxlan instance entries

PE-5 acts as the DF for VPLS-1 in the single-active ES "SA-ES-45", as follows:

[/]
A:admin@PE-5# show service id "VPLS-1" ethernet-segment
No sap entries

===============================================================================
SDP Ethernet-Segment Information
===============================================================================
SDP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
56:1                  SA-ES-45                         DF
===============================================================================
No vxlan instance entries

PE-4 is an NDF in the single-active ES "SA-ES-45", as follows:

[/]
A:admin@PE-4# show service id "VPLS-1" ethernet-segment
No sap entries

===============================================================================
SDP Ethernet-Segment Information
===============================================================================
SDP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
46:1                  SA-ES-45                         NDF
===============================================================================
No vxlan instance entries

The following route table for IPv6 shows that PE-2 has SRv6-ISIS-tunneled routes to the locator prefixes on PE-3, PE-4, and PE-5:

[/]
A:admin@PE-2# show router route-table ipv6 next-hop-type tunneled

===============================================================================
IPv6 Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:103::/64                        Remote  ISIS      00h15m55s  18
       2001:db8:aaaa:103::/64 (tunneled:SRV6-ISIS)                  10
2001:db8:aaaa:104::/64                        Remote  ISIS      00h15m36s  18
       2001:db8:aaaa:104::/64 (tunneled:SRV6-ISIS)                  10
2001:db8:aaaa:105::/64                        Remote  ISIS      00h15m08s  18
       2001:db8:aaaa:105::/64 (tunneled:SRV6-ISIS)                  10
-------------------------------------------------------------------------------
No. of Routes: 3
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

After traffic has been sent between CE-11 and CE-16, the VPLS-1 FDBs are populated. The FDB on MTU-1 shows that CE-16 can be reached through the LAG, while CE-11 can be reached via SAP 1/1/c10/1:1, as follows:

[/]
A:admin@MTU-1# show service id "VPLS-1" fdb detail

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:5e:00:53:11 sap:1/1/c10/1:1         L/60     04/23/24 11:22:33
1          00:00:5e:00:53:16 sap:lag-1:1             L/60     04/23/24 11:22:33
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

The VPLS-1 FDBs on PE-2 and PE-3 are similar. CE-11 can be reached through the LAG, while CE-16 can be reached via the single-active ES between PE-4 and PE-5, as follows:

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

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:5e:00:53:11 sap:lag-1:1             L/60     04/23/24 11:22:33
1          00:00:5e:00:53:16 eES:                    Evpn     04/23/24 11:09:52
                             01:00:00:00:00:45:00:00:00:01
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================
[/]
A:admin@PE-3# show service id "VPLS-1" fdb detail

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:5e:00:53:11 sap:lag-1:1             Evpn     04/23/24 11:22:33
1          00:00:5e:00:53:16 eES:                    Evpn     04/23/24 11:09:52
                             01:00:00:00:00:45:00:00:00:01
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

The FDB on NDF PE-4 shows that CE-11 can be reached via the all-active ES between PE-2 and PE-3, while CE-16 can be reached via the single-active ES between PE-4 and PE-5, but not through the SDP toward MTU-6, as follows:

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

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:5e:00:53:11 eES:                    Evpn     04/23/24 11:22:33
                             01:00:00:00:00:23:00:00:01:01
1          00:00:5e:00:53:16 eES:                    Evpn     04/23/24 11:09:52
                             01:00:00:00:00:45:00:00:00:01
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

The FDB on DF PE-5 shows that CE-11 can be reached via the all-active ES between PE-2 and PE-3, while CE-16 can be reached via the SDP toward MTU-6, as follows:

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

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:5e:00:53:11 eES:                    Evpn     04/23/24 11:22:33
                             01:00:00:00:00:23:00:00:01:01
1          00:00:5e:00:53:16 sdp:56:1                LT/60    04/23/24 11:09:52
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

The FDB on MTU-6 shows that CE-11 can be reached via the SDP toward DF PE-5, while CE-16 can be reached via SAP 1/1/c10/1:1, as follows:

[/]
A:admin@MTU-6# show service id "VPLS-1" fdb detail

===============================================================================
Forwarding Database, Service 1
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1          00:00:5e:00:53:11 sdp:65:1                L/60     04/23/24 11:09:52
1          00:00:5e:00:53:16 sap:1/1/c10/1:1         L/60     04/23/24 11:22:33
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================
BGP-EVPN routes

PE-2 received the following EVPN-MAC route from PE-5 with the endpoint behavior 0x17 = 23, which corresponds to the End.DT2U function for known unicast traffic:

# on PE-2:
46 2024/04/23 11:09:52.089 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2:5
"Peer 1: 2001:db8::2:5: UPDATE
Peer 1: 2001:db8::2:5 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 125
    Flag: 0x90 Type: 14 Len: 56 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 16 Global NextHop 2001:db8::2:5
        Type: EVPN-MAC Len: 33 RD: 192.0.2.5:1 ESI: 01:00:00:00:00:45:00:00:00:01, 
                       tag: 0, mac len: 48 mac: 00:00:5e:00:53:16, IP len: 0, 
                       IP: NULL, label1: 8388512 (Raw Label: 0x7fffa0)
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64500:1
    Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
       SRv6 Services TLV (37 bytes):-
           Type: SRV6 L2 Service TLV (6)
           Length: 34 bytes, Reserved: 0x0
         SRv6 Service Information Sub-TLV (33 bytes)
             Type: 1 Len: 30 Rsvd1: 0x0
             SRv6 SID: 2001:db8:aaaa:105::
             SID Flags: 0x0 Endpoint Behavior: 0x17 Rsvd2: 0x0
             SRv6 SID Sub-Sub-TLV
                Type: 1 Len: 6
                BL:48 NL:16 FL:24 AL:0 TL:20 TO:68
"

The following show command for the EVPN-MAC route containing the CE-16 MAC address shows the behavior End.DT2U (23):

[/]
A:admin@PE-2# show router bgp routes evpn mac mac-address 00:00:5e:00:53:16 detail
===============================================================================
 BGP Router ID:192.0.2.2        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Original Attributes

Network        : n/a
Nexthop        : 2001:db8::2:5
Path Id        : None
From           : 2001:db8::2:5
Res. Nexthop   : fe80::1e:1ff:fe01:15
Local Pref.    : 100                    Interface Name : int-PE-2-PE-5
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 10
Connector      : None
Community      : target:64500:1
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.5
Origin         : IGP
Flags          : Used Valid Best
Route Source   : Internal
AS-Path        : No As-Path
EVPN type      : MAC
ESI            : 01:00:00:00:00:45:00:00:00:01
Tag            : 0
IP Address     : n/a
Route Dist.    : 192.0.2.5:1
Mac Address    : 00:00:5e:00:53:16
MPLS Label1    : 524282                 MPLS Label2    : n/a
Route Tag      : 0
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default
Last Modified  : 00h09m13s
SRv6 TLV Type  : SRv6 L2 Service TLV (6)
SRv6 SubTLV    : SRv6 SID Information (1)
Sid            : 2001:db8:aaaa:105::
Full Sid       : 2001:db8:aaaa:105:7ff:fa00::
Behavior       : End.DT2U (23)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len  : 48                     Loc-Node-Len   : 16
Func-Len       : 24                     Arg-Len        : 0
Tpose-Len      : 20                     Tpose-offset   : 68
---snip---

PE-2 received the following EVPN IMET route from PE-5 with the endpoint behavior 0x18 = 24, which corresponds to the End.DT2M function for BUM traffic:

65 2024/04/23 11:16:15.584 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2:5
"Peer 1: 2001:db8::2:5: UPDATE
Peer 1: 2001:db8::2:5 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 145
    Flag: 0x90 Type: 14 Len: 52 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 16 Global NextHop 2001:db8::2:5
        Type: EVPN-INCL-MCAST Len: 29 RD: 192.0.2.5:1, tag: 0, 
                              orig_addr len: 128, orig_addr: 2001:db8::2:5
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64500:1
    Flag: 0xc0 Type: 22 Len: 21 PMSI:
        Tunnel-type Ingress Replication (6)
        Flags: (0x0)[Type: None BM: 0 U: 0 Leaf: not required]
        MPLS Label 8388496
        Tunnel-Endpoint 2001:db8::2:5
    Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
       SRv6 Services TLV (37 bytes):-
           Type: SRV6 L2 Service TLV (6)
           Length: 34 bytes, Reserved: 0x0
         SRv6 Service Information Sub-TLV (33 bytes)
             Type: 1 Len: 30 Rsvd1: 0x0
             SRv6 SID: 2001:db8:aaaa:105::
             SID Flags: 0x0 Endpoint Behavior: 0x18 Rsvd2: 0x0
             SRv6 SID Sub-Sub-TLV
                Type: 1 Len: 6
                BL:48 NL:16 FL:24 AL:16 TL:20 TO:68
"

The following show command for the EVPN IMET route that is received from PE-5 shows the behavior End.DT2M (24):

[/]
A:admin@PE-2# show router bgp routes evpn incl-mcast originator-ip 2001:db8::2:5 hunt
===============================================================================
 BGP Router ID:192.0.2.2        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN Inclusive-Mcast Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Network        : n/a
Nexthop        : 2001:db8::2:5
Path Id        : None
From           : 2001:db8::2:5
Res. Nexthop   : fe80::1e:1ff:fe01:15
Local Pref.    : 100                    Interface Name : int-PE-2-PE-5
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 10
Connector      : None
Community      : target:64500:1
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.5
Origin         : IGP
Flags          : Used Valid Best
Route Source   : Internal
AS-Path        : No As-Path
EVPN type      : INCL-MCAST
Tag            : 0
Originator IP  : 2001:db8::2:5
Route Dist.    : 192.0.2.5:1
Route Tag      : 0
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default
Last Modified  : 00h11m12s
SRv6 TLV Type  : SRv6 L2 Service TLV (6)
SRv6 SubTLV    : SRv6 SID Information (1)
Sid            : 2001:db8:aaaa:105::
Full Sid       : 2001:db8:aaaa:105:7ff:f900::
Behavior       : End.DT2M (24)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len  : 48                     Loc-Node-Len   : 16
Func-Len       : 24                     Arg-Len        : 16
Tpose-Len      : 20                     Tpose-offset   : 68
-------------------------------------------------------------------------------
PMSI Tunnel Attributes :
Tunnel-type    : Ingress Replication
Flags          : Type: RNVE(0) BM: 0 U: 0 Leaf: not required
MPLS Label     : 8388496
Tunnel-Endpoint: 2001:db8::2:5
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 1
===============================================================================

PE-2 receives the following AD per-EVI route from PE-5:

40 2024/04/23 11:09:34.535 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2:5
"Peer 1: 2001:db8::2:5: UPDATE
Peer 1: 2001:db8::2:5 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 117
    Flag: 0x90 Type: 14 Len: 48 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 16 Global NextHop 2001:db8::2:5
        Type: EVPN-AD Len: 25 RD: 192.0.2.5:1 ESI: 01:00:00:00:00:45:00:00:00:01, 
                      tag: 0 Label: 8388512 (Raw Label: 0x7fffa0) PathId:
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64500:1
    Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
       SRv6 Services TLV (37 bytes):-
           Type: SRV6 L2 Service TLV (6)
           Length: 34 bytes, Reserved: 0x0
         SRv6 Service Information Sub-TLV (33 bytes)
             Type: 1 Len: 30 Rsvd1: 0x0
             SRv6 SID: 2001:db8:aaaa:105::
             SID Flags: 0x0 Endpoint Behavior: 0x17 Rsvd2: 0x0
             SRv6 SID Sub-Sub-TLV
                Type: 1 Len: 6
                BL:48 NL:16 FL:24 AL:0 TL:20 TO:68
"

PE-2 receives the following AD per-ES route from PE-5:

62 2024/04/23 11:16:15.584 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2:5
"Peer 1: 2001:db8::2:5: UPDATE
Peer 1: 2001:db8::2:5 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 125
    Flag: 0x90 Type: 14 Len: 48 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 16 Global NextHop 2001:db8::2:5
        Type: EVPN-AD Len: 25 RD: 192.0.2.5:1 ESI: 01:00:00:00:00:45:00:00:00:01, 
                      tag: MAX-ET Label: 0 (Raw Label: 0x0) PathId:
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 16 Len: 16 Extended Community:
        target:64500:1
        esi-label:16/Single-Active
    Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
       SRv6 Services TLV (37 bytes):-
           Type: SRV6 L2 Service TLV (6)
           Length: 34 bytes, Reserved: 0x0
         SRv6 Service Information Sub-TLV (33 bytes)
             Type: 1 Len: 30 Rsvd1: 0x0
             SRv6 SID: ::
             SID Flags: 0x0 Endpoint Behavior: 0x18 Rsvd2: 0x0
             SRv6 SID Sub-Sub-TLV
                Type: 1 Len: 6
                BL:48 NL:16 FL:24 AL:16 TL:16 TO:88
"

ES "SA-ES-45" is configured in a single-active multihoming mode with the ESI label; therefore, PE-5 sends the AD per-ES routes that carry the arg.fe2 value. The SID structure in the SRv6 sub-sub-TLV indicates that the argument length is 16 bits. The 16-bit length of the arg.fe2 value is transposed into the ESI label extended community label field. The transposition length is 16 (argument length 16) and the transposition offset is 88 (block length 48 + node length 16 + function length 24). The SRv6 SID is :: (0).

End.DT2U and End.DT2M functions

On PE-4, function value 10 is configured for End.DT2U and function value 11 for End.DT2M, as follows:

[/]
A:admin@PE-4# show router segment-routing-v6 local-sid end-dt2m end-dt2u

===============================================================================
Segment Routing v6 Local SIDs
===============================================================================
SID                                               Type           Function
  Locator
  Context
-------------------------------------------------------------------------------
2001:db8:aaaa:104:a::                             End.DT2U       10
  PE4-loc
  SvcId: 1 Name: VPLS-1
2001:db8:aaaa:104:b::                             End.DT2M       11
  PE4-loc
  SvcId: 1 Name: VPLS-1
-------------------------------------------------------------------------------
SIDs : 2
-------------------------------------------------------------------------------
===============================================================================

On PE-5, the function values 524281 and 524282 are dynamically allocated from the dynamic label range, as follows:

[/]
A:admin@PE-5# show router segment-routing-v6 local-sid end-dt2m end-dt2u

===============================================================================
Segment Routing v6 Local SIDs
===============================================================================
SID                                               Type           Function
  Locator
  Context
-------------------------------------------------------------------------------
2001:db8:aaaa:105:7ff:f900::                      End.DT2M       524281
  PE5-loc
  SvcId: 1 Name: VPLS-1
2001:db8:aaaa:105:7ff:fa00::                      End.DT2U       524282
  PE5-loc
  SvcId: 1 Name: VPLS-1
-------------------------------------------------------------------------------
SIDs : 2
-------------------------------------------------------------------------------
===============================================================================

On PE-2, a reserved label block is configured and associated to the SRv6 locator. Function value 3 is dynamically allocated for End.DT2U and function value 4 for End.DT2M. SID 2001:db8:aaaa:102:3:: is used for the End.DT2U function and SID 2001:db8:aaaa:102:4:: for the End.DT2M function, as follows:

[/]
A:admin@PE-2# show service id "VPLS-1" segment-routing-v6 detail

===============================================================================
Segment Routing v6 Instance 1 Service 1
===============================================================================
Locator
 Type          Function  SID                                     Status
-------------------------------------------------------------------------------
PE2-loc
  End.DT2U     *3        2001:db8:aaaa:102:3::                   ok
  End.DT2M     *4        2001:db8:aaaa:102:4::                   ok
===============================================================================
Legend: * - System allocated

On PE-2, the following MPLS label blocks are defined, where the reserved label block "srv6-labels" is manually configured:

[/]
A:admin@PE-4# show router mpls-labels label-range

===============================================================================
Label Ranges
===============================================================================
Label Type      Start Label End Label   Aging       Available   Total
-------------------------------------------------------------------------------
Static          32          18431       -           18400       18400
Dynamic         18432       524287      0           504848      505856
    Seg-Route   0           0           -           0           0

-------------------------------------------------------------------------------
Reserved Label Blocks
-------------------------------------------------------------------------------
Reserved Label                               Start       End         Total
Block Name                                   Label       Label
-------------------------------------------------------------------------------
srv6-labels                                  20000       20999       1000
-------------------------------------------------------------------------------
No. of Reserved Label Blocks: 1
-------------------------------------------------------------------------------
===============================================================================

On PE-5, no reserved label block is configured, as follows:

[/]
A:admin@PE-5# show router mpls-labels label-range

===============================================================================
Label Ranges
===============================================================================
Label Type      Start Label End Label   Aging       Available   Total
-------------------------------------------------------------------------------
Static          32          18431       -           18400       18400
Dynamic         18432       524287      0           505846      505856
    Seg-Route   0           0           -           0           0
===============================================================================

The dynamically allocated function labels 524281 and 524282 are taken from the dynamic MPLS label range:

[/]
A:admin@PE-5# show service id "VPLS-1" segment-routing-v6 detail

===============================================================================
Segment Routing v6 Instance 1 Service 1
===============================================================================
Locator
 Type          Function  SID                                     Status
-------------------------------------------------------------------------------
PE5-loc
  End.DT2U     *524282   2001:db8:aaaa:105:7ff:fa00::            ok
  End.DT2M     *524281   2001:db8:aaaa:105:7ff:f900::            ok
===============================================================================
Legend: * - System allocated

In the preceding output, SID 2001:db8:aaaa:105:7ff:f900:: is used for BUM traffic, as indicated by the End.DT2M function. This SID is advertised by PE-5 in an IMET route to PE-2 and appears in the list of SRv6 destinations in VPLS-1 on PE-2, as follows:

[/]
A:admin@PE-2# show service id "VPLS-1" segment-routing-v6 destinations

===============================================================================
TEP, SID (Instance 1)
===============================================================================
TEP Address                Segment Id                          Oper  Mcast Num
                                                               State       MACs
-------------------------------------------------------------------------------
2001:db8::2:3              2001:db8:aaaa:103:4::               Up    BUM   0
2001:db8::2:4              2001:db8:aaaa:104:b::               Up    BUM   0
2001:db8::2:5              2001:db8:aaaa:105:7ff:f900::        Up    BUM   0
-------------------------------------------------------------------------------
Number of TEP, SID: 3
-------------------------------------------------------------------------------
===============================================================================

===============================================================================
Segment Routing v6 Ethernet Segment Dest (Instance 1)
===============================================================================
Eth SegId                                 Num. Macs     Last Update
-------------------------------------------------------------------------------
01:00:00:00:00:45:00:00:00:01             1             04/23/2024 11:09:52
-------------------------------------------------------------------------------
Number of entries: 1
-------------------------------------------------------------------------------
===============================================================================

Ping or traceroute can be sent to the entire SIDs, including the arguments. The ping or traceroute messages are replied to, ignoring these arguments. As an example, PE-2 launches the following commands to some of the SRv6 SIDs (without arguments) in the preceding output:

[/]
A:admin@PE-2# ping 2001:db8:aaaa:103:4:: interval 0.1 output-format summary
PING 2001:db8:aaaa:103:4:: 56 data bytes
!!!!!
---- 2001:db8:aaaa:103:4:: PING Statistics ----
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 2.28ms, avg = 2.42ms, max = 2.58ms, stddev = 0.102ms

[/]
A:admin@PE-2# traceroute 2001:db8:aaaa:105:7ff:f900::
traceroute to 2001:db8:aaaa:105:7ff:f900::, 30 hops max, 60 byte packets
  1  2001:db8::2:5 (2001:db8::2:5)    2.54 ms  2.73 ms  2.84 ms

The following command shows that the SRv6 locator of PE-5 (2001:db8:aaaa:105::/64) is resolved:

[/]
A:admin@PE-2# show router bgp next-hop evpn 2001:db8::2:5 service-id 1 detail
===============================================================================
 BGP Router ID:192.0.2.2        AS:64500       Local AS:64500
===============================================================================

===============================================================================
BGP VPN Next Hop
===============================================================================
-------------------------------------------------------------------------------
---snip---
-------------------------------------------------------------------------------
VPN Next Hop          : 2001:db8::2:5
Autobind              : gre/rtm
Labels                : --
User-labels           : 1
Admin-tag-policy      : --
Strict-tunnel-tagging : N
Color                 : --
UPA Trigger Next Hop  : --
Locator               : 2001:db8:aaaa:105::/64
Created               : 00h27m24s
Last-modified         : 00h27m24s
-------------------------------------------------------------------------------
Resolving Prefix : 2001:db8::2:5/128
Preference       : 18                   Metric           : 10
Reference Count  : 3                    Owner            : GRE
Fib Programmed   : Y
Resolved Next Hop: fe80::1e:1ff:fe01:15
Egress Label     : n/a                  TunnelId         : 4294967293
Locator State    : Resolved
-------------------------------------------------------------------------------
---snip---

The following tunnel table on PE-2 shows the SRv6-ISIS tunnels to the SRv6 locators 2001:db8:aaaa:103::/64 on PE-3, 2001:db8:aaaa:104::/64 on PE-4, and 2001:db8:aaaa:105::/64 on PE-5:

[/]
A:admin@PE-2# show router tunnel-table ipv6 protocol srv6-isis

===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination                                     Owner     Encap TunnelId  Pref
Nexthop                                         Color           Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:103::/64                          srv6-isis SRV6  524289    0
  fe80::14:1ff:fe01:1f-"int-PE-2-PE-3"                            10
2001:db8:aaaa:104::/64                          srv6-isis SRV6  524290    0
  fe80::1a:1ff:fe01:b-"int-PE-2-PE-4"                             10
2001:db8:aaaa:105::/64                          srv6-isis SRV6  524291    0
  fe80::1e:1ff:fe01:15-"int-PE-2-PE-5"                            10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================
EVPN and VPLS integration

EVPN and VPLS integration (RFC 8560) is supported when SRv6 transport is used. SDP bindings signaled by TLDP (manually configured or BGP-AD) or BGP can coexist in VPLS services where EVPN SRv6 is enabled. The SR OS node allows for the creation of an EVPN destination and an SDP binding to the same far end, but the SDP binding is kept operationally down with a flag indicating an EVPN route conflict.

On PE-2 and PE-5, LDP SDPs are created, as follows:

# on PE-2:
configure {
    router "Base" {
        ldp {
            interface-parameters {
                interface "int-PE-2-PE-5" {       # on PE-5: "int-PE-5-PE-2"
                    ipv6 {
                        admin-state enable
                    }
                }
            }
        }
    }
    service {
        sdp 25 {                                  # on PE-5: sdp 52
            admin-state enable
            delivery-type mpls
            ldp true
            far-end {
                ip-address 2001:db8::2:5          # on PE-5: 2001:db8::2:2
            }
        }
        vpls "VPLS-1" {
            spoke-sdp 25:1 {                      # on PE-5: spoke-sdp 52:1
            }
        }

PE-2 still has an SRv6-ISIS tunnel toward 2001:db8:aaaa:105::/64 on PE-5, as follows:

[/]
A:admin@PE-2# show router tunnel-table ipv6 protocol srv6-isis

===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination                                     Owner     Encap TunnelId  Pref
Nexthop                                         Color           Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:103::/64                          srv6-isis SRV6  524289    0
  fe80::14:1ff:fe01:1f-"int-PE-2-PE-3"                            10
2001:db8:aaaa:104::/64                          srv6-isis SRV6  524290    0
  fe80::1a:1ff:fe01:b-"int-PE-2-PE-4"                             10
2001:db8:aaaa:105::/64                          srv6-isis SRV6  524291    0
  fe80::1e:1ff:fe01:15-"int-PE-2-PE-5"                            10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================

The spoke SDP from PE-2 to PE-5 is operationally down and no egress label is allocated, as follows:

[/]
A:admin@PE-2# show service id "VPLS-1" sdp 25:1

===============================================================================
Service Destination Point (Sdp Id : 25:1)
===============================================================================
SdpId            Type     Far End addr    Adm     Opr       I.Lbl     E.Lbl
-------------------------------------------------------------------------------
25:1             Spok                     Up      Down      524282    None
                          2001:db8::2:5
-------------------------------------------------------------------------------
Number of SDPs : 1
-------------------------------------------------------------------------------
===============================================================================

The reason why the spoke SDP from PE-2 to PE-5 is operationally down is because of an EVPN route conflict, as follows:

[/]
A:admin@PE-2# show service id "VPLS-1" sdp 25:1 detail | match Flag post-lines 1
Flags              : NoEgrVCLabel
                     EvpnRouteConflict
Tools commands

The following command shows the EVPN usage statistics:

[/]
A:admin@PE-2# tools dump service evpn usage

vxlan-srv6-evpn-mpls usage statistics at 04/23/2024 11:39:10:

MPLS-TEP                                        :             0
VXLAN-TEP                                       :             0
SRV6-TEP                                        :             3
Total-TEP                                       :      3/ 16383

Mpls Dests (TEP, Egress Label + ES + ES-BMAC)   :             0
Mpls Etree Leaf Dests                           :             0
Vxlan Dests (TEP, Egress VNI + ES)              :             0
Srv6 Dests (TEP, SID  + ES)                     :             4
Total-Dest                                      :      4/196607

Sdp Bind +  Evpn Dests                          :      4/245759
ES L2/L3 PBR                                    :      0/ 32767
Evpn Etree Remote BUM Leaf Labels               :             0
[/]
A:admin@PE-2# tools dump router segment-routing-v6 usage
Segment Routing v6 Usage
Service SID index: 6/262128

In the case of failure to instantiate an EVPN destination, the tools dump service id "VPLS-1" srv6 command provides the following statistics:

[/]
A:admin@PE-2# tools dump service id "VPLS-1" srv6

TEP, Egress Bind Failure statistics at 04/23/2024 11:39:10:

statistics last cleared at 04/23/2024 09:26:33:

Failures: None

EVPN VPLS using SRv6 with micro-segment locator

Example topology with VPLS-2 shows the topology with VPLS-2. The same nodes and ESs are used, but the VPLS-2 service uses micro-SIDs, whereas VPLS-1 uses regular SIDs. The CEs are different as well.
Figure 5. Example topology with VPLS-2

SRv6 micro-segment configuration on core PEs

On all core PEs, a micro-segment and a micro-segment locator are configured on PE-2, as follows:

# on PE-2:
configure {
    router "Base" {
        mpls-labels {
            reserved-label-block "res-block1" {
                start-label 19000
                end-label 19999
            }
        }
        isis 0 {
            segment-routing-v6 {
                micro-segment-locator "PE2-mloc" {
                    level 1 {
                    }
                    level 2 {
                    }
                }
            }
        }
        segment-routing {
            segment-routing-v6 {
                origination-fpe [1]
                source-address 2001:db8::2:2
                micro-segment-locator "PE2-mloc" {   # or PE3-mloc, PE4-mloc, PE5-mloc
                    admin-state enable
                    block "PE2-ms-block1"
                    un {
                        srh-mode usp
                        value 2      # on PE-3: value 3; PE-4: value 4; PE-5: value 5
                    }
                }
                micro-segment {
                    argument-length 16
                    block "PE2-ms-block1" { # PE3-ms-block1, PE4-ms-block1, PE5-ms-block1
                        admin-state enable
                        termination-fpe [2]
                        label-block "res-block1"
                        prefix {
                            ip-prefix 2001:bbbb::/32   # on all PEs; block length 32
                        }
                        static-function {
                            max-entries 16
                        }
                    }
                }
                base-routing-instance {
                    micro-segment-locator "PE2-mloc" {  # or PE3-mloc, PE4-mloc, PE5-mloc
                        function {
                            ua 1 {
                                srh-mode usp
                            }
                            ua-auto-allocate psp protection unprotected { }
                        }
                    }
                }
            }
        }

The micro-segment locator contains a micro-segment node value (un value) that must be unique network-wide. The un function is equivalent to the regular SRv6 End function, but it is configured in the micro-segment-locator context instead of the Base instance. The un value command creates a node identifier as an IPv6 address that is composed of the block part and followed by a 16-bit SID.

The ua micro-SID function encodes the behavior of an adjacency SID.

The following error message is raised when an IP prefix is configured with a length of /48 that is different from the block length of /32:

*[ex:/configure router "Base" segment-routing segment-routing-v6 micro-segment 
block "PE2-ms-block1" prefix]
A:admin@PE-2# commit
MINOR: MGMT_CORE #4001: configure router "Base" segment-routing segment-routing-v6 
micro-segment block "PE2-ms-block1" prefix ip-prefix - 
prefix-length must be equal to block-length - 
configure router "Base" segment-routing segment-routing-v6 micro-segment block-length

Service configuration

On MTU-1, VPLS-2 is configured as follows:

# on MTU-1:
configure {
    service {
        vpls "VPLS-2" {
            admin-state enable
            service-id 2
            customer "1"
            sap 1/1/c10/1:2 {
            }
            sap lag-1:2 {
            }
        }

On PE-2 and PE-3, VPLS-2 is configured with all-active multihoming using ES "AA-vES-23-1". The micro-segment locator is configured with the End.uDT2U and End.uDT2M functions, as follows:

# on PE-2:
configure {
    service {
        vpls "VPLS-2" {   
            admin-state enable
            service-id 2
            customer "1"
            segment-routing-v6 1 {
                micro-segment-locator "PE2-mloc" {            # on PE-3: PE3-mloc
                    function {
                        udt2m {
                        }
                        udt2u {
                        }
                    }
                }
            }
            bgp 1 {
            }
            bgp-evpn {
                evi 2
                segment-routing-v6 1 {
                    admin-state enable
                    ecmp 2
                    source-address 2001:db8::2:2              # on PE-3: 2001:db8::2:3
                    srv6 {
                        instance 1
                        default-locator "PE2-mloc"            # on PE-3: PE3-mloc
                    }
                    route-next-hop {
                        ip-address 2001:db8::2:2              # on PE-3: 2001:db8::2:3
                    }
                }
            }
            sap lag-1:2 {
            }

The VPLS-2 configuration on PE-4 uses spoke SDP 46:2, while on PE-5, spoke SDP 56:2 is used, as follows:

# on PE-4:
configure {
    service {
        vpls "VPLS-2" {
            admin-state enable
            service-id 2
            customer "1"
            segment-routing-v6 1 {
                micro-segment-locator "PE4-mloc" {    # on PE-5: PE5-mloc
                    function {
                        udt2m {
                        }
                        udt2u {
                        }
                    }
                }
            }
            bgp 1 {
            }
            bgp-evpn {
                evi 2
                segment-routing-v6 1 {
                    admin-state enable
                    ecmp 2
                    source-address 2001:db8::2:4      # on PE-5: PE5-mloc; 2001:db8::2:5
                    srv6 {
                        instance 1
                        default-locator "PE4-mloc"    # on PE-5: PE5-mloc
                    }
                    route-next-hop {
                        ip-address 2001:db8::2:4      # on PE-5: 2001:db8::2:5
                    }
                }
            }
            spoke-sdp 46:2 {                          # on PE-5: spoke-sdp 56:2
            }
        }

The configuration for VPLS-2 on MTU-6 is as follows:

# on MTU-6:
configure {
    service {
        vpls "VPLS-2" {
            admin-state enable
            service-id 2
            customer "1"
            endpoint "CORE" {
            }
            spoke-sdp 64:2 {
                endpoint {
                    name "CORE"
                }
                stp {
                    admin-state disable
                }
            }
            spoke-sdp 65:2 {
                endpoint {
                    name "CORE"
                }
                stp {
                    admin-state disable
                }
            }
            sap 1/1/c10/1:2 {
            }
        }

Verification

PE-2 already had three SRv6-ISIS tunnels to the locators 2001:db8:aaaa:103::/64 on PE-3, 2001:db8:aaaa:104::/64 on PE-4, and 2001:db8:aaaa:105::/64 on PE-5. Now, PE-2 also has SRv6-ISIS tunnels to the micro-segment locators 2001:bbbb:3::/48 on PE-3, 2001:bbbb:4::/48 on PE-4, and 2001:bbbb:5::/48 on PE-5, as follows:

[/]
A:admin@PE-2# show router tunnel-table ipv6 protocol srv6-isis

===============================================================================
IPv6 Tunnel Table (Router: Base)
===============================================================================
Destination                                     Owner     Encap TunnelId  Pref
Nexthop                                         Color           Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:103::/64                          srv6-isis SRV6  524289    0
  fe80::14:1ff:fe01:1f-"int-PE-2-PE-3"                            10
2001:db8:aaaa:104::/64                          srv6-isis SRV6  524290    0
  fe80::1a:1ff:fe01:b-"int-PE-2-PE-4"                             10
2001:db8:aaaa:105::/64                          srv6-isis SRV6  524291    0
  fe80::1e:1ff:fe01:15-"int-PE-2-PE-5"                            10
2001:bbbb:3::/48                                srv6-isis SRV6  524292    0
  fe80::14:1ff:fe01:1f-"int-PE-2-PE-3"                            10
2001:bbbb:4::/48                                srv6-isis SRV6  524293    0
  fe80::1a:1ff:fe01:b-"int-PE-2-PE-4"                             10
2001:bbbb:5::/48                                srv6-isis SRV6  524294    0
  fe80::1e:1ff:fe01:15-"int-PE-2-PE-5"                            10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================

The IPv6 route table on PE-2 shows the following tunneled routes to the locators and the micro-segment locators on PE-3, PE-4, and PE-5:

[/]
A:admin@PE-2# show router route-table ipv6 next-hop-type tunneled

===============================================================================
IPv6 Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
2001:db8:aaaa:103::/64                        Remote  ISIS      00h39m56s  18
       2001:db8:aaaa:103::/64 (tunneled:SRV6-ISIS)                  10
2001:db8:aaaa:104::/64                        Remote  ISIS      00h39m37s  18
       2001:db8:aaaa:104::/64 (tunneled:SRV6-ISIS)                  10
2001:db8:aaaa:105::/64                        Remote  ISIS      00h39m09s  18
       2001:db8:aaaa:105::/64 (tunneled:SRV6-ISIS)                  10
2001:bbbb:3::/48                              Remote  ISIS      00h04m36s  18
       2001:bbbb:3::/48 (tunneled:SRV6-ISIS)                        10
2001:bbbb:4::/48                              Remote  ISIS      00h04m30s  18
       2001:bbbb:4::/48 (tunneled:SRV6-ISIS)                        10
2001:bbbb:5::/48                              Remote  ISIS      00h04m22s  18
       2001:bbbb:5::/48 (tunneled:SRV6-ISIS)                        10
-------------------------------------------------------------------------------
No. of Routes: 6
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================
Multihoming and FDBs

PE-3 is DF in the all-active ES for VPLS-2, as follows:

[/]
A:admin@PE-3# show service id "VPLS-2" ethernet-segment

===============================================================================
SAP Ethernet-Segment Information
===============================================================================
SAP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
lag-1:2               AA-vES-23-1                      DF
===============================================================================
No sdp entries
No vxlan instance entries

PE-4 is DF in the single-active ES for VPLS-2, as follows:

[/]
A:admin@PE-4# show service id "VPLS-2" ethernet-segment
No sap entries

===============================================================================
SDP Ethernet-Segment Information
===============================================================================
SDP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
46:2                  SA-ES-45                         DF
===============================================================================
No vxlan instance entries

When traffic is sent between CE-21 and CE-26, the FDBs are populated; on MTU-1 as follows:

[/]
A:admin@MTU-1# show service id "VPLS-2" fdb detail

===============================================================================
Forwarding Database, Service 2
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
2          00:00:5e:00:53:21 sap:1/1/c10/1:2         L/120    04/23/24 11:40:46
2          00:00:5e:00:53:26 sap:lag-1:2             L/120    04/23/24 11:41:48
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

The VPLS-2 FDBs on PE-2 and PE-3 are similar. CE-21 can be reached through the LAG, while CE-26 can be reached via the single-active ES between PE-4 and PE-5, as follows:

[/]
A:admin@PE-2# show service id "VPLS-2" fdb detail

===============================================================================
Forwarding Database, Service 2
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
2          00:00:5e:00:53:21 sap:lag-1:2             LT/0     04/23/24 11:41:55
2          00:00:5e:00:53:26 eES:                    Evpn     04/23/24 11:41:48
                             01:00:00:00:00:45:00:00:00:01
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================
[/]
A:admin@PE-3# show service id "VPLS-2" fdb detail

===============================================================================
Forwarding Database, Service 2
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
2          00:00:5e:00:53:21 sap:lag-1:2             L/388    04/23/24 11:41:55
2          00:00:5e:00:53:26 eES:                    Evpn     04/23/24 11:41:48
                             01:00:00:00:00:45:00:00:00:01
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

On DF PE-4, CE-21 can be reached via the all-active ES with ESI 01:00:00:00:00:23:00:00:01:01, while CE-26 can be reached via spoke SDP 46:2, as follows:

[/]
A:admin@PE-4# show service id "VPLS-2" fdb detail

===============================================================================
Forwarding Database, Service 2
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
2          00:00:5e:00:53:21 eES:                    Evpn     04/23/24 11:41:55
                             01:00:00:00:00:23:00:00:01:01
2          00:00:5e:00:53:26 sdp:46:2                LT/0     04/23/24 11:41:47
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

On NDF PE-5, CE-21 can be reached via the all-active ES with ESI 01:00:00:00:00:23:00:00:01:01, while CE-26 can be reached via DF PE-4, as follows:

[/]
A:admin@PE-5# show service id "VPLS-2" fdb detail

===============================================================================
Forwarding Database, Service 2
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
2          00:00:5e:00:53:21 eES:                    Evpn     04/23/24 11:41:55
                             01:00:00:00:00:23:00:00:01:01
2          00:00:5e:00:53:26 eES:                    Evpn     04/23/24 11:41:48
                             01:00:00:00:00:45:00:00:00:01
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

On MTU-6, CE-21 can be reached via spoke SDP 64:2 to PE-4, while CE-26 can be reached via SAP 1/1/c10/1:2, as follows:

[/]
A:admin@MTU-6# show service id "VPLS-2" fdb detail

===============================================================================
Forwarding Database, Service 2
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
2          00:00:5e:00:53:21 sdp:64:2                L/0      04/23/24 11:41:55
2          00:00:5e:00:53:26 sap:1/1/c10/1:2         L/0      04/23/24 11:41:45
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================
BGP-EVPN routes

PE-2 received the following EVPN-MAC route containing the CE-26 MAC address from DF PE-4 with SRv6 SID 2001:bbbb:4:: and endpoint behavior 0x43 = 67 for End.uDT2U:

# on PE-2:
149 2024/04/23 11:41:47.505 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2:4
"Peer 1: 2001:db8::2:4: UPDATE
Peer 1: 2001:db8::2:4 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 125
    Flag: 0x90 Type: 14 Len: 56 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 16 Global NextHop 2001:db8::2:4
        Type: EVPN-MAC Len: 33 RD: 192.0.2.4:2 ESI: 01:00:00:00:00:45:00:00:00:01, 
                       tag: 0, mac len: 48 mac: 00:00:5e:00:53:26, IP len: 0, 
                       IP: NULL, label1: 4198656 (Raw Label: 0x401100)
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64500:2
    Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
       SRv6 Services TLV (37 bytes):-
           Type: SRV6 L2 Service TLV (6)
           Length: 34 bytes, Reserved: 0x0
         SRv6 Service Information Sub-TLV (33 bytes)
             Type: 1 Len: 30 Rsvd1: 0x0
             SRv6 SID: 2001:bbbb:4::
             SID Flags: 0x0 Endpoint Behavior: 0x43 Rsvd2: 0x0
             SRv6 SID Sub-Sub-TLV
                Type: 1 Len: 6
                BL:32 NL:16 FL:16 AL:0 TL:16 TO:48
"

The following command shows the same EVPN-MAC route containing the CE-26 MAC address:

[/]
A:admin@PE-2# show router bgp routes evpn mac mac-address 00:00:5e:00:53:26 detail
===============================================================================
 BGP Router ID:192.0.2.2        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Original Attributes

Network        : n/a
Nexthop        : 2001:db8::2:4
Path Id        : None
From           : 2001:db8::2:4
Res. Nexthop   : fe80::1a:1ff:fe01:b
Local Pref.    : 100                    Interface Name : int-PE-2-PE-4
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 10
Connector      : None
Community      : target:64500:2
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.4
Origin         : IGP
Flags          : Used Valid Best
Route Source   : Internal
AS-Path        : No As-Path
EVPN type      : MAC
ESI            : 01:00:00:00:00:45:00:00:00:01
Tag            : 0
IP Address     : n/a
Route Dist.    : 192.0.2.4:2
Mac Address    : 00:00:5e:00:53:26
MPLS Label1    : 16401                  MPLS Label2    : n/a
Route Tag      : 0
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default
Last Modified  : 00h07m53s
SRv6 TLV Type  : SRv6 L2 Service TLV (6)
SRv6 SubTLV    : SRv6 SID Information (1)
Sid            : 2001:bbbb:4::
Full Sid       : 2001:bbbb:4:4011::
Behavior       : End.uDT2U (67)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len  : 32                     Loc-Node-Len   : 16
Func-Len       : 16                     Arg-Len        : 0
Tpose-Len      : 16                     Tpose-offset   : 48
---snip---

The full SID 2001:bbbb:4:4011:: contains the 32-bit prefix 2001:bbbb, the uN value 4 for PE-4, and the function 0x4011 = 16401 for the End.uDT2U SID in the following list on PE-4:

[/]
A:admin@PE-4# show router segment-routing-v6 micro-segment-local-sid 

===============================================================================
Micro Segment Routing v6 Local SIDs
===============================================================================
SID                                               Type           Function
  Micro Segment Locator                                          
  Context                                                        
-------------------------------------------------------------------------------
2001:bbbb:4::                                     uN             4
  PE4-mloc
  None
2001:bbbb:4:4010::                                uA             16400
  PE4-mloc
  None
2001:bbbb:4:4011::                                uDT2U          16401
  PE4-mloc
  SvcId: 2 Name: VPLS-2
2001:bbbb:4:4012::                                uDT2M          16402
  PE4-mloc
  SvcId: 2 Name: VPLS-2
2001:bbbb:4:43e8::                                uA             17384
  PE4-mloc
  None
2001:bbbb:4:43e9::                                uA             17385
  PE4-mloc
  None
2001:bbbb:4:43ea::                                uA             17386
  PE4-mloc
  None
-------------------------------------------------------------------------------
SIDs : 7
-------------------------------------------------------------------------------
===============================================================================

PE-2 received the following IMET route with endpoint behavior 0x44 = 68 for End.uDT2M from PE-4:

122 2024/04/23 11:41:30.038 UTC MINOR: DEBUG #2001 Base Peer 1: 2001:db8::2:4
"Peer 1: 2001:db8::2:4: UPDATE
Peer 1: 2001:db8::2:4 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 145
    Flag: 0x90 Type: 14 Len: 52 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 16 Global NextHop 2001:db8::2:4
        Type: EVPN-INCL-MCAST Len: 29 RD: 192.0.2.4:2, tag: 0, 
                              orig_addr len: 128, orig_addr: 2001:db8::2:4
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64500:2
    Flag: 0xc0 Type: 22 Len: 21 PMSI:
        Tunnel-type Ingress Replication (6)
        Flags: (0x0)[Type: None BM: 0 U: 0 Leaf: not required]
        MPLS Label 4198912
        Tunnel-Endpoint 2001:db8::2:4
    Flag: 0xc0 Type: 40 Len: 37 Prefix-SID-attr:
       SRv6 Services TLV (37 bytes):-
           Type: SRV6 L2 Service TLV (6)
           Length: 34 bytes, Reserved: 0x0
         SRv6 Service Information Sub-TLV (33 bytes)
             Type: 1 Len: 30 Rsvd1: 0x0
             SRv6 SID: 2001:bbbb:4::
             SID Flags: 0x0 Endpoint Behavior: 0x44 Rsvd2: 0x0
             SRv6 SID Sub-Sub-TLV
                Type: 1 Len: 6
                BL:32 NL:16 FL:16 AL:16 TL:16 TO:48
"

The following shows the same IMET route:

[/]
A:admin@PE-2# show router bgp routes evpn incl-mcast community target:64500:2 hunt
===============================================================================
 BGP Router ID:192.0.2.2        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN Inclusive-Mcast Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
---snip---
Network        : n/a
Nexthop        : 2001:db8::2:4
Path Id        : None
From           : 2001:db8::2:4
Res. Nexthop   : fe80::1a:1ff:fe01:b
Local Pref.    : 100                    Interface Name : int-PE-2-PE-4
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 10
Connector      : None
Community      : target:64500:2
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.4
Origin         : IGP
Flags          : Used Valid Best
Route Source   : Internal
AS-Path        : No As-Path
EVPN type      : INCL-MCAST
Tag            : 0
Originator IP  : 2001:db8::2:4
Route Dist.    : 192.0.2.4:2
Route Tag      : 0
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default
Last Modified  : 00h09m02s
SRv6 TLV Type  : SRv6 L2 Service TLV (6)
SRv6 SubTLV    : SRv6 SID Information (1)
Sid            : 2001:bbbb:4::
Full Sid       : 2001:bbbb:4:4012::
Behavior       : End.uDT2M (68)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len  : 32                     Loc-Node-Len   : 16
Func-Len       : 16                     Arg-Len        : 16
Tpose-Len      : 16                     Tpose-offset   : 48
-------------------------------------------------------------------------------
PMSI Tunnel Attributes :
Tunnel-type    : Ingress Replication
Flags          : Type: RNVE(0) BM: 0 U: 0 Leaf: not required
MPLS Label     : 4198912
Tunnel-Endpoint: 2001:db8::2:4
-------------------------------------------------------------------------------
---snip---

PE-2 receives the following EVPN-AD routes from PE-4: the first route is an AD per-EVI route and the second one is an AD per-ES route:

[/]
A:admin@PE-2# show router bgp routes evpn auto-disc rd 192.0.2.4:2 detail
===============================================================================
 BGP Router ID:192.0.2.2        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN Auto-Disc Routes
===============================================================================
Original Attributes

Network        : n/a
Nexthop        : 2001:db8::2:4
Path Id        : None
From           : 2001:db8::2:4
Res. Nexthop   : fe80::1a:1ff:fe01:b
Local Pref.    : 100                    Interface Name : int-PE-2-PE-4
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 10
Connector      : None
Community      : target:64500:2
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.4
Origin         : IGP
Flags          : Used Valid Best
Route Source   : Internal
AS-Path        : No As-Path
EVPN type      : AUTO-DISC
ESI            : 01:00:00:00:00:45:00:00:00:01
Tag            : 0
Route Dist.    : 192.0.2.4:2
MPLS Label     : 16401
Route Tag      : 0
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default
Last Modified  : 00h10m31s
SRv6 TLV Type  : SRv6 L2 Service TLV (6)
SRv6 SubTLV    : SRv6 SID Information (1)
Sid            : 2001:bbbb:4::
Full Sid       : 2001:bbbb:4:4011::
Behavior       : End.uDT2U (67)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len  : 32                     Loc-Node-Len   : 16
Func-Len       : 16                     Arg-Len        : 0
Tpose-Len      : 16                     Tpose-offset   : 48
---snip---

-------------------------------------------------------------------------------
Original Attributes

Network        : n/a
Nexthop        : 2001:db8::2:4
Path Id        : None
From           : 2001:db8::2:4
Res. Nexthop   : fe80::1a:1ff:fe01:b
Local Pref.    : 100                    Interface Name : int-PE-2-PE-4
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 0
Connector      : None
Community      : target:64500:2 esi-label:1/Single-Active
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.4
Origin         : IGP
Flags          : Used Valid Best
Route Source   : Internal
AS-Path        : No As-Path
EVPN type      : AUTO-DISC
ESI            : 01:00:00:00:00:45:00:00:00:01
Tag            : MAX-ET
Route Dist.    : 192.0.2.4:2
MPLS Label     : 0
Route Tag      : 0
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default
Last Modified  : 00h10m45s
SRv6 TLV Type  : SRv6 L2 Service TLV (6)
SRv6 SubTLV    : SRv6 SID Information (1)
Sid            : ::
Full Sid       : ::
Behavior       : End.uDT2M (68)
SRv6 SubSubTLV : SRv6 SID Structure (1)
Loc-Block-Len  : 32                     Loc-Node-Len   : 16
Func-Len       : 16                     Arg-Len        : 16
Tpose-Len      : 16                     Tpose-offset   : 64

---snip---

ES "SA-ES-45" is configured in a single-active multihoming mode with the ESI label; therefore, PE-4 sends AD per-ES routes that carry the arg.fe2 value. The SID structure in the SRv6 sub-sub-TLV indicates that the argument length is 16 bits. The 16-bit length of the arg.fe2 value is transposed into the ESI label extended community label field. The transposition length is 16 (argument length 16) and the transposition offset is 64 (block length 32 + node length 16 + function length 16). The SRv6 SID is :: (0).

SRv6 functions and SIDs

The following command on PE-2 shows the SIDs for the End.uDT2U and End.uDT2M functions:

[/]
A:admin@PE-2# show router segment-routing-v6 micro-segment-local-sid udt2u udt2m

===============================================================================
Micro Segment Routing v6 Local SIDs
===============================================================================
SID                                               Type           Function
  Micro Segment Locator
  Context
-------------------------------------------------------------------------------
2001:bbbb:2:4011::                                uDT2U          16401
  PE2-mloc
  SvcId: 2 Name: VPLS-2
2001:bbbb:2:4012::                                uDT2M          16402
  PE2-mloc
  SvcId: 2 Name: VPLS-2
-------------------------------------------------------------------------------
SIDs : 2
-------------------------------------------------------------------------------
===============================================================================

The same SRv6 functions and SIDs are applied in the VPLS-2 service, as follows:

[/]
A:admin@PE-2# show service id "VPLS-2" segment-routing-v6 detail

===============================================================================
Micro Segment Routing v6 Instance 1 Service 2
===============================================================================
Micro Segment Locator
 Type          Function  SID                                     Status
               Oper Func
-------------------------------------------------------------------------------
PE2-mloc
 uDT2U         *-        2001:bbbb:2:4011::                      ok
               16401
 uDT2M         *-        2001:bbbb:2:4012::                      ok
               16402
===============================================================================
Legend: * - System allocated

The following command on PE-2 shows the SRv6 destinations in VPLS-2:

[/]
A:admin@PE-2# show service id "VPLS-2" segment-routing-v6 destinations

===============================================================================
TEP, SID (Instance 1)
===============================================================================
TEP Address                Segment Id                          Oper  Mcast Num
                                                               State       MACs
-------------------------------------------------------------------------------
2001:db8::2:3              2001:bbbb:3:4012::                  Up    BUM   0
2001:db8::2:4              2001:bbbb:4:4012::                  Up    BUM   0
2001:db8::2:5              2001:bbbb:5:4012::                  Up    BUM   0
-------------------------------------------------------------------------------
Number of TEP, SID: 3
-------------------------------------------------------------------------------
===============================================================================

===============================================================================
Segment Routing v6 Ethernet Segment Dest (Instance 1)
===============================================================================
Eth SegId                                 Num. Macs     Last Update
-------------------------------------------------------------------------------
01:00:00:00:00:45:00:00:00:01             1             04/23/2024 11:41:48
-------------------------------------------------------------------------------
Number of entries: 1
-------------------------------------------------------------------------------
===============================================================================

The ping or traceroute commands are used to verify the connectivity toward the remote SRv6 SIDs, for example, for the End.uDT2U function, as follows:

[/]
A:admin@PE-2# ping 2001:bbbb:3:4011:: interval 0.1 output-format summary
PING 2001:bbbb:3:4011:: 56 data bytes
!!!!!
---- 2001:bbbb:3:4011:: PING Statistics ----
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 2.11ms, avg = 2.40ms, max = 2.65ms, stddev = 0.211ms
[/]
A:admin@PE-2# traceroute 2001:bbbb:5:4011::
traceroute to 2001:bbbb:5:4011::, 30 hops max, 60 byte packets
  1  2001:db8::2:5 (2001:db8::2:5)    2.46 ms  2.89 ms  2.68 ms

Conclusion

EVPN VPLS services using SRv6 transport can be configured with locators as well as micro-segment locators. Both all-active and single-active multihoming modes are supported.