PBB-EVPN ISID-based CMAC Flush

This chapter provides information about PBB-EVPN ISID-based CMAC Flush.

Topics in this chapter include:

Applicability

This chapter was initially written for SR OS Release 15.0.R4, but the CLI in the current edition is based on SR OS Release 21.2.R2. PBB-EVPN ISID-based CMAC flush is supported on the following objects in an I-VPLS:

  • SAPs in a BGP multi-homing site (no Ethernet Segment (ES))-supported in SR OS Release 14.0.R4, and later

  • SAPs in ESs or virtual ESs (vESs)-SR OS Release 15.0.R1, and later

  • Spoke-SDPs (that may be part of an ES/vES or not)-SR OS Release 15.0.R4, and later.

Chapter EVPN for PBB over MPLS (PBB-EVPN) is prerequisite reading.

Overview

CMAC flush when SAP in BGP multi-homing site fails shows an example topology with PBB-EVPN where a CMAC flush is triggered after a SAP in a BGP multi-homing site fails.

Figure 1. CMAC flush when SAP in BGP multi-homing site fails

I-VPLS 1001 is configured in PE-2 and PE-3 with send-bvpls-evpn-flush and connected to MTU-1. In the example, the SAP goes operationally down in I-VPLS 1001 on PE-2. To speed up convergence without flushing CMAC addresses in other I-VPLS services, PE-2 sends a BGP-EVPN BMAC route for ISID 1001 with increased sequence number to trigger a MAC-flush for I-VPLS 1001 on the remote PEs. All CMAC addresses in the FDB for other I-VPLS services, such as I-VPLS 1010 in this example, will be preserved. When PE-4 needs to send traffic to one of the flushed CMAC addresses in I-VPLS 1001, it will flood the frames until the CMAC address is learned again (via PE-3).

When SAPs or SDP-bindings-associated with ESs, vESs, or BGP-MH sites-in an I-VPLS service fail, a BGP-EVPN BMAC route (route type 2) can trigger an ISID-based CMAC flush on the remote PEs. For the CMAC addresses to be flushed from the FDB of the I-VPLS, the existing EVPN BMAC routes will be used with the Ethernet tag equal to the ISID. EVPN BMAC route with ISID indication shows the EVPN BMAC route with ISID indication (BMAC/ISID). A BMAC/ISID update may trigger a selective MAC-flush for a specific I-VPLS, whereas a BMAC/0 update (BMAC/ISID route where ISID=0) may trigger a MAC-flush for all I-VPLS services. This procedure is based on draft-snr-bess-pbb-evpn-isid-cmacflush.

Figure 2. EVPN BMAC route with ISID indication

By default, ISID-based CMAC flush is disabled: no I-VPLS will send a B-VPLS EVPN flush message and no B-VPLS will accept any I-VPLS EVPN flush messages. The router only installs CMAC entries corresponding to a zero Ethernet tag and ignores non-zero Ethernet tag MAC routes. However, when the B-VPLS is configured to accept BMAC/ISID routes, non-zero Ethernet tag BMAC routes can be processed for CMAC flush. The CMAC flush trigger will be an EVPN BMAC/ISID route with a sequence number that is higher than before. The receiving PE will then flush all CMACs associated with this BMAC address in the I-VPLS.

The first time that a BMAC/ISID route is received, it is added to the database as a baseline. It does not cause a CMAC flush. Only subsequent BMAC/ISID updates with increased sequence number or withdrawals will cause CMAC flush.

The following command shows that B-VPLS 1000 does not accept any I-VPLS EVPN flush messages. This is the default behavior.

*A:PE-2# show service id 1000 bgp-evpn | match "Accept IVPLS Flush"
Accept IVPLS Flush : Disabled

At the receiving node, B-VPLS 1000 will accept BMAC/ISID routes when the following command is configured:

# on PE-2:
configure
    service
        vpls "B-VPLS 1000"
            bgp-evpn 
                accept-ivpls-evpn-flush

By default, I-VPLS 1001 will not send any B-VPLS EVPN flush messages, as follows:

*A:PE-2# show service id 1001 base | match SendBvplsEvpnFlush 
SendBvplsEvpnFlush : Disabled

The following configuration allows I-VPLS 1001 to send B-VPLS EVPN flush messages when a SAP or SDP-binding fails:

# on PE-2:
configure
    service
        vpls "I-VPLS 1001"
            pbb 
                send-bvpls-evpn-flush

When enabled, the I-VPLS will send a BMAC/ISID route and subsequent updates with a higher sequence number whenever a SAP fails in the I-VPLS on the node. The default setting for a SAP allows a B-VPLS EVPN flush message to be sent (when enabled in the I-VPLS itself):

*A:PE-2# show service id 1001 sap 1/2/1:1001 detail | match SendBvplsEvpnFlush 
SendBvplsEvpnFlush : Enabled    

