diff --git a/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2FlowRuleProgrammable.java b/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2FlowRuleProgrammable.java
index 01d812f..27c3fc2 100644
--- a/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2FlowRuleProgrammable.java
+++ b/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2FlowRuleProgrammable.java
@@ -118,10 +118,14 @@
                 return;
             }
 
-            // Bmv2 doesn't support proper polling for table entries, but only a string based table dump.
-            // The trick here is to first dump the entries currently installed in the device for a given table,
-            // and then query a service for the corresponding, previously applied, flow rule.
-            List<Bmv2ParsedTableEntry> installedEntries = tableEntryService.getTableEntries(deviceId, table.name());
+            List<Bmv2ParsedTableEntry> installedEntries;
+            try {
+                installedEntries = deviceAgent.getTableEntries(table.name());
+            } catch (Bmv2RuntimeException e) {
+                log.warn("Failed to get table entries of table {} of {}: {}", table.name(), deviceId, e.explain());
+                return;
+            }
+
             installedEntries.forEach(parsedEntry -> {
                 Bmv2TableEntryReference entryRef = new Bmv2TableEntryReference(deviceId,
                                                                                table.name(),
@@ -309,7 +313,7 @@
     private void forceRemove(Bmv2DeviceAgent agent, String tableName, Bmv2MatchKey matchKey)
             throws Bmv2RuntimeException {
         // Find the entryID (expensive call!)
-        for (Bmv2ParsedTableEntry pEntry : tableEntryService.getTableEntries(agent.deviceId(), tableName)) {
+        for (Bmv2ParsedTableEntry pEntry : agent.getTableEntries(tableName)) {
             if (pEntry.matchKey().equals(matchKey)) {
                 // Remove entry and drop exceptions.
                 silentlyRemove(agent, tableName, pEntry.entryId());
diff --git a/drivers/bmv2/src/main/resources/bmv2-drivers.xml b/drivers/bmv2/src/main/resources/bmv2-drivers.xml
index e8a7cb8..cd20df6 100644
--- a/drivers/bmv2/src/main/resources/bmv2-drivers.xml
+++ b/drivers/bmv2/src/main/resources/bmv2-drivers.xml
@@ -16,7 +16,7 @@
   ~ limitations under the License.
   -->
 <drivers>
-    <driver name="bmv2-thrift" manufacturer="p4.org" hwVersion="bmv2" swVersion="n/a">
+    <driver name="bmv2-thrift" manufacturer="p4.org" hwVersion="bmv2" swVersion="1.0.0">
         <behaviour api="org.onosproject.net.device.DeviceDescriptionDiscovery"
                    impl="org.onosproject.drivers.bmv2.Bmv2DeviceDescriptionDiscovery"/>
         <behaviour api="org.onosproject.net.flow.FlowRuleProgrammable"
