|
| XDPIngressPipeline (cstring name, const EbpfOptions &options, P4::ReferenceMap *refMap, P4::TypeMap *typeMap) |
|
| DECLARE_TYPEINFO (XDPIngressPipeline, EBPFIngressPipeline) |
|
void | emitGlobalMetadataInitializer (CodeBuilder *builder) override |
|
void | emitTrafficManager (CodeBuilder *builder) override |
|
| EBPFIngressPipeline (cstring name, const EbpfOptions &options, P4::ReferenceMap *refMap, P4::TypeMap *typeMap) |
|
| DECLARE_TYPEINFO (EBPFIngressPipeline, EBPFPipeline) |
|
void | emit (CodeBuilder *builder) override |
|
void | emitPSAControlInputMetadata (CodeBuilder *builder) override |
|
void | emitPSAControlOutputMetadata (CodeBuilder *builder) override |
|
void | emitSharedMetadataInitializer (CodeBuilder *builder) |
|
| EBPFPipeline (cstring name, const EbpfOptions &options, P4::ReferenceMap *refMap, P4::TypeMap *typeMap) |
|
| DECLARE_TYPEINFO (EBPFPipeline, EBPFProgram) |
|
virtual cstring | dropReturnCode () |
|
void | emitCPUMAPHeadersInitializers (CodeBuilder *builder) |
| Generates a pointer to struct hdr_md. The pointer is used to access data from per-CPU map.
|
|
virtual void | emitCPUMAPInitializers (CodeBuilder *builder) |
|
virtual void | emitCPUMAPLookup (CodeBuilder *builder) |
|
void | emitHeaderInstances (CodeBuilder *builder) override |
|
void | emitHeadersFromCPUMAP (CodeBuilder *builder) |
|
void | emitInputPortMapping (CodeBuilder *builder) |
|
void | emitLocalHeaderInstancesAsPointers (CodeBuilder *builder) |
| Generates a pointer to struct Headers_t and puts it on the BPF program's stack.
|
|
void | emitLocalVariables (CodeBuilder *builder) override |
| Generates a set of helper variables that are used during packet processing.
|
|
void | emitMetadataFromCPUMAP (CodeBuilder *builder) |
|
virtual void | emitPacketLength (CodeBuilder *builder) |
|
virtual void | emitTimestamp (CodeBuilder *builder) |
|
void | emitUserMetadataInstance (CodeBuilder *builder) |
|
virtual cstring | forwardReturnCode () |
|
bool | hasAnyMeter () const |
|
bool | isEmpty () const |
|
bool | shouldEmitTimestamp () const |
|
| EBPFProgram (const EbpfOptions &options, const IR::P4Program *program, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, const IR::ToplevelBlock *toplevel) |
| return 'true' on success
|
|
virtual bool | build () |
|
| DECLARE_TYPEINFO (EBPFProgram, EBPFObject) |
|
virtual void | emitC (CodeBuilder *builder, const std::filesystem::path &headerFile) |
|
virtual void | emitCommonPreamble (CodeBuilder *builder) |
|
virtual void | emitGeneratedComment (CodeBuilder *builder) |
|
virtual void | emitH (CodeBuilder *builder, const std::filesystem::path &headerFile) |
|
| DECLARE_TYPEINFO (EBPFObject) |
|
template<typename T > |
T & | as () |
| Tries to convert the class to type T. A BUG occurs if the cast fails.
|
|
template<typename T > |
const T & | as () const |
| Tries to convert the class to type T. A BUG occurs if the cast fails.
|
|
template<typename T > |
T * | checkedTo () |
| Performs a checked cast. A BUG occurs if the cast fails.
|
|
template<typename T > |
const T * | checkedTo () const |
| Performs a checked cast. A BUG occurs if the cast fails.
|
|
template<typename T > |
bool | is () const noexcept |
|
virtual bool | isA (TypeId typeId) const noexcept=0 |
|
template<typename T > |
const T * | to () const noexcept |
| Same as to , but returns const pointer to T.
|
|
template<typename T > |
T * | to () noexcept |
|
virtual TypeId | typeId () const noexcept=0 |
|
|
static cstring | externalName (const IR::IDeclaration *declaration) |
|
static cstring | getSpecializedTypeName (const IR::Declaration_Instance *di) |
|
static cstring | getTypeName (const IR::Declaration_Instance *di) |
|
int | actUnspecCode |
|
unsigned int | maxResubmitDepth |
|
cstring | compilerGlobalMetadata |
| A name of an internal variable storing global metadata.
|
|
cstring | contextVar |
| Variable name storing pointer to eBPF packet descriptor (e.g., __sk_buff).
|
|
EBPFControlPSA * | control |
|
EBPFDeparserPSA * | deparser |
|
cstring | ifindexVar |
| Variable storing ingress interface index.
|
|
cstring | inputPortVar |
| A variable to store ifindex after mapping (e.g. due to recirculation).
|
|
cstring | name |
| A custom name of eBPF program.
|
|
cstring | oneKey |
| A variable name storing "1" value. Used to access BPF array map index.
|
|
unsigned | packetMark |
| A unique mark used to differentiate packets processed by P4/eBPF from others.
|
|
cstring | packetPathVar |
| Variables storing global metadata (packet_path & instance).
|
|
cstring | pktInstanceVar |
|
cstring | priorityVar |
| Variable storing skb->priority value (TC only).
|
|
cstring | sectionName |
| eBPF section name, which should a concatenation of classifier/ + a custom name.
|
|
cstring | timestampVar |
| Variable name storing current timestamp retrieved from bpf_ktime_get_ns().
|
|
cstring | arrayIndexType = "u32"_cs |
| TODO: this should be a compiler option probably.
|
|
cstring | byteVar |
|
EBPFControl * | control |
|
EBPFDeparser * | deparser |
| Deparser may be NULL if not supported (e.g. ebpfFilter package).
|
|
cstring | endLabel |
|
cstring | errorEnum |
|
cstring | errorVar |
|
cstring | functionName |
|
cstring | headerStartVar |
|
cstring | lengthVar |
|
cstring | license = "GPL"_cs |
|
EBPFModel & | model |
|
cstring | offsetVar |
|
const EbpfOptions & | options |
|
cstring | packetEndVar |
|
cstring | packetStartVar |
|
EBPFParser * | parser |
|
const IR::P4Program * | program |
|
const Target * | progTarget |
|
P4::ReferenceMap * | refMap |
|
const IR::ToplevelBlock * | toplevel |
|
P4::TypeMap * | typeMap |
|
cstring | zeroKey |
|
virtual void | emitPipeline (CodeBuilder *builder) |
|
virtual void | emitPreamble (CodeBuilder *builder) |
|
virtual void | emitTypes (CodeBuilder *builder) |
|
virtual bool | isLibraryMethod (cstring methodName) |
|
virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
|