When no alternative route via another node is available for specific SAPs (single-homed SAPs), no CMAC flush should be triggered. When no B-VPLS EVPN flush messages need to be sent from PE-4 when SAP 1/2/1:1001 goes down, the configuration is as follows:

# on PE-4:
configure
    service
        vpls "I-VPLS 1001"
            sap 1/2/1:1001
                disable-send-bvpls-evpn-flush

The router only installs the BMACs received in MAC routes that have Ethernet tag zero. When CMAC flush is enabled, MAC routes with Ethernet tag equal to the ISID (always non-zero) are for CMAC flush, but not for installing the conveyed BMACs.

BMAC/ISID routes have the following characteristics:

  • BMAC/ISID routes are sent with the static bit flag set as for any other BMAC route. The static bit is ignored at reception because this route is never used to install a BMAC in the FDB.

  • BMAC/ISID routes received with non-zero ESI and non-zero Ethernet tag are treated as withdraw by the router at application level. Route Reflectors (RRs) treat such BMAC/ISID routes as valid routes that can be forwarded.

  • BMAC/ISID routes are shown as valid in the show router bgp routes evpn mac commands, as in the following output, even though they are not used to populate the FDB. This shows that BGP is sending the routes to the application layer for CMAC flush processing. The BMAC/0 route should be sent before the BMAC/ISID routes for the same BMAC. Also, when the B-VPLS goes operationally down, the BMAC/0 should be withdrawn before the BMAC/ISID routes.

*A:PE-2# show router bgp routes evpn mac rd 192.0.2.3:1000
===============================================================================
 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
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.3:1000      00:00:00:00:00:03 ESI-0
      0                   Static            LABEL 524282
                          n/a
                          192.0.2.3
 
u*>i  192.0.2.3:1000      00:00:00:00:00:03 ESI-0
      1001                Static            LABEL 524282
                          n/a
                          192.0.2.3
 
-------------------------------------------------------------------------------
Routes : 2
===============================================================================

When send-bvpls-evpn-flush is enabled in an I-VPLS that is associated with a B-VPLS, BGP-EVPN BMAC/ISID updates will be sent when certain events take place in the I-VPLS or B-VPLS. CMAC flush transmission behavior shows the CMAC flush transmission behavior at the egress PE.

Table 1. CMAC flush transmission behavior

Local Event

Send-bvpls-evpn-flush

SAP disable-bvpls-evpn-flush

Action

Reconfigure I-VPLS: enable or disable send-bvpls-evpn-flush

Enable or disable

N/A

Send update/withdraw source BMAC/ISID with Seq=0

Associate/disassociate I-VPLS to/from B-VPLS

Enabled

N/A

Send update/withdraw source BMAC/ISID with Seq=0

I-VPLS oper-up/oper-down

Enabled

N/A

Send update/withdraw source BMAC/ISID with Seq=0

B-VPLS oper-up/oper-down

Enabled

N/A

Send update/withdraw source BMAC/ISID with Seq=0

Note: All BMACs are also advertised/withdrawn.

B-VPLS bgp-evpn mpls no shut/shut

Enabled

N/A

Send update/withdraw source BMAC/ISID with Seq=0

B-VPLS operational source BMAC change

Enabled

N/A

Send update/withdraw source BMAC/ISID with Seq=0

SAP oper-up

Enabled

N/A

No operation

SAP oper-down

Enabled

No disable

Send update source BMAC/ISID Seq=Seq+1

Enabled

Disable

No operation

CMAC flush reception behavior shows the reception behavior at the ingress PE. For the CMAC flush triggered by a BMAC/ISID update with increased sequence number, the B-VPLS in the receiving PE must be configured with accept-ivpls-evpn-flush. BMAC/0 refers to a BMAC route where the Ethernet Tag is 0.

Table 2. CMAC flush reception behavior

Received Route

Action

BMAC/0 withdraw

Flush all CMACs for that BMAC

BMAC/ISID withdraw

Flush all CMACs for that BMAC and ISID

BMAC/0 update + Seq change

Flush all CMACs for that BMAC

BMAC/ISID update + Seq change

Flush all CMACs for that BMAC and ISID

BMAC/0 update + PE (NHop) change

No CMAC-flush

BMAC/ISID update + PE (NHop) change

Flush all CMACs for that BMAC and ISID

BMAC/ISID updates will trigger CMAC flush procedures regardless of the Termination Endpoint (TEP) or Route Distinguisher (RD) with which the update is received. CMAC flush will be processed even if the BMAC-ISID comes from a TEP or RD different from the BMAC/0 route. Even when the sequence number is the same as in the previous BMAC/ISID update, CMAC flush will happen when the TEP is different. When the same BMAC/ISID is received from two PEs, both are accepted and any change in sequence number causes a MAC flush. However, when the same BMAC/ISID route is received from two PEs with the same RD, BGP will select only one, so the router only sees one.

CMAC flush for ES/vES

