Create VrfEntry for PNF
[netvirt.git] / vpnservice / vpnmanager / vpnmanager-impl / src / main / java / org / opendaylight / netvirt / vpnmanager / VpnSubnetRouteHandler.java
index 9508b29b1dbaf34bf5032a1ee396c006f2f84bca..e538de71cf24cb5a3c06889f9b4569caee281c54 100644 (file)
@@ -84,7 +84,7 @@ public class VpnSubnetRouteHandler implements NeutronvpnListener {
     @SuppressWarnings("checkstyle:IllegalCatch")
     @Override
     public void onSubnetAddedToVpn(SubnetAddedToVpn notification) {
-        if (!notification.isExternalVpn()) {
+        if (!notification.isBgpVpn()) {
             return;
         }
 
@@ -270,7 +270,7 @@ public class VpnSubnetRouteHandler implements NeutronvpnListener {
     public void onSubnetDeletedFromVpn(SubnetDeletedFromVpn notification) {
         Uuid subnetId = notification.getSubnetId();
 
-        if (!notification.isExternalVpn()) {
+        if (!notification.isBgpVpn()) {
             return;
         }
         LOG.info("onSubnetDeletedFromVpn: Subnet " + subnetId.getValue() + " being removed from vpn");
@@ -361,16 +361,16 @@ public class VpnSubnetRouteHandler implements NeutronvpnListener {
         Optional<SubnetOpDataEntry> optionalSubs =
             VpnUtil.read(dataBroker, LogicalDatastoreType.OPERATIONAL, subOpIdentifier);
         if (optionalSubs.isPresent()) {
-            if (!notification.isExternalVpn()) {
+            if (!notification.isBgpVpn()) {
                 SubnetDeletedFromVpnBuilder bldr = new SubnetDeletedFromVpnBuilder().setVpnName(vpnName);
-                bldr.setElanTag(elanTag).setExternalVpn(true).setSubnetIp(subnetIp).setSubnetId(subnetId);
+                bldr.setElanTag(elanTag).setBgpVpn(true).setSubnetIp(subnetIp).setSubnetId(subnetId);
                 onSubnetDeletedFromVpn(bldr.build());
             }
             // TODO(vivek): Something got updated, but we donot know what ?
         } else {
-            if (notification.isExternalVpn()) {
+            if (notification.isBgpVpn()) {
                 SubnetAddedToVpnBuilder bldr = new SubnetAddedToVpnBuilder().setVpnName(vpnName).setElanTag(elanTag);
-                bldr.setSubnetIp(subnetIp).setSubnetId(subnetId).setExternalVpn(true);
+                bldr.setSubnetIp(subnetIp).setSubnetId(subnetId).setBgpVpn(true);
                 onSubnetAddedToVpn(bldr.build());
             }
             // TODO(vivek): Something got updated, but we donot know what ?
@@ -937,14 +937,14 @@ public class VpnSubnetRouteHandler implements NeutronvpnListener {
         if (nexthopIp != null) {
             VpnUtil.syncWrite(dataBroker, LogicalDatastoreType.OPERATIONAL,
                 VpnUtil.getPrefixToInterfaceIdentifier(VpnUtil.getVpnId(dataBroker, vpnName), subnetIp),
-                VpnUtil.getPrefixToInterface(nhDpnId, subnetId.getValue(), subnetIp));
+                VpnUtil.getPrefixToInterface(nhDpnId, subnetId.getValue(), subnetIp, subnetId, true /* isNatPrefix*/));
             vpnInterfaceManager.addSubnetRouteFibEntryToDS(rd, vpnName, subnetIp, nexthopIp, label, elanTag, nhDpnId,
                 null);
             try {
                 //BGP manager will handle withdraw and advertise internally if prefix
                 //already exist
                 bgpManager.advertisePrefix(rd, null /*macAddress*/, subnetIp, Collections.singletonList(nexthopIp),
-                        VrfEntry.EncapType.Mplsgre, label, 0 /*l3vni*/, null /*gatewayMacAddress*/);
+                        VrfEntry.EncapType.Mplsgre, label, 0 /*l3vni*/, 0 /*l2vni*/, null /*gatewayMacAddress*/);
             } catch (Exception e) {
                 LOG.error("Fail: Subnet route not advertised for rd {} subnetIp {}", rd, subnetIp, e);
                 throw e;