Enhance the RM logic for Kubevirt Networking App in case of virtual network.

Change-Id: I9b38ea0d76ce269cb03bc8a0f7d1883ddb92f51c
(cherry picked from commit d77b4ccb6cd06da7019980add8188b9021f6fcc5)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
index 419672f..cf8a877 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtFloatingIpHandler.java
@@ -67,15 +67,14 @@
 import static org.onosproject.kubevirtnetworking.api.Constants.GW_ENTRY_TABLE;
 import static org.onosproject.kubevirtnetworking.api.Constants.KUBEVIRT_NETWORKING_APP_ID;
 import static org.onosproject.kubevirtnetworking.api.Constants.PRIORITY_ARP_GATEWAY_RULE;
+import static org.onosproject.kubevirtnetworking.api.Constants.PRIORITY_FLOATING_GATEWAY_TUN_BRIDGE_RULE;
 import static org.onosproject.kubevirtnetworking.api.Constants.PRIORITY_FLOATING_IP_RULE;
-import static org.onosproject.kubevirtnetworking.api.Constants.PRIORITY_FORWARDING_RULE;
 import static org.onosproject.kubevirtnetworking.api.Constants.TUNNEL_DEFAULT_TABLE;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GENEVE;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.GRE;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.buildGarpPacket;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.externalPatchPortNum;
-import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.gatewayNodeForSpecifiedRouter;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.getRouterMacAddress;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.tunnelPort;
 import static org.onosproject.kubevirtnetworking.util.RulePopulatorUtil.buildExtension;
@@ -166,7 +165,8 @@
 
         KubevirtNetwork kubevirtNetwork = kubevirtNetworkService.network(kubevirtPort.networkId());
         if (kubevirtNetwork.type() == VXLAN || kubevirtNetwork.type() == GENEVE || kubevirtNetwork.type() == GRE) {
-            setFloatingIpDownstreamRulesToGatewayTunBridge(router, floatingIp, kubevirtNetwork, kubevirtPort, install);
+            setFloatingIpDownstreamRulesToGatewayTunBridge(floatingIp,
+                    electedGw, kubevirtNetwork, kubevirtPort, install);
         }
 
         setFloatingIpArpResponseRules(router, floatingIp, kubevirtPort, electedGw, install);
@@ -288,19 +288,11 @@
                 install);
     }
 
-    private void setFloatingIpDownstreamRulesToGatewayTunBridge(KubevirtRouter router,
-                                                                KubevirtFloatingIp floatingIp,
+    private void setFloatingIpDownstreamRulesToGatewayTunBridge(KubevirtFloatingIp floatingIp,
+                                                                KubevirtNode electedGw,
                                                                 KubevirtNetwork network,
                                                                 KubevirtPort port,
                                                                 boolean install) {
-        KubevirtNode electedGw = gatewayNodeForSpecifiedRouter(kubevirtNodeService, router);
-
-        if (electedGw == null) {
-            log.warn("Failed to install floating Ip rules for floating ip {} " +
-                    "because there's no gateway assigned to it", floatingIp.floatingIp());
-            return;
-        }
-
         KubevirtNode workerNode = kubevirtNodeService.node(port.deviceId());
         if (workerNode == null) {
             log.warn("Failed to install floating Ip rules for floating ip {} " +
@@ -333,7 +325,7 @@
                 electedGw.tunBridge(),
                 sBuilder.build(),
                 tBuilder.build(),
-                PRIORITY_FORWARDING_RULE,
+                PRIORITY_FLOATING_GATEWAY_TUN_BRIDGE_RULE,
                 TUNNEL_DEFAULT_TABLE,
                 install);
     }