EVPN VXLAN: Multi Homing: Missing LACP configuration on PE when CE enabled with LACP

Bug #1711868 reported by chhandak
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R4.0
Fix Committed
High
Suresh Balineni
Trunk
Fix Committed
High
Suresh Balineni

Bug Description

When CE device is configured with LACP for EVPN VXLAN Multi-Homing all active mode, PE needs to have lacp enabled on edge interface towards the CE. Device manager is not pushing the required config today. configured the same manually. Working config is mentioned below.

Topology
--------
PE1: QFX2-xe-0/0/46 --------------------+p2p1-------+
                                        | |
                                        | CE |
PE2: QFX3-xe-0/0/42---------------------+p2p1-------+

PE1
---
root@5b11-qfx3# run show configuration | display set | grep ae0
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation extended-vlan-bridge
set interfaces ae0 esi 00:11:22:33:44:55:66:77:88:99
set interfaces ae0 esi all-active
set interfaces ae0 unit 6 vlan-id 6
set vlans contrail_vn-test-1-l2-4 interface ae0.6
set interfaces ae0 aggregated-ether-options lacp active
set interfaces ae0 aggregated-ether-options lacp system-priority 100
set interfaces ae0 aggregated-ether-options lacp system-id 00:00:00:00:00:05 ---> ID should be same with peer device
set interfaces ae0 aggregated-ether-options lacp admin-key 1----> Key should be same with peer device
set interfaces xe-0/0/42 gigether-options 802.3ad ae0

PE2
---
root@5b11-qfx2# run show configuration interfaces ae0 | display set
root@5b11-qfx3# run show configuration | display set | grep ae0
set interfaces ae0 flexible-vlan-tagging
set interfaces ae0 encapsulation extended-vlan-bridge
set interfaces ae0 esi 00:11:22:33:44:55:66:77:88:99
set interfaces ae0 esi all-active
set interfaces ae0 unit 6 vlan-id 6
set vlans contrail_vn-test-1-l2-4 interface ae0.6
set interfaces xe-0/0/42 gigether-options 802.3ad ae0
set interfaces ae0 aggregated-ether-options lacp active
set interfaces ae0 aggregated-ether-options lacp system-priority 100
set interfaces ae0 aggregated-ether-options lacp system-id 00:00:00:00:00:05
set interfaces ae0 aggregated-ether-options lacp admin-key 1

CE Bond config
---------------
auto p2p1
iface p2p1 inet manual
bond-master bond0

#eth1 ditto, thus creating a 2-link bond.
auto p2p2
iface p2p2 inet manual
bond-master bond0

# bond0 is the bonding NIC and can be used like any other normal NIC.
# bond0 is configured using static network information.
auto bond0
iface bond0 inet manual
hwaddress 90:e2:ba:c4:2e:6d
bond-miimon 100
bond_mode 4
bond_miimon 100
bond_downdelay 200
bond_updelay 200
bond_xmit_hash_policy layer2+3
bond_lacp_rate fast
bond-slaves p2p1 p2p2

root@5b11-qfx2# run show lacp interfaces
Aggregated interface: ae0
    LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity
      xe-0/0/46 Actor No No Yes Yes Yes Yes Fast Active
      xe-0/0/46 Partner No No Yes Yes Yes Yes Fast Active
    LACP protocol: Receive State Transmit State Mux State
      xe-0/0/46 Current Fast periodic Collecting distributing

root@5b11-qfx2# run show evpn instance extensive
Instance: __default_evpn__
  Route Distinguisher: 172.16.2.1:0
  Number of bridge domains: 0
  Number of neighbors: 1
    Address MAC MAC+IP AD IM ES Leaf-label
    172.16.3.1 0 0 0 0 1

Instance: default-switch
  Route Distinguisher: 172.16.2.1:1
  Encapsulation type: VXLAN
  Control word enabled
  MAC database status Local Remote
    MAC advertisements: 1 6
    MAC+IP advertisements: 0 3
    Default gateway MAC advertisements: 0 1
  Number of local interfaces: 1 (19 up)
    Interface name ESI Mode Status AC-Role
    ae0.6 00:11:22:33:44:55:66:77:88:99 all-active Up Root
  Number of IRB interfaces: 0 (0 up)
  Number of bridge domains: 1
    VLAN Domain ID Intfs / up IRB intf Mode MAC sync IM route label SG sync IM core nexthop
    None 4 1 1 Extended Enabled 4 Disabled
  Number of neighbors: 4
    Address MAC MAC+IP AD IM ES Leaf-label
    172.16.3.1 2 0 2 1 0
    172.16.5.10 3 2 1 1 0
    172.16.180.101 0 0 0 1 0
    172.16.180.102 1 1 0 1 0
  Number of ethernet segments: 3
    ESI: 00:11:22:33:44:55:66:77:88:99
      Status: Resolved by IFL ae0.6
      Local interface: ae0.6, Status: Up/Forwarding
      Number of remote PEs connected: 1
        Remote PE MAC label Aliasing label Mode
        172.16.3.1 4 0 all-active
      Designated forwarder: 172.16.2.1
      Backup forwarder: 172.16.3.1
      Last designated forwarder update: Aug 19 23:11:25
    ESI: 05:00:00:fd:e8:00:00:00:04:00
      Status: Resolved
      Number of remote PEs connected: 1
        Remote PE MAC label Aliasing label Mode
        172.16.5.10 4 0 all-active
    ESI: 05:00:00:fd:e8:00:00:00:05:00
      Status: Resolved
      Number of remote PEs connected: 1
        Remote PE MAC label Aliasing label Mode
        172.16.5.10 5 0 single-homed
  Router-ID: 172.16.2.1