RFC 7623 (PBB-EVPN) defines the following CMAC Flush notification mechanisms for single-active multi-homing. These notifications do not include the local ISIDs:

  • When ES-BMACs are used and the ES goes operationally down, the ES-BMAC will be withdrawn.

  • When source-BMACs are used and the ES goes operationally down, a BGP-EVPN BMAC/0 is sent with a higher sequence number.

ISID-independent CMAC flush when ES fails shows the following two scenarios for ISID-independent CMAC flush that are supported in SR OS Release 13.0.R4, and later:

  • PBB frames are sent with the source-BMAC. When the ES goes operationally down, a BMAC update is sent with an increased sequence number, triggering a CMAC flush for all CMAC addresses associated with the BMAC address in I-VPLS, regardless of the ISID.

  • PBB frames are sent with the ES-BMAC address. When the ES goes operationally down, a BMAC withdraw message is sent, triggering the remote PEs to flush all CMAC addresses associated to the ES-BMAC address, regardless of the ISID.

Figure 3. ISID-independent CMAC flush when ES fails

In addition to the preceding ISID-independent CMAC flush mechanisms, ISID-based CMAC flush is also supported in I-VPLS services with SAP or spoke-SDPs that are part of an ES or vES. ISID-based CMAC flush is enabled in the I-VPLS with the send-bvpls-evpn-flush command. An I-VPLS that is configured with send-bvpls-evpn-flush requires one of the following conditions to be met:

  • The SAP or spoke-SDP has disable-send-bvpls-evpn-flush configured.

  • The SAP or spoke-SDP has no disable-send-bvpls-evpn-flush configured (default) and one of the following conditions is met:

    • The SAP or spoke-SDP is not on an ES.

    • The SAP or spoke-SDP is on an ES or vES with no src-bmac-lsb configured.

    • The B-VPLS has no use-es-bmac configured.

For ES SAPs with no disable-send-bvpls-evpn-flush in I-VPLS services that have send-bvpls-evpn-flush configured, the ISID-based CMAC flush replaces the RFC 7623-based CMAC flush mechanism.

For each ES/vES and B-VPLS, the system will check whether all I-VPLS services in the ES/B-VPLS have ISID-based MAC-flush enabled.

  • If all I-VPLSs have send-bvpls-evpn-flush enabled:

    • No BMAC/0 updates with increased sequence number will be triggered when the ES/vES goes operationally down.

    • Only BMAC/ISID updates with increased sequence number will be sent when the I-VPLS attachment circuit goes operationally down.

  • If at least one I-VPLS has no send-bvpls-evpn-flush enabled:

    • BMAC/0 updates with increased sequence number will be triggered when the ES/vES goes operationally down.

    • Also, BMAC/ISID updates with increased sequence number will be generated for those I-VPLS services that have send-bvpls-evpn-flush enabled.

The number of CMAC addresses that may be flushed at the remote nodes can be reduced by enabling ISID-based MAC-flush for all the I-VPLS services in the ES/vES.

When attempting to set use-es-bmac in B-VPLS 1000 on PE-4 when the SAP/SDP-binding has default settings (and send-bvpls-evpn-flush is enabled in the I-VPLS), the following error is raised:

*A:PE-4>config>service>vpls>pbb# use-es-bmac
MINOR: SVCMGR #1433 Cannot set use-es-bmac - spoke 46:1001 on ethernet-segment ESI-45 has "no disable-send-bvpls-evpn-flush"

When the ES is disabled, the B-VPLS can be configured with use-es-bmac. When attempting to enable the ES afterward, the following error is raised.

*A:PE-4# configure service system bgp-evpn ethernet-segment "ESI-45" shutdown 
*A:PE-4# configure service vpls "B-VPLS 1000" pbb use-es-bmac 
*A:PE-4# configure service system bgp-evpn ethernet-segment "ESI-45" no shutdown 
MINOR: SVCMGR #8057 Ethernet segment cannot change admin state - 
spoke 46:1001 has "no disable-send-bvpls-evpn-flush"

Configuration

Example topology shows the example topology.

Figure 4. Example topology

The initial configuration includes the following:

  • Cards, MDAs

  • Ports: the ports between the MTUs and the PEs are hybrid or access ports with dot1q encapsulation; the ports between the PEs are network ports with null encapsulation

  • Router interfaces

  • IS-IS on all router interfaces (alternatively, OSPF could be used)

  • LDP on all router interfaces

The following use cases are described in this section:

  • ISID-based CMAC flush for BGP non-EVPN multi-homing (no ES)

  • ISID-based CMAC flush for BGP-EVPN in a single-active ES

ISID-based CMAC flush for BGP multi-homing

Example topology with BGP multi-homing shows the example topology with BGP multi-homing site 1 between PE-2 and PE-3. B-VPLS 1000 is configured on all the core nodes (PEs) and I-VPLS 1001 and I-VPLS 1010 are associated with this B-VPLS in the PEs. On MTU-1, regular VPLSs are configured. For more information about BGP non-EVPN multi-homing, see chapter BGP Multi-Homing for VPLS Networks.

