P4C
The P4 Compiler
|
#include <bfruntime_ext.h>
Classes | |
struct | ActionSelector |
Public Member Functions | |
BFRuntimeSchemaGenerator (const p4configv1::P4Info &p4info, bool isTDI, DPDK::DpdkOptions &options) | |
const Util::JsonObject * | genSchema () 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 ®) const |
void | addRegisterDataFields (Util::JsonArray *dataJson, const Register ®ister_, P4Id idOffset=1) const |
void | addRegisters (Util::JsonArray *tablesJson) const |
virtual std::optional< Counter > | getDirectCounter (P4Id counterId) const |
virtual std::optional< Meter > | getDirectMeter (P4Id meterId) const |
Util::JsonArray * | makeActionSpecs (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::JsonObject * | initTableJson (const std::string &name, P4Id id, cstring tableType, int64_t size, Util::JsonArray *annotations=nullptr) |
static Util::JsonObject * | makeCommonDataField (P4Id id, cstring name, Util::JsonObject *type, bool repeated, Util::JsonArray *annotations=nullptr) |
static Util::JsonObject * | makeContainerDataField (P4Id id, cstring name, Util::JsonArray *items, bool repeated, Util::JsonArray *annotations=nullptr) |
Protected Attributes inherited from P4::BFRT::BFRuntimeGenerator | |
const p4configv1::P4Info & | p4info |
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.
|
overridevirtual |
Generates the schema as a Json object for the provided P4Info instance.
Reimplemented from P4::BFRT::BFRuntimeGenerator.