P4C
The P4 Compiler
|
Public Member Functions | |
UBPFProgram (const EbpfOptions &options, const IR::P4Program *program, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, const IR::ToplevelBlock *toplevel) | |
bool | build () override |
void | emitC (UbpfCodeBuilder *builder, const std::filesystem::path &headerFile) |
void | emitH (EBPF::CodeBuilder *builder, const std::filesystem::path &headerFile) override |
void | emitHeaderInstances (EBPF::CodeBuilder *builder) override |
void | emitLocalVariables (EBPF::CodeBuilder *builder) override |
void | emitMetadataInstance (EBPF::CodeBuilder *builder) const |
void | emitPacketLengthVariable (UbpfCodeBuilder *builder) const |
void | emitPipeline (EBPF::CodeBuilder *builder) override |
void | emitPktVariable (UbpfCodeBuilder *builder) const |
void | emitPreamble (EBPF::CodeBuilder *builder) override |
void | emitTableDefinition (EBPF::CodeBuilder *builder) const |
void | emitTypes (EBPF::CodeBuilder *builder) override |
bool | isLibraryMethod (cstring methodName) override |
Public Member Functions inherited from P4::EBPF::EBPFProgram | |
EBPFProgram (const EbpfOptions &options, const IR::P4Program *program, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, const IR::ToplevelBlock *toplevel) | |
return 'true' on success | |
DECLARE_TYPEINFO (EBPFProgram, EBPFObject) | |
virtual void | emitC (CodeBuilder *builder, const std::filesystem::path &headerFile) |
virtual void | emitCommonPreamble (CodeBuilder *builder) |
virtual void | emitGeneratedComment (CodeBuilder *builder) |
Public Member Functions inherited from P4::EBPF::EBPFObject | |
DECLARE_TYPEINFO (EBPFObject) | |
Public Member Functions inherited from P4::ICastable | |
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. | |
Public Member Functions inherited from P4::RTTI::Base | |
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 |
Public Attributes | |
cstring | arrayIndexType = "uint32_t"_cs |
cstring | contextVar |
UBPFControl * | control {} |
UBPFDeparser * | deparser {} |
UBPFModel & | model |
cstring | outerHdrLengthVar |
cstring | outerHdrOffsetVar |
cstring | packetTruncatedSizeVar |
UBPFParser * | parser {} |
cstring | stdMetadataVar |
Public Attributes inherited from P4::EBPF::EBPFProgram | |
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 |
Additional Inherited Members | |
Static Public Member Functions inherited from P4::EBPF::EBPFObject | |
static cstring | externalName (const IR::IDeclaration *declaration) |
static cstring | getSpecializedTypeName (const IR::Declaration_Instance *di) |
static cstring | getTypeName (const IR::Declaration_Instance *di) |
Protected Member Functions inherited from P4::EBPF::EBPFProgram | |
Protected Member Functions inherited from P4::RTTI::Base | |
virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFProgram.
|
inlineoverridevirtual |
Checks whether a method name is considered to be part of the standard library, e.g., defined in core.p4 or ebpf_model.p4. TODO: Should we also distinguish overloaded methods?
Reimplemented from P4::EBPF::EBPFProgram.