diff --git a/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java b/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java
index 481d7c1..d620fed 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java
@@ -38,7 +38,9 @@
      *
      * @param addresses address object containing addresses to add and the port
      * to add them to
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     void bindAddressesToPort(PortAddresses addresses);
 
     /**
@@ -47,14 +49,18 @@
      *
      * @param portAddresses set of addresses to remove and port to remove them
      * from
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     void unbindAddressesFromPort(PortAddresses portAddresses);
 
     /**
      * Removes all address information for the given connection point.
      *
      * @param connectPoint the connection point to remove address information
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     void clearAddresses(ConnectPoint connectPoint);
 
 }
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostStore.java b/core/api/src/main/java/org/onosproject/net/host/HostStore.java
index 4d3b707..ca11a94 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostStore.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostStore.java
@@ -15,17 +15,17 @@
  */
 package org.onosproject.net.host;
 
-import java.util.Set;
-
+import org.onlab.packet.IpAddress;
+import org.onlab.packet.MacAddress;
+import org.onlab.packet.VlanId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Host;
 import org.onosproject.net.HostId;
 import org.onosproject.net.provider.ProviderId;
 import org.onosproject.store.Store;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.MacAddress;
-import org.onlab.packet.VlanId;
+
+import java.util.Set;
 
 /**
  * Manages inventory of end-station hosts; not intended for direct use.
@@ -120,7 +120,9 @@
      * information is added to any previously held information for the port.
      *
      * @param addresses the port and address information
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     void updateAddressBindings(PortAddresses addresses);
 
     /**
@@ -128,7 +130,9 @@
      * a port.
      *
      * @param addresses the port and address information
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     void removeAddressBindings(PortAddresses addresses);
 
     /**
@@ -136,14 +140,18 @@
      * point.
      *
      * @param connectPoint the connection point
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     void clearAddressBindings(ConnectPoint connectPoint);
 
     /**
      * Returns the address bindings stored for all connection points.
      *
      * @return the set of address bindings
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     Set<PortAddresses> getAddressBindings();
 
     /**
@@ -152,6 +160,8 @@
      * @param connectPoint the connection point to return address information
      *                     for
      * @return address information for the connection point
+     * @deprecated in Drake release: address info now stored in InterfaceService
      */
+    @Deprecated
     Set<PortAddresses> getAddressBindingsForPort(ConnectPoint connectPoint);
 }
