diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java b/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java
index 4fa6817..10cb3ce 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/TunnelConfig.java
@@ -25,15 +25,6 @@
 public interface TunnelConfig extends HandlerBehaviour {
 
     /**
-     * Creates a tunnel on this device.
-     *
-     * @param tunnel tunnel descriptor
-     * @deprecated 1.3.0 Drake Release
-     */
-    @Deprecated
-    void createTunnel(TunnelDescription tunnel);
-
-    /**
      * Creates a tunnel interface on a given bridge of this device.
      *
      * @param bridgeName bridge name
diff --git a/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java
index 455c3ab..e2bbab5 100644
--- a/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java
+++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java
@@ -48,24 +48,6 @@
     private static final String OPTION_REMOTE_IP = "remote_ip";
 
     @Override
-    public void createTunnel(TunnelDescription tunnel) {
-        DriverHandler handler = handler();
-        OvsdbClientService ovsdbNode = getOvsdbNode(handler);
-        IpTunnelEndPoint ipSrc = IpTunnelEndPoint.ipTunnelPoint(IpAddress
-                .valueOf(DEFAULT_ADDRESS));
-        IpTunnelEndPoint ipDst = IpTunnelEndPoint.ipTunnelPoint(IpAddress
-                .valueOf(DEFAULT_ADDRESS));
-        if (tunnel.src() instanceof IpTunnelEndPoint) {
-            ipSrc = (IpTunnelEndPoint) tunnel.src();
-        }
-        if (tunnel.dst() instanceof IpTunnelEndPoint) {
-            ipDst = (IpTunnelEndPoint) tunnel.dst();
-        }
-        //Even if source point ip or destination point ip equals 0:0:0:0, it is still work-in-progress.
-        ovsdbNode.createTunnel(ipSrc.ip(), ipDst.ip());
-    }
-
-    @Override
     public boolean createTunnelInterface(BridgeName bridgeName, TunnelDescription tunnel) {
         Map<String, String> options = ((DefaultAnnotations) tunnel.annotations()).asMap();
         if (tunnel.src() != null) {
