app/testpmd: fix use of indirect action after port close
[dpdk.git] / drivers / net / sfc / sfc_flow.h
index ada3d56..1287534 100644 (file)
@@ -15,6 +15,8 @@
 
 #include "efx.h"
 
+#include "sfc_flow_rss.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -30,15 +32,6 @@ extern "C" {
 #define SFC_BUILD_SET_OVERFLOW(_action, _set) \
        RTE_BUILD_BUG_ON((_action) >= sizeof(_set) * CHAR_BIT)
 
-/* RSS configuration storage */
-struct sfc_flow_rss {
-       unsigned int    rxq_hw_index_min;
-       unsigned int    rxq_hw_index_max;
-       unsigned int    rss_hash_types;
-       uint8_t         rss_key[EFX_RSS_KEY_SIZE];
-       unsigned int    rss_tbl[EFX_RSS_TBL_SIZE];
-};
-
 /* Flow engines supported by the implementation */
 enum sfc_flow_spec_type {
        SFC_FLOW_SPEC_FILTER = 0,
@@ -55,28 +48,29 @@ struct sfc_flow_spec_filter {
        efx_filter_spec_t filters[SF_FLOW_SPEC_NB_FILTERS_MAX];
        /* number of complete specifications */
        unsigned int count;
-       /* RSS toggle */
-       boolean_t rss;
-       /* RSS hash toggle */
-       boolean_t rss_hash_required;
-       /* RSS configuration */
-       struct sfc_flow_rss rss_conf;
+       /* RSS context (or NULL) */
+       struct sfc_flow_rss_ctx *rss_ctx;
 };
 
 /* Indicates the role of a given flow in tunnel offload */
-enum sfc_flow_tunnel_rule_type {
+enum sfc_ft_rule_type {
        /* The flow has nothing to do with tunnel offload */
        SFC_FT_RULE_NONE = 0,
-       /* The flow represents a JUMP rule */
-       SFC_FT_RULE_JUMP,
+       /* The flow is a TUNNEL rule, to match on an outer header */
+       SFC_FT_RULE_TUNNEL,
+       /*
+        * The flow is a SWITCH rule, to discard the outer header
+        * and dispatch the resulting packets to a vSwitch tenant
+        */
+       SFC_FT_RULE_SWITCH,
 };
 
 /* MAE-specific flow specification */
 struct sfc_flow_spec_mae {
        /* FLow Tunnel (FT) rule type (or NONE) */
-       enum sfc_flow_tunnel_rule_type  ft_rule_type;
+       enum sfc_ft_rule_type           ft_rule_type;
        /* Flow Tunnel (FT) context (or NULL) */
-       struct sfc_flow_tunnel          *ft;
+       struct sfc_ft_ctx               *ft_ctx;
        /* Desired priority level */
        unsigned int                    priority;
        /* Outer rule registry entry */