diff --git a/src/main/java/net/onrc/onos/core/topology/PortImpl.java b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
index 52dbe47..f022438 100644
--- a/src/main/java/net/onrc/onos/core/topology/PortImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
@@ -1,5 +1,6 @@
 package net.onrc.onos.core.topology;
 
+import java.util.Collection;
 import java.util.Map;
 
 import org.apache.commons.lang.Validate;
@@ -139,6 +140,26 @@
     }
 
     @Override
+    public Link getOutgoingLink(String type) {
+        topology.acquireReadLock();
+        try {
+            return topology.getOutgoingLink(asSwitchPort(), type);
+        } finally {
+            topology.releaseReadLock();
+        }
+    }
+
+    @Override
+    public Collection<Link> getOutgoingLinks() {
+        topology.acquireReadLock();
+        try {
+            return topology.getOutgoingLinks(asSwitchPort());
+        } finally {
+            topology.releaseReadLock();
+        }
+    }
+
+    @Override
     public Link getIncomingLink() {
         topology.acquireReadLock();
         try {
@@ -149,6 +170,26 @@
     }
 
     @Override
+    public Link getIncomingLink(String type) {
+        topology.acquireReadLock();
+        try {
+            return topology.getIncomingLink(asSwitchPort(), type);
+        } finally {
+            topology.releaseReadLock();
+        }
+    }
+
+    @Override
+    public Collection<Link> getIncomingLinks() {
+        topology.acquireReadLock();
+        try {
+            return topology.getIncomingLinks(asSwitchPort());
+        } finally {
+            topology.releaseReadLock();
+        }
+    }
+
+    @Override
     public Iterable<Device> getDevices() {
         topology.acquireReadLock();
         try {