Figure 5. Example topology with BGP multi-homing

BGP is configured for address family EVPN on all PEs with PE-2 as RR. For BGP multi-homing, address family L2-VPN is enabled between PE-2 and PE-3. The BGP configuration on PE-2 is as follows:

# on PE-2:
configure
    router Base
        autonomous-system 64500
        bgp
            vpn-apply-import
            vpn-apply-export
            enable-peer-tracking
            rapid-withdrawal
            split-horizon
            rapid-update l2-vpn evpn 
            group "internal"
                cluster 1.1.1.1
                peer-as 64500
                neighbor 192.0.2.3
                    family l2-vpn evpn
                exit
                neighbor 192.0.2.4
                    family evpn
                exit
            exit
        exit

The BGP configuration on PE-4 is as follows:

# on PE-4:
configure
    router Base
        autonomous-system 64500
        bgp
            vpn-apply-import
            vpn-apply-export
            enable-peer-tracking
            rapid-withdrawal
            split-horizon
            rapid-update evpn
            group "internal"
                family evpn
                peer-as 64500
                neighbor 192.0.2.2
                exit
            exit
        exit

The configuration of B-VPLS 1000 and I-VPLS 1001 on PE-2 is as follows. ISID-based CMAC flush is disabled by default. BGP multi-homing site "site 1" is configured on PE-2 with SAP 1/1/2:1001 associated with it, whereas SAP 1/2/1:1001 is not associated to the MH site. CE-21 is attached to I-VPLS 1001 with SAP 1/2/1:1001.

# on PE-2:
configure
    service
        system
            bgp-auto-rd-range 192.0.2.2 comm-val 1 to 999
        exit
        vpls 1000 name "B-VPLS 1000" customer 1 b-vpls create
            service-mtu 2000
            pbb
                source-bmac 00:00:00:00:00:02
            exit
            bgp
            exit
            bgp-evpn
                evi 1000
                mpls bgp 1
                    auto-bind-tunnel
                        resolution any
                    exit
                    no shutdown
                exit
            exit
            stp
                shutdown
            exit
            no shutdown
        exit
        vpls 1001 name "I-VPLS 1001" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
            exit
            bgp
                route-distinguisher auto-rd
                route-target export target:64500:1001 import target:64500:1001
            exit
            stp
                shutdown
            exit
            site "MH-site-1" create
                site-id 1
                1/1/2:1001
                no shutdown
            exit
            sap 1/1/2:1001 create
                no shutdown
            exit
            sap 1/2/1:1001 create
                no shutdown
            exit
            no shutdown
        exit
        vpls 1010 name "I-VPLS 1010" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
            exit
            bgp
                route-distinguisher auto-rd
                route-target export target:64500:1010 import target:64500:1010
            exit
            stp
                shutdown
            exit
            sap 1/1/2:1010 create
                no shutdown
            exit
            no shutdown
        exit

I-VPLS 1010 is configured without multi-homing. The configuration of VPLS 1001 on PE-3 is similar, but without I-VPLS 1010.

ISID-based CMAC flush is not enabled yet. The PEs exchange BGP-EVPN MAC routes with Ethernet tag zero. PE-3 has received BMAC/0 routes from PE-2 and PE-4, as follows:

*A:PE-3# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.3        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
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.2:1000      00:00:00:00:00:02 ESI-0
      0                   Static            LABEL 524282
                          n/a
                          192.0.2.2
 
u*>i  192.0.2.4:1000      00:00:00:00:00:04 ESI-0
      0                   Static            LABEL 524282
                          n/a
                          192.0.2.4
 
-------------------------------------------------------------------------------
Routes : 2
===============================================================================

PE-2 and PE-4 have also received BMAC/0 routes from the other PEs.

ISID-based CMAC flush is enabled in I-VPLS 1001 on PE-2 and PE-3. PE-4 has no multi-homing in I-VPLS 1001, so it should not send any CMAC flush. I-VPLS 1010 has no multi-homing in any PE, so ISID-based MAC-flush should not be enabled in I-VPLS 1010.

# on PE-2, PE-3:
configure 
    service 
        vpls "I-VPLS 1001"
            pbb
                send-bvpls-evpn-flush 

PE-2 and PE-3 will send BMAC/1001 updates with sequence number 0 to the other two PEs. As an example, the following EVPN-MAC route for BMAC 00:00:00:00:00:03 with tag 1001 is sent by PE-3:

22 2021/04/15 08:07:57.818 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.2
"Peer 1: 192.0.2.2: UPDATE
Peer 1: 192.0.2.2 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 89
    Flag: 0x90 Type: 14 Len: 44 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 4 NextHop 192.0.2.3
        Type: EVPN-MAC Len: 33 RD: 192.0.2.3:1000 ESI: ESI-0, tag: 1001, mac len: 48
                       mac: 00:00:00:00:00:03, IP len: 0, IP: NULL, label1: 8388512
    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: 24 Extended Community:
        target:64500:1000
        bgp-tunnel-encap:MPLS
        mac-mobility:Seq:0/Static
