Ayaka Koshibe

added VLANID construct

Change-Id: Ia58abb268d52639215f289052bbf8802992f98a6
...@@ -10,6 +10,7 @@ import java.util.Set; ...@@ -10,6 +10,7 @@ import java.util.Set;
10 import org.onlab.onos.net.provider.ProviderId; 10 import org.onlab.onos.net.provider.ProviderId;
11 import org.onlab.packet.IPAddress; 11 import org.onlab.packet.IPAddress;
12 import org.onlab.packet.MACAddress; 12 import org.onlab.packet.MACAddress;
13 +import org.onlab.packet.VLANID;
13 14
14 /** 15 /**
15 * A basic implementation of a Host. 16 * A basic implementation of a Host.
...@@ -17,12 +18,12 @@ import org.onlab.packet.MACAddress; ...@@ -17,12 +18,12 @@ import org.onlab.packet.MACAddress;
17 public class DefaultHost extends AbstractElement implements Host { 18 public class DefaultHost extends AbstractElement implements Host {
18 19
19 private final MACAddress mac; 20 private final MACAddress mac;
20 - private final short vlan; 21 + private final VLANID vlan;
21 private final HostLocation location; 22 private final HostLocation location;
22 private final Set<IPAddress> ips; 23 private final Set<IPAddress> ips;
23 24
24 - public DefaultHost(ProviderId providerId, ElementId id, MACAddress mac, 25 + public DefaultHost(ProviderId providerId, HostId id, MACAddress mac,
25 - short vlan, HostLocation loc, Set<IPAddress> ips) { 26 + VLANID vlan, HostLocation loc, Set<IPAddress> ips) {
26 super(providerId, id); 27 super(providerId, id);
27 this.mac = mac; 28 this.mac = mac;
28 this.vlan = vlan; 29 this.vlan = vlan;
...@@ -51,7 +52,7 @@ public class DefaultHost extends AbstractElement implements Host { ...@@ -51,7 +52,7 @@ public class DefaultHost extends AbstractElement implements Host {
51 } 52 }
52 53
53 @Override 54 @Override
54 - public short vlan() { 55 + public VLANID vlan() {
55 return vlan; 56 return vlan;
56 } 57 }
57 58
......
...@@ -2,6 +2,7 @@ package org.onlab.onos.net; ...@@ -2,6 +2,7 @@ package org.onlab.onos.net;
2 2
3 import org.onlab.packet.IPAddress; 3 import org.onlab.packet.IPAddress;
4 import org.onlab.packet.MACAddress; 4 import org.onlab.packet.MACAddress;
5 +import org.onlab.packet.VLANID;
5 6
6 import java.util.Set; 7 import java.util.Set;
7 8
...@@ -30,7 +31,7 @@ public interface Host extends Element { ...@@ -30,7 +31,7 @@ public interface Host extends Element {
30 * 31 *
31 * @return VLAN ID value 32 * @return VLAN ID value
32 */ 33 */
33 - short vlan(); 34 + VLANID vlan();
34 35
35 /** 36 /**
36 * Returns set of IP addresses currently bound to the host MAC address. 37 * Returns set of IP addresses currently bound to the host MAC address.
......
...@@ -8,17 +8,18 @@ import java.util.Set; ...@@ -8,17 +8,18 @@ import java.util.Set;
8 import org.onlab.onos.net.HostLocation; 8 import org.onlab.onos.net.HostLocation;
9 import org.onlab.packet.IPAddress; 9 import org.onlab.packet.IPAddress;
10 import org.onlab.packet.MACAddress; 10 import org.onlab.packet.MACAddress;
11 +import org.onlab.packet.VLANID;
11 12
12 import com.google.common.collect.ImmutableSet; 13 import com.google.common.collect.ImmutableSet;
13 14
14 public class DefaultHostDescription implements HostDescription { 15 public class DefaultHostDescription implements HostDescription {
15 16
16 private final MACAddress mac; 17 private final MACAddress mac;
17 - private final short vlan; 18 + private final VLANID vlan;
18 private final HostLocation location; 19 private final HostLocation location;
19 private final Set<IPAddress> ips; 20 private final Set<IPAddress> ips;
20 21
21 - public DefaultHostDescription(MACAddress mac, short vlan, 22 + public DefaultHostDescription(MACAddress mac, VLANID vlan,
22 HostLocation loc, Set<IPAddress> ips) { 23 HostLocation loc, Set<IPAddress> ips) {
23 this.mac = mac; 24 this.mac = mac;
24 this.vlan = vlan; 25 this.vlan = vlan;
...@@ -32,7 +33,7 @@ public class DefaultHostDescription implements HostDescription { ...@@ -32,7 +33,7 @@ public class DefaultHostDescription implements HostDescription {
32 } 33 }
33 34
34 @Override 35 @Override
35 - public short vlan() { 36 + public VLANID vlan() {
36 return vlan; 37 return vlan;
37 } 38 }
38 39
......
...@@ -6,6 +6,7 @@ import org.onlab.onos.net.Description; ...@@ -6,6 +6,7 @@ import org.onlab.onos.net.Description;
6 import org.onlab.onos.net.HostLocation; 6 import org.onlab.onos.net.HostLocation;
7 import org.onlab.packet.IPAddress; 7 import org.onlab.packet.IPAddress;
8 import org.onlab.packet.MACAddress; 8 import org.onlab.packet.MACAddress;
9 +import org.onlab.packet.VLANID;
9 10
10 /** 11 /**
11 * Information describing host and its location. 12 * Information describing host and its location.
...@@ -24,7 +25,7 @@ public interface HostDescription extends Description { ...@@ -24,7 +25,7 @@ public interface HostDescription extends Description {
24 * 25 *
25 * @return the VLAN ID value 26 * @return the VLAN ID value
26 */ 27 */
27 - short vlan(); 28 + VLANID vlan();
28 29
29 /** 30 /**
30 * Returns the location of the host on the network edge. 31 * Returns the location of the host on the network edge.
......
...@@ -6,6 +6,7 @@ import org.onlab.onos.net.Host; ...@@ -6,6 +6,7 @@ import org.onlab.onos.net.Host;
6 import org.onlab.onos.net.HostId; 6 import org.onlab.onos.net.HostId;
7 import org.onlab.packet.IPAddress; 7 import org.onlab.packet.IPAddress;
8 import org.onlab.packet.MACAddress; 8 import org.onlab.packet.MACAddress;
9 +import org.onlab.packet.VLANID;
9 10
10 import java.util.Set; 11 import java.util.Set;
11 12
...@@ -43,7 +44,7 @@ public interface HostService { ...@@ -43,7 +44,7 @@ public interface HostService {
43 * @return set of hosts in the given vlan id 44 * @return set of hosts in the given vlan id
44 */ 45 */
45 // FIXME: change long to VLanId 46 // FIXME: change long to VLanId
46 - Set<Host> getHostsByVlan(long vlanId); 47 + Set<Host> getHostsByVlan(VLANID vlanId);
47 48
48 /** 49 /**
49 * Returns the set of hosts that have the specified MAC address. 50 * Returns the set of hosts that have the specified MAC address.
......
...@@ -23,6 +23,7 @@ import org.onlab.onos.net.provider.AbstractProviderRegistry; ...@@ -23,6 +23,7 @@ import org.onlab.onos.net.provider.AbstractProviderRegistry;
23 import org.onlab.onos.net.provider.AbstractProviderService; 23 import org.onlab.onos.net.provider.AbstractProviderService;
24 import org.onlab.packet.IPAddress; 24 import org.onlab.packet.IPAddress;
25 import org.onlab.packet.MACAddress; 25 import org.onlab.packet.MACAddress;
26 +import org.onlab.packet.VLANID;
26 import org.slf4j.Logger; 27 import org.slf4j.Logger;
27 28
28 import java.util.Set; 29 import java.util.Set;
...@@ -85,7 +86,7 @@ public class SimpleHostManager ...@@ -85,7 +86,7 @@ public class SimpleHostManager
85 } 86 }
86 87
87 @Override 88 @Override
88 - public Set<Host> getHostsByVlan(long vlanId) { 89 + public Set<Host> getHostsByVlan(VLANID vlanId) {
89 return store.getHosts(vlanId); 90 return store.getHosts(vlanId);
90 } 91 }
91 92
......
...@@ -21,6 +21,7 @@ import org.onlab.onos.net.host.HostEvent; ...@@ -21,6 +21,7 @@ import org.onlab.onos.net.host.HostEvent;
21 import org.onlab.onos.net.provider.ProviderId; 21 import org.onlab.onos.net.provider.ProviderId;
22 import org.onlab.packet.IPAddress; 22 import org.onlab.packet.IPAddress;
23 import org.onlab.packet.MACAddress; 23 import org.onlab.packet.MACAddress;
24 +import org.onlab.packet.VLANID;
24 25
25 import com.google.common.collect.HashMultimap; 26 import com.google.common.collect.HashMultimap;
26 import com.google.common.collect.ImmutableSet; 27 import com.google.common.collect.ImmutableSet;
...@@ -149,10 +150,10 @@ public class SimpleHostStore { ...@@ -149,10 +150,10 @@ public class SimpleHostStore {
149 * @param vlanId vlan id 150 * @param vlanId vlan id
150 * @return set of hosts in the vlan 151 * @return set of hosts in the vlan
151 */ 152 */
152 - Set<Host> getHosts(long vlanId) { 153 + Set<Host> getHosts(VLANID vlanId) {
153 Set<Host> vlanset = new HashSet<Host>(); 154 Set<Host> vlanset = new HashSet<Host>();
154 for (Host h : hosts.values()) { 155 for (Host h : hosts.values()) {
155 - if (h.vlan() == vlanId) { 156 + if (h.vlan().equals(vlanId)) {
156 vlanset.add(h); 157 vlanset.add(h);
157 } 158 }
158 } 159 }
......
...@@ -10,7 +10,7 @@ public class IPAddress { ...@@ -10,7 +10,7 @@ public class IPAddress {
10 //IP Versions 10 //IP Versions
11 public enum Version { INET, INET6 }; 11 public enum Version { INET, INET6 };
12 12
13 - //lengths of addresses, in bytes 13 + //lengths of address, in bytes
14 public static final int INET_LEN = 4; 14 public static final int INET_LEN = 4;
15 public static final int INET6_LEN = 6; 15 public static final int INET6_LEN = 6;
16 16
......
1 +package org.onlab.packet;
2 +
3 +/**
4 + * Representation of a VLAN ID.
5 + */
6 +public class VLANID {
7 + // A VLAN ID is 12 bits, short is close
8 + private final short value;
9 +
10 + public VLANID(short value) {
11 + this.value = value;
12 + }
13 +
14 + public short toShort() {
15 + return this.value;
16 + }
17 +
18 + @Override
19 + public boolean equals(Object obj) {
20 + if (this == obj) {
21 + return true;
22 + }
23 +
24 + if (obj instanceof VLANID) {
25 + return true;
26 + }
27 +
28 + VLANID other = (VLANID) obj;
29 + if (this.value == other.value) {
30 + return true;
31 + }
32 +
33 + return false;
34 + }
35 +
36 + @Override
37 + public int hashCode() {
38 + return this.value;
39 + }
40 +}
41 +