Bug 8093:Fib entries for external Fixed Ips are not programmed 64/53964/4
authorkarthikeyan <karthikeyan.k@altencalsoftlabs.com>
Tue, 28 Mar 2017 08:53:06 +0000 (14:23 +0530)
committerSam Hague <shague@redhat.com>
Wed, 29 Mar 2017 16:42:30 +0000 (16:42 +0000)
Problem Statement:
==================
In RouterDpnChangeLister, the extRouter parameter is passed as null and in
NatUtil.getExternalSubnetForRouterExternalIp() is called, router is passed
as null resulting in NullPointerException

Solution:
==========
If the router data is null, we need to get the routername from ConfigDS
and use that router name in NatUtil.getExternalSubnetForRouterExternalIp()
to avoid null pointer exception.

Note: Below code is added for external fixed IP information to be writing
into odl-fib entry for EVPN_RT5 use cases.

writeTx.submit()

Change-Id: I7acb7c52b045b6e37b500aef8a6bbe93a0e03777
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/ExternalRoutersListener.java

index 39e05bf923f9d0f0abd266dd9dc68be5b30ac573..2e94296b62a193259858052b4e80afc0a3ef07cb 100644 (file)
@@ -918,6 +918,7 @@ public class ExternalRoutersListener extends AsyncDataTreeChangeListenerBase<Rou
             WriteTransaction writeTx = dataBroker.newWriteOnlyTransaction();
             evpnSnatFlowProgrammer.evpnAdvToBgpAndInstallFibAndTsFlows(dpnId, tableId, externalIp, vpnName, rd,
                     nextHopIp, writeTx, routerId);
+            writeTx.submit();
             return;
         }
         //Generate VPN label for the external IP
@@ -968,9 +969,9 @@ public class ExternalRoutersListener extends AsyncDataTreeChangeListenerBase<Rou
                         Routers extRouter = router != null ? router :
                             NatUtil.getRoutersFromConfigDS(dataBroker, routerName);
                         Uuid externalSubnetId = NatUtil.getExternalSubnetForRouterExternalIp(dataBroker, externalIp,
-                                router);
+                                extRouter);
                         NatUtil.addPrefixToBGP(dataBroker, bgpManager, fibManager, vpnName, rd, externalSubnetId,
-                            externalIp, nextHopIp, router.getNetworkId().getValue(), null, label, log,
+                            externalIp, nextHopIp, extRouter.getNetworkId().getValue(), null, label, log,
                             RouteOrigin.STATIC, dpnId);
 
                         //Install custom FIB routes