diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfigurationService.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfigurationService.java
index f8ee21b..45316bd 100644
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfigurationService.java
+++ b/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfigurationService.java
@@ -74,15 +74,6 @@
     boolean isIpPrefixLocal(IpPrefix ipPrefix);
 
     /**
-     * Retrieves the entire set of interfaces in the network.
-     *
-     * @return the set of interfaces
-     * @deprecated in Drake release - use InterfaceService instead
-     */
-    @Deprecated
-    Set<Interface> getInterfaces();
-
-    /**
      * Retrieves the entire set of connect points connected to BGP peers in the
      * network.
      *
@@ -91,27 +82,6 @@
     Set<ConnectPoint> getBgpPeerConnectPoints();
 
     /**
-     * Retrieves the interface associated with the given connect point.
-     *
-     * @param connectPoint the connect point to retrieve interface information
-     * for
-     * @return the interface
-     * @deprecated in Drake release - use InterfaceService instead
-     */
-    @Deprecated
-    Interface getInterface(ConnectPoint connectPoint);
-
-    /**
-     * Retrieves the interface associated with the given IP address.
-     *
-     * @param ip IP address of the interface
-     * @return the interface
-     * @deprecated in Drake release - use InterfaceService instead
-     */
-    @Deprecated
-    Interface getInterface(IpAddress ip);
-
-    /**
      * Retrieves the interface that matches the given IP address. Matching
      * means that the IP address is in one of the interface's assigned subnets.
      *
diff --git a/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java b/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
index 3fea426..0917d75 100644
--- a/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
+++ b/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
@@ -196,11 +196,6 @@
     }
 
     @Override
-    public Set<Interface> getInterfaces() {
-        return Collections.emptySet();
-    }
-
-    @Override
     public Set<ConnectPoint> getBgpPeerConnectPoints() {
         // TODO perhaps cache this result in future
         ApplicationId routerAppId = coreService.getAppId(Router.ROUTER_APP_ID);
@@ -222,16 +217,6 @@
     }
 
     @Override
-    public Interface getInterface(ConnectPoint connectPoint) {
-        return null;
-    }
-
-    @Override
-    public Interface getInterface(IpAddress ip) {
-        return null;
-    }
-
-    @Override
     public Interface getMatchingInterface(IpAddress ipAddress) {
         return null;
     }
