renamed IpAddress to IpPrefix

Change-Id: I35990622e5b1c29ab6f6a0a0227088cd5d6c7294
diff --git a/apps/tvue/src/main/java/org/onlab/onos/tvue/TopologyResource.java b/apps/tvue/src/main/java/org/onlab/onos/tvue/TopologyResource.java
index db8cce0..ea6a7cc 100644
--- a/apps/tvue/src/main/java/org/onlab/onos/tvue/TopologyResource.java
+++ b/apps/tvue/src/main/java/org/onlab/onos/tvue/TopologyResource.java
@@ -16,7 +16,7 @@
 import org.onlab.onos.net.topology.TopologyGraph;
 import org.onlab.onos.net.topology.TopologyService;
 import org.onlab.onos.net.topology.TopologyVertex;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.rest.BaseResource;
 
 import javax.ws.rs.GET;
@@ -74,8 +74,8 @@
         // Merge the exterior and interior vertexes and inject host links as
         // the exterior edges.
         for (Host host : hostService.getHosts()) {
-            Set<IpAddress> ipAddresses = host.ipAddresses();
-            IpAddress ipAddress = ipAddresses.isEmpty() ? null : ipAddresses.iterator().next();
+            Set<IpPrefix> ipAddresses = host.ipAddresses();
+            IpPrefix ipAddress = ipAddresses.isEmpty() ? null : ipAddresses.iterator().next();
             String label = ipAddress != null ? ipAddress.toString() : host.mac().toString();
             vertexesNode.add(json(mapper, host.id(), 3, label, true));
             edgesNode.add(json(mapper, 1, host.location(), new ConnectPoint(host.id(), portNumber(-1))));
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/ControllerInstance.java b/core/api/src/main/java/org/onlab/onos/cluster/ControllerInstance.java
index 66d753e..9255175 100644
--- a/core/api/src/main/java/org/onlab/onos/cluster/ControllerInstance.java
+++ b/core/api/src/main/java/org/onlab/onos/cluster/ControllerInstance.java
@@ -1,6 +1,6 @@
 package org.onlab.onos.cluster;
 
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 
 /**
  * Represents a controller instance as a member in a cluster.
@@ -33,6 +33,6 @@
      *
      * @return IP address
      */
-    IpAddress ip();
+    IpPrefix ip();
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/DefaultHost.java b/core/api/src/main/java/org/onlab/onos/net/DefaultHost.java
index ed26e14..fad9147 100644
--- a/core/api/src/main/java/org/onlab/onos/net/DefaultHost.java
+++ b/core/api/src/main/java/org/onlab/onos/net/DefaultHost.java
@@ -8,7 +8,7 @@
 import java.util.Set;
 
 import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -20,15 +20,15 @@
     private final MacAddress mac;
     private final VlanId vlan;
     private final HostLocation location;
-    private final Set<IpAddress> ips;
+    private final Set<IpPrefix> ips;
 
     public DefaultHost(ProviderId providerId, HostId id, MacAddress mac,
-            VlanId vlan, HostLocation loc, Set<IpAddress> ips) {
+            VlanId vlan, HostLocation loc, Set<IpPrefix> ips) {
         super(providerId, id);
         this.mac = mac;
         this.vlan = vlan;
         this.location = loc;
-        this.ips = new HashSet<IpAddress>(ips);
+        this.ips = new HashSet<IpPrefix>(ips);
     }
 
     @Override
@@ -42,7 +42,7 @@
     }
 
     @Override
