EVPN RT2 Installing flows for RT2 received in prior 68/56668/4
authorRiyazahmed D Talikoti <riyazahmed.d.talikoti@ericsson.com>
Mon, 8 May 2017 10:18:16 +0000 (15:48 +0530)
committerRiyazahmed D Talikoti <riyazahmed.d.talikoti@ericsson.com>
Tue, 9 May 2017 13:41:20 +0000 (19:11 +0530)
commit0f374b60371a2c982866ba0da5b31503173f43a6
tree996c714ef003e8e3be38d8fffdf5c26c004f3ffd
parentf92a03e72bdc655f8416ed9812cfaa880ff4e9a4
EVPN RT2 Installing flows for RT2 received in prior

1. When EVPN is created, vpn instance will be created and bgpmanager will
register with quagga bgp. hence BGPmanager will start receiving RT2 routes
from peer. Bgpmanager will write into macvrfentry(odl-fib.yang).
macvrfentrylistener is listening to macvrfentry and which installs dmac
flow for the received RT2 route only if EVPN is attached to network.

2. Now if EVPN is created and NOT attached to network. BgpManager will
still receive RT2 routes from peer, which will be written into
macvrfentry, but since evpn is not attached to network yet, hence DMAC
flows are not installed. Once Evpn is attached to network we need to go
through all the macvrfentry with the matching RD and install dmac flows.

3. when EVPN is detached from network, we go through all the macvrfentry
for that RD and uninstall DMAC flows.

4. async read is done so that even if it fails to read first time it tries
multiple times till either read is success or failure.

Change-Id: If4cb1b0fb924e7defa4e8c119dcf249b3f9b24f6
Signed-off-by: Riyazahmed D Talikoti <riyazahmed.d.talikoti@ericsson.com>
vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/EvpnRdNetworkListener.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/evpn/listeners/EvpnElanInstanceManager.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/evpn/listeners/MacVrfEntryListener.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnMacVrfUtils.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanClusterUtils.java
vpnservice/elanmanager/elanmanager-impl/src/main/resources/org/opendaylight/blueprint/elanmanager.xml