+ @Override
+ public void handleKnownL3DmacAddress(String macAddress, String elanInstanceName, int addOrRemove) {
+ if (!isL2BeforeL3) {
+ LOG.trace("ELAN service is after L3VPN in the Netvirt pipeline skip known L3DMAC flows installation");
+ return;
+ }
+ ElanInstance elanInstance = ElanUtils.getElanInstanceByName(broker, elanInstanceName);
+ if (elanInstance == null) {
+ LOG.warn("Null elan instance {}", elanInstanceName);
+ return;
+ }
+
+ List<BigInteger> dpnsIdsForElanInstance = elanUtils.getParticipatingDpnsInElanInstance(elanInstanceName);
+ if (dpnsIdsForElanInstance == null || dpnsIdsForElanInstance.isEmpty()) {
+ LOG.warn("No DPNs for elan instance {}", elanInstance);
+ return;
+ }
+
+ elanUtils.handleDmacRedirectToDispatcherFlows(elanInstance.getElanTag(), elanInstanceName, macAddress,
+ addOrRemove, dpnsIdsForElanInstance);
+ }
+