Fail over case
----------------
root@5b11-qfx2# run show ethernet-switching table

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static
           SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC)

Ethernet switching table : 4 entries, 4 learned
Routing instance : default-switch
   Vlan MAC MAC Logical Active
   name address flags interface source
   contrail_vn-test-1-l2-4 00:00:5e:00:01:01 DR esi.1745 05:00:00:fd:e8:00:00:00:04:00
   contrail_vn-test-1-l2-4 02:15:69:8e:17:78 D vtep.32769 172.16.180.102
   contrail_vn-test-1-l2-4 80:71:1f:c3:e9:f0 D vtep.32771 172.16.5.10
   contrail_vn-test-1-l2-4 90:e2:ba:c4:2e:6d DR ae0.6 ---> Mac remote learn

{master:0}[edit]
root@5b11-qfx2# run show ethernet-switching table

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static
           SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC)

Ethernet switching table : 5 entries, 5 learned
Routing instance : default-switch
   Vlan MAC MAC Logical Active
   name address flags interface source
   contrail_vn-test-1-l2-4 00:00:5e:00:01:01 DR esi.1745 05:00:00:fd:e8:00:00:00:04:00
   contrail_vn-test-1-l2-4 02:15:69:8e:17:78 D vtep.32769 172.16.180.102
   contrail_vn-test-1-l2-4 80:71:1f:c3:e9:f0 D vtep.32771 172.16.5.10
   contrail_vn-test-1-l2-4 90:e2:ba:a7:30:cc D vtep.32772 172.16.3.1
   contrail_vn-test-1-l2-4 90:e2:ba:c4:2e:6d DL ae0.6 ---> When DF fail over happend same BMS mac localy learned

chhandak (chhandak)
Changed in juniperopenstack:
importance: Undecided → High
assignee: nobody → Suresh Balineni (sbalineni)
milestone: none → r4.0.1.0
chhandak (chhandak)
description: updated
Nischal Sheth (nsheth)
information type: Proprietary → Public
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/35052
Submitter: Suresh Balineni (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/35052
Committed: http://github.com/Juniper/contrail-controller/commit/3e36fa752f8ded2581b80f74aeb1ac6c3bd25ad5
Submitter: Zuul (<email address hidden>)
Branch: master

commit 3e36fa752f8ded2581b80f74aeb1ac6c3bd25ad5
Author: sbalineni <email address hidden>
Date: Tue Aug 29 11:54:50 2017 -0700

[DM]: Autogenerate LACP config for ESI Multi Homing Support

- Allocate AE indexes for each ESI
- associate intf memebership to AE based on ESI value
- persist ESI->AE indexes map in DB
- do not generate l2 evpn config for non aggr interfaces, instead generate evpn config parent AEs
- generate lacp membership config
- maintain the vlan_tag, unit numbers based intf valn_tag/unit numbers
- fix for reading cassandra columns, column type int not working
- unit tests

Change-Id: I47d7333c5c71c74fc4b1e2d44ad2539507c14136
Closes-Bug: #1711868

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R4.0

Review in progress for https://review.opencontrail.org/35208
Submitter: Suresh Balineni (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/35208
Committed: http://github.com/Juniper/contrail-controller/commit/112bd9ca1ff2cbf8ba2eb71a223564b48c033cb1
Submitter: Zuul (<email address hidden>)
Branch: R4.0

commit 112bd9ca1ff2cbf8ba2eb71a223564b48c033cb1
Author: sbalineni <email address hidden>
Date: Tue Aug 29 11:54:50 2017 -0700

[DM]: Autogenerate LACP config for ESI Multi Homing Support

- Allocate AE indexes for each ESI
- associate intf memebership to AE based on ESI value
- persist ESI->AE indexes map in DB
- do not generate l2 evpn config for non aggr interfaces, instead generate evpn config parent AEs
- generate lacp membership config
- maintain the vlan_tag, unit numbers based intf valn_tag/unit numbers
- fix for reading cassandra columns, column type int not working
- unit tests

Change-Id: I47d7333c5c71c74fc4b1e2d44ad2539507c14136
Closes-Bug: #1711868

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.