/** The set of actions for the current table. */
const char **action_names;
+ /** Array of *n_actions* flags. For each action, the associated flag
+ * indicates whether the action can be assigned to regular table entries
+ * (when non-zero, i.e. true) or not (when zero, i.e. false). When set
+ * to NULL, it defaults to true for all actions.
+ */
+ int *action_is_for_table_entries;
+
+ /** Array of *n_actions* flags. For each action, the associated flag
+ * indicates whether the action can be assigned to the default table
+ * entry (when non-zero, i.e. true) or not (when zero, i.e. false).
+ * When set to NULL, it defaults to true for all actions.
+ */
+ int *action_is_for_default_entry;
+
/** The number of actions for the current table. Must be at least one.
*/
uint32_t n_actions;
const char *group_id_field_name;
/** The set of fields used to select (through a hashing scheme) the
- * member within the current group. Inputs into the seletion operation.
+ * member within the current group. Inputs into the selection operation.
* Restriction: All the selector fields must be part of the same struct,
* i.e. part of the same header or part of the meta-data structure.
*/
/** The set of actions for the current table. */
const char **action_names;
- /** The number of actions for the current table. Must be at least one.
+ /** Array of *n_actions* flags. For each action, the associated flag
+ * indicates whether the action can be assigned to regular table entries
+ * (when non-zero, i.e. true) or not (when zero, i.e. false). When set
+ * to NULL, it defaults to true for all actions.
*/
- uint32_t n_actions;
+ int *action_is_for_table_entries;
- /** This table type allows adding the latest lookup key (typically done
- * only in the case of lookup miss) to the table with a given action.
- * The action arguments are picked up from the packet meta-data: for
- * each action, a set of successive meta-data fields (with the name of
- * the first such field provided here) is 1:1 mapped to the action
- * arguments. These meta-data fields must be set with the actual values
- * of the action arguments before the key add operation.
+ /** Array of *n_actions* flags. For each action, the associated flag
+ * indicates whether the action can be assigned to the default table
+ * entry (when non-zero, i.e. true) or not (when zero, i.e. false).
+ * When set to NULL, it defaults to true for all actions.
*/
- const char **action_field_names;
+ int *action_is_for_default_entry;
+
+ /** The number of actions for the current table. Must be at least one.
+ */
+ uint32_t n_actions;
/** The default table action that gets executed on lookup miss. Must be
* one of the table actions included in the *action_names*.