Broadcast ARPs only with in host subnets
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/ArpHandler.java b/src/main/java/net/onrc/onos/apps/segmentrouting/ArpHandler.java
index 9d82fd6..5befa5b 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/ArpHandler.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/ArpHandler.java
@@ -281,8 +281,17 @@
                 .setSourceMACAddress(senderMacAddress)
                 .setEtherType(Ethernet.TYPE_ARP).setPayload(arpRequest);
 
-        sendPacketOut(sw, eth, (short)-1);
-
+		/* Broadcast the ARP request to all switch ports
+		 * that subnets are connected to except the port from which
+		 * ARP request is received
+		 */
+		for (Integer portNo : getSwitchSubnetPorts(sw)) {
+			if (portNo.shortValue() == inPort.getPortNumber().shortValue())
+				continue;
+        	log.debug("ArpHandler: Sending ARP request on switch {} port {}",
+        			sw.getDpid(), portNo.shortValue());
+            sendPacketOut(sw, eth, portNo.shortValue());
+		}
     }
 
     /**