gatekeeper
gatekeeper copied to clipboard
Minimizing endian computation
When rte_be_to_cpu_16() and its sister functions are called over a constant, they compute their results in compile time, that is, the results are also constants. This enables Gatekeeper to avoid some runtime calls to rte_be_to_cpu_16() and its sister functions. For example, in process_single_packet() in file ggu/main.c, one can rename variable ether_type to ether_type_be, and adjust the cases of the switch as in case rte_cpu_to_be_16(ETHER_TYPE_IPv4): to make the endian computations in compile time instead of runtime.
In order to completely address this issue, one has to identify all locations at which similar changes can be made. These locations may even include variables other than Ethernet types.