|
size_t | bitIngressPrePacketPaddingSize () const |
|
virtual unsigned | bitMaxClotPos () const =0 |
| The maximum offset+length a CLOT can have, in bits.
|
|
virtual unsigned | bitMinClotPos (gress_t) const =0 |
| The minimum offset a CLOT can have, in bits.
|
|
size_t | bitPhase0Size () const |
|
size_t | bitResubmitSize () const |
|
size_t | bitResubmitTagSize () const |
|
virtual const nw_bitrange | bitScratchRegisterRange (const MatchRegister ®) const =0 |
|
size_t | byteIngressIntrinsicMetadataSize () const |
|
virtual size_t | byteIngressPrePacketPaddingSize () const =0 |
|
nw_byterange | byteInputBufferMetadataRange () const |
|
int | byteInputBufferSize () const |
| The size of input buffer, in bytes.
|
|
virtual unsigned | byteInterClotGap () const =0 |
| The minimum number of bytes required between consecutive CLOTs.
|
|
virtual unsigned | byteMaxClotSize () const =0 |
| The maximum number of bytes a CLOT can hold.
|
|
virtual size_t | bytePhase0Size () const =0 |
|
size_t | byteResubmitSize () const |
|
size_t | byteResubmitTagSize () const |
|
virtual bool | byteScratchRegisterRangeValid (nw_byterange range) const =0 |
|
size_t | byteTotalIngressMetadataSize () const |
|
virtual double | clkFreq () const =0 |
| Clock frequency.
|
|
virtual unsigned | deparserChunkGroupSize () const =0 |
|
virtual unsigned | deparserChunkSize () const =0 |
|
virtual const std::map< unsigned, unsigned > & | extractorSpec () const =0 |
|
virtual unsigned | lineRate () const =0 |
| Max line rate per-port (Gbps)
|
|
virtual const std::vector< MatchRegister > | matchRegisters () const =0 |
| Specifies the available match registers.
|
|
virtual unsigned | maxClotsLivePerGress () const =0 |
| The maximum number of CLOTs that can be live for each packet in each gress.
|
|
virtual unsigned | maxClotsPerState () const =0 |
| The maximum number of CLOTs that can be generated in each parser state.
|
|
virtual size_t | maxParseDepth (gress_t) const |
| The maximum parse depth for the given gress.
|
|
virtual const std::vector< std::string > & | mdpValidVecFields () const =0 |
| Unused.
|
|
virtual const std::unordered_set< std::string > & | mdpValidVecFieldsSet () const =0 |
| Unused.
|
|
virtual size_t | minParseDepth (gress_t) const |
| The minimum parse depth for the given gress.
|
|
virtual unsigned | numClotsPerDeparserGroup () const =0 |
|
virtual unsigned | numClotsPerGress () const =0 |
| The number of CLOTs available for allocation in each gress.
|
|
virtual unsigned | numDeparserChecksumUnits () const =0 |
|
virtual unsigned | numDeparserChunkGroups () const =0 |
|
virtual unsigned | numDeparserConstantBytes () const =0 |
|
virtual unsigned | numDeparserInvertChecksumUnits () const =0 |
|
virtual int | numParsers () const =0 |
| Total parsers supported ingress/egress.
|
|
virtual int | numTcamRows () const =0 |
| Total TCAM Rows supported ingress/egress.
|
|
virtual bool | parserAllExtractorsSupportSingleByte () const =0 |
| Do all extractors support single-byte extracts?
|
|
virtual const std::vector< MatchRegister > | scratchRegisters () const =0 |
| Specifies the available scracth registers.
|
|
Midend passes
Midend passes related to deparsing:
- BFN::CheckHeaderAlignment (in BFN::PadFlexibleField) - Ensures that headers are byte aligned.
- DesugarVarbitExtract - Generates emit statements for variable-length headers.
- BFN::ParserEnforceDepthReq - Adds emit statements for padding headers to ensure the minimum parse depth.
- P4::SimplifyNestedIf - Simplifies nested if statements into simple if statements that the deparser can process.
Backend passes
Backend passes related to deparsing:
- AddDeparserMetadata - Adds deparser metadata parameters.
- AddMetadataPOV - Adds POV bits for metadata used by the deparser (Tofino 2+). Tofino 1 uses the valid bit associated with each PHV; Tofino 2+ use POV bits instead.
- BFN::AsmOutput - Outputs the deparser assembler. Uses DeparserAsmOutput and the passes it invokes.
- CollectClotInfo - Collects information for generating CLOTs.
- DeparserCopyOpt - Optimize copy assigned fields prior to deparsing.
- ExtractChecksum - Replaces EmitField with EmitChecksum emits in deparser. Also creates tables and optimizes conditions and fields that the checksum uses. Invoked from BFN::BackendConverter.
- BFN::ExtractDeparser - Convert IR::BFN::TnaDeparser objects to IR::BFN::Deparser objects. The pass generates emit and digest objects as part of this process.
- GreedyClotAllocator - CLOT allocation. Enforces deparser CLOT rules during allocation.
- InsertParserClotChecksums - Identifies CLOT fields used in deparser checksums to allow the checksum to be calculated in the parser (Tofino 2).
- LowerParser - Replaces high-level parser and deparser IR that operate on fields with low-level parser and deparser IR that operate on PHV containers.
- ResetInvalidatedChecksumHeaders - Reset fields that are used in deparser checksum operations and that are invalidated in the MAU (Tofino 1).