P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::EBPF Namespace Reference

Classes

class  ActionTranslationVisitor
 
class  ActionTranslationVisitorPSA
 
class  BccTarget
 Represents a target compiled by bcc that uses the TC. More...
 
class  CodeBuilder
 
class  CodeGenInspector
 
class  ControlBodyTranslator
 
class  ControlBodyTranslatorPSA
 
class  ConvertToEBPFControlPSA
 
class  ConvertToEBPFDeparserPSA
 
class  ConvertToEBPFParserPSA
 
class  ConvertToEbpfPipeline
 
class  ConvertToEbpfPSA
 
struct  CounterArray_Model
 
class  CRC16ChecksumAlgorithm
 
class  CRC32ChecksumAlgorithm
 
class  CRCChecksumAlgorithm
 
class  DeparserBodyTranslator
 This translator emits deparser externs. More...
 
class  DeparserBodyTranslatorPSA
 
class  DeparserHdrEmitTranslator
 This translator emits headers. More...
 
class  DeparserPrepareBufferTranslator
 This translator emits buffer preparation (eg. which headers will be emitted) More...
 
class  EBPFActionProfilePSA
 
class  EBPFActionSelectorPSA
 
class  EBPFBoolType
 
class  EBPFChecksumPSA
 
class  EbpfCodeGenerator
 
class  EBPFControl
 
class  EBPFControlPSA
 
class  EBPFCounterPSA
 
class  EBPFCounterTable
 
class  EBPFDeparser
 
class  EBPFDeparserPSA
 
class  EBPFDigestPSA
 
class  EBPFDigestPSAValueVisitor
 
class  EBPFEgressPipeline
 
class  EBPFEnumType
 
class  EBPFErrorType
 
class  EBPFHashAlgorithmPSA
 
class  EBPFHashAlgorithmTypeFactoryPSA
 
class  EBPFHashPSA
 
class  EBPFIngressPipeline
 
class  EBPFInitializerUtils
 
class  EBPFInternetChecksumPSA
 
class  EBPFMeterPSA
 
class  EBPFMethodDeclaration
 Methods are function signatures. More...
 
class  EBPFModel
 Keep this in sync with ebpf_model.p4 and xdp_model.p4. More...
 
class  EBPFObject
 Base class for EBPF objects. More...
 
class  EBPFParser
 
class  EBPFParserState
 
class  EBPFPipeline
 EBPFPipeline represents a single eBPF program in the TC/XDP hook. More...
 
class  EBPFProgram
 
class  EBPFPsaParser
 
class  EBPFRandomPSA
 
class  EBPFRegisterPSA
 
class  EBPFScalarType
 
class  EBPFStackType
 
class  EBPFStructType
 Also represents headers and unions. More...
 
class  EBPFTable
 
class  EBPFTableBase
 Also used to represent counters. More...
 
class  EBPFTableImplementationPSA
 Base class for ActionProfile and ActionSelector. More...
 
class  EBPFTablePSA
 
class  EBPFTablePSADirectCounterPropertyVisitor
 
class  EBPFTablePSADirectMeterPropertyVisitor
 
class  EBPFTablePSAImplementationPropertyVisitor
 
class  EBPFTablePSAInitializerCodeGen
 
class  EBPFTablePsaPropertyVisitor
 
class  EBPFTablePSATernaryKeyMaskGenerator
 Build mask initializer for a single table key entry. More...
 
class  EBPFTablePSATernaryTableMaskGenerator
 Generate mask for whole table key. More...
 
class  EBPFType
 Base class for EBPF types. More...
 
class  EBPFTypeFactory
 
class  EBPFTypeName
 This should not always implement IHasWidth, but it may... More...
 
class  EBPFValueSet
 
class  EgressDeparserPSA
 
class  EnumOn32Bits
 
struct  Filter_Model
 
class  IHasWidth
 
class  IngressDeparserPSA
 
class  InternetChecksumAlgorithm
 
class  KernelSamplesTarget
 
class  Lower
 
class  LowerExpressions
 This pass rewrites expressions which are not supported natively on EBPF. More...
 
class  MidEnd
 
class  P4TCTarget
 
class  PSAArchTC
 
class  PSAArchXDP
 
class  PSAEbpfGenerator
 
class  PSAErrorCodesGen
 
class  PsaStateTranslationVisitor
 
class  PSASwitchBackend
 
class  StateTranslationVisitor
 
struct  TableImpl_Model
 
class  Target
 
class  TCEgressDeparserPSA
 
class  TCEgressPipeline
 
class  TCIngressDeparserForTrafficManagerPSA
 
class  TCIngressDeparserPSA
 
class  TCIngressPipeline
 
class  TCTrafficManagerForXDP
 
class  TestTarget
 
struct  Xdp_Model
 
class  XDPEgressDeparserPSA
 
class  XDPEgressPipeline
 
class  XDPHelpProgram
 
class  XDPIngressDeparserPSA
 
class  XDPIngressPipeline
 
class  XdpTarget
 Target XDP. More...
 

Enumerations

enum  ModelArchitecture { EbpfFilter , XdpSwitch }
 
enum  pipeline_type {
  TC_INGRESS , TC_EGRESS , XDP_INGRESS , XDP_EGRESS ,
  TC_TRAFFIC_MANAGER
}
 
enum  TableKind {
  TableHash , TableArray , TablePerCPUArray , TableProgArray ,
  TableLPMTrie , TableHashLRU , TableDevmap
}
 

Functions

void emitFilterModel (const EbpfOptions &options, Target *target, const IR::ToplevelBlock *toplevel, P4::ReferenceMap *refMap, P4::TypeMap *typeMap)
 
void run_ebpf_backend (const EbpfOptions &options, const IR::ToplevelBlock *toplevel, P4::ReferenceMap *refMap, P4::TypeMap *typeMap)
 

Detailed Description

We are prepared to support code generation using multiple styles (e.g., using BCC or using CLANG).