MRI version bumpup for Aluminium
[netvirt.git] / elanmanager / impl / src / main / java / org / opendaylight / netvirt / elan / evpn / utils / EvpnMacVrfUtils.java
index b25486c63b0d3b6a6d5ee9fafd31c037cfe2ac6f..9a5b263b4dd30704325857be10a30ecec5fac5e8 100644 (file)
@@ -11,6 +11,7 @@ import com.google.common.util.concurrent.ListenableFuture;
 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;
@@ -37,6 +38,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev15033
 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;
@@ -131,11 +134,11 @@ public class EvpnMacVrfUtils {
                 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);
@@ -167,7 +170,8 @@ public class EvpnMacVrfUtils {
         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) {
@@ -205,7 +209,7 @@ public class EvpnMacVrfUtils {
 
         //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) {
@@ -272,7 +276,7 @@ public class EvpnMacVrfUtils {
             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,