Vector cost proposed to TST on 2016-07-13

First part implemented: weight interface introduced and integrated, default weight implementation added.

Change-Id: Ia46f1b44139069aa171a3c13faf168351bd7cc56
diff --git a/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java b/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java
index c47ba56..b1c661c 100644
--- a/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java
+++ b/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java
@@ -56,7 +56,6 @@
 import org.onosproject.net.device.DeviceEvent;
 import org.onosproject.net.device.DeviceListener;
 import org.onosproject.net.device.DeviceServiceAdapter;
-import org.onosproject.net.flow.TrafficTreatment;
 import org.onosproject.net.host.HostDescription;
 import org.onosproject.net.host.HostProvider;
 import org.onosproject.net.host.HostProviderRegistry;
@@ -64,8 +63,7 @@
 import org.onosproject.net.host.HostServiceAdapter;
 import org.onosproject.net.packet.DefaultInboundPacket;
 import org.onosproject.net.packet.InboundPacket;
-import org.onosproject.net.packet.OutboundPacket;
-import org.onosproject.net.packet.PacketContext;
+import org.onosproject.net.packet.PacketContextAdapter;
 import org.onosproject.net.packet.PacketProcessor;
 import org.onosproject.net.packet.PacketServiceAdapter;
 import org.onosproject.net.provider.AbstractProviderService;
@@ -306,9 +304,9 @@
      * When receiving ARP, updates location and IP.
      */
     @Test
