18#ifndef BACKENDS_EBPF_PSA_EXTERNS_EBPFPSATABLEIMPLEMENTATION_H_
19#define BACKENDS_EBPF_PSA_EXTERNS_EBPFPSATABLEIMPLEMENTATION_H_
21#include "backends/ebpf/ebpfTable.h"
22#include "backends/ebpf/psa/ebpfPsaTable.h"
23#include "backends/ebpf/psa/externs/ebpfPsaHashAlgorithm.h"
31 const IR::Declaration_Instance *decl);
34 void emitInitializer(
CodeBuilder *builder)
override;
35 virtual void emitReferenceEntry(
CodeBuilder *builder);
37 virtual void registerTable(
const EBPFTablePSA *instance);
43 const IR::Declaration_Instance *declaration;
46 void verifyTableActionList(
const EBPFTablePSA *instance);
47 void verifyTableNoDefaultAction(
const EBPFTablePSA *instance);
48 void verifyTableNoDirectObjects(
const EBPFTablePSA *instance);
51 unsigned getUintFromExpression(
const IR::Expression *expr,
unsigned defaultValue);
59 const IR::Declaration_Instance *decl);
63 cstring actionRunVariable)
override;
71 const IR::Declaration_Instance *decl);
73 void emitInitializer(
CodeBuilder *builder)
override;
75 void emitReferenceEntry(
CodeBuilder *builder)
override;
78 cstring actionRunVariable)
override;
80 void registerTable(
const EBPFTablePSA *instance)
override;
88 typedef std::vector<const IR::KeyElement *> SelectorsListType;
90 const IR::Property *emptyGroupAction;
92 SelectorsListType selectors;
95 cstring emptyGroupActionMapName;
103 EBPFHashAlgorithmPSA::ArgumentsList unpackSelectors();
104 SelectorsListType getSelectorsFromTable(
const EBPFTablePSA *instance);
106 void verifyTableSelectorKeySet(
const EBPFTablePSA *instance);
107 void verifyTableEmptyGroupAction(
const EBPFTablePSA *instance);
Definition ebpf/codeGen.h:33
Definition ebpf/codeGen.h:41
Definition ebpfPsaTableImplementation.h:56
Definition ebpfPsaTableImplementation.h:68
Definition ebpfPsaHashAlgorithm.h:26
Definition ebpfProgram.h:39
Base class for ActionProfile and ActionSelector.
Definition ebpfPsaTableImplementation.h:28
Definition ebpfPsaTable.h:29
Definition codeGen.cpp:25