Support distributed virtual router (DVR) at kubernetes

Change-Id: I6dfa1ad0d2161443e37fa80901d5ababbec6f74e
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java
index f16bdda..5fd2758 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java
@@ -19,6 +19,7 @@
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.IpPrefix;
+import org.onlab.packet.MacAddress;
 import org.onlab.packet.TpPort;
 import org.onosproject.cluster.ClusterService;
 import org.onosproject.cluster.LeadershipService;
@@ -70,6 +71,7 @@
 import static org.onosproject.k8snetworking.util.RulePopulatorUtil.buildMoveArpShaToThaExtension;
 import static org.onosproject.k8snetworking.util.RulePopulatorUtil.buildMoveArpSpaToTpaExtension;
 import static org.onosproject.k8snetworking.util.RulePopulatorUtil.buildMoveEthSrcToDstExtension;
+import static org.onosproject.k8snode.api.Constants.DEFAULT_EXTERNAL_GATEWAY_MAC;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -259,8 +261,14 @@
 
             tBuilder.extension(natTreatment, k8sNode.extBridge())
                     .setEthSrc(k8sNode.extBridgeMac())
-                    .setEthDst(k8sNode.extGatewayMac())
-                    .setOutput(k8sNode.extBridgePortNum());
+                    .setEthDst(k8sNode.extGatewayMac());
+
+            if (MacAddress.valueOf(DEFAULT_EXTERNAL_GATEWAY_MAC).equals(
+                    k8sNode.extGatewayMac())) {
+                tBuilder.setOutput(k8sNode.extIntfPortNum());
+            } else {
+                tBuilder.setOutput(k8sNode.extBridgePortNum());
+            }
         }
 
         k8sFlowRuleService.setRule(