P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::EBPF::PSAEbpfGenerator Class Referenceabstract
Inheritance diagram for P4::EBPF::PSAEbpfGenerator:
[legend]

Public Member Functions

 PSAEbpfGenerator (const EbpfOptions &options, std::vector< EBPFType * > &ebpfTypes, EBPFPipeline *ingress, EBPFPipeline *egress)
 
virtual void emit (CodeBuilder *builder) const =0
 
void emitCommonPreamble (CodeBuilder *builder) const override
 
void emitCRC32LookupTableInitializer (CodeBuilder *builder) const
 
void emitCRC32LookupTableInstance (CodeBuilder *builder) const
 
void emitCRC32LookupTableTypes (CodeBuilder *builder) const
 TODO: move them to the externs/ebpfPsaHashAlgorithm.cpp file.
 
void emitGlobalHeadersMetadata (CodeBuilder *builder) const override
 
void emitHelperFunctions (CodeBuilder *builder) const
 
void emitInitializer (CodeBuilder *builder) const
 
virtual void emitInitializerSection (CodeBuilder *builder) const =0
 
virtual void emitInstances (EBPF::CodeBuilder *builder) const =0
 
void emitInternalStructures (CodeBuilder *pBuilder) const override
 
void emitPacketReplicationTables (CodeBuilder *builder) const
 
void emitPipelineInstances (CodeBuilder *builder) const override
 
void emitPreamble (CodeBuilder *builder) const override
 
void emitPSAIncludes (CodeBuilder *builder) const
 
void emitTypes (CodeBuilder *builder) const override
 Generate headers and structs in p4 prog.
 
- Public Member Functions inherited from P4::EBPF::EbpfCodeGenerator
 EbpfCodeGenerator (const EbpfOptions &options, std::vector< EBPF::EBPFType * > &ebpfTypes)
 

Public Attributes

EBPFPipelineegress
 
EBPFPipelineingress
 
- Public Attributes inherited from P4::EBPF::EbpfCodeGenerator
std::vector< EBPF::EBPFType * > ebpfTypes
 
const EbpfOptionsoptions
 

Static Public Attributes

static constexpr unsigned MaxClones = 64
 
static constexpr unsigned MaxCloneSessions = 1024
 

Member Function Documentation

◆ emitCommonPreamble()

void P4::EBPF::PSAEbpfGenerator::emitCommonPreamble ( CodeBuilder * builder) const
overridevirtual

◆ emitGlobalHeadersMetadata()

void P4::EBPF::PSAEbpfGenerator::emitGlobalHeadersMetadata ( CodeBuilder * builder) const
overridevirtual

◆ emitInternalStructures()

void P4::EBPF::PSAEbpfGenerator::emitInternalStructures ( CodeBuilder * pBuilder) const
overridevirtual

◆ emitPipelineInstances()

void P4::EBPF::PSAEbpfGenerator::emitPipelineInstances ( CodeBuilder * builder) const
overridevirtual

◆ emitPreamble()

void P4::EBPF::PSAEbpfGenerator::emitPreamble ( CodeBuilder * builder) const
overridevirtual

◆ emitTypes()

void P4::EBPF::PSAEbpfGenerator::emitTypes ( CodeBuilder * builder) const
overridevirtual

Generate headers and structs in p4 prog.

Implements P4::EBPF::EbpfCodeGenerator.