-    public void testReceiveArp() {
+    public void receiveArp() {
         testProcessor.process(new TestArpPacketContext(DEV1));
-        assertThat("testReceiveArp. One host description expected",
+        assertThat("receiveArp. One host description expected",
                 providerService.descriptions.size(), is(1));
         HostDescription descr = providerService.descriptions.get(0);
         assertThat(descr.location(), is(LOCATION));
@@ -321,9 +319,9 @@
      * When receiving IPv4, updates location only.
      */
     @Test
-    public void testReceiveIpv4() {
+    public void receiveIpv4() {
         testProcessor.process(new TestIpv4PacketContext(DEV1));
-        assertThat("testReceiveIpv4. One host description expected",
+        assertThat("receiveIpv4. One host description expected",
                 providerService.descriptions.size(), is(1));
         HostDescription descr = providerService.descriptions.get(0);
         assertThat(descr.location(), is(LOCATION));
@@ -337,10 +335,10 @@
      * When receiving DHCP ACK, update MAC, location of server and IP of client.
      */
     @Test
-    public void testReceiveDhcp() {
+    public void receiveDhcp() {
         // DHCP Request
         testProcessor.process(new TestDhcpRequestPacketContext(DEV1));
-        assertThat("testReceiveDhcpRequest. One host description expected",
+        assertThat("receiveDhcpRequest. One host description expected",
                 providerService.descriptions.size(), is(1));
         // Should learn the MAC and location of DHCP client
         HostDescription descr = providerService.descriptions.get(0);
@@ -351,7 +349,7 @@
 
         // DHCP Ack
         testProcessor.process(new TestDhcpAckPacketContext(DEV1));
-        assertThat("testReceiveDhcpAck. Two additional host descriptions expected",
+        assertThat("receiveDhcpAck. Two additional host descriptions expected",
                 providerService.descriptions.size(), is(3));
         // Should learn the IP of DHCP client
         HostDescription descr2 = providerService.descriptions.get(1);
@@ -373,9 +371,9 @@
      * When receiving NeighborAdvertisement, updates location and IP.
      */
     @Test
-    public void testReceiveNa() {
+    public void receiveNa() {
         testProcessor.process(new TestNaPacketContext(DEV4));
-        assertThat("testReceiveNa. One host description expected",
+        assertThat("receiveNa. One host description expected",
                 providerService.descriptions.size(), is(1));
         HostDescription descr = providerService.descriptions.get(0);
         assertThat(descr.location(), is(LOCATION2));
@@ -388,9 +386,9 @@
      * When receiving NeighborSolicitation, updates location and IP.
      */
     @Test
-    public void testReceiveNs() {
+    public void receiveNs() {
         testProcessor.process(new TestNsPacketContext(DEV4));
-        assertThat("testReceiveNs. One host description expected",
+        assertThat("receiveNs. One host description expected",
                 providerService.descriptions.size(), is(1));
         HostDescription descr = providerService.descriptions.get(0);
         assertThat(descr.location(), is(LOCATION2));
@@ -403,9 +401,9 @@
      * When receiving RouterAdvertisement, ignores it.
      */
     @Test
-    public void testReceivesRa() {
+    public void receivesRa() {
         testProcessor.process(new TestRAPacketContext(DEV4));
-        assertThat("testReceiveRa. No host description expected",
+        assertThat("receivesRa. No host description expected",
                 providerService.descriptions.size(), is(0));
     }
 
@@ -413,9 +411,9 @@
      * When receiving RouterSolicitation, ignores it.
      */
     @Test
-    public void testReceiveRs() {
+    public void receiveRs() {
         testProcessor.process(new TestRSPacketContext(DEV4));
-        assertThat("testReceiveRs. No host description expected",
+        assertThat("receiveRs. No host description expected",
                 providerService.descriptions.size(), is(0));
     }
 
@@ -423,9 +421,9 @@
      * When receiving Duplicate Address Detection (DAD), ignores it.
      */
     @Test
-    public void testReceiveDad() {
+    public void receiveDad() {
         testProcessor.process(new TestDadPacketContext(DEV4));
-        assertThat("testReceiveDad. No host description expected",
+        assertThat("receiveDad. No host description expected",
                 providerService.descriptions.size(), is(0));
     }
 
@@ -433,9 +431,9 @@
      * When receiving IPv6 multicast packet, ignores it.
      */
     @Test
-    public void testReceiveIpv6Multicast() {
+    public void receiveIpv6Multicast() {
         testProcessor.process(new TestIpv6McastPacketContext(DEV4));
-        assertThat("testReceiveIpv6Multicast. No host description expected",
+        assertThat("receiveIpv6Multicast. No host description expected",
                 providerService.descriptions.size(), is(0));
     }
 
@@ -443,9 +441,9 @@
      * When receiving IPv6 unicast packet, updates location only.
      */
     @Test
-    public void testReceiveIpv6Unicast() {
+    public void receiveIpv6Unicast() {
         testProcessor.process(new TestIpv6PacketContext(DEV4));
-        assertThat("testReceiveIpv6Unicast. One host description expected",
+        assertThat("receiveIpv6Unicast. One host description expected",
                 providerService.descriptions.size(), is(1));
         HostDescription descr = providerService.descriptions.get(0);
         assertThat(descr.location(), is(LOCATION2));
@@ -535,19 +533,15 @@
     /**
      * Generates ARP packet.
      */
-    private class TestArpPacketContext implements PacketContext {
+    private class TestArpPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestArpPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             ARP arp = new ARP();
             arp.setSenderProtocolAddress(IP)
@@ -566,49 +560,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates IPv4 Unicast packet.
      */
-    private class TestIpv4PacketContext implements PacketContext {
+    private class TestIpv4PacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestIpv4PacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             IPv4 ipv4 = new IPv4();
             ipv4.setDestinationAddress("10.0.0.1");
@@ -624,48 +589,19 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
     /**
      * Generates DHCP REQUEST packet.
      */
-    private class TestDhcpRequestPacketContext implements PacketContext {
+    private class TestDhcpRequestPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestDhcpRequestPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             byte[] dhcpMsgType = new byte[1];
             dhcpMsgType[0] = (byte) DHCPPacketType.DHCPREQUEST.getValue();
@@ -696,49 +632,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                     ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates DHCP ACK packet.
      */
-    private class TestDhcpAckPacketContext implements PacketContext {
+    private class TestDhcpAckPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestDhcpAckPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             byte[] dhcpMsgType = new byte[1];
             dhcpMsgType[0] = (byte) DHCPPacketType.DHCPACK.getValue();
@@ -770,49 +677,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                     ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates NeighborAdvertisement packet.
      */
-    private class TestNaPacketContext implements PacketContext {
+    private class TestNaPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestNaPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             NeighborAdvertisement na = new NeighborAdvertisement();
             ICMP6 icmp6 = new ICMP6();
@@ -832,49 +710,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates NeighborSolicitation packet.
      */
-    private class TestNsPacketContext implements PacketContext {
+    private class TestNsPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestNsPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             NeighborSolicitation ns = new NeighborSolicitation();
             ICMP6 icmp6 = new ICMP6();
@@ -894,49 +743,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates Duplicate Address Detection packet.
      */
-    private class TestDadPacketContext implements PacketContext {
+    private class TestDadPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestDadPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             NeighborSolicitation ns = new NeighborSolicitation();
             ICMP6 icmp6 = new ICMP6();
@@ -956,49 +776,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates Router Solicitation packet.
      */
-    private class TestRSPacketContext implements PacketContext {
+    private class TestRSPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestRSPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             RouterSolicitation ns = new RouterSolicitation();
             ICMP6 icmp6 = new ICMP6();
@@ -1018,49 +809,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates Router Advertisement packet.
      */
-    private class TestRAPacketContext implements PacketContext {
+    private class TestRAPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestRAPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             RouterAdvertisement ns = new RouterAdvertisement();
             ICMP6 icmp6 = new ICMP6();
@@ -1080,49 +842,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates IPv6 Multicast packet.
      */
-    private class TestIpv6McastPacketContext implements PacketContext {
+    private class TestIpv6McastPacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestIpv6McastPacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             IPv6 ipv6 = new IPv6();
             ipv6.setDestinationAddress(Ip6Address.valueOf("ff02::1").toOctets());
@@ -1138,49 +871,20 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     /**
      * Generates IPv6 Unicast packet.
      */
-    private class TestIpv6PacketContext implements PacketContext {
+    private class TestIpv6PacketContext extends PacketContextAdapter {
         private final String deviceId;
 
         public TestIpv6PacketContext(String deviceId) {
+            super(0, null, null, false);
             this.deviceId = deviceId;
         }
 
         @Override
-        public long time() {
-            return 0;
-        }
-
-        @Override
         public InboundPacket inPacket() {
             IPv6 ipv6 = new IPv6();
             ipv6.setDestinationAddress(Ip6Address.valueOf("1000::1").toOctets());
@@ -1196,31 +900,6 @@
             return new DefaultInboundPacket(receivedFrom, eth,
                                             ByteBuffer.wrap(eth.serialize()));
         }
-
-        @Override
-        public OutboundPacket outPacket() {
-            return null;
-        }
-
-        @Override
-        public TrafficTreatment.Builder treatmentBuilder() {
-            return null;
-        }
-
-        @Override
-        public void send() {
-
-        }
-
-        @Override
-        public boolean block() {
-            return false;
-        }
-
-        @Override
-        public boolean isHandled() {
-            return false;
-        }
     }
 
     private class TestDeviceService extends DeviceServiceAdapter {