diff --git a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpController.java b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpController.java
index a8520ce..4620d18 100644
--- a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpController.java
+++ b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpController.java
@@ -151,6 +151,27 @@
     Set<BgpLinkListener> linkListener();
 
     /**
+     * Register a listener for BGP Prefix message events.
+     *
+     * @param listener the listener to notify
+     */
+    void addPrefixListener(BgpPrefixListener listener);
+
+    /**
+     * Unregister a listener for BGP Prefix message events.
+     *
+     * @param listener the listener to unregister
+     */
+    void removePrefixListener(BgpPrefixListener listener);
+
+    /**
+     * Returns set of BGP prefix listeners.
+     *
+     * @return set of BGP prefix listeners
+     */
+    Set<BgpPrefixListener> prefixListener();
+
+    /**
      * Stores the exceptions occurred during an active session.
      *
      * @param peerId BGP peer id
diff --git a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpPrefixListener.java b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpPrefixListener.java
new file mode 100644
index 0000000..c047921
--- /dev/null
+++ b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpPrefixListener.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2019-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.onosproject.bgp.controller;
+
+import org.onosproject.bgpio.exceptions.BgpParseException;
+import org.onosproject.bgpio.protocol.linkstate.BgpPrefixIPv4LSNlriVer4;
+import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetails;
+
+/**
+ * Allows for providers interested in bgp prefix events to be notified.
+ */
+public interface BgpPrefixListener {
+
+    /**
+     * Notify that prefix was added or updated.
+     *
+     * @param prefixNlri BGP prefix NLRI
+     * @param details path attributes and NLRI information
+     * @throws BgpParseException BGP parse exception
+     */
+    void addPrefix(BgpPrefixIPv4LSNlriVer4 prefixNlri, PathAttrNlriDetails details) throws BgpParseException;
+
+    /**
+     * Notify that prefix was removed.
+     *
+     * @param prefixNlri BGP prefix NLRI
+     * @throws BgpParseException BGP parse exception
+     */
+    void deletePrefix(BgpPrefixIPv4LSNlriVer4 prefixNlri) throws BgpParseException;
+}
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpControllerImpl.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpControllerImpl.java
index 804fb80..e23b838 100644
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpControllerImpl.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpControllerImpl.java
@@ -24,6 +24,7 @@
 import org.onosproject.bgp.controller.BgpNodeListener;
 import org.onosproject.bgp.controller.BgpPeer;
 import org.onosproject.bgp.controller.BgpPeerManager;
+import org.onosproject.bgp.controller.BgpPrefixListener;
 import org.onosproject.bgp.controller.BgpRouteListener;
 import org.onosproject.bgpio.exceptions.BgpParseException;
 import org.onosproject.bgpio.protocol.BgpMessage;
@@ -62,6 +63,7 @@
 
     protected Set<BgpNodeListener> bgpNodeListener = new CopyOnWriteArraySet<>();
     protected Set<BgpLinkListener> bgpLinkListener = new CopyOnWriteArraySet<>();
+    protected Set<BgpPrefixListener> bgpPrefixListener = new CopyOnWriteArraySet<>();
     protected BgpController bgpController;
     private BgpConfig bgpconfig = new BgpConfig(this);
     private List<String> activeExceptionList = new LinkedList();
@@ -366,4 +368,19 @@
     public Set<BgpLinkListener> linkListener() {
         return bgpLinkListener;
     }
+
+    @Override
+    public void addPrefixListener(BgpPrefixListener listener) {
+        bgpPrefixListener.add(listener);
+    }
+
+    @Override
+    public void removePrefixListener(BgpPrefixListener listener) {
+        bgpPrefixListener.remove(listener);
+    }
+
+    @Override
+    public Set<BgpPrefixListener> prefixListener() {
+        return bgpPrefixListener;
+    }
 }
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpLocalRibImpl.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpLocalRibImpl.java
index ece0933..c66b6e4 100644
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpLocalRibImpl.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpLocalRibImpl.java
@@ -14,12 +14,12 @@
 package org.onosproject.bgp.controller.impl;
 
 import com.google.common.base.MoreObjects;
-
 import org.onosproject.bgp.controller.BgpController;
 import org.onosproject.bgp.controller.BgpId;
 import org.onosproject.bgp.controller.BgpLinkListener;
 import org.onosproject.bgp.controller.BgpLocalRib;
 import org.onosproject.bgp.controller.BgpNodeListener;
+import org.onosproject.bgp.controller.BgpPrefixListener;
 import org.onosproject.bgp.controller.BgpSessionInfo;
 import org.onosproject.bgpio.exceptions.BgpParseException;
 import org.onosproject.bgpio.protocol.BgpLSNlri;
@@ -183,10 +183,16 @@
                 decisionResult = selectionAlgo.compare(prefixTree.get(prefixIdentifier), detailsLocRib);
                 if (decisionResult <= 0) {
                     prefixTree.replace(prefixIdentifier, detailsLocRib);
+                    for (BgpPrefixListener l : bgpController.prefixListener()) {
+                        l.addPrefix((BgpPrefixIPv4LSNlriVer4) nlri, details);
+                    }
                     log.debug("Local RIB update prefix: {}", detailsLocRib.toString());
                 }
             } else {
                 prefixTree.put(prefixIdentifier, detailsLocRib);
+                for (BgpPrefixListener l : bgpController.prefixListener()) {
+                    l.addPrefix((BgpPrefixIPv4LSNlriVer4) nlri, details);
+                }
                 log.debug("Local RIB add prefix: {}", detailsLocRib.toString());
             }
         }
@@ -397,6 +403,9 @@
         BgpPrefixLSIdentifier prefixIdentifier = ((BgpPrefixIPv4LSNlriVer4) nlri).getPrefixIdentifier();
         if (prefixTree.containsKey(prefixIdentifier)) {
             log.debug("Local RIB remove prefix: {}", prefixIdentifier.toString());
+            for (BgpPrefixListener l : bgpController.prefixListener()) {
+                l.deletePrefix((BgpPrefixIPv4LSNlriVer4) nlri);
+            }
             prefixTree.remove(prefixIdentifier);
         }
 
diff --git a/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpControllerAdapter.java b/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpControllerAdapter.java
index 8102f17..c1b53ed 100644
--- a/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpControllerAdapter.java
+++ b/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpControllerAdapter.java
@@ -23,6 +23,7 @@
 import org.onosproject.bgp.controller.BgpNodeListener;
 import org.onosproject.bgp.controller.BgpPeer;
 import org.onosproject.bgp.controller.BgpPeerManager;
+import org.onosproject.bgp.controller.BgpPrefixListener;
 import org.onosproject.bgp.controller.BgpRouteListener;
 import org.onosproject.bgpio.exceptions.BgpParseException;
 import org.onosproject.bgpio.protocol.BgpMessage;
@@ -111,6 +112,12 @@
     }
 
     @Override
+    public Set<BgpPrefixListener> prefixListener() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
     public void activeSessionExceptionAdd(String peerId, String exception) {
         return;
     }
@@ -164,4 +171,14 @@
     public void removeLinkListener(BgpLinkListener listener) {
         // TODO Auto-generated method stub
     }
+
+    @Override
+    public void addPrefixListener(BgpPrefixListener listener) {
+        // TODO Auto-generated method stub
+    }
+
+    @Override
+    public void removePrefixListener(BgpPrefixListener listener) {
+        // TODO Auto-generated method stub
+    }
 }
