fix ARP (single onos instance & multiple onos instances)

1. make sure that ARP requests coming from host in a LAN
   are not broadcasted to all other edge ports (other ASes)
2. make sure the ARP requests from BGPd host can be singlecast
   to other ASes
3. add a 'get external network switch ports' function
4. make the arp work for both single onos instance & multiple
   onos instances
5. add a switch ports blacklist. Arp requests are not to be sent
   to those switch ports on this list.

Change-Id: I4ffdd73e2ad202517c54690a86109cfa1fbe400f
diff --git a/src/main/java/net/onrc/onos/api/packet/IPacketService.java b/src/main/java/net/onrc/onos/api/packet/IPacketService.java
index d182c57..8ed7737 100644
--- a/src/main/java/net/onrc/onos/api/packet/IPacketService.java
+++ b/src/main/java/net/onrc/onos/api/packet/IPacketService.java
@@ -47,11 +47,13 @@
      * Broadcast the packet out all edge ports in the network. An edge port is
      * defined as any port that doesn't have a link to another switch.
      * <p/>
+     * By default, this function does not broadcast to external networks.
+     * <p/>
      * NOTE: currently unimplemented.
      *
      * @param eth the packet to broadcast
      */
-    public void broadcastPacketOutEdge(Ethernet eth);
+    public void broadcastPacketOutInternalEdge(Ethernet eth);
 
     /**
      * Broadcast the packet out all edge ports in the network, except for the
@@ -61,10 +63,12 @@
      * This is useful for packets that are received from a host in the
      * dataplane, where we want to broadcast the packet to everyone apart from
      * the host that sent it.
+     * <p/>
+     * By default, this function does not broadcast to external networks.
      *
      * @param eth the packet to broadcast
      * @param inSwitchPort the exception port that the packet is not
      * broadcast out
      */
-    public void broadcastPacketOutEdge(Ethernet eth, SwitchPort inSwitchPort);
+    public void broadcastPacketOutInternalEdge(Ethernet eth, SwitchPort inSwitchPort);
 }