"

PE-4 has received the following BMAC routes from PE-2 and PE-3, with Ethernet tag zero and Ethernet tag 1001. BMAC routes are always static (received with the sticky bit set).

*A:PE-4# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.4        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
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.2:1000      00:00:00:00:00:02 ESI-0
      0                   Static            LABEL 524282
                          n/a
                          192.0.2.2
 
u*>i  192.0.2.2:1000      00:00:00:00:00:02 ESI-0
      1001                Static            LABEL 524282
                          n/a
                          192.0.2.2
 
u*>i  192.0.2.3:1000      00:00:00:00:00:03 ESI-0
      0                   Static            LABEL 524282
                          n/a
                          192.0.2.3
 
u*>i  192.0.2.3:1000      00:00:00:00:00:03 ESI-0
      1001                Static            LABEL 524282
                          n/a
                          192.0.2.3
 
-------------------------------------------------------------------------------
Routes : 4
===============================================================================

When a failure occurs on PE-2, PE-3, and PE-4 should accept the BMAC/ISID with increased sequence number; for a failure on PE-3, PE-2, and PE-4 should accept the BMAC/ISID update. Therefore, the B-VPLS on all PEs should accept the CMAC flush message for ISID 1001, and this is configured as follows:

# on PE-2, PE-3, PE-4, PE-5:
configure
    service 
        vpls "B-VPLS 1000"
            bgp-evpn
                accept-ivpls-evpn-flush 

The FDB for VPLS 1001 on PE-4 includes MAC address 00:00:11:11:11:11 with source-identifier 192.0.2.2:524282, so PE-4 will forward traffic toward that MAC address to PE-2.

*A:PE-4# show service id 1001 fdb detail
 
===============================================================================
Forwarding Database, Service 1001
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1001       00:00:11:11:11:11 b-mpls:                 L/420    04/15/21 08:03:47
                             192.0.2.2:524282
           ldp:65537
1001       00:00:41:41:41:41 sap:1/2/1:1001          L/0      04/15/21 08:11:36
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

A failure is simulated on SAP 1/1/2:1001 in multi-homing site 1 on PE-2 as follows:

# on PE-2:
configure 
    service 
        vpls "I-VPLS 1001"
            sap 1/1/2:1001 
                shutdown 

SAP 1/1/2:1001 has the default no disable-send-bvpls-evpn-flush and I-VPLS 1001 is configured with send-bvpls-evpn-flush, so PE-2 will send BMAC/ISID updates for BMAC 00:00:00:00:00:02, ISID 1001, and sequence number 1 to its BGP peers. The following BGP update is sent by PE-2 to PE-4:

# on PE-2:
64 2021/04/15 08:12:55.058 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.4
"Peer 1: 192.0.2.4: UPDATE
Peer 1: 192.0.2.4 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 89
    Flag: 0x90 Type: 14 Len: 44 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 4 NextHop 192.0.2.2
        Type: EVPN-MAC Len: 33 RD: 192.0.2.2:1000 ESI: ESI-0, tag: 1001, mac len: 48
                       mac: 00:00:00:00:00:02, IP len: 0, IP: NULL, label1: 8388512
    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: 24 Extended Community:
        target:64500:1000
        bgp-tunnel-encap:MPLS
        mac-mobility:Seq:1/Static
"

This BMAC/ISID with sequence number 1 triggers a CMAC flush in the FDB for VPLS 1001, so the entry for 00:00:11:11:11:11 will be flushed, along with all other MAC addresses associated with BMAC 00:00:00:00:00:02. The FDB on PE-4 does not contain any entries with source-identifier BMAC 00:00:00:00:00:02, as follows:

*A:PE-4# show service id 1001 fdb detail
 
===============================================================================
Forwarding Database, Service 1001
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1001       00:00:41:41:41:41 sap:1/2/1:1001          L/150    04/15/21 08:11:36
-------------------------------------------------------------------------------
No. of MAC Entries: 1
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

When the MAC address 00:00:11:11:11:11 is learned via PE-3, the FDB is as follows:

*A:PE-4# show service id 1001 fdb detail
 
===============================================================================
Forwarding Database, Service 1001
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1001       00:00:11:11:11:11 b-mpls:                 L/0      04/15/21 08:15:16
                             192.0.2.3:524282
           ldp:65538
1001       00:00:41:41:41:41 sap:1/2/1:1001          L/0      04/15/21 08:11:36
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

The CMAC flush is only applied for VPLS 1001, so the FDB for VPLS 1010 on PE-4 will keep entries learned from PE-2, as follows:

*A:PE-4# show service id 1010 fdb detail
 
===============================================================================
Forwarding Database, Service 1010
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1010       00:00:13:13:13:13 b-mpls:                 L/0      04/15/21 08:03:48
                             192.0.2.2:524282
           ldp:65537
