Sketching out what link-state addition would look like; quite easy until we get to the distributed store.
Added unit tests to provide durable-nondurable transitions.
FIxed issue where link could be accidentally activated.
Renamed parameter.
Change-Id: I8aa19a6583ec50dbf28769995f0a8ea9be9a4daa
diff --git a/core/api/src/main/java/org/onlab/onos/net/link/DefaultLinkDescription.java b/core/api/src/main/java/org/onlab/onos/net/link/DefaultLinkDescription.java
index fc3f335..986eb0a 100644
--- a/core/api/src/main/java/org/onlab/onos/net/link/DefaultLinkDescription.java
+++ b/core/api/src/main/java/org/onlab/onos/net/link/DefaultLinkDescription.java
@@ -34,9 +34,9 @@
/**
* Creates a link description using the supplied information.
*
- * @param src link source
- * @param dst link destination
- * @param type link type
+ * @param src link source
+ * @param dst link destination
+ * @param type link type
* @param annotations optional key/value annotations
*/
public DefaultLinkDescription(ConnectPoint src, ConnectPoint dst,
@@ -64,9 +64,10 @@
@Override
public String toString() {
- return MoreObjects.toStringHelper("Link").add("src", src())
- .add("dst", dst())
- .add("type", type()).toString();
+ return MoreObjects.toStringHelper(this)
+ .add("src", src())
+ .add("dst", dst())
+ .add("type", type()).toString();
}
}
diff --git a/core/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java b/core/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
index 3343451..3078243 100644
--- a/core/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
+++ b/core/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
@@ -45,6 +45,5 @@
*/
Link.Type type();
-
// Add further link attributes
}
diff --git a/core/api/src/main/java/org/onlab/onos/net/link/LinkEvent.java b/core/api/src/main/java/org/onlab/onos/net/link/LinkEvent.java
index b164b9e..763e95e 100644
--- a/core/api/src/main/java/org/onlab/onos/net/link/LinkEvent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/link/LinkEvent.java
@@ -33,7 +33,7 @@
LINK_ADDED,
/**
- * Signifies that a link has been updated.
+ * Signifies that a link has been updated or changed state.
*/
LINK_UPDATED,
diff --git a/core/api/src/main/java/org/onlab/onos/net/link/LinkStore.java b/core/api/src/main/java/org/onlab/onos/net/link/LinkStore.java
index 95962e7..3af4f9f 100644
--- a/core/api/src/main/java/org/onlab/onos/net/link/LinkStore.java
+++ b/core/api/src/main/java/org/onlab/onos/net/link/LinkStore.java
@@ -95,6 +95,16 @@
LinkDescription linkDescription);
/**
+ * Removes the link, or marks it as inactive if the link is durable,
+ * based on the specified information.
+ *
+ * @param src link source
+ * @param dst link destination
+ * @return remove or update link event, or null if no change resulted
+ */
+ LinkEvent removeOrDownLink(ConnectPoint src, ConnectPoint dst);
+
+ /**
* Removes the link based on the specified information.
*
* @param src link source
@@ -103,4 +113,5 @@
*/
LinkEvent removeLink(ConnectPoint src, ConnectPoint dst);
+
}