128 mutable unsigned int innerMapIndex;
130 cstring getBPFMapType(TableKind kind)
const {
131 if (kind == TableHash) {
132 return "BPF_MAP_TYPE_HASH";
133 }
else if (kind == TableArray) {
134 return "BPF_MAP_TYPE_ARRAY";
135 }
else if (kind == TablePerCPUArray) {
136 return "BPF_MAP_TYPE_PERCPU_ARRAY";
137 }
else if (kind == TableLPMTrie) {
138 return "BPF_MAP_TYPE_LPM_TRIE";
139 }
else if (kind == TableHashLRU) {
140 return "BPF_MAP_TYPE_LRU_HASH";
141 }
else if (kind == TableProgArray) {
142 return "BPF_MAP_TYPE_PROG_ARRAY";
143 }
else if (kind == TableDevmap) {
144 return "BPF_MAP_TYPE_DEVMAP";
146 BUG(
"Unknown table kind");
150 bool emitTraceMessages;
154 :
Target(name), innerMapIndex(0), emitTraceMessages(emitTrace) {}
160 cstring offsetVar)
const override;
168 cstring keyType,
cstring valueType,
unsigned size)
const override;
171 unsigned size)
const override;
173 TableKind innerTableKind,
cstring innerKeyType,
cstring innerValueType,
174 unsigned innerSize,
cstring outerName, TableKind outerTableKind,
175 cstring outerKeyType,
unsigned outerSize)
const override;
177 cstring argName)
const override;
182 return cstring(
"((void*)(long)") + base +
"->data)";
185 return cstring(
"((void*)(long)") + base +
"->data_end)";
188 cstring forwardReturnCode()
const override {
return "TC_ACT_OK"; }
189 cstring dropReturnCode()
const override {
return "TC_ACT_SHOT"; }
190 cstring abortReturnCode()
const override {
return "TC_ACT_SHOT"; }
191 cstring sysMapPath()
const override {
return "/sys/fs/bpf/tc/globals"; }
193 cstring packetDescriptorType()
const override {
return "struct __sk_buff"; }
void emitTraceMessage(Util::SourceCodeBuilder *builder, const char *format, int argc=0,...) const override
Definition target.cpp:177