diff --git a/core/api/src/main/java/org/onosproject/net/ConnectPoint.java b/core/api/src/main/java/org/onosproject/net/ConnectPoint.java
index 9998a2f..c2959df 100644
--- a/core/api/src/main/java/org/onosproject/net/ConnectPoint.java
+++ b/core/api/src/main/java/org/onosproject/net/ConnectPoint.java
@@ -144,6 +144,23 @@
                                 PortNumber.portNumber(string.substring(lastSlash + 1, string.length())));
     }
 
+    /**
+     * Parse a device connect point from a string.
+     * The connect point should be in the same format as toString output.
+     *
+     * @param string string to parse
+     * @return a ConnectPoint based on the information in the string.
+     */
+    public static ConnectPoint fromString(String string) {
+        checkNotNull(string);
+        String[] splitted = string.split("/");
+        checkArgument(splitted.length == 2,
+                "Connect point must be in \"deviceUri/portNumber\" format");
+
+        return new ConnectPoint(DeviceId.deviceId(splitted[0]),
+                PortNumber.fromString(splitted[1]));
+    }
+
     @Override
     public int hashCode() {
         return Objects.hash(elementId, portNumber);
diff --git a/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java b/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
index ff21fd8..f823093 100644
--- a/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
+++ b/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
@@ -71,6 +71,17 @@
         expectDeviceParseException("of:0011223344556677/word");
     }
 
+    @Test
+    public void testParseFromString() {
+        String cp = "netconf:127.0.0.1/[TYPE](1)";
+
+        ConnectPoint connectPoint = ConnectPoint.fromString(cp);
+        assertEquals("netconf:127.0.0.1", connectPoint.deviceId().toString());
+        assertEquals("[TYPE](1)", connectPoint.port().toString());
+        assertEquals(connectPoint, ConnectPoint.fromString(connectPoint.toString()));
+
+    }
+
     /**
      * Parse a device connect point and expect an exception to be thrown.
      *
