P4C
The P4 Compiler
|
Public Member Functions | |
Bmv2V1ModelTableStepper (Bmv2V1ModelExprStepper *stepper, const IR::P4Table *table) | |
Public Member Functions inherited from P4::P4Tools::P4Testgen::TableStepper | |
TableStepper (ExprStepper *stepper, const IR::P4Table *table) | |
bool | eval () |
Protected Member Functions | |
void | checkTargetProperties (const std::vector< const IR::ActionListElement * > &tableActionList) override |
const IR::Expression * | computeTargetMatchType (const TableUtils::KeyProperties &keyProperties, TableMatchMap *matches, const IR::Expression *hitCondition) override |
void | evalTargetTable (const std::vector< const IR::ActionListElement * > &tableActionList) override |
Protected Member Functions inherited from P4::P4Tools::P4Testgen::TableStepper | |
void | addDefaultAction (std::optional< const IR::Expression * > tableMissCondition) |
tableMissCondition is true. | |
std::vector< const IR::ActionListElement * > | buildTableActionList () |
Helper function that collects the list of actions contained in the table. | |
const IR::Expression * | computeHit (TableMatchMap *matches) |
void | evalTableCall () |
const IR::Expression * | evalTableConstEntries () |
void | evalTableControlEntries (const std::vector< const IR::ActionListElement * > &tableActionList) |
void | evalTaintedTable () |
const ExecutionState * | getExecutionState () |
const ProgramInfo * | getProgramInfo () |
ExprStepper::Result | getResult () |
bool | resolveTableKeys () |
void | setTableDefaultEntries (const std::vector< const IR::ActionListElement * > &tableActionList) |
Additional Inherited Members | |
Static Public Member Functions inherited from P4::P4Tools::P4Testgen::TableStepper | |
static const IR::StateVariable & | getTableActionVar (const IR::P4Table *table) |
static const IR::StateVariable & | getTableHitVar (const IR::P4Table *table) |
static const IR::StateVariable & | getTableResultVar (const IR::P4Table *table) |
static const IR::StateVariable & | getTableStateVariable (const IR::Type *type, const IR::P4Table *table, cstring name, std::optional< int > idx1_opt=std::nullopt, std::optional< int > idx2_opt=std::nullopt) |
Static Protected Member Functions inherited from P4::P4Tools::P4Testgen::TableStepper | |
static const IR::StringLiteral * | getTableActionString (const IR::MethodCallExpression *actionCall) |
Protected Attributes inherited from P4::P4Tools::P4Testgen::TableStepper | |
TableUtils::TableProperties | properties |
Basic table properties that are set when initializing the TableStepper. | |
ExprStepper * | stepper |
Reference to the calling expression stepper. | |
const IR::P4Table * | table |
The table for this particular stepper. | |
|
overrideprotectedvirtual |
Collects properties that may be set per table. Target back end may have different semantics for table execution that need to be collect before evaluation the table.
Reimplemented from P4::P4Tools::P4Testgen::TableStepper.
|
overrideprotectedvirtual |
This function allows target back ends to add their own match types. For example, some back ends implement the "optional" match type, which either hits as exact match or does not match at all. The table stepper first checks these custom match types. If these do not match it steps through the default implementation. If it does not match either, a P4C_UNIMPLEMENTED is thrown.
Reimplemented from P4::P4Tools::P4Testgen::TableStepper.
|
overrideprotectedvirtual |
This function allows target back ends to implement their own interpretation of table execution. How a table is evaluated is target-specific.
Reimplemented from P4::P4Tools::P4Testgen::TableStepper.