import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.fibentries.VrfTables;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.fibentries.VrfTablesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.macvrfentries.MacVrfEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.macvrfentries.MacVrfEntryKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentrybase.RoutePaths;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.EvpnRdToNetworks;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.evpn.rd.to.networks.EvpnRdToNetwork;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.evpn.rd.to.networks.EvpnRdToNetworkKey;
if (!vrfTablesOptional.isPresent()) {
return null;
}
- List<MacVrfEntry> macVrfEntries = vrfTablesOptional.get().getMacVrfEntry();
- if (macVrfEntries == null || macVrfEntries.isEmpty()) {
+ Map<MacVrfEntryKey, MacVrfEntry> keyMacVrfEntryMap = vrfTablesOptional.get().getMacVrfEntry();
+ if (keyMacVrfEntryMap == null || keyMacVrfEntryMap.isEmpty()) {
return null;
}
- for (MacVrfEntry macVrfEntry : macVrfEntries) {
+ for (MacVrfEntry macVrfEntry : keyMacVrfEntryMap.values()) {
InstanceIdentifier<MacVrfEntry> macVrfEntryIid = getMacVrfEntryIid(rd, macVrfEntry);
if (install) {
addEvpnDmacFlowOnAttach(macVrfEntryIid, macVrfEntry, elanInstance);
List<DpnInterfaces> dpnInterfaceLists = elanUtils.getElanDPNByName(elanName);
if (checkEvpnAttachedToNet(elanName)) {
//TODO(Riyaz) : Check if accessing first nexthop address is right solution
- String nexthopIP = macVrfEntry.getRoutePaths().get(0).getNexthopAddress();
+ String nexthopIP = new ArrayList<RoutePaths>(macVrfEntry.getRoutePaths().values())
+ .get(0).getNexthopAddress();
IpAddress ipAddress = new IpAddress(new Ipv4Address(nexthopIP));
Uint32 elanTag = getElanTagByMacvrfiid(instanceIdentifier);
if (elanTag == null) {
//if (checkEvpnAttachedToNet(elanName)) {
//TODO(Riyaz) : Check if accessing first nexthop address is right
- String nexthopIP = macVrfEntry.getRoutePaths().get(0).getNexthopAddress();
+ String nexthopIP = new ArrayList<RoutePaths>(macVrfEntry.getRoutePaths().values()).get(0).getNexthopAddress();
IpAddress ipAddress = new IpAddress(new Ipv4Address(nexthopIP));
Uint32 elanTag = getElanTagByMacvrfiid(instanceIdentifier);
if (elanTag == null) {
LOG.debug("RoutePaths is null or empty for macvrfentry {}", macVrfEntry);
return null;
}
- return macVrfEntry.getRoutePaths().get(0).getNexthopAddress();
+ return new ArrayList<RoutePaths>(macVrfEntry.getRoutePaths().values()).get(0).getNexthopAddress();
}
public void removeEvpnDmacFlowOnDetach(InstanceIdentifier<MacVrfEntry> instanceIdentifier, MacVrfEntry macVrfEntry,