for (ElanDpnInterfacesList elanDpns : elanDpnIf) {
int cnt = 0;
String elanName = elanDpns.getElanInstanceName();
+ ElanInstance elanInfo = ElanUtils.getElanInstanceByName(broker, elanName);
+ if (elanInfo == null) {
+ LOG.warn("ELAN Info is null for elanName {} that does exist in elanDpnInterfaceList, "
+ + "skipping this ELAN for tunnel handling", elanName);
+ continue;
+ }
+ if (ElanUtils.isFlat(elanInfo) || ElanUtils.isVlan(elanInfo)) {
+ LOG.debug("Ignoring internal tunnel state event for Flat/Vlan elan {}", elanName);
+ continue;
+ }
List<DpnInterfaces> dpnInterfaces = elanDpns.getDpnInterfaces();
if (dpnInterfaces == null) {
continue;
}
if (cnt == 2) {
LOG.debug("Elan instance:{} is present b/w srcDpn:{} and dstDpn:{}", elanName, srcDpId, dstDpId);
- ElanInstance elanInfo = ElanUtils.getElanInstanceByName(broker, elanName);
DataStoreJobCoordinator dataStoreCoordinator = DataStoreJobCoordinator.getInstance();
dataStoreCoordinator.enqueueJob(elanName, () -> {
// update Remote BC Group
public void setupRemoteDmacFlow(BigInteger srcDpId, BigInteger destDpId, int lportTag, long elanTag,
String macAddress, String displayName, WriteTransaction writeFlowGroupTx, String interfaceName,
ElanInstance elanInstance) throws ElanException {
+ if (interfaceManager.isExternalInterface(interfaceName)) {
+ LOG.debug("Ignoring install remote DMAC {} flow on provider interface {} elan {}",
+ macAddress, interfaceName, elanInstance.getElanInstanceName());
+ return;
+ }
+
Flow flowEntity = buildRemoteDmacFlowEntry(srcDpId, destDpId, lportTag, elanTag, macAddress, displayName,
elanInstance);
mdsalManager.addFlowToTx(srcDpId, flowEntity, writeFlowGroupTx);