net/sfc/base: fix field order in filter spec struct
authorIgor Romanov <igor.romanov@oktetlabs.ru>
Tue, 13 Nov 2018 15:02:44 +0000 (15:02 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 13 Nov 2018 23:35:53 +0000 (00:35 +0100)
Fields in the struct efx_filter_spec_t starting from efs_outer_vid
are hashed for software filter lookup. efs_mark is not a matching
criteria. Exclude efs_mark from hash.

Fixes: 5f78af523912 ("net/sfc: support MARK and FLAG actions in flow API")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/efx.h

index 8e10e89..2e847b6 100644 (file)
@@ -2878,6 +2878,8 @@ typedef struct efx_filter_spec_s {
        efx_filter_flags_t              efs_flags;
        uint16_t                        efs_dmaq_id;
        uint32_t                        efs_rss_context;
+       uint32_t                        efs_mark;
+       /* Fields below here are hashed for software filter lookup */
        uint16_t                        efs_outer_vid;
        uint16_t                        efs_inner_vid;
        uint8_t                         efs_loc_mac[EFX_MAC_ADDR_LEN];
@@ -2891,7 +2893,6 @@ typedef struct efx_filter_spec_s {
        efx_oword_t                     efs_loc_host;
        uint8_t                         efs_vni_or_vsid[EFX_VNI_OR_VSID_LEN];
        uint8_t                         efs_ifrm_loc_mac[EFX_MAC_ADDR_LEN];
-       uint32_t                        efs_mark;
 } efx_filter_spec_t;