P4C
The P4 Compiler
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  EBPFHashAlgorithmTypeFactoryPNA
 
class  EBPFPnaParser
 
class  EBPFTablePNA
 
class  Extern
 
class  IngressDeparserPNA
 
class  InspectPnaProgram
 
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 }
 

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_KEY_ID = 1
 
constexpr auto DEFAULT_KEY_MASK = 8
 
constexpr auto DEFAULT_METADATA_ID = 1
 
constexpr auto DEFAULT_TABLE_ENTRIES = 2048
 
constexpr auto DEFAULT_TIMER_PROFILES = 4
 
constexpr auto DEFAULTONLY = 2
 
constexpr auto DEV_TYPE = 1
 
constexpr auto EXACT_TYPE = 0
 
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 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"
 
cstring pnaMainInputMetaFields [TC::MAX_PNA_INPUT_META]
 
cstring PnaMainInputMetaFields [TC::MAX_PNA_INPUT_META]
 
cstring pnaMainOutputMetaFields [TC::MAX_PNA_OUTPUT_META] = {"class_of_service"}
 
cstring PnaMainOutputMetaFields [TC::MAX_PNA_OUTPUT_META]
 
cstring pnaMainParserInputMetaFields [TC::MAX_PNA_PARSER_META] = {"recirculated", "input_port"}
 
cstring PnaMainParserInputMetaFields [TC::MAX_PNA_PARSER_META]
 
const cstring pnaOutputMeta = "pna_main_output_metadata_t"
 
const cstring pnaParserMeta = "pna_main_parser_input_metadata_t"
 
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 TC::pnaMainInputMetaFields[TC::MAX_PNA_INPUT_META]
Initial value:
= {
"recirculated", "timestamp", "parser_error", "class_of_service", "input_port"}