Revert "CORD-248 Provide host management network connectivity to a VM"

This reverts commit acbc8effe4f4687dd1c2a79c0ae1fa3edab747e5.

Change-Id: Ief4fc512d252d0143e5106e79e7f346d705a2e29
diff --git a/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java b/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java
index 1697f1a..9e8d313 100644
--- a/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java
+++ b/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java
@@ -28,8 +28,6 @@
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.PortNumber;
 import org.onosproject.net.packet.PacketProcessor;
 import org.onosproject.xosclient.api.VtnService;
 import org.opencord.cordvtn.api.CordVtnConfig;
@@ -52,7 +50,6 @@
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.onosproject.xosclient.api.VtnServiceApi.NetworkType.PRIVATE;
-import static org.onosproject.xosclient.api.VtnServiceApi.ServiceType.MANAGEMENT;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -65,9 +62,6 @@
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected PacketService packetService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected CordVtnNodeManager nodeManager;
-
     private final PacketProcessor packetProcessor = new InternalPacketProcessor();
     private final Map<Ip4Address, MacAddress> gateways = Maps.newConcurrentMap();
 
@@ -138,26 +132,31 @@
 
     /**
      * Emits ARP reply with fake MAC address for a given ARP request.
-     * It only handles requests for the registered gateway IPs and host IPs.
+     * It only handles requests for the registered service IPs, and the other
+     * requests can be handled by other ARP handlers like openstackSwitching or
+     * proxyArp, for example.
      *
      * @param context packet context
      * @param ethPacket ethernet packet
      */
-    private void processArpRequest(PacketContext context, Ethernet ethPacket) {
+    private void processArpPacket(PacketContext context, Ethernet ethPacket) {
         ARP arpPacket = (ARP) ethPacket.getPayload();
+        if (arpPacket.getOpCode() != ARP.OP_REQUEST) {
+           return;
+        }
+
         Ip4Address targetIp = Ip4Address.valueOf(arpPacket.getTargetProtocolAddress());
 
         MacAddress gatewayMac = gateways.get(targetIp);
-        MacAddress replyMac = gatewayMac != null ? gatewayMac :
-                getMacFromHostService(targetIp);
+        MacAddress replyMac = gatewayMac != null ? gatewayMac : getMacFromHostService(targetIp);
 
         if (replyMac.equals(MacAddress.NONE)) {
-            log.trace("Failed to find MAC for {}", targetIp);
-            forwardManagementArpRequest(context, ethPacket);
+            log.debug("Failed to find MAC for {}", targetIp.toString());
+            context.block();
             return;
         }
 
-        log.trace("Send ARP reply for {} with {}", targetIp, replyMac);
+        log.trace("Send ARP reply for {} with {}", targetIp.toString(), replyMac.toString());
         Ethernet ethReply = ARP.buildArpReply(
                 targetIp,
                 replyMac,
@@ -175,62 +174,6 @@
         context.block();
     }
 
-    private void processArpReply(PacketContext context, Ethernet ethPacket) {
-        ARP arpPacket = (ARP) ethPacket.getPayload();
-        Ip4Address targetIp = Ip4Address.valueOf(arpPacket.getTargetProtocolAddress());
-
-        DeviceId deviceId = context.inPacket().receivedFrom().deviceId();
-        Host host = hostService.getHostsByIp(targetIp).stream()
-                .filter(h -> h.location().deviceId().equals(deviceId))
-                .findFirst()
-                .orElse(null);
-
-        if (host == null) {
-            // do nothing for the unknown ARP reply
-            log.trace("No host found for {} in {}", targetIp, deviceId);
-            context.block();
-            return;
-        }
-
-        TrafficTreatment treatment = DefaultTrafficTreatment.builder()
-                .setOutput(host.location().port())
-                .build();
-
-        packetService.emit(new DefaultOutboundPacket(
-                deviceId,
-                treatment,
-                ByteBuffer.wrap(ethPacket.serialize())));
-
-        context.block();
-    }
-
-    private void forwardManagementArpRequest(PacketContext context, Ethernet ethPacket) {
-        DeviceId deviceId = context.inPacket().receivedFrom().deviceId();
-        PortNumber hostMgmtPort = nodeManager.hostManagementPort(deviceId);
-        Host host = hostService.getConnectedHosts(context.inPacket().receivedFrom())
-                .stream()
-                .findFirst().orElse(null);
-
-        if (host == null ||
-                !Instance.of(host).serviceType().equals(MANAGEMENT) ||
-                hostMgmtPort == null) {
-            context.block();
-            return;
-        }
-
-        TrafficTreatment treatment = DefaultTrafficTreatment.builder()
-                .setOutput(hostMgmtPort)
-                .build();
-
-        packetService.emit(new DefaultOutboundPacket(
-                context.inPacket().receivedFrom().deviceId(),
-                treatment,
-                ByteBuffer.wrap(ethPacket.serialize())));
-
-        log.trace("Forward ARP request to management network");
-        context.block();
-    }
-
     /**
      * Emits gratuitous ARP when a gateway mac address has been changed.
      *
@@ -240,7 +183,7 @@
     private void sendGratuitousArp(IpAddress gatewayIp, Set<Instance> instances) {
         MacAddress gatewayMac = gateways.get(gatewayIp.getIp4Address());
         if (gatewayMac == null) {
-            log.debug("Gateway {} is not registered to ARP proxy", gatewayIp);
+            log.debug("Gateway {} is not registered to ARP proxy", gatewayIp.toString());
             return;
         }
 
@@ -303,7 +246,7 @@
                 .orElse(null);
 
         if (host != null) {
-            log.trace("Found MAC from host service for {}", targetIp);
+            log.trace("Found MAC from host service for {}", targetIp.toString());
             return host.mac();
         } else {
             return MacAddress.NONE;
@@ -321,18 +264,7 @@
             if (ethPacket == null || ethPacket.getEtherType() != Ethernet.TYPE_ARP) {
                 return;
             }
-
-            ARP arpPacket = (ARP) ethPacket.getPayload();
-            switch (arpPacket.getOpCode()) {
-                case ARP.OP_REQUEST:
-                    processArpRequest(context, ethPacket);
-                    break;
-                case ARP.OP_REPLY:
-                    processArpReply(context, ethPacket);
-                    break;
-                default:
-                    break;
-            }
+            processArpPacket(context, ethPacket);
         }
     }