diff --git a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java
index b6ee3c2..0ef19bf 100644
--- a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java
+++ b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java
@@ -31,48 +31,75 @@
 
     // TODO: constants could be auto-generated starting from the P4info.
 
-    private static final String TABLE0_CONTROL = "table0_control";
-    private static final String WCMP_CONTROL = "wcmp_control";
-
-    // Header field IDs
-    public static final String DOT =  ".";
+    public static final String DOT = ".";
+    private static final String INGRESS = "ingress";
+    private static final String EGRESS = "egress";
+    private static final String TABLE0_CTRL = INGRESS + DOT + "table0_control";
+    private static final String WCMP_CTRL = INGRESS + DOT + "wcmp_control";
+    private static final String PORT_COUNT_INGRESS_CTRL = INGRESS + DOT + "port_counters_ingress";
+    private static final String PORT_COUNT_EGRESS_CTRL = EGRESS + DOT + "port_counters_egress";
     public static final String HDR = "hdr";
     public static final String ETHERNET = "ethernet";
     public static final String IPV4 = "ipv4";
     public static final String LOCAL_METADATA = "local_metadata";
     public static final String STANDARD_METADATA = "standard_metadata";
-    public static final PiMatchFieldId HDR_IN_PORT_ID = PiMatchFieldId.of(STANDARD_METADATA + DOT + "ingress_port");
-    public static final PiMatchFieldId HDR_ETH_DST_ID = PiMatchFieldId.of(HDR + DOT + ETHERNET + DOT + "dst_addr");
-    public static final PiMatchFieldId HDR_ETH_SRC_ID = PiMatchFieldId.of(HDR + DOT + ETHERNET + DOT + "src_addr");
-    public static final PiMatchFieldId HDR_ETH_TYPE_ID = PiMatchFieldId.of(HDR + DOT + ETHERNET + DOT + "ether_type");
-    public static final PiMatchFieldId HDR_IPV4_DST_ID = PiMatchFieldId.of(HDR + DOT + IPV4 + DOT + "dst_addr");
-    public static final PiMatchFieldId HDR_IPV4_SRC_ID = PiMatchFieldId.of(HDR + DOT + IPV4 + DOT + "src_addr");
-    public static final PiMatchFieldId HDR_NEXT_HOP_ID = PiMatchFieldId.of(LOCAL_METADATA + DOT + "next_hop_id");
-    public static final PiMatchFieldId HDR_SELECTOR_ID = PiMatchFieldId.of(LOCAL_METADATA + DOT + "selector");
+
+    // Header field IDs
+
+    public static final PiMatchFieldId HDR_IN_PORT_ID =
+            PiMatchFieldId.of(STANDARD_METADATA + DOT + "ingress_port");
+    public static final PiMatchFieldId HDR_ETH_DST_ID =
+            PiMatchFieldId.of(HDR + DOT + ETHERNET + DOT + "dst_addr");
+    public static final PiMatchFieldId HDR_ETH_SRC_ID =
+            PiMatchFieldId.of(HDR + DOT + ETHERNET + DOT + "src_addr");
+    public static final PiMatchFieldId HDR_ETH_TYPE_ID =
+            PiMatchFieldId.of(HDR + DOT + ETHERNET + DOT + "ether_type");
+    public static final PiMatchFieldId HDR_IPV4_DST_ID =
+            PiMatchFieldId.of(HDR + DOT + IPV4 + DOT + "dst_addr");
+    public static final PiMatchFieldId HDR_IPV4_SRC_ID =
+            PiMatchFieldId.of(HDR + DOT + IPV4 + DOT + "src_addr");
+    public static final PiMatchFieldId HDR_NEXT_HOP_ID =
+            PiMatchFieldId.of(LOCAL_METADATA + DOT + "next_hop_id");
+    public static final PiMatchFieldId HDR_SELECTOR_ID =
+            PiMatchFieldId.of(LOCAL_METADATA + DOT + "selector");
     // Table IDs
