|
| EBPFTableImplementationPSA (const EBPFProgram *program, CodeGenInspector *codeGen, const IR::Declaration_Instance *decl) |
|
virtual void | applyImplementation (CodeBuilder *builder, cstring tableValueName, cstring actionRunVariable)=0 |
|
void | emitInitializer (CodeBuilder *builder) override |
|
virtual void | emitReferenceEntry (CodeBuilder *builder) |
|
void | emitTypes (CodeBuilder *builder) override |
|
virtual void | registerTable (const EBPFTablePSA *instance) |
|
| EBPFTablePSA (const EBPFProgram *program, CodeGenInspector *codeGen, cstring name) |
|
| EBPFTablePSA (const EBPFProgram *program, const IR::TableBlock *table, CodeGenInspector *codeGen) |
|
bool | cacheEnabled () override |
|
| DECLARE_TYPEINFO (EBPFTablePSA, EBPFTable) |
|
bool | dropOnNoMatchingEntryFound () const override |
|
void | emitAction (CodeBuilder *builder, cstring valueName, cstring actionRunVariable) override |
|
void | emitCacheInstance (CodeBuilder *builder) |
|
void | emitCacheLookup (CodeBuilder *builder, cstring key, cstring value) override |
|
virtual void | emitCacheTypes (CodeBuilder *builder) |
|
void | emitCacheUpdate (CodeBuilder *builder, cstring key, cstring value) override |
|
void | emitDirectValueTypes (CodeBuilder *builder) override |
|
void | emitInitializer (CodeBuilder *builder) override |
|
void | emitInstance (CodeBuilder *builder) override |
|
void | emitLookupDefault (CodeBuilder *builder, cstring key, cstring value, cstring actionRunVariable) override |
|
void | emitTypes (CodeBuilder *builder) override |
|
void | emitValueStructStructure (CodeBuilder *builder) override |
|
const IR::PathExpression * | getActionNameExpression (const IR::Expression *expr) const |
|
EBPFCounterPSA * | getDirectCounter (cstring name) const |
|
EBPFMeterPSA * | getMeter (cstring name) const |
|
bool | isMatchTypeSupported (const IR::Declaration_ID *matchType) override |
|
| EBPFTable (const EBPFProgram *program, CodeGenInspector *codeGen, cstring name) |
|
| EBPFTable (const EBPFProgram *program, const IR::TableBlock *table, CodeGenInspector *codeGen) |
|
| DECLARE_TYPEINFO (EBPFTable, EBPFTableBase) |
|
void | emitActionArguments (CodeBuilder *builder, const IR::P4Action *action, cstring name) |
|
void | emitKey (CodeBuilder *builder, cstring keyName) |
|
virtual void | emitKeyType (CodeBuilder *builder) |
|
virtual void | emitLookup (CodeBuilder *builder, cstring key, cstring value) |
|
virtual void | emitValueActionIDNames (CodeBuilder *builder) |
|
virtual void | emitValueType (CodeBuilder *builder) |
|
bool | isLPMTable () const |
|
bool | isTernaryTable () const |
|
cstring | p4ActionToActionIDName (const IR::P4Action *action) const |
|
| DECLARE_TYPEINFO (EBPFObject) |
|
template<typename T > |
T & | as () |
| Tries to convert the class to type T. A BUG occurs if the cast fails.
|
|
template<typename T > |
const T & | as () const |
| Tries to convert the class to type T. A BUG occurs if the cast fails.
|
|
template<typename T > |
T * | checkedTo () |
| Performs a checked cast. A BUG occurs if the cast fails.
|
|
template<typename T > |
const T * | checkedTo () const |
| Performs a checked cast. A BUG occurs if the cast fails.
|
|
template<typename T > |
bool | is () const noexcept |
|
virtual bool | isA (TypeId typeId) const noexcept=0 |
|
template<typename T > |
const T * | to () const noexcept |
| Same as to , but returns const pointer to T.
|
|
template<typename T > |
T * | to () noexcept |
|
virtual TypeId | typeId () const noexcept=0 |
|
|
| DECLARE_TYPEINFO (EBPFTableImplementationPSA, EBPFTablePSA) |
|
unsigned | getUintFromExpression (const IR::Expression *expr, unsigned defaultValue) |
|
void | verifyTableActionList (const EBPFTablePSA *instance) |
|
void | verifyTableNoDefaultAction (const EBPFTablePSA *instance) |
|
void | verifyTableNoDirectObjects (const EBPFTablePSA *instance) |
|
void | verifyTableNoEntries (const EBPFTablePSA *instance) |
|
ActionTranslationVisitor * | createActionTranslationVisitor (cstring valueName, const EBPFProgram *program) const override |
|
void | createCacheTypeNames (bool isCacheKeyType, bool isCacheValueType) |
|
void | emitConstEntriesInitializer (CodeBuilder *builder) |
|
void | emitDefaultActionInitializer (CodeBuilder *builder) |
|
void | emitKeyMasks (CodeBuilder *builder, EntriesGroupedByMask_t &entriesGroupedByMask, std::vector< cstring > &keyMasksNames) |
|
void | emitKeysAndValues (CodeBuilder *builder, EntriesGroup_t &sameMaskEntries, std::vector< cstring > &keyNames, std::vector< cstring > &valueNames) |
|
void | emitMapUpdateTraceMsg (CodeBuilder *builder, cstring mapName, cstring returnCode) const |
|
void | emitTableValue (CodeBuilder *builder, const IR::Expression *expr, cstring valueName) |
|
void | emitTernaryConstEntriesInitializer (CodeBuilder *builder) |
|
void | emitValueMask (CodeBuilder *builder, cstring valueMask, cstring nextMask, int tupleId) const |
|
void | initDirectCounters () |
|
void | initDirectMeters () |
|
void | initImplementation () |
|
void | tryEnableTableCache () |
|
void | emitTernaryInstance (CodeBuilder *builder) |
|
virtual void | validateKeys () const |
|
| EBPFTableBase (const EBPFProgram *program, cstring instanceName, CodeGenInspector *codeGen) |
|
| DECLARE_TYPEINFO (EBPFTableBase, EBPFObject) |
|
virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
|
Base class for ActionProfile and ActionSelector.