Use LinkTuple as identifier.

- Use LinkTuple as Identifier for
  - Link, LinkEvent
- Register LinkTuple to KryoFactory
- Fix mocked Link to return LinkTuple

Change-Id: Ie58f31d4b2c906bc2343e2414d06190828e7e5c9
diff --git a/src/main/java/net/onrc/onos/core/topology/Link.java b/src/main/java/net/onrc/onos/core/topology/Link.java
index f54ff51..80d450e 100644
--- a/src/main/java/net/onrc/onos/core/topology/Link.java
+++ b/src/main/java/net/onrc/onos/core/topology/Link.java
@@ -1,7 +1,7 @@
 package net.onrc.onos.core.topology;
 
 import net.onrc.onos.core.topology.web.serializers.LinkSerializer;
-
+import net.onrc.onos.core.util.LinkTuple;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 // TODO Everything returned by these interfaces must be either Unmodifiable view,
@@ -11,6 +11,14 @@
  */
 @JsonSerialize(using = LinkSerializer.class)
 public interface Link extends ITopologyElement, StringAttributes {
+
+    /**
+     * Gets a {@link LinkTuple} that identifies this link.
+     *
+     * @return a LinkTuple representing the Port
+     */
+    public LinkTuple getLinkTuple();
+
     /**
      * Gets the source switch for the link.
      *