1010       00:00:43:43:43:43 sap:1/2/1:1010          L/0      04/15/21 08:11:36
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

ISID-based CMAC flush in single-active ES

CMAC flush only makes sense for single-active multi-homing. Also, CMAC flush only works for single-active multi-homing; not for all-active multi-homing, because ES-BMAC is required in all-active multi-homing. Example topology with single-active ES shows the example topology with a single-active ES "ESI-45" configured in PE-4 and PE-5.

Figure 6. Example topology with single-active ES

The multi-homing configuration has been removed from PE-2 and PE-3, so no CMAC flush should be sent by PE-2 or PE-3. VPLS 1001 is configured as follows on PE-2 and PE-3:

# on PE-2, PE-3:
configure
    service
        vpls 1001 name "I-VPLS 1001" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
            exit
            bgp
                route-distinguisher auto-rd
                route-target export target:64500:1001 import target:64500:1001
            exit
            stp
                shutdown
            exit
            sap 1/2/1:1001 create
                no shutdown
            exit
            sap lag-1:1001 create
                no shutdown
            exit
            no shutdown
        exit

SDPs are configured between PE-4 and MTU-6, and between PE-5 and MTU-6. These SDPs are associated with the single-active ES "ESI-45".

The configuration of B-VPLS 1000 on PE-4 is as follows. The B-VPLS configuration on the other PEs is similar, but with a different source BMAC.

# on PE-4:
configure
    service
        vpls 1000 name "B-VPLS 1000" customer 1 b-vpls create
            service-mtu 2000
            pbb
                source-bmac 00:00:00:00:00:04
            exit
            bgp
            exit
            bgp-evpn
                accept-ivpls-evpn-flush
                evi 1000
                mpls bgp 1
                    auto-bind-tunnel
                        resolution any
                    exit
                    no shutdown
                exit
            exit
            stp
                shutdown
            exit
            no shutdown

The service configuration on PE-4 includes an SDP toward PE-6 and a single-active multi-homing ES, as follows:

# on PE-4:
configure
    service
        sdp 46 mpls create
            far-end 192.0.2.6
            ldp
            keep-alive
                shutdown
            exit
            no shutdown
        exit
        system
            bgp-evpn
                ethernet-segment "ESI-45" create
                    esi 01:00:00:00:00:45:00:00:00:01
                    source-bmac-lsb 45-04 es-bmac-table-size 8
                    es-activation-timer 3
                    service-carving
                        mode auto
                    exit
                    multi-homing single-active
                    sdp 46
                    no shutdown
                exit
            exit
        exit

The configuration on PE-5 is similar. The configuration of B-VPLS 1000 is similar to the one for PE-2, with only a different BMAC. The configuration of I-VPLS 1001 on PE-4 is as follows:

# on PE-4:
configure
    service
        vpls 1001 name "I-VPLS 1001" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
                send-bvpls-evpn-flush
            exit
            bgp
                route-distinguisher auto-rd
                route-target export target:64500:1001 import target:64500:1001
            exit
            stp
                shutdown
            exit
            sap 1/2/1:1001 create
                no shutdown
            exit
            spoke-sdp 46:1001 create
                no shutdown
            exit
            no shutdown
        exit

ISID-based MAC-flush is enabled in B-VPLS 1000 and I-VPLS 1001 on all PEs.

I-VPLS 1024 is also associated with B-VPLS 1000 and contains one object (SAP or spoke-SDP) in each PE. The configuration of I-VPLS 1024 is identical on PE-2 and PE-3, as follows:

# on PE-2, PE-3:
configure
    service
        vpls 1024 name "I-VPLS 1024" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
            exit
            stp
                shutdown
            exit
            sap lag-1:1024 create
                no shutdown
            exit
            no shutdown
        exit

The configuration of I-VPLS 1024 on PE-4 has send-bvpls-evpn-flush enabled and contains a spoke-SDP instead of a SAP, as follows. The configuration on PE-5 is similar, but with a different SDP.

# on PE-4:
configure
    service
        vpls 1024 name "I-VPLS 1024" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
                send-bvpls-evpn-flush
            exit
            stp
                shutdown
            exit
            spoke-sdp 46:1024 create
                no shutdown
            exit
            no shutdown
        exit

ISID-based MAC-flush is enabled on PE-4 and PE-5 for both I-VPLS 1001 and I-VPLS 1024, and BMAC/ISID updates are sent for ISID 1001 and ISID 1024, as follows:

*A:PE-3# show router bgp routes evpn mac rd 192.0.2.4:1000
===============================================================================
 BGP Router ID:192.0.2.3        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
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.4:1000      00:00:00:00:00:04 ESI-0
      0                   Static            LABEL 524282
                          n/a
                          192.0.2.4
 
u*>i  192.0.2.4:1000      00:00:00:00:00:04 ESI-0
      1001                Static            LABEL 524282
                          n/a
                          192.0.2.4
 
