Cleaned-up some javadocs and added some tests.
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/device/impl/package-info.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/device/impl/package-info.java
index a50e32d..bb18f3a 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/device/impl/package-info.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/device/impl/package-info.java
@@ -1,4 +1,4 @@
/**
- * Core subsystem for tracking infrastructure devices.
+ * Core subsystem for tracking global inventory of infrastructure devices.
*/
package org.onlab.onos.net.trivial.device.impl;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/package-info.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/package-info.java
new file mode 100644
index 0000000..061c2a8
--- /dev/null
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/flow/impl/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Core subsystem for tracking and manipulating global flow state.
+ */
+package org.onlab.onos.net.trivial.flow.impl;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/package-info.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/package-info.java
index 87a4a85..4dcb9ea 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/package-info.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/package-info.java
@@ -1,4 +1,4 @@
/**
- * Core subsystem for tracking edn-station hosts.
+ * Core subsystem for tracking global inventory of end-station hosts.
*/
package org.onlab.onos.net.trivial.host.impl;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/link/impl/package-info.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/link/impl/package-info.java
index 09279a7..a3a2031 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/link/impl/package-info.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/link/impl/package-info.java
@@ -1,4 +1,4 @@
/**
- * Core subsystem for tracking infrastructure links.
+ * Core subsystem for tracking global inventory of infrastructure links.
*/
package org.onlab.onos.net.trivial.link.impl;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/packet/impl/package-info.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/packet/impl/package-info.java
index 5471948..72563a2 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/packet/impl/package-info.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/packet/impl/package-info.java
@@ -1,4 +1,6 @@
/**
* Core subsystem for processing inbound packets and emitting outbound packets.
+ * Processing of inbound packets is always in the local context only, but
+ * emitting outbound packets allows for cluster-wide operation.
*/
package org.onlab.onos.net.trivial.packet.impl;
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java
index ef87867..7213497 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/DefaultTopology.java
@@ -142,6 +142,15 @@
return clusters.get(clusterId);
}
+ /**
+ * Returns the topology cluster that contains the given device.
+ *
+ * @param deviceId device identifier
+ * @return topology cluster
+ */
+ TopologyCluster getCluster(DeviceId deviceId) {
+ return clustersByDevice.get(deviceId);
+ }
/**
* Returns the set of cluster devices.
@@ -174,13 +183,13 @@
}
/**
- * Indicates whether the given point is part of a broadcast tree.
+ * Indicates whether the given point is part of a broadcast set.
*
* @param connectPoint connection point
- * @return true if in broadcast tree
+ * @return true if in broadcast set
*/
- boolean isInBroadcastTree(ConnectPoint connectPoint) {
- // Any non-infrastructure, i.e. edge points are assumed to be OK
+ boolean isBroadcastPoint(ConnectPoint connectPoint) {
+ // Any non-infrastructure, i.e. edge points are assumed to be OK.
if (!isInfrastructure(connectPoint)) {
return true;
}
@@ -191,13 +200,23 @@
throw new IllegalArgumentException("No cluster found for device " + connectPoint.deviceId());
}
- // If the broadcast tree is null or empty, or if the point explicitly
- // belongs to the broadcast tree points, return true;
+ // If the broadcast set is null or empty, or if the point explicitly
+ // belongs to it, return true;
Set<ConnectPoint> points = broadcastSets.get(cluster.id());
return points == null || points.isEmpty() || points.contains(connectPoint);
}
/**
+ * Returns the size of the cluster broadcast set.
+ *
+ * @param clusterId cluster identifier
+ * @return size of the cluster broadcast set
+ */
+ int broadcastSetSize(ClusterId clusterId) {
+ return broadcastSets.get(clusterId).size();
+ }
+
+ /**
* Returns the set of pre-computed shortest paths between source and
* destination devices.
*
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyStore.java
index b51ea53..59360c2 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/SimpleTopologyStore.java
@@ -144,7 +144,7 @@
* @return true if broadcast allowed; false otherwise
*/
boolean isBroadcastPoint(DefaultTopology topology, ConnectPoint connectPoint) {
- return topology.isInBroadcastTree(connectPoint);
+ return topology.isBroadcastPoint(connectPoint);
}
/**
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/package-info.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/package-info.java
index 770f38d..d6d162e 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/package-info.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/topology/impl/package-info.java
@@ -1,4 +1,4 @@
/**
- * Core subsystem for tracking consistent topology graph views.
+ * Core subsystem for tracking global & consistent topology graph views.
*/
package org.onlab.onos.net.trivial.topology.impl;