-    public Set<IpAddress> ipAddresses() {
+    public Set<IpPrefix> ipAddresses() {
         return Collections.unmodifiableSet(ips);
     }
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/Host.java b/core/api/src/main/java/org/onlab/onos/net/Host.java
index 9d08591..087db36 100644
--- a/core/api/src/main/java/org/onlab/onos/net/Host.java
+++ b/core/api/src/main/java/org/onlab/onos/net/Host.java
@@ -1,6 +1,6 @@
 package org.onlab.onos.net;
 
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -38,7 +38,7 @@
      *
      * @return set of IP addresses; empty if no IP address is bound
      */
-    Set<IpAddress> ipAddresses();
+    Set<IpPrefix> ipAddresses();
 
     /**
      * Returns the most recent host location where the host attaches to the
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java b/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java
index 2cfb4de..e27cc4d 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java
@@ -2,7 +2,7 @@
 
 import org.onlab.onos.net.PortNumber;
 import org.onlab.onos.net.flow.criteria.Criterion.Type;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -95,7 +95,7 @@
      * @param ip ip src value
      * @return match criterion
      */
-    public static Criterion matchIPSrc(IpAddress ip) {
+    public static Criterion matchIPSrc(IpPrefix ip) {
         return new IPCriterion(ip, Type.IPV4_SRC);
     }
 
@@ -105,7 +105,7 @@
      * @param ip ip src value
      * @return match criterion
      */
-    public static Criterion matchIPDst(IpAddress ip) {
+    public static Criterion matchIPDst(IpPrefix ip) {
         return new IPCriterion(ip, Type.IPV4_DST);
     }
 
@@ -173,10 +173,10 @@
 
     public static final class IPCriterion implements Criterion {
 
-        private final IpAddress ip;
+        private final IpPrefix ip;
         private final Type type;
 
-        public IPCriterion(IpAddress ip, Type type) {
+        public IPCriterion(IpPrefix ip, Type type) {
             this.ip = ip;
             this.type = type;
         }
@@ -186,7 +186,7 @@
             return this.type;
         }
 
-        public IpAddress ip() {
+        public IpPrefix ip() {
             return this.ip;
         }
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java
index 439db77..ada96a5 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java
@@ -7,7 +7,7 @@
 import org.onlab.onos.net.flow.instructions.L2ModificationInstruction.ModEtherInstruction;
 import org.onlab.onos.net.flow.instructions.L3ModificationInstruction.L3SubType;
 import org.onlab.onos.net.flow.instructions.L3ModificationInstruction.ModIPInstruction;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -85,7 +85,7 @@
      * @param addr the ip address to modify to.
      * @return a L3 modification
      */
-    public static L3ModificationInstruction modL3Src(IpAddress addr) {
+    public static L3ModificationInstruction modL3Src(IpPrefix addr) {
         checkNotNull(addr, "Src l3 address cannot be null");
         return new ModIPInstruction(L3SubType.L3_SRC, addr);
     }
@@ -95,7 +95,7 @@
      * @param addr the ip address to modify to.
      * @return a L3 modification
      */
-    public static L3ModificationInstruction modL3Dst(IpAddress addr) {
+    public static L3ModificationInstruction modL3Dst(IpPrefix addr) {
         checkNotNull(addr, "Dst l3 address cannot be null");
         return new ModIPInstruction(L3SubType.L3_DST, addr);
     }
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java
index 797df9b..aa47634 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java
@@ -1,6 +1,6 @@
 package org.onlab.onos.net.flow.instructions;
 
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 
 /**
  * Abstraction of a single traffic treatment step.
@@ -41,9 +41,9 @@
     public static final class ModIPInstruction extends L3ModificationInstruction {
 
         private final L3SubType subtype;
-        private final IpAddress ip;
+        private final IpPrefix ip;
 
-        public ModIPInstruction(L3SubType subType, IpAddress addr) {
+        public ModIPInstruction(L3SubType subType, IpPrefix addr) {
 
             this.subtype = subType;
             this.ip = addr;
@@ -54,7 +54,7 @@
             return this.subtype;
         }
 
-        public IpAddress ip() {
+        public IpPrefix ip() {
             return this.ip;
         }
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/host/DefaultHostDescription.java b/core/api/src/main/java/org/onlab/onos/net/host/DefaultHostDescription.java
index 68795bd..0a419fd 100644
--- a/core/api/src/main/java/org/onlab/onos/net/host/DefaultHostDescription.java
+++ b/core/api/src/main/java/org/onlab/onos/net/host/DefaultHostDescription.java
@@ -6,7 +6,7 @@
 import java.util.Set;
 
 import org.onlab.onos.net.HostLocation;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -17,22 +17,22 @@
     private final MacAddress mac;
     private final VlanId vlan;
     private final HostLocation location;
-    private final Set<IpAddress> ips;
+    private final Set<IpPrefix> ips;
 
     public DefaultHostDescription(MacAddress mac, VlanId vlan,
             HostLocation loc) {
         this.mac = mac;
         this.vlan = vlan;
         this.location = loc;
-        this.ips = new HashSet<IpAddress>();
+        this.ips = new HashSet<IpPrefix>();
     }
 
     public DefaultHostDescription(MacAddress mac, VlanId vlan,
-            HostLocation loc, Set<IpAddress> ips) {
+            HostLocation loc, Set<IpPrefix> ips) {
         this.mac = mac;
         this.vlan = vlan;
         this.location = loc;
-        this.ips = new HashSet<IpAddress>(ips);
+        this.ips = new HashSet<IpPrefix>(ips);
     }
 
     @Override
@@ -51,7 +51,7 @@
     }
 
     @Override
-    public Set<IpAddress> ipAddresses() {
+    public Set<IpPrefix> ipAddresses() {
         return ImmutableSet.copyOf(ips);
     }
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/host/HostDescription.java b/core/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
index 5917bef..27014b6 100644
--- a/core/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
+++ b/core/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
@@ -4,7 +4,7 @@
 
 import org.onlab.onos.net.Description;
 import org.onlab.onos.net.HostLocation;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -39,6 +39,6 @@
      *
      * @return a set of IP addresses.
      */
-    Set<IpAddress> ipAddresses();
+    Set<IpPrefix> ipAddresses();
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/host/HostService.java b/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
index a42e231..39f63c0 100644
--- a/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
@@ -4,7 +4,7 @@
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.Host;
 import org.onlab.onos.net.HostId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -59,7 +59,7 @@
      * @param ip ip address
      * @return set of hosts with the given IP
      */
-    Set<Host> getHostsByIp(IpAddress ip);
+    Set<Host> getHostsByIp(IpPrefix ip);
 
     // TODO: consider adding Host getHostByIp(IpAddress ip, VlanId vlan);
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/host/HostStore.java b/core/api/src/main/java/org/onlab/onos/net/host/HostStore.java
index cb5ed64..94c4585 100644
--- a/core/api/src/main/java/org/onlab/onos/net/host/HostStore.java
+++ b/core/api/src/main/java/org/onlab/onos/net/host/HostStore.java
@@ -5,7 +5,7 @@
 import org.onlab.onos.net.Host;
 import org.onlab.onos.net.HostId;
 import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -81,7 +81,7 @@
      * @param ip ip address
      * @return set of hosts with the given IP
      */
-    Set<Host> getHosts(IpAddress ip);
+    Set<Host> getHosts(IpPrefix ip);
 
     /**
      * Returns the set of hosts whose location falls on the given connection point.
diff --git a/core/api/src/test/java/org/onlab/onos/net/TestDeviceParams.java b/core/api/src/test/java/org/onlab/onos/net/TestDeviceParams.java
index 7471a2d..d24e1c8 100644
--- a/core/api/src/test/java/org/onlab/onos/net/TestDeviceParams.java
+++ b/core/api/src/test/java/org/onlab/onos/net/TestDeviceParams.java
@@ -5,7 +5,7 @@
 import java.util.Set;
 
 import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -24,9 +24,9 @@
     protected static final MacAddress MAC2 = MacAddress.valueOf("00:22:00:00:00:02");
     protected static final VlanId VLAN1 = VlanId.vlanId((short) 11);
     protected static final VlanId VLAN2 = VlanId.vlanId((short) 22);
-    protected static final IpAddress IP1 = IpAddress.valueOf("10.0.0.1");
-    protected static final IpAddress IP2 = IpAddress.valueOf("10.0.0.2");
-    protected static final IpAddress IP3 = IpAddress.valueOf("10.0.0.3");
+    protected static final IpPrefix IP1 = IpPrefix.valueOf("10.0.0.1");
+    protected static final IpPrefix IP2 = IpPrefix.valueOf("10.0.0.2");
+    protected static final IpPrefix IP3 = IpPrefix.valueOf("10.0.0.3");
 
     protected static final PortNumber P1 = PortNumber.portNumber(100);
     protected static final PortNumber P2 = PortNumber.portNumber(200);
@@ -34,7 +34,7 @@
     protected static final HostId HID2 = HostId.hostId(MAC2, VLAN2);
     protected static final HostLocation LOC1 = new HostLocation(DID1, P1, 123L);
     protected static final HostLocation LOC2 = new HostLocation(DID2, P2, 123L);
-    protected static final Set<IpAddress> IPSET1 = Sets.newHashSet(IP1, IP2);
-    protected static final Set<IpAddress> IPSET2 = Sets.newHashSet(IP1, IP3);
+    protected static final Set<IpPrefix> IPSET1 = Sets.newHashSet(IP1, IP2);
+    protected static final Set<IpPrefix> IPSET2 = Sets.newHashSet(IP1, IP3);
 
 }
diff --git a/core/api/src/test/java/org/onlab/onos/net/host/DefualtHostDecriptionTest.java b/core/api/src/test/java/org/onlab/onos/net/host/DefualtHostDecriptionTest.java
index 6ce39f5..1b00be7 100644
--- a/core/api/src/test/java/org/onlab/onos/net/host/DefualtHostDecriptionTest.java
+++ b/core/api/src/test/java/org/onlab/onos/net/host/DefualtHostDecriptionTest.java
@@ -9,7 +9,7 @@
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.HostLocation;
 import org.onlab.onos.net.PortNumber;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -27,9 +27,9 @@
                 PortNumber.portNumber(100),
                 123L
             );
-    private static final Set<IpAddress> IPS = Sets.newHashSet(
-                IpAddress.valueOf("10.0.0.1"),
-                IpAddress.valueOf("10.0.0.2")
+    private static final Set<IpPrefix> IPS = Sets.newHashSet(
+                IpPrefix.valueOf("10.0.0.1"),
+                IpPrefix.valueOf("10.0.0.2")
             );
 
     @Test
diff --git a/core/api/src/test/java/org/onlab/onos/net/host/HostEventTest.java b/core/api/src/test/java/org/onlab/onos/net/host/HostEventTest.java
index 561b041..92a5718 100644
--- a/core/api/src/test/java/org/onlab/onos/net/host/HostEventTest.java
+++ b/core/api/src/test/java/org/onlab/onos/net/host/HostEventTest.java
@@ -11,7 +11,7 @@
 import org.onlab.onos.net.HostLocation;
 import org.onlab.onos.net.PortNumber;
 import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -27,9 +27,9 @@
                     PortNumber.portNumber(100),
                     123L
                 );
-        Set<IpAddress> ipset = Sets.newHashSet(
-                    IpAddress.valueOf("10.0.0.1"),
-                    IpAddress.valueOf("10.0.0.2")
+        Set<IpPrefix> ipset = Sets.newHashSet(
+                    IpPrefix.valueOf("10.0.0.1"),
+                    IpPrefix.valueOf("10.0.0.2")
                 );
         HostId hid = HostId.hostId(mac, vlan);
 
diff --git a/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java b/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java
index a8ec8bd..682e349 100644
--- a/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java
+++ b/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java
@@ -4,7 +4,7 @@
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.Host;
 import org.onlab.onos.net.HostId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -40,7 +40,7 @@
     }
 
     @Override
-    public Set<Host> getHostsByIp(IpAddress ip) {
+    public Set<Host> getHostsByIp(IpPrefix ip) {
         return null;
     }
 
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManager.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManager.java
index 9cf235b..109d238 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManager.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManager.java
@@ -23,7 +23,7 @@
 import org.onlab.onos.net.host.HostStore;
 import org.onlab.onos.net.provider.AbstractProviderRegistry;
 import org.onlab.onos.net.provider.AbstractProviderService;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 import org.slf4j.Logger;
@@ -100,7 +100,7 @@
     }
 
     @Override
-    public Set<Host> getHostsByIp(IpAddress ip) {
+    public Set<Host> getHostsByIp(IpPrefix ip) {
         checkNotNull(ip, "IP address cannot be null");
         return store.getHosts(ip);
     }
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostStore.java
index 1febb67..d540afb 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostStore.java
@@ -25,7 +25,7 @@
 import org.onlab.onos.net.host.HostEvent;
 import org.onlab.onos.net.host.HostStore;
 import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -166,7 +166,7 @@
     }
 
     @Override
-    public Set<Host> getHosts(IpAddress ip) {
+    public Set<Host> getHosts(IpPrefix ip) {
         Set<Host> ipset = new HashSet<>();
         for (Host h : hosts.values()) {
             if (h.ipAddresses().contains(ip)) {
diff --git a/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java b/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java
index 1ee61df..0ce38dc 100644
--- a/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java
+++ b/core/trivial/src/test/java/org/onlab/onos/net/trivial/host/impl/SimpleHostManagerTest.java
@@ -28,7 +28,7 @@
 import org.onlab.onos.net.host.HostProviderService;
 import org.onlab.onos.net.provider.AbstractProvider;
 import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -51,10 +51,10 @@
     private static final HostId HID1 = HostId.hostId(MAC1, VLAN1);
     private static final HostId HID2 = HostId.hostId(MAC2, VLAN1);
 
-    private static final IpAddress IP1 = IpAddress.valueOf("10.0.0.1");
-    private static final IpAddress IP2 = IpAddress.valueOf("10.0.0.2");
-    private static final Set<IpAddress> IPSET1 = Sets.newHashSet(IP1);
-    private static final Set<IpAddress> IPSET2 = Sets.newHashSet(IP2);
+    private static final IpPrefix IP1 = IpPrefix.valueOf("10.0.0.1");
+    private static final IpPrefix IP2 = IpPrefix.valueOf("10.0.0.2");
+    private static final Set<IpPrefix> IPSET1 = Sets.newHashSet(IP1);
+    private static final Set<IpPrefix> IPSET2 = Sets.newHashSet(IP2);
 
     private static final DeviceId DID1 = DeviceId.deviceId("of:001");
     private static final DeviceId DID2 = DeviceId.deviceId("of:002");
@@ -98,7 +98,7 @@
     }
 
     private void detect(HostId hid, MacAddress mac, VlanId vlan,
-            HostLocation loc, Set<IpAddress> ips) {
+            HostLocation loc, Set<IpPrefix> ips) {
         HostDescription descr = new DefaultHostDescription(mac, vlan, loc, ips);
         providerService.hostDetected(hid, descr);
         assertNotNull("host should be found", mgr.getHost(hid));
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
index 33b6205..ab01ab7 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
@@ -15,7 +15,7 @@
 import org.onlab.onos.net.flow.criteria.Criteria;
 import org.onlab.onos.net.flow.instructions.Instructions;
 import org.onlab.onos.openflow.controller.Dpid;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 import org.projectfloodlight.openflow.protocol.OFFlowRemoved;
@@ -120,20 +120,20 @@
                 OFActionSetNwDst nwdst = (OFActionSetNwDst) act;
                 IPv4Address di = nwdst.getNwAddr();
                 if (di.isCidrMask()) {
-                    builder.add(Instructions.modL3Dst(IpAddress.valueOf(di.getInt(),
+                    builder.add(Instructions.modL3Dst(IpPrefix.valueOf(di.getInt(),
                             di.asCidrMaskLength())));
                 } else {
-                    builder.add(Instructions.modL3Dst(IpAddress.valueOf(di.getInt())));
+                    builder.add(Instructions.modL3Dst(IpPrefix.valueOf(di.getInt())));
                 }
                 break;
             case SET_NW_SRC:
                 OFActionSetNwSrc nwsrc = (OFActionSetNwSrc) act;
                 IPv4Address si = nwsrc.getNwAddr();
                 if (si.isCidrMask()) {
-                    builder.add(Instructions.modL3Dst(IpAddress.valueOf(si.getInt(),
+                    builder.add(Instructions.modL3Dst(IpPrefix.valueOf(si.getInt(),
                             si.asCidrMaskLength())));
                 } else {
-                    builder.add(Instructions.modL3Dst(IpAddress.valueOf(si.getInt())));
+                    builder.add(Instructions.modL3Dst(IpPrefix.valueOf(si.getInt())));
                 }
                 break;
             case SET_TP_DST:
@@ -190,21 +190,21 @@
                 break;
             case IPV4_DST:
                 IPv4Address di = match.get(MatchField.IPV4_DST);
-                IpAddress dip;
+                IpPrefix dip;
                 if (di.isCidrMask()) {
-                    dip = IpAddress.valueOf(di.getInt(), di.asCidrMaskLength());
+                    dip = IpPrefix.valueOf(di.getInt(), di.asCidrMaskLength());
                 } else {
-                    dip = IpAddress.valueOf(di.getInt());
+                    dip = IpPrefix.valueOf(di.getInt());
                 }
                 builder.add(Criteria.matchIPDst(dip));
                 break;
             case IPV4_SRC:
                 IPv4Address si = match.get(MatchField.IPV4_SRC);
-                IpAddress sip;
+                IpPrefix sip;
                 if (si.isCidrMask()) {
-                    sip = IpAddress.valueOf(si.getInt(), si.asCidrMaskLength());
+                    sip = IpPrefix.valueOf(si.getInt(), si.asCidrMaskLength());
                 } else {
-                    sip = IpAddress.valueOf(si.getInt());
+                    sip = IpPrefix.valueOf(si.getInt());
                 }
                 builder.add(Criteria.matchIPSrc(sip));
                 break;
diff --git a/providers/openflow/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java b/providers/openflow/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
index 3fab4c7..d124f2a 100644
--- a/providers/openflow/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
+++ b/providers/openflow/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
@@ -31,7 +31,7 @@
 import org.onlab.onos.openflow.controller.PacketListener;
 import org.onlab.packet.ARP;
 import org.onlab.packet.Ethernet;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.onlab.packet.VlanId;
 import org.slf4j.Logger;
 
@@ -110,7 +110,7 @@
 
                 HostId hid = HostId.hostId(eth.getSourceMAC(), vlan);
                 ARP arp = (ARP) eth.getPayload();
-                Set<IpAddress> ips = newHashSet(IpAddress.valueOf(arp.getSenderProtocolAddress()));
+                Set<IpPrefix> ips = newHashSet(IpPrefix.valueOf(arp.getSenderProtocolAddress()));
                 HostDescription hdescr =
                         new DefaultHostDescription(eth.getSourceMAC(), vlan, hloc, ips);
                 providerService.hostDetected(hid, hdescr);
diff --git a/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java b/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java
index eb87d2a..e117ba6 100644
--- a/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java
+++ b/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java
@@ -36,7 +36,7 @@
 import org.onlab.onos.openflow.controller.RoleState;
 import org.onlab.packet.ARP;
 import org.onlab.packet.Ethernet;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
 import org.projectfloodlight.openflow.protocol.OFFactory;
 import org.projectfloodlight.openflow.protocol.OFMessage;
 import org.projectfloodlight.openflow.protocol.OFPacketIn;
@@ -113,10 +113,10 @@
         MacAddress mac2 = MacAddress.of("00:00:00:22:00:02");
 
         ARP arp = new ARP();
-        arp.setSenderProtocolAddress(IpAddress.ANY)
+        arp.setSenderProtocolAddress(IpPrefix.ANY)
         .setSenderHardwareAddress(mac1.getBytes())
         .setTargetHardwareAddress(mac2.getBytes())
-        .setTargetProtocolAddress(IpAddress.ANY)
+        .setTargetProtocolAddress(IpPrefix.ANY)
         .setHardwareType((short) 0)
         .setProtocolType((short) 0)
         .setHardwareAddressLength((byte) 6)
diff --git a/utils/misc/src/main/java/org/onlab/packet/IpAddress.java b/utils/misc/src/main/java/org/onlab/packet/IpPrefix.java
similarity index 85%
rename from utils/misc/src/main/java/org/onlab/packet/IpAddress.java
rename to utils/misc/src/main/java/org/onlab/packet/IpPrefix.java
index 73bb9c9..c73bf9a 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IpPrefix.java
@@ -5,7 +5,7 @@
 /**
  * A class representing an IPv4 address.
  */
-public final class IpAddress {
+public final class IpPrefix {
 
     // TODO a comparator for netmasks? E.g. for sorting by prefix match order.
 
@@ -31,13 +31,13 @@
     protected byte[] octets;
     protected int netmask;
 
-    private IpAddress(Version ver, byte[] octets, int netmask) {
+    private IpPrefix(Version ver, byte[] octets, int netmask) {
         this.version = ver;
         this.octets = Arrays.copyOf(octets, INET_LEN);
         this.netmask = netmask;
     }
 
-    private IpAddress(Version ver, byte[] octets) {
+    private IpPrefix(Version ver, byte[] octets) {
         this.version = ver;
         this.octets = Arrays.copyOf(octets, INET_LEN);
         this.netmask = DEFAULT_MASK;
@@ -49,8 +49,8 @@
      * @param address a byte array
      * @return an IP address
      */
-    public static IpAddress valueOf(byte [] address) {
-        return new IpAddress(Version.INET, address);
+    public static IpPrefix valueOf(byte [] address) {
+        return new IpPrefix(Version.INET, address);
     }
 
     /**
@@ -60,8 +60,8 @@
      * @param netmask the CIDR value subnet mask
      * @return an IP address
      */
-    public static IpAddress valueOf(byte [] address, int netmask) {
-        return new IpAddress(Version.INET, address, netmask);
+    public static IpPrefix valueOf(byte [] address, int netmask) {
+        return new IpPrefix(Version.INET, address, netmask);
     }
 
     /**
@@ -85,8 +85,8 @@
      * @param address an integer representing an IP value
      * @return an IP address
      */
-    public static IpAddress valueOf(int address) {
-        return new IpAddress(Version.INET, bytes(address));
+    public static IpPrefix valueOf(int address) {
+        return new IpPrefix(Version.INET, bytes(address));
     }
 
     /**
@@ -96,8 +96,8 @@
      * @param netmask the CIDR value subnet mask
      * @return an IP address
      */
-    public static IpAddress valueOf(int address, int netmask) {
-        return new IpAddress(Version.INET, bytes(address), netmask);
+    public static IpPrefix valueOf(int address, int netmask) {
+        return new IpPrefix(Version.INET, bytes(address), netmask);
     }
 
     /**
@@ -108,7 +108,7 @@
      * @param address a IP address in string form, e.g. "10.0.0.1", "10.0.0.1/24"
      * @return an IP address
      */
-    public static IpAddress valueOf(String address) {
+    public static IpPrefix valueOf(String address) {
 
         final String [] parts = address.split("\\/");
         if (parts.length > 2) {
@@ -135,7 +135,7 @@
         for (int i = 0; i < INET_LEN; i++) {
             bytes[i] = (byte) Short.parseShort(net[i], 10);
         }
-        return new IpAddress(Version.INET, bytes, mask);
+        return new IpPrefix(Version.INET, bytes, mask);
     }
 
     /**
@@ -185,8 +185,8 @@
      *
      * @return the subnet mask
      */
-    public IpAddress netmask() {
-        return new IpAddress(Version.INET, bytes(mask()));
+    public IpPrefix netmask() {
+        return new IpPrefix(Version.INET, bytes(mask()));
     }
 
     /**
@@ -196,9 +196,9 @@
      *
      * @return the network address or null
      */
-    public IpAddress network() {
+    public IpPrefix network() {
         if (netmask == DEFAULT_MASK) {
-            return new IpAddress(version, ANY, DEFAULT_MASK);
+            return new IpPrefix(version, ANY, DEFAULT_MASK);
         }
 
         byte [] net = new byte [4];
@@ -206,7 +206,7 @@
         for (int i = 0; i < INET_LEN; i++) {
             net[i] = (byte) (octets[i] & mask[i]);
         }
-        return new IpAddress(version, net, netmask);
+        return new IpPrefix(version, net, netmask);
     }
 
     /**
@@ -217,9 +217,9 @@
      *
      * @return the host address
      */
-    public IpAddress host() {
+    public IpPrefix host() {
         if (netmask == DEFAULT_MASK) {
-            new IpAddress(version, octets, netmask);
+            new IpPrefix(version, octets, netmask);
         }
 
         byte [] host = new byte [INET_LEN];
@@ -227,7 +227,7 @@
         for (int i = 0; i < INET_LEN; i++) {
             host[i] = (byte) (octets[i] & ~mask[i]);
         }
-        return new IpAddress(version, host, netmask);
+        return new IpPrefix(version, host, netmask);
     }
 
     public boolean isMasked() {
@@ -242,7 +242,7 @@
      * @return true if the other IP address is contained in this address'
      * network, otherwise false
      */
-    public boolean contains(IpAddress other) {
+    public boolean contains(IpPrefix other) {
         if (this.netmask <= other.netmask) {
             // Special case where they're both /32 addresses
             if (this.netmask == MAX_INET_MASK) {
@@ -250,8 +250,8 @@
             }
 
             // Mask the other address with our network mask
-            IpAddress otherMasked =
-                    IpAddress.valueOf(other.octets, netmask).network();
+            IpPrefix otherMasked =
+                    IpPrefix.valueOf(other.octets, netmask).network();
 
             return network().equals(otherMasked);
         }
@@ -279,7 +279,7 @@
         if (getClass() != obj.getClass()) {
             return false;
         }
-        IpAddress other = (IpAddress) obj;
+        IpPrefix other = (IpPrefix) obj;
         if (netmask != other.netmask) {
             return false;
         }
diff --git a/utils/misc/src/test/java/org/onlab/packet/IPAddressTest.java b/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java
similarity index 65%
rename from utils/misc/src/test/java/org/onlab/packet/IPAddressTest.java
rename to utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java
index d503229..f6bf6f1 100644
--- a/utils/misc/src/test/java/org/onlab/packet/IPAddressTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java
@@ -7,11 +7,11 @@
 import java.util.Arrays;
 
 import org.junit.Test;
-import org.onlab.packet.IpAddress.Version;
+import org.onlab.packet.IpPrefix.Version;
 
 import com.google.common.testing.EqualsTester;
 
-public class IPAddressTest {
+public class IpPrefixTest {
 
     private static final byte [] BYTES1 = new byte [] {0xa, 0x0, 0x0, 0xa};
     private static final byte [] BYTES2 = new byte [] {0xa, 0x0, 0x0, 0xb};
@@ -22,11 +22,11 @@
 
     @Test
     public void testEquality() {
-        IpAddress ip1 = IpAddress.valueOf(BYTES1);
-        IpAddress ip2 = IpAddress.valueOf(INTVAL1);
-        IpAddress ip3 = IpAddress.valueOf(BYTES2);
-        IpAddress ip4 = IpAddress.valueOf(INTVAL2);
-        IpAddress ip5 = IpAddress.valueOf(STRVAL);
+        IpPrefix ip1 = IpPrefix.valueOf(BYTES1);
+        IpPrefix ip2 = IpPrefix.valueOf(INTVAL1);
+        IpPrefix ip3 = IpPrefix.valueOf(BYTES2);
+        IpPrefix ip4 = IpPrefix.valueOf(INTVAL2);
+        IpPrefix ip5 = IpPrefix.valueOf(STRVAL);
 
         new EqualsTester().addEqualityGroup(ip1, ip2)
         .addEqualityGroup(ip3, ip4)
@@ -34,16 +34,16 @@
         .testEquals();
 
         // string conversions
-        IpAddress ip6 = IpAddress.valueOf(BYTES1, MASK);
-        IpAddress ip7 = IpAddress.valueOf("10.0.0.10/16");
-        IpAddress ip8 = IpAddress.valueOf(new byte [] {0xa, 0x0, 0x0, 0xc});
+        IpPrefix ip6 = IpPrefix.valueOf(BYTES1, MASK);
+        IpPrefix ip7 = IpPrefix.valueOf("10.0.0.10/16");
+        IpPrefix ip8 = IpPrefix.valueOf(new byte [] {0xa, 0x0, 0x0, 0xc});
         assertEquals("incorrect address conversion", ip6, ip7);
         assertEquals("incorrect address conversion", ip5, ip8);
     }
 
     @Test
     public void basics() {
-        IpAddress ip1 = IpAddress.valueOf(BYTES1, MASK);
+        IpPrefix ip1 = IpPrefix.valueOf(BYTES1, MASK);
         final byte [] bytes = new byte [] {0xa, 0x0, 0x0, 0xa};
 
         //check fields
@@ -57,29 +57,29 @@
     @Test
     public void netmasks() {
         // masked
-        IpAddress ip1 = IpAddress.valueOf(BYTES1, MASK);
+        IpPrefix ip1 = IpPrefix.valueOf(BYTES1, MASK);
 
-        IpAddress host = IpAddress.valueOf("0.0.0.10/16");
-        IpAddress network = IpAddress.valueOf("10.0.0.0/16");
+        IpPrefix host = IpPrefix.valueOf("0.0.0.10/16");
+        IpPrefix network = IpPrefix.valueOf("10.0.0.0/16");
         assertEquals("incorrect host address", host, ip1.host());
         assertEquals("incorrect network address", network, ip1.network());
         assertEquals("incorrect netmask", "255.255.0.0", ip1.netmask().toString());
 
         //unmasked
-        IpAddress ip2 = IpAddress.valueOf(BYTES1);
-        IpAddress umhost = IpAddress.valueOf("10.0.0.10/0");
-        IpAddress umnet = IpAddress.valueOf("0.0.0.0/0");
+        IpPrefix ip2 = IpPrefix.valueOf(BYTES1);
+        IpPrefix umhost = IpPrefix.valueOf("10.0.0.10/0");
+        IpPrefix umnet = IpPrefix.valueOf("0.0.0.0/0");
         assertEquals("incorrect host address", umhost, ip2.host());
         assertEquals("incorrect host address", umnet, ip2.network());
         assertTrue("incorrect netmask",
-                Arrays.equals(IpAddress.ANY, ip2.netmask().toOctets()));
+                Arrays.equals(IpPrefix.ANY, ip2.netmask().toOctets()));
     }
 
     @Test
     public void testContains() {
-        IpAddress slash31 = IpAddress.valueOf(BYTES1, 31);
-        IpAddress slash32 = IpAddress.valueOf(BYTES1, 32);
-        IpAddress differentSlash32 = IpAddress.valueOf(BYTES2, 32);
+        IpPrefix slash31 = IpPrefix.valueOf(BYTES1, 31);
+        IpPrefix slash32 = IpPrefix.valueOf(BYTES1, 32);
+        IpPrefix differentSlash32 = IpPrefix.valueOf(BYTES2, 32);
 
         assertTrue(slash31.contains(differentSlash32));
         assertFalse(differentSlash32.contains(slash31));
@@ -88,11 +88,11 @@
         assertFalse(slash32.contains(differentSlash32));
         assertFalse(differentSlash32.contains(slash32));
 
-        IpAddress zero = IpAddress.valueOf("0.0.0.0/0");
+        IpPrefix zero = IpPrefix.valueOf("0.0.0.0/0");
         assertTrue(zero.contains(differentSlash32));
         assertFalse(differentSlash32.contains(zero));
 
-        IpAddress slash8 = IpAddress.valueOf("10.0.0.0/8");
+        IpPrefix slash8 = IpPrefix.valueOf("10.0.0.0/8");
         assertTrue(slash8.contains(slash31));
         assertFalse(slash31.contains(slash8));
     }
diff --git a/utils/misc/src/test/java/org/onlab/packet/VLANIDTest.java b/utils/misc/src/test/java/org/onlab/packet/VlanIdTest.java
similarity index 97%
rename from utils/misc/src/test/java/org/onlab/packet/VLANIDTest.java
rename to utils/misc/src/test/java/org/onlab/packet/VlanIdTest.java
index 17d888c..dde9c3c 100644
--- a/utils/misc/src/test/java/org/onlab/packet/VLANIDTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/VlanIdTest.java
@@ -6,7 +6,7 @@
 
 import com.google.common.testing.EqualsTester;
 
-public class VLANIDTest {
+public class VlanIdTest {
 
     @Test
     public void testEquality() {