u*>i  192.0.2.4:1000      00:00:00:00:00:04 ESI-0
      1024                Static            LABEL 524282
                          n/a
                          192.0.2.4
 
-------------------------------------------------------------------------------
Routes : 3
===============================================================================

PE-5 is the DF for VPLS 1001 in the single-active ES "ESI-45", but not for VPLS 1024, as follows:

*A:PE-5# show service id 1001 ethernet-segment 
No sap entries

===============================================================================
SDP Ethernet-Segment Information
===============================================================================
SDP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
56:1001               ESI-45                           DF
===============================================================================
No vxlan instance entries
*A:PE-5# show service id 1024 ethernet-segment 
No sap entries

===============================================================================
SDP Ethernet-Segment Information
===============================================================================
SDP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
56:1024               ESI-45                           NDF
===============================================================================
No vxlan instance entries

The following FDB for VPLS 1001 on PE-5 shows that traffic toward CMAC 00:00:11:11:11:11 (CE-11) in VPLS 1001 will be forwarded to PE-3:

*A:PE-5# show service id 1001 fdb detail
 
===============================================================================
Forwarding Database, Service 1001
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1001       00:00:11:11:11:11 b-mpls:                 L/0      04/15/21 08:19:47
                             192.0.2.3:524282
           ldp:65539
1001       00:00:41:41:41:41 b-mpls:                 L/0      04/15/21 08:19:47
                             192.0.2.4:524282
           ldp:65537
1001       00:00:61:61:61:61 sdp:56:1001             L/0      04/15/21 08:19:42
-------------------------------------------------------------------------------
No. of MAC Entries: 3
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

The following FDB for VPLS 1024 on PE-4 shows that traffic toward CMAC 00:00:14:14:14:14 (CE-14) will be forwarded to PE-2:

*A:PE-4# show service id 1024 fdb detail
 
===============================================================================
Forwarding Database, Service 1024
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1024       00:00:14:14:14:14 b-mpls:                 L/0      04/15/21 08:19:48
                             192.0.2.2:524282
           ldp:65537
1024       00:00:64:64:64:64 sdp:46:1024             L/0      04/15/21 08:19:48
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

The following FDB for VPLS 1001 on PE-3 shows that traffic toward CMAC 00:00:61:61:61:61 (CE-61) will be forwarded to PE-5:

*A:PE-3# show service id 1001 fdb detail
 
===============================================================================
Forwarding Database, Service 1001
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1001       00:00:11:11:11:11 sap:lag-1:1001          L/0      04/15/21 08:19:47
1001       00:00:41:41:41:41 b-mpls:                 L/0      04/15/21 08:19:47
                             192.0.2.4:524282
           ldp:65538
1001       00:00:61:61:61:61 b-mpls:                 L/0      04/15/21 08:19:42
                             192.0.2.5:524282
           ldp:65539
-------------------------------------------------------------------------------
No. of MAC Entries: 3
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

The following FDB for VPLS 1024 on PE-2 shows that traffic toward CMAC 00:00:64:64:64:64 (CE-64) will be forwarded to PE-4:

*A:PE-2# show service id 1024 fdb detail
 
===============================================================================
Forwarding Database, Service 1024
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1024       00:00:14:14:14:14 sap:lag-1:1024          L/0      04/15/21 08:19:48
1024       00:00:64:64:64:64 b-mpls:                 L/0      04/15/21 08:19:48
                             192.0.2.4:524282
           ldp:65538
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

PE-5 is the DF for VPLS 1001 in "ESI-45". A failure is simulated by disabling the SDP toward PE-5 on MTU-6, as follows:

# on MTU-6:
configure 
    service 
        sdp 65
            shutdown

PE-5 sends the following BMAC/ISID with increased sequence number for ISID 1001 to the RR PE-2:

50 2021/04/15 08:24:35.567 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.2
"Peer 1: 192.0.2.2: UPDATE
Peer 1: 192.0.2.2 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 89
    Flag: 0x90 Type: 14 Len: 44 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 4 NextHop 192.0.2.5
        Type: EVPN-MAC Len: 33 RD: 192.0.2.5:1000 ESI: ESI-0, tag: 1001, mac len: 48
                       mac: 00:00:00:00:00:05, IP len: 0, IP: NULL, label1: 8388496
    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: 24 Extended Community:
        target:64500:1000
        bgp-tunnel-encap:MPLS
        mac-mobility:Seq:1/Static
"

When PE-3 receives this BMAC/ISID, all MAC routes with next-hop PE-5 are flushed and the FDB will contain the following MAC entries:

*A:PE-3# show service id 1001 fdb detail
 
===============================================================================
Forwarding Database, Service 1001
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
1001       00:00:11:11:11:11 sap:lag-1:1001          L/0      04/15/21 08:19:47
1001       00:00:41:41:41:41 b-mpls:                 L/0      04/15/21 08:19:47
                             192.0.2.4:524282
           ldp:65538
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:  L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf
===============================================================================

