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

Public Member Functions

 PSAArchXDP (const EbpfOptions &options, std::vector< EBPFType * > &ebpfTypes, EBPFPipeline *xdpIngress, EBPFPipeline *xdpEgress, EBPFPipeline *tcTrafficManager, EBPFPipeline *tcEgress)
 
void emit (CodeBuilder *builder) const override
 
void emitDummyProgram (CodeBuilder *builder) const
 
void emitInitializerSection (CodeBuilder *builder) const override
 
void emitInstances (CodeBuilder *builder) const override
 
void emitPreamble (CodeBuilder *builder) const override
 
void emitXDP2TCInternalStructures (CodeBuilder *builder) const
 
- Public Member Functions inherited from P4::EBPF::PSAEbpfGenerator
 PSAEbpfGenerator (const EbpfOptions &options, std::vector< EBPFType * > &ebpfTypes, EBPFPipeline *ingress, EBPFPipeline *egress)
 
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
 
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

EBPFPipelinetcEgressForXDP
 If the XDP mode is used, we need to have TC Egress pipeline to handle cloned packets.
 
EBPFPipelinetcIngressForXDP
 TC Ingress program used to support packet cloning in the XDP mode.
 
- Public Attributes inherited from P4::EBPF::PSAEbpfGenerator
EBPFPipelineegress
 
EBPFPipelineingress
 
- Public Attributes inherited from P4::EBPF::EbpfCodeGenerator
std::vector< EBPF::EBPFType * > ebpfTypes
 
const EbpfOptionsoptions
 

Static Public Attributes

static constexpr unsigned egressDevmapSize = 256
 
- Static Public Attributes inherited from P4::EBPF::PSAEbpfGenerator
static constexpr unsigned MaxClones = 64
 
static constexpr unsigned MaxCloneSessions = 1024
 

Member Function Documentation

◆ emit()

void P4::EBPF::PSAArchXDP::emit ( CodeBuilder * builder) const
overridevirtual

◆ emitInitializerSection()

void P4::EBPF::PSAArchXDP::emitInitializerSection ( CodeBuilder * builder) const
overridevirtual

◆ emitInstances()

void P4::EBPF::PSAArchXDP::emitInstances ( CodeBuilder * builder) const
overridevirtual

◆ emitPreamble()

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