net: add optional fields in GRE header
[dpdk.git] / lib / pipeline / rte_swx_pipeline.h
index 2f18a82..77141bd 100644 (file)
@@ -567,6 +567,20 @@ struct rte_swx_pipeline_table_params {
        /** 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;
@@ -633,7 +647,7 @@ struct rte_swx_pipeline_selector_params {
        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.
         */
@@ -692,19 +706,23 @@ struct rte_swx_pipeline_learner_params {
        /** 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*.