diff --git a/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java b/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java
index 0e0207e..9a6680e 100644
--- a/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java
+++ b/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java
@@ -160,6 +160,15 @@
         connectivityManager.start();
         icmpHandler.start();
 
+        // Initialize devices now if they are already connected
+        if (deviceService.isAvailable(deviceId)) {
+            processIntfFilters(true, configService.getInterfaces());
+        }
+
+        if (deviceService.isAvailable(ctrlDeviceId)) {
+            connectivityManager.notifySwitchAvailable();
+        }
+
         log.info("BgpRouter started");
     }
 
@@ -352,6 +361,11 @@
     private void processIntfFilters(boolean install, Set<Interface> intfs) {
         log.info("Processing {} router interfaces", intfs.size());
         for (Interface intf : intfs) {
+            if (!intf.connectPoint().deviceId().equals(deviceId)) {
+                // Ignore interfaces if they are not on the router switch
+                continue;
+            }
+
             FilteringObjective.Builder fob = DefaultFilteringObjective.builder();
             fob.withKey(Criteria.matchInPort(intf.connectPoint().port()))
                .addCondition(Criteria.matchEthDst(intf.mac()))
