eBPF: don't create 2 BPF maps for each table - don't create separate default action table
Trigary opened this issue · comments
Currently, the eBPF compiler creates 2 BPF maps for each P4 table, where the second table is used just for the default action. This is sub-ideal when we consider the MAX_USED_MAPS
BPF verifier constant: the current Linux kernel only allows defining at most 64 BPF maps [1] [2].
Creating 2 BPF maps per P4 table halves the maximum count of P4 tables that can be defined. To demonstrate, the limit of 64 BPF maps can be reached by defining e.g. 28 tables and 8 registers in the P4 source code.