NETVIRT-1630 migrate to md-sal APIs
[netvirt.git] / vpnmanager / impl / src / main / java / org / opendaylight / netvirt / vpnmanager / populator / impl / L3vpnOverMplsGrePopulator.java
index 203e7abc82d6bd12690761c480601fe8759d4b70..3ea3838ee5af028ee1fcd0d81cda98bbdeea9510 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.netvirt.vpnmanager.populator.impl;
 
+import static java.util.Collections.singletonList;
+
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -15,9 +17,9 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.Datastore.Configuration;
 import org.opendaylight.genius.infra.TypedWriteTransaction;
+import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.netvirt.bgpmanager.api.IBgpManager;
 import org.opendaylight.netvirt.fibmanager.api.IFibManager;
 import org.opendaylight.netvirt.fibmanager.api.RouteOrigin;
@@ -27,10 +29,11 @@ import org.opendaylight.netvirt.vpnmanager.populator.input.L3vpnInput;
 import org.opendaylight.netvirt.vpnmanager.populator.registry.L3vpnRegistry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.adjacency.list.Adjacency;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.adjacency.list.AdjacencyBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.adjacency.list.AdjacencyKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.adjacency.list.Adjacency;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.adjacency.list.AdjacencyBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.adjacency.list.AdjacencyKey;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,7 +68,7 @@ public class L3vpnOverMplsGrePopulator extends L3vpnPopulator {
             return;
         }
         Adjacency nextHop = input.getNextHop();
-        long label = nextHop.getLabel();
+        Uint32 label = nextHop.getLabel();
         String vpnName = input.getVpnName();
         String primaryRd = input.getPrimaryRd();
         String rd = input.getRd();
@@ -73,7 +76,7 @@ public class L3vpnOverMplsGrePopulator extends L3vpnPopulator {
         VrfEntry.EncapType encapType = input.getEncapType();
         LOG.info("populateFib : Found Interface Adjacency with prefix {} rd {}", nextHop.getIpAddress(), primaryRd);
         List<VpnInstanceOpDataEntry> vpnsToImportRoute = vpnUtil.getVpnsImportingMyRoute(vpnName);
-        long vpnId = vpnUtil.getVpnId(vpnName);
+        Uint32 vpnId = vpnUtil.getVpnId(vpnName);
         String nextHopIpAddress = nextHop.getIpAddress(); // it is a valid case for nextHopIpAddress to be null
         // Not advertising the prefix to BGP for InternalVpn (where rd is vpnName),
         // transparentInternetVpn (where rd is Network name)
@@ -81,18 +84,19 @@ public class L3vpnOverMplsGrePopulator extends L3vpnPopulator {
         if (VpnUtil.isEligibleForBgp(primaryRd, input.getVpnName(), input.getDpnId(), input.getNetworkName())) {
             // the DpnId is set as rd in case of extra routes present in router based VPN
             addToLabelMapper(label, input.getDpnId(), nextHopIpAddress,
-                    Arrays.asList(nextHopIp), vpnId, input.getInterfaceName(), null,false,
+                    singletonList(nextHopIp), vpnId, input.getInterfaceName(), null,false,
                     primaryRd);
             Objects.requireNonNull(input.getRouteOrigin(), "RouteOrigin is mandatory");
             addPrefixToBGP(rd, primaryRd, null /*macAddress*/, nextHopIpAddress, nextHopIp, encapType,
-                    label, 0 /*l3vni*/, input.getGatewayMac(), input.getRouteOrigin(), writeConfigTxn);
+                    label, Uint32.ZERO /*l3vni*/, input.getGatewayMac(), input.getRouteOrigin(),
+                    writeConfigTxn);
             //TODO: ERT - check for VPNs importing my route
             for (VpnInstanceOpDataEntry vpn : vpnsToImportRoute) {
                 String vpnRd = vpn.getVrfId();
                 if (vpnRd != null) {
                     fibManager.addOrUpdateFibEntry(vpnRd, null /*macAddress*/,
-                            nextHopIpAddress, Arrays.asList(nextHopIp), encapType, (int) label,
-                            0 /*l3vni*/, input.getGatewayMac(), primaryRd, RouteOrigin.SELF_IMPORTED,
+                            nextHopIpAddress, Arrays.asList(nextHopIp), encapType, label,
+                            Uint32.ZERO /*l3vni*/, input.getGatewayMac(), primaryRd, RouteOrigin.SELF_IMPORTED,
                             writeConfigTxn);
                     LOG.info("populateFib: Exported route with rd {} prefix {} nexthop {} label {}"
                             + " to VPN {} for interface {} on dpn {}", vpnRd, nextHop.getIpAddress(), nextHopIp, label,
@@ -102,8 +106,9 @@ public class L3vpnOverMplsGrePopulator extends L3vpnPopulator {
         } else {
             // ### add FIB route directly
             fibManager.addOrUpdateFibEntry(vpnName, null /*macAddress*/,
-                    nextHopIpAddress, Arrays.asList(nextHopIp), encapType, (int) label,
-                    0 /*l3vni*/, input.getGatewayMac(), null /*parentVpnRd*/, input.getRouteOrigin(), writeConfigTxn);
+                    nextHopIpAddress, Arrays.asList(nextHopIp), encapType, label,
+                    Uint32.ZERO /*l3vni*/, input.getGatewayMac(), null /*parentVpnRd*/,
+                    input.getRouteOrigin(), writeConfigTxn);
             LOG.info("populateFib: Added internal FIB entry for prefix {} nexthop {} label {}"
                     + " to VPN {} for interface {} on dpn {}", nextHop.getIpAddress(), nextHopIp, label, vpnName,
                     input.getInterfaceName(), input.getDpnId());
@@ -119,14 +124,14 @@ public class L3vpnOverMplsGrePopulator extends L3vpnPopulator {
         String rd = input.getRd();
         String primaryRd = input.getPrimaryRd();
         String vpnName = input.getVpnName();
-        long label = vpnUtil.getUniqueId(VpnConstants.VPN_IDPOOL_NAME, VpnUtil.getNextHopLabelKey(primaryRd, prefix));
-        if (label == VpnConstants.INVALID_LABEL) {
+        Uint32 label = vpnUtil.getUniqueId(VpnConstants.VPN_IDPOOL_NAME, VpnUtil.getNextHopLabelKey(primaryRd, prefix));
+        if (label.longValue() == VpnConstants.INVALID_LABEL) {
             String error = "Unable to fetch label from Id Manager. Bailing out of creation of operational "
                     + "vpn interface adjacency " + prefix + "for vpn " + vpnName;
             throw new NullPointerException(error);
         }
         List<String> nextHopList = adjNextHop != null && !adjNextHop.isEmpty() ? adjNextHop
-                : nextHopIp == null ? Collections.emptyList() : Collections.singletonList(nextHopIp);
+                : nextHopIp == null ? Collections.emptyList() : singletonList(nextHopIp);
 
         return new AdjacencyBuilder(nextHop).setLabel(label).setNextHopIpList(nextHopList)
                 .setIpAddress(prefix).setVrfId(rd).withKey(new AdjacencyKey(prefix))