Showing
2 changed files
with
40 additions
and
1 deletions
1 | package org.onlab.onos.net; | 1 | package org.onlab.onos.net; |
2 | 2 | ||
3 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
4 | + | ||
5 | +import java.util.Collections; | ||
3 | import java.util.Objects; | 6 | import java.util.Objects; |
7 | +import java.util.Set; | ||
4 | 8 | ||
5 | -import static com.google.common.base.MoreObjects.toStringHelper; | 9 | +import org.onlab.packet.IpAddress; |
6 | 10 | ||
7 | /** | 11 | /** |
8 | * Default port implementation. | 12 | * Default port implementation. |
... | @@ -13,6 +17,9 @@ public class DefaultPort implements Port { | ... | @@ -13,6 +17,9 @@ public class DefaultPort implements Port { |
13 | private final PortNumber number; | 17 | private final PortNumber number; |
14 | private final boolean isEnabled; | 18 | private final boolean isEnabled; |
15 | 19 | ||
20 | + // Attributes | ||
21 | + private final Set<IpAddress> ipAddresses; | ||
22 | + | ||
16 | /** | 23 | /** |
17 | * Creates a network element attributed to the specified provider. | 24 | * Creates a network element attributed to the specified provider. |
18 | * | 25 | * |
... | @@ -22,9 +29,24 @@ public class DefaultPort implements Port { | ... | @@ -22,9 +29,24 @@ public class DefaultPort implements Port { |
22 | */ | 29 | */ |
23 | public DefaultPort(Element element, PortNumber number, | 30 | public DefaultPort(Element element, PortNumber number, |
24 | boolean isEnabled) { | 31 | boolean isEnabled) { |
32 | + this(element, number, isEnabled, null); | ||
33 | + } | ||
34 | + | ||
35 | + /** | ||
36 | + * Creates a network element attributed to the specified provider. | ||
37 | + * | ||
38 | + * @param element parent network element | ||
39 | + * @param number port number | ||
40 | + * @param isEnabled indicator whether the port is up and active | ||
41 | + * @param ipAddresses set of IP addresses assigned to the port | ||
42 | + */ | ||
43 | + public DefaultPort(Element element, PortNumber number, | ||
44 | + boolean isEnabled, Set<IpAddress> ipAddresses) { | ||
25 | this.element = element; | 45 | this.element = element; |
26 | this.number = number; | 46 | this.number = number; |
27 | this.isEnabled = isEnabled; | 47 | this.isEnabled = isEnabled; |
48 | + this.ipAddresses = (ipAddresses == null) ? null : | ||
49 | + Collections.unmodifiableSet(ipAddresses); | ||
28 | } | 50 | } |
29 | 51 | ||
30 | @Override | 52 | @Override |
... | @@ -67,4 +89,9 @@ public class DefaultPort implements Port { | ... | @@ -67,4 +89,9 @@ public class DefaultPort implements Port { |
67 | return element; | 89 | return element; |
68 | } | 90 | } |
69 | 91 | ||
92 | + @Override | ||
93 | + public Set<IpAddress> ipAddresses() { | ||
94 | + return ipAddresses; | ||
95 | + } | ||
96 | + | ||
70 | } | 97 | } | ... | ... |
1 | package org.onlab.onos.net; | 1 | package org.onlab.onos.net; |
2 | 2 | ||
3 | +import java.util.Set; | ||
4 | + | ||
5 | +import org.onlab.packet.IpAddress; | ||
6 | + | ||
3 | /** | 7 | /** |
4 | * Abstraction of a network port. | 8 | * Abstraction of a network port. |
5 | */ | 9 | */ |
... | @@ -28,4 +32,12 @@ public interface Port { | ... | @@ -28,4 +32,12 @@ public interface Port { |
28 | 32 | ||
29 | // set of port attributes | 33 | // set of port attributes |
30 | 34 | ||
35 | + /** | ||
36 | + * Returns the set of IP addresses that are logically configured on this | ||
37 | + * port. | ||
38 | + * | ||
39 | + * @return the set of IP addresses configured on the port. The set is empty | ||
40 | + * if no addresses are configured. | ||
41 | + */ | ||
42 | + Set<IpAddress> ipAddresses(); | ||
31 | } | 43 | } | ... | ... |
-
Please register or login to post a comment