diff --git a/apps/pi-demo/common/src/main/java/org/onosproject/pi/demo/app/common/AbstractUpgradableFabricApp.java b/apps/pi-demo/common/src/main/java/org/onosproject/pi/demo/app/common/AbstractUpgradableFabricApp.java
index 145cf50..94f27b6 100644
--- a/apps/pi-demo/common/src/main/java/org/onosproject/pi/demo/app/common/AbstractUpgradableFabricApp.java
+++ b/apps/pi-demo/common/src/main/java/org/onosproject/pi/demo/app/common/AbstractUpgradableFabricApp.java
@@ -461,17 +461,10 @@
         if (!device.is(PiPipelineInterpreter.class)) {
             throw new FlowRuleGeneratorException(format("Device %s has no PiPipelineInterpreter", did));
         }
-        final PiPipelineInterpreter interpreter = device.as(PiPipelineInterpreter.class);
-        final int flowRuleTableId;
-        if (interpreter.mapPiTableId(tableId).isPresent()) {
-            flowRuleTableId = interpreter.mapPiTableId(tableId).get();
-        } else {
-            throw new FlowRuleGeneratorException(format("Unknown table '%s' in interpreter", tableId));
-        }
 
         return DefaultFlowRule.builder()
                 .forDevice(did)
-                .forTable(flowRuleTableId)
+                .forTable(tableId)
                 .fromApp(appId)
                 .withPriority(FLOW_PRIORITY)
                 .makePermanent();
diff --git a/core/api/src/main/java/org/onosproject/net/pi/model/PiPipelineInterpreter.java b/core/api/src/main/java/org/onosproject/net/pi/model/PiPipelineInterpreter.java
index 1068026..ccf2733 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/model/PiPipelineInterpreter.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/model/PiPipelineInterpreter.java
@@ -64,7 +64,8 @@
 
     /**
      * Returns an integer table ID equivalent to the given PI table ID. If not present, it means that the given PI table
-     * ID refers to a table that does not exist, or that cannot be used for flow rule operations.
+     * ID cannot be mapped to any integer table ID, because such mapping would be meaningless or because such PI table
+     * ID is not defined by the pipeline model.
      *
      * @param piTableId PI table ID
      * @return numeric table ID
@@ -84,8 +85,10 @@
             throws PiInterpreterException;
 
     /**
-     * Returns a PI direct counter ID for the given table, if present. If not present, it means that the given table
-     * does not support direct counters.
+     * Returns a PI direct counter ID for the given table to be used to to compute flow entry statistics, if present. If
+     * not present, it means that the given table does not offer any counter suitable for the purpose of computing flow
+     * rule statistics. Other direct counters might be defined for the given table (check pipeline model), however none
+     * of them should be used for flow entry statistics except for this one.
      *
      * @param piTableId table ID
      * @return optional direct counter ID
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java
index 81626fe..898bfbf 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java
@@ -135,13 +135,6 @@
 
             PiTableId piTableId = tableModel.id();
 
-            // Only dump tables that are exposed by the interpreter.
-            // The reason is that some P4 targets (e.g. BMv2's simple_switch) use more table than those defined in the
-            // P4 program, to implement other capabilities, e.g. action execution in control flow.
-            if (!interpreter.mapPiTableId(piTableId).isPresent()) {
-                continue; // next table
-            }
-
             Collection<PiTableEntry> installedEntries;
             try {
                 // TODO: optimize by dumping entries and counters in parallel, from ALL tables with the same request.
