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

This file defines functions for the pass to generate the introspection file. More...

Classes

struct  ActionAttributes
 
struct  ActionParam
 
class  ActionTranslationVisitorPNA
 
struct  Annotation
 
class  Backend
 
class  ControlBodyTranslatorPNA
 
class  ConvertToBackendIR
 
class  ConvertToEBPFControlPNA
 
class  ConvertToEBPFDeparserPNA
 
class  ConvertToEBPFParserPNA
 
class  ConvertToEbpfPipelineTC
 
class  ConvertToEbpfPNA
 
class  CRC16ChecksumAlgorithmPNA
 
class  CRC32ChecksumAlgorithmPNA
 
class  CRCChecksumAlgorithmPNA
 
class  DeparserHdrEmitTranslatorPNA
 
class  EBPFChecksumPNA
 
class  EBPFControlPNA
 
class  EBPFCounterPNA
 
class  EBPFDigestPNA
 
class  EBPFHashAlgorithmTypeFactoryPNA
 
class  EBPFInternetChecksumPNA
 
class  EBPFMeterPNA
 
class  EBPFPnaParser
 
class  EBPFRegisterPNA
 
class  EBPFTablePNA
 
class  EBPFTablePNADirectCounterPropertyVisitor
 
class  EBPFTablePNADirectMeterPropertyVisitor
 
class  Extern
 
struct  ExternAttributes
 
struct  ExternInstancesAttributes
 
class  IngressDeparserPNA
 
class  InspectPnaProgram
 
class  InternetChecksumAlgorithmPNA
 
class  IntrospectionGenerator
 This pass generates introspection JSON into user specified file. More...
 
struct  IntrospectionInfo
 
struct  KeyFieldAttributes
 
class  MidEnd
 
class  ParsePnaArchitecture
 
class  ParseTCAnnotations
 
class  PNAArchTC
 
class  PNAEbpfGenerator
 
class  PNAErrorCodesGen
 
class  PnaProgramStructure
 
class  PnaStateTranslationVisitor
 
struct  TableAttributes
 
class  TCIngressPipelinePNA
 
class  TCOptions
 

Typedefs

using TCContext = P4CContextWithOptions<TCOptions>
 

Enumerations

enum  ActionScope { TableOnly , DefaultOnly , TableAndDefault }
 
enum  block_t { PARSER , PIPELINE , DEPARSER }
 

Variables

constexpr auto BE16_TYPE = 5
 
constexpr auto BE32_TYPE = 6
 
constexpr auto BE64_TYPE = 7
 
constexpr auto BIT_TYPE = 0
 
constexpr auto BITWIDTH = 32
 
constexpr auto DEFAULT_ADD_ON_MISS_TABLE_CONTROL_PATH_ACCESS = "CRUDPS"
 
constexpr auto DEFAULT_ADD_ON_MISS_TABLE_DATA_PATH_ACCESS = "CRXP"
 
constexpr auto DEFAULT_EXTERN_CONTROL_PATH_ACCESS = "RUPS"
 
constexpr auto DEFAULT_EXTERN_DATA_PATH_ACCESS = "RUXP"
 
constexpr auto DEFAULT_KEY_ID = 1
 
constexpr auto DEFAULT_KEY_MASK = 8
 
constexpr auto DEFAULT_METADATA_ID = 1
 
constexpr auto DEFAULT_TABLE_CONTROL_PATH_ACCESS = "CRUDPS"
 
constexpr auto DEFAULT_TABLE_DATA_PATH_ACCESS = "RX"
 
constexpr auto DEFAULT_TABLE_ENTRIES = 1024
 
constexpr auto DEFAULT_TIMER_PROFILES = 4
 
constexpr auto DEFAULTONLY = 2
 
constexpr auto DEV_TYPE = 1
 
constexpr auto EXACT_TYPE = 0
 
constexpr auto IN = 1
 
constexpr auto INOUT = 3
 
constexpr auto INPUT_CLASS_OF_SERVICE = 3
 
constexpr auto INPUT_INPUT_PORT = 4
 
constexpr auto INPUT_PARSER_ERROR = 2
 
constexpr auto INPUT_RECIRCULATED = 0
 
constexpr auto INPUT_TIMESTAMP = 1
 
constexpr auto IPV4_TYPE = 3
 
constexpr auto IPV6_TYPE = 4
 
constexpr auto LPM_TYPE = 1
 
constexpr auto MACADDR_TYPE = 2
 
constexpr auto MAX_PNA_INPUT_META = 5
 
constexpr auto MAX_PNA_OUTPUT_META = 1
 
constexpr auto MAX_PNA_PARSER_META = 2
 
constexpr auto NONE = 0
 
constexpr auto OUT = 2
 
constexpr auto OUTPUT_CLASS_OF_SERVICE = 0
 
constexpr auto PARAM_INDEX_0 = 0
 
constexpr auto PARAM_INDEX_1 = 1
 
constexpr auto PARAM_INDEX_2 = 2
 
constexpr auto PARAM_INDEX_3 = 3
 
constexpr auto PARSER_INPUT_PORT = 1
 
constexpr auto PARSER_RECIRCULATED = 0
 
const cstring pnaInputMeta = "pna_main_input_metadata_t"_cs
 
cstring PnaMainInputMetaFields [TC::MAX_PNA_INPUT_META]
 
cstring pnaMainInputMetaFields [TC::MAX_PNA_INPUT_META]
 
cstring PnaMainOutputMetaFields [TC::MAX_PNA_OUTPUT_META]
 
cstring pnaMainOutputMetaFields [TC::MAX_PNA_OUTPUT_META] = {"class_of_service"_cs}
 
cstring PnaMainParserInputMetaFields [TC::MAX_PNA_PARSER_META]
 
cstring pnaMainParserInputMetaFields [TC::MAX_PNA_PARSER_META]
 
const cstring pnaOutputMeta = "pna_main_output_metadata_t"_cs
 
const cstring pnaParserMeta = "pna_main_parser_input_metadata_t"_cs
 
constexpr auto PORTID_BITWIDTH = 32
 
constexpr auto RESET = 0
 
constexpr auto SET = 1
 
constexpr auto SKBIIF = 3
 
constexpr auto SKBPRIO = 5
 
constexpr auto SKBREDIR = 2
 
constexpr auto SKBTSTAMP = 4
 
constexpr auto TABLEDEFAULT = 0
 
constexpr auto TABLEONLY = 1
 
constexpr auto TERNARY_TYPE = 2
 
constexpr auto UNDEFINED = 0
 
constexpr auto UNSUPPORTED = 1
 

Detailed Description

This file defines functions for the pass to generate the introspection file.

This file declares the different structures to be used in the introspection json file and the pass to generate the file An introspection json file generated by the tc backend is used for control plane programming by P4TC in Linux kernel

Variable Documentation

◆ pnaMainInputMetaFields

cstring P4::TC::pnaMainInputMetaFields[TC::MAX_PNA_INPUT_META]
Initial value:
= {
"recirculated"_cs, "timestamp"_cs, "parser_error"_cs, "class_of_service"_cs, "input_port"_cs}

◆ pnaMainParserInputMetaFields

cstring P4::TC::pnaMainParserInputMetaFields[TC::MAX_PNA_PARSER_META]
Initial value:
= {"recirculated"_cs,
"input_port"_cs}