If MAC address 00:00:61:61:61:61 is learned again, the next hop will be PE-4 instead of PE-5.

The configuration is restored as follows:

# on MTU-6:
configure 
    service 
        sdp 65 
            no shutdown 

No CMAC/ISID update will be sent when the last SAP/SDP-binding in a service goes operationally down. VPLS 1024 only has one SAP/SDP-binding in DF PE-4: spoke-SDP 46:1024. A failure of the spoke-SDP is simulated as follows:

# on MTU-6:
configure 
    service 
        sdp 64
            shutdown

When the last SAP/SDP-binding is down, the service will be operationally down, as follows:

*A:PE-4# show service id 1024 base | match "Oper State"
Admin State       : Up                  Oper State        : Down

PE-4 sends the following withdrawal message instead of a CMAC/ISID:

56 2021/04/15 08:26:10.691 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.2
"Peer 1: 192.0.2.2: UPDATE
Peer 1: 192.0.2.2 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 61
    Flag: 0x90 Type: 15 Len: 57 Multiprotocol Unreachable NLRI:
        Address Family EVPN
        Type: EVPN-INCL-MCAST Len: 17 RD: 192.0.2.4:1000, tag: 1024, 
                              orig_addr len: 32, orig_addr: 192.0.2.4
        Type: EVPN-MAC Len: 33 RD: 192.0.2.4:1000 ESI: ESI-0, tag: 1024, mac len: 48
                       mac: 00:00:00:00:00:04, IP len: 0, IP: NULL, label1: 0
"

The configuration is restored as follows:

# on MTU-6:
configure
    service
        sdp 64
            no shutdown

ISID-based and regular CMAC flush in ES

When ISID-based CMAC flush is not enabled in all I-VPLS services using the ES, a failure in the ES will trigger BMAC/0 updates and BMAC/ISID updates with increased sequence number. An additional I-VPLS is configured on the nodes with no send-bvpls-evpn-flush (default). The configuration of I-VPLS 1021 on PE-5 is as follows:

# on PE-5:
configure
    service
        vpls 1021 name "I-VPLS 1021" customer 1 i-vpls create
            pbb
                backbone-vpls 1000
                exit
            exit
            stp
                shutdown
            exit
            sap 1/2/1:1021 create
                no shutdown
            exit
            spoke-sdp 56:1021 create
                no shutdown
            exit
            no shutdown
        exit

The configuration on PE-4 is similar; PE-2 and PE-3 have SAP lag-1:1021 instead of the spoke-SDP.

On MTU-6, SDP 65 is disabled, which will cause an ES failure on PE-5:

# on MTU-6:
configure 
    service 
        sdp 65 
            shutdown

The following BMAC updates are sent by PE-5:

  • BMAC/0 with increased sequence number, which will trigger a CMAC flush for all entries received from PE-5 for all I-VPLS services (ISID-independent)

  • BMAC/ISID with increased sequence number, which will trigger a CMAC flush for all entries received from PE-5 for VPLS 1001

73 2021/04/15 08:32:57.204 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.2
"Peer 1: 192.0.2.2: UPDATE
Peer 1: 192.0.2.2 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 89
    Flag: 0x90 Type: 14 Len: 44 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 4 NextHop 192.0.2.5
        Type: EVPN-MAC Len: 33 RD: 192.0.2.5:1000 ESI: ESI-0, tag: 0, mac len: 48 
                       mac: 00:00:00:00:00:05, IP len: 0, IP: NULL, label1: 8388496
    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: 24 Extended Community:
        target:64500:1000
        bgp-tunnel-encap:MPLS
        mac-mobility:Seq:1/Static
"

74 2021/04/15 08:32:57.204 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.2
"Peer 1: 192.0.2.2: UPDATE
Peer 1: 192.0.2.2 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 89
    Flag: 0x90 Type: 14 Len: 44 Multiprotocol Reachable NLRI:
        Address Family EVPN
        NextHop len 4 NextHop 192.0.2.5
        Type: EVPN-MAC Len: 33 RD: 192.0.2.5:1000 ESI: ESI-0, tag: 1001, mac len: 48
                       mac: 00:00:00:00:00:05, IP len: 0, IP: NULL, label1: 8388496
    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: 24 Extended Community:
        target:64500:1000
        bgp-tunnel-encap:MPLS
        mac-mobility:Seq:3/Static
"

Conclusion

ISID-based MAC-flush speeds up convergence after a SAP or spoke-SDP failure, triggering a selective CMAC flush on the receiving nodes, which flushes all CMAC entries associated with that ISID and BMAC. The feature can be enabled per I-VPLS and disabled for those SAPs or spoke-SDPs for which no alternative route is available, or for those SAPs that are contained in an all-active Ethernet Segment. The BMAC/ISID update always contains the source-BMAC, not the ES-BMAC. CMAC flush based on ES-BMAC is not performed per ISID.