![]() |
P4C
The P4 Compiler
|
Public Member Functions | |
| IngressDeparserPNA (const EBPF::EBPFProgram *program, const IR::ControlBlock *control, const IR::Parameter *parserHeaders, const IR::Parameter *istd) | |
| bool | build () override |
| DECLARE_TYPEINFO (IngressDeparserPNA, EBPF::EBPFDeparserPSA) | |
| void | emit (EBPF::CodeBuilder *builder) override |
| void | emitDeclaration (EBPF::CodeBuilder *builder, const IR::Declaration *decl) override |
| void | emitExternDefinition (EBPF::CodeBuilder *builder) |
| void | emitPreDeparser (EBPF::CodeBuilder *builder) override |
Public Member Functions inherited from P4::EBPF::EBPFDeparserPSA | |
| EBPFDeparserPSA (const EBPFProgram *program, const IR::ControlBlock *control, const IR::Parameter *parserHeaders, const IR::Parameter *istd) | |
| DECLARE_TYPEINFO (EBPFDeparserPSA, EBPFDeparser) | |
| void | emitDeparserExternCalls (EBPF::CodeBuilder *builder) override |
| void | emitDigestInstances (CodeBuilder *builder) const |
| void | emitTypes (CodeBuilder *builder) const |
| EBPFChecksumPSA * | getChecksum (cstring name) const |
| EBPFDigestPSA * | getDigest (cstring name) const |
Public Member Functions inherited from P4::EBPF::EBPFDeparser | |
| EBPFDeparser (const EBPFProgram *program, const IR::ControlBlock *control, const IR::Parameter *parserHeaders) | |
| DECLARE_TYPEINFO (EBPFDeparser, EBPFControl) | |
| void | emitBufferAdjusts (CodeBuilder *builder) const |
Public Member Functions inherited from P4::EBPF::EBPFControl | |
| EBPFControl (const EBPFProgram *program, const IR::ControlBlock *block, const IR::Parameter *parserHeaders) | |
| virtual void | emitTableInitializers (CodeBuilder *builder) |
| virtual void | emitTableInstances (CodeBuilder *builder) |
| virtual void | emitTableTypes (CodeBuilder *builder) |
| EBPFCounterTable * | getCounter (cstring name) const |
| EBPFTable * | getTable (cstring name) const |
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 | |
| bool | addExternDeclaration = false |
Public Attributes inherited from P4::EBPF::EBPFDeparserPSA | |
| std::map< cstring, EBPFChecksumPSA * > | checksums |
| std::map< cstring, EBPFDigestPSA * > | digests |
| const IR::Parameter * | istd |
| const IR::Parameter * | resubmit_meta |
| const IR::Parameter * | user_metadata |
Public Attributes inherited from P4::EBPF::EBPFDeparser | |
| EBPFType * | headerType |
| cstring | outerHdrLengthVar |
| cstring | outerHdrOffsetVar |
| const IR::Parameter * | packet_out |
| cstring | returnCode |
Public Attributes inherited from P4::EBPF::EBPFControl | |
| const IR::Parameter * | accept |
| ControlBodyTranslator * | codeGen |
| const IR::ControlBlock * | controlBlock |
| std::map< cstring, EBPFCounterTable * > | counters |
| const bool | emitExterns |
| const IR::Parameter * | headers |
| cstring | hitVariable |
| Replace references to headers with references to parserHeaders. | |
| const IR::Parameter * | parserHeaders |
| const EBPFProgram * | program |
| std::map< cstring, EBPFTable * > | tables |
| std::set< const IR::Parameter * > | toDereference |
| const IR::Parameter * | xdpInputMeta |
| const IR::Parameter * | xdpOutputMeta |
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::EBPFControl | |
| DECLARE_TYPEINFO (EBPFControl, EBPFObject) | |
| void | scanConstants () |
Protected Member Functions inherited from P4::RTTI::Base | |
| virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFDeparser.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFDeparser.
|
overridevirtual |
Reimplemented from P4::EBPF::EBPFDeparserPSA.
|
overridevirtual |
A "PreDeparser" is emitted just before a sequence of hdr.emit() functions. It is useful in the case of resubmit or clone operation, as these operations require to have an original packet.
Reimplemented from P4::EBPF::EBPFDeparser.