diff --git a/core/api/src/main/java/org/onosproject/net/mcast/McastEvent.java b/core/api/src/main/java/org/onosproject/net/mcast/McastEvent.java
index 0dab14a..1e1dd95 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/McastEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/McastEvent.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.net.mcast;
 
-import com.google.common.annotations.Beta;
 import org.onosproject.event.AbstractEvent;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
@@ -23,8 +22,10 @@
 /**
  * An entity representing a multicast event. Event either add or remove
  * sinks or sources.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
-@Beta
+@Deprecated
 public class McastEvent extends AbstractEvent<McastEvent.Type, McastRouteInfo> {
 
 
diff --git a/core/api/src/main/java/org/onosproject/net/mcast/McastListener.java b/core/api/src/main/java/org/onosproject/net/mcast/McastListener.java
index 3ee9a0b..c233fb4 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/McastListener.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/McastListener.java
@@ -15,12 +15,13 @@
  */
 package org.onosproject.net.mcast;
 
-import com.google.common.annotations.Beta;
 import org.onosproject.event.EventListener;
 
 /**
  * A listener interface for multicast events.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
-@Beta
+@Deprecated
 public interface McastListener extends EventListener<McastEvent> {
 }
diff --git a/core/api/src/main/java/org/onosproject/net/mcast/McastRoute.java b/core/api/src/main/java/org/onosproject/net/mcast/McastRoute.java
index 8b24a2d..b8a83c7 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/McastRoute.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/McastRoute.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.net.mcast;
 
-import com.google.common.annotations.Beta;
 import com.google.common.base.Objects;
 import org.onlab.packet.IpAddress;
 
@@ -25,8 +24,10 @@
 /**
  * An entity representing a multicast route consisting of a source
  * and a multicast group address.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
-@Beta
+@Deprecated
 public class McastRoute {
 
     public enum Type {
diff --git a/core/api/src/main/java/org/onosproject/net/mcast/McastRouteInfo.java b/core/api/src/main/java/org/onosproject/net/mcast/McastRouteInfo.java
index ffa0803..20a0fb2 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/McastRouteInfo.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/McastRouteInfo.java
@@ -27,7 +27,11 @@
 
 /**
  * Multicast information as stored in the store.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
+
+@Deprecated
 public final class McastRouteInfo {
 
     private static final String ROUTE_NOT_NULL = "Route cannot be null";
diff --git a/core/api/src/main/java/org/onosproject/net/mcast/McastStore.java b/core/api/src/main/java/org/onosproject/net/mcast/McastStore.java
index b6d987b..c9c48fb 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/McastStore.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/McastStore.java
@@ -22,7 +22,11 @@
 
 /**
  * Entity responsible for storing multicast state information.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
+
+@Deprecated
 public interface McastStore extends Store<McastEvent, McastStoreDelegate> {
 
     enum Type {
diff --git a/core/api/src/main/java/org/onosproject/net/mcast/McastStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/mcast/McastStoreDelegate.java
index 638a3f3..1bfd278 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/McastStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/McastStoreDelegate.java
@@ -20,6 +20,10 @@
 
 /**
  * Mcast store delegate abstraction.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
+
+@Deprecated
 public interface McastStoreDelegate extends StoreDelegate<McastEvent> {
 }
diff --git a/core/api/src/main/java/org/onosproject/net/mcast/MulticastRouteService.java b/core/api/src/main/java/org/onosproject/net/mcast/MulticastRouteService.java
index f302c8b..e67b10a 100644
--- a/core/api/src/main/java/org/onosproject/net/mcast/MulticastRouteService.java
+++ b/core/api/src/main/java/org/onosproject/net/mcast/MulticastRouteService.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.net.mcast;
 
-import com.google.common.annotations.Beta;
 import org.onosproject.event.ListenerService;
 import org.onosproject.net.ConnectPoint;
 
@@ -23,8 +22,10 @@
 
 /**
  * A service interface for maintaining multicast information.
+ *
+ * @deprecated in 1.11 ("Loon") release. To be moved into an app.
  */
-@Beta
+@Deprecated
 public interface MulticastRouteService
         extends ListenerService<McastEvent, McastListener> {
 