-    public static final PiTableId TBL_TABLE0_ID = PiTableId.of(TABLE0_CONTROL + DOT  + "table0");
-    public static final PiTableId TBL_WCMP_TABLE_ID = PiTableId.of(WCMP_CONTROL + DOT  + "wcmp_table");
+    public static final PiTableId TBL_TABLE0_ID =
+            PiTableId.of(TABLE0_CTRL + DOT + "table0");
+    public static final PiTableId TBL_WCMP_TABLE_ID =
+            PiTableId.of(WCMP_CTRL + DOT + "wcmp_table");
     // Counter IDs
     public static final PiCounterId CNT_EGRESS_PORT_COUNTER_ID =
-            PiCounterId.of("port_counters_egress.egress_port_counter");
+            PiCounterId.of(PORT_COUNT_EGRESS_CTRL + DOT + "egress_port_counter");
     public static final PiCounterId CNT_INGRESS_PORT_COUNTER_ID =
-            PiCounterId.of("port_counters_ingress.ingress_port_counter");
-    public static final PiCounterId CNT_TABLE0_ID = PiCounterId.of(TABLE0_CONTROL + DOT  + "table0_counter");
-    public static final PiCounterId CNT_WCMP_TABLE_ID = PiCounterId.of(WCMP_CONTROL + DOT  + "wcmp_table_counter");
+            PiCounterId.of(PORT_COUNT_INGRESS_CTRL + DOT + "ingress_port_counter");
+    public static final PiCounterId CNT_TABLE0_ID =
+            PiCounterId.of(TABLE0_CTRL + DOT + "table0_counter");
+    public static final PiCounterId CNT_WCMP_TABLE_ID =
+            PiCounterId.of(WCMP_CTRL + DOT + "wcmp_table_counter");
     // Action IDs
-    public static final PiActionId ACT_NOACTION_ID = PiActionId.of("NoAction");
-    public static final PiActionId ACT_DROP_ID = PiActionId.of("_drop");
-    public static final PiActionId ACT_SET_EGRESS_PORT_ID = PiActionId.of("set_egress_port");
-    public static final PiActionId ACT_SET_NEXT_HOP_ID = PiActionId.of(TABLE0_CONTROL + DOT  + "set_next_hop_id");
-    public static final PiActionId ACT_SEND_TO_CPU_ID = PiActionId.of("send_to_cpu");
+    public static final PiActionId ACT_NOACTION_ID =
+            PiActionId.of("NoAction");
+    public static final PiActionId ACT_DROP_ID =
+            PiActionId.of("_drop");
+    public static final PiActionId ACT_SET_EGRESS_PORT_ID =
+            PiActionId.of("set_egress_port");
+    public static final PiActionId ACT_SET_NEXT_HOP_ID =
+            PiActionId.of(TABLE0_CTRL + DOT + "set_next_hop_id");
+    public static final PiActionId ACT_SEND_TO_CPU_ID =
+            PiActionId.of("send_to_cpu");
     // Action Param IDs
-    public static final PiActionParamId ACT_PRM_PORT_ID = PiActionParamId.of("port");
-    public static final PiActionParamId ACT_PRM_NEXT_HOP_ID = PiActionParamId.of("next_hop_id");
+    public static final PiActionParamId ACT_PRM_PORT_ID =
+            PiActionParamId.of("port");
+    public static final PiActionParamId ACT_PRM_NEXT_HOP_ID =
+            PiActionParamId.of("next_hop_id");
     // Action Profile IDs
-    public static final PiActionProfileId ACT_PRF_WCMP_SELECTOR_ID = PiActionProfileId.of("wcmp_control.wcmp_selector");
+    public static final PiActionProfileId ACT_PRF_WCMP_SELECTOR_ID =
+            PiActionProfileId.of(WCMP_CTRL + DOT + "wcmp_selector");
     // Packet Metadata IDs
-    public static final PiControlMetadataId PKT_META_EGRESS_PORT_ID = PiControlMetadataId.of("egress_port");
-    public static final PiControlMetadataId PKT_META_INGRESS_PORT_ID = PiControlMetadataId.of("ingress_port");
+    public static final PiControlMetadataId PKT_META_EGRESS_PORT_ID =
+            PiControlMetadataId.of("egress_port");
+    public static final PiControlMetadataId PKT_META_INGRESS_PORT_ID =
+            PiControlMetadataId.of("ingress_port");
     // Bitwidths
     public static final int PORT_BITWIDTH = 9;
 
