24enum XDP2TC { XDP2TC_NONE, XDP2TC_META, XDP2TC_HEAD, XDP2TC_CPUMAP };
31 bool loadIRFromJson =
false;
33 bool emitExterns =
false;
35 bool emitTraceMessages =
false;
37 bool generateToXDP =
false;
39 enum XDP2TC xdp2tcMode = XDP2TC_NONE;
41 unsigned int maxTernaryMasks = 128;
43 bool enableTableCache =
false;
47 void calculateXDP2TCMode() {
52 if (generateToXDP && xdp2tcMode == XDP2TC_META) {
54 <<
"XDP2TC 'meta' mode cannot be used if XDP is enabled. "
55 "Falling back to 'head' mode. For more information see "
56 "https://github.com/p4lang/p4c/blob/main/backends/ebpf/psa/README.md#xdp2tc-mode"
58 xdp2tcMode = XDP2TC_HEAD;
59 }
else if (generateToXDP && xdp2tcMode == XDP2TC_NONE) {
61 std::cout <<
"Setting XDP2TC 'head' mode by default for XDP-based hook." << std::endl;
62 xdp2tcMode = XDP2TC_HEAD;
63 }
else if (!generateToXDP && xdp2tcMode == XDP2TC_NONE) {
64 std::cout <<
"Setting XDP2TC 'meta' mode by default for TC-based hook." << std::endl;
66 xdp2tcMode = XDP2TC_META;
68 BUG_CHECK(xdp2tcMode != XDP2TC_NONE,
"xdp2tc mode should not be set to NONE, bug?");
Definition parser_options.h:167