Support compiling fabric.p4 with arbitrary table sizes
By using preprocessor macros. Also, change expected location of tofino
compiler outputs when building the pipeconf.
Change-Id: I98ea95b61d57e725c88e52a3bfd95618f3c407cb
diff --git a/pipelines/fabric/src/main/resources/include/control/next.p4 b/pipelines/fabric/src/main/resources/include/control/next.p4
index 98b3812..88e870c 100644
--- a/pipelines/fabric/src/main/resources/include/control/next.p4
+++ b/pipelines/fabric/src/main/resources/include/control/next.p4
@@ -81,6 +81,7 @@
}
const default_action = nop();
counters = next_vlan_counter;
+ size = NEXT_VLAN_TABLE_SIZE;
}
#ifdef WITH_XCONNECT
@@ -112,6 +113,7 @@
}
counters = xconnect_counter;
const default_action = nop();
+ size = XCONNECT_NEXT_TABLE_SIZE;
}
#endif // WITH_XCONNECT
@@ -150,6 +152,7 @@
}
const default_action = nop();
counters = simple_counter;
+ size = SIMPLE_NEXT_TABLE_SIZE;
}
#endif // WITH_SIMPLE_NEXT
@@ -158,7 +161,8 @@
* Hashed table.
* Execute an action profile selector based on next id.
*/
- action_selector(HashAlgorithm.crc16, 32w64, 32w16) hashed_selector;
+ @max_group_size(HASHED_SELECTOR_MAX_GROUP_SIZE)
+ action_selector(HashAlgorithm.crc16, HASHED_ACT_PROFILE_SIZE, 32w16) hashed_selector;
direct_counter(CounterType.packets_and_bytes) hashed_counter;
action output_hashed(port_num_t port_num) {
@@ -195,6 +199,7 @@
implementation = hashed_selector;
counters = hashed_counter;
const default_action = nop();
+ size = HASHED_NEXT_TABLE_SIZE;
}
#endif // WITH_HASHED_NEXT
@@ -220,6 +225,7 @@
}
counters = multicast_counter;
const default_action = nop();
+ size = MULTICAST_NEXT_TABLE_SIZE;
}
apply {
@@ -293,6 +299,7 @@
}
const default_action = nop();
counters = egress_vlan_counter;
+ size = EGRESS_VLAN_TABLE_SIZE;
}
apply {