P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::BFRT::BFRuntimeSchemaGenerator Class Reference

#include <bfruntime_ext.h>

Inheritance diagram for P4::BFRT::BFRuntimeSchemaGenerator:
[legend]

Classes

struct  ActionSelector
 

Public Member Functions

 BFRuntimeSchemaGenerator (const p4configv1::P4Info &p4info, bool isTDI, DPDK::DpdkOptions &options)
 
const Util::JsonObjectgenSchema () const override
 Generates the schema as a Json object for the provided P4Info instance.
 
- Public Member Functions inherited from P4::BFRT::BFRuntimeGenerator
 BFRuntimeGenerator (const p4configv1::P4Info &p4info)
 
void serializeBFRuntimeSchema (std::ostream *destination)
 

Additional Inherited Members

- Protected Types inherited from P4::BFRT::BFRuntimeGenerator
enum  TDDataFieldIds : P4Id {
  TD_DATA_START = (1 << 16) , TD_DATA_MATCH_PRIORITY , TD_DATA_ACTION , TD_DATA_ACTION_MEMBER_ID ,
  TD_DATA_SELECTOR_GROUP_ID , TD_DATA_ACTION_MEMBER_STATUS , TD_DATA_MAX_GROUP_SIZE , TD_DATA_ENTRY_TTL ,
  TD_DATA_ENTRY_HIT_STATE , TD_DATA_METER_SPEC_CIR_KBPS , TD_DATA_METER_SPEC_PIR_KBPS , TD_DATA_METER_SPEC_CBS_KBITS ,
  TD_DATA_METER_SPEC_PBS_KBITS , TD_DATA_METER_SPEC_CIR_PPS , TD_DATA_METER_SPEC_PIR_PPS , TD_DATA_METER_SPEC_CBS_PKTS ,
  TD_DATA_METER_SPEC_PBS_PKTS , TD_DATA_COUNTER_SPEC_BYTES , TD_DATA_COUNTER_SPEC_PKTS , TD_DATA_METER_INDEX ,
  TD_DATA_COUNTER_INDEX , TD_DATA_REGISTER_INDEX , TD_DATA_END
}
 
- Protected Member Functions inherited from P4::BFRT::BFRuntimeGenerator
void addActionProfCommon (Util::JsonArray *tablesJson, const ActionProf &actionProf) const
 
void addCounterCommon (Util::JsonArray *tablesJson, const Counter &counter) const
 
void addCounters (Util::JsonArray *tablesJson) const
 
virtual void addDirectResources (const p4configv1::Table &table, Util::JsonArray *dataJson, Util::JsonArray *operationsJson, Util::JsonArray *attributesJson, P4Id maxActionParamId=0) const
 
void addLearnFilterCommon (Util::JsonArray *learnFiltersJson, const Digest &digest) const
 
void addLearnFilters (Util::JsonArray *learnFiltersJson) const
 
void addMatchTables (Util::JsonArray *tablesJson) const
 
void addMeterCommon (Util::JsonArray *tablesJson, const Meter &meter) const
 
void addMeters (Util::JsonArray *tablesJson) const
 
void addRegisterCommon (Util::JsonArray *tablesJson, const Register &reg) const
 
void addRegisterDataFields (Util::JsonArray *dataJson, const Register &register_, P4Id idOffset=1) const
 
void addRegisters (Util::JsonArray *tablesJson) const
 
virtual std::optional< CountergetDirectCounter (P4Id counterId) const
 
virtual std::optional< MetergetDirectMeter (P4Id meterId) const
 
Util::JsonArraymakeActionSpecs (const p4configv1::Table &table, P4Id *maxActionParamId=nullptr) const
 
void transformTypeSpecToDataFields (Util::JsonArray *fieldsJson, const p4configv1::P4DataTypeSpec &typeSpec, cstring instanceType, cstring instanceName, const std::vector< cstring > *fieldNames=nullptr, cstring prefix=cstring::empty, cstring suffix=cstring::empty, P4Id idOffset=1) const
 
- Static Protected Member Functions inherited from P4::BFRT::BFRuntimeGenerator
static void addActionDataField (Util::JsonArray *dataJson, P4Id id, const std::string &name, bool mandatory, bool read_only, Util::JsonObject *type, Util::JsonArray *annotations=nullptr)
 
static void addCounterDataFields (Util::JsonArray *dataJson, const Counter &counter)
 
static void addKeyField (Util::JsonArray *dataJson, P4Id id, cstring name, bool mandatory, cstring matchType, Util::JsonObject *type, Util::JsonArray *annotations=nullptr)
 
static void addMeterDataFields (Util::JsonArray *dataJson, const Meter &meter)
 
static void addToDependsOn (Util::JsonObject *tableJson, P4Id id)
 
static Util::JsonObjectinitTableJson (const std::string &name, P4Id id, cstring tableType, int64_t size, Util::JsonArray *annotations=nullptr)
 
static Util::JsonObjectmakeCommonDataField (P4Id id, cstring name, Util::JsonObject *type, bool repeated, Util::JsonArray *annotations=nullptr)
 
static Util::JsonObjectmakeContainerDataField (P4Id id, cstring name, Util::JsonArray *items, bool repeated, Util::JsonArray *annotations=nullptr)
 
- Protected Attributes inherited from P4::BFRT::BFRuntimeGenerator
const p4configv1::P4Info & p4info
 

Detailed Description

This class is in charge of translating the P4Info Protobuf message used in the context of P4Runtime to the BF-RT info JSON used by the BF-RT API.

Member Function Documentation

◆ genSchema()

const Util::JsonObject * P4::BFRT::BFRuntimeSchemaGenerator::genSchema ( ) const
overridevirtual

Generates the schema as a Json object for the provided P4Info instance.

Reimplemented from P4::BFRT::BFRuntimeGenerator.