net/ice: fix RSS for GTPU
[dpdk.git] / drivers / net / ice / base / ice_fdir.c
index c703a7c..4e9aafc 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2020
+ * Copyright(c) 2001-2020 Intel Corporation
  */
 
 #include "ice_common.h"
@@ -465,6 +465,10 @@ ice_fdir_get_prgm_desc(struct ice_hw *hw, struct ice_fdir_fltr *input,
        if (input->dest_ctl == ICE_FLTR_PRGM_DESC_DEST_DROP_PKT) {
                fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_YES;
                fdir_fltr_ctx.qindex = 0;
+       } else if (input->dest_ctl ==
+                       ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER) {
+               fdir_fltr_ctx.drop = ICE_FXD_FLTR_QW0_DROP_NO;
+               fdir_fltr_ctx.qindex = 0;
        } else {
                if (input->dest_ctl ==
                    ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_QGROUP)
@@ -476,12 +480,15 @@ ice_fdir_get_prgm_desc(struct ice_hw *hw, struct ice_fdir_fltr *input,
        fdir_fltr_ctx.cnt_index = input->cnt_index;
        fdir_fltr_ctx.fd_vsi = ice_get_hw_vsi_num(hw, input->dest_vsi);
        fdir_fltr_ctx.evict_ena = ICE_FXD_FLTR_QW0_EVICT_ENA_FALSE;
-       fdir_fltr_ctx.toq_prio = 3;
+       if (input->dest_ctl == ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER)
+               fdir_fltr_ctx.toq_prio = 0;
+       else
+               fdir_fltr_ctx.toq_prio = 3;
        fdir_fltr_ctx.pcmd = (add) ? ICE_FXD_FLTR_QW1_PCMD_ADD :
                ICE_FXD_FLTR_QW1_PCMD_REMOVE;
        fdir_fltr_ctx.swap = ICE_FXD_FLTR_QW1_SWAP_NOT_SET;
        fdir_fltr_ctx.comp_q = ICE_FXD_FLTR_QW0_COMP_Q_ZERO;
-       fdir_fltr_ctx.comp_report = ICE_FXD_FLTR_QW0_COMP_REPORT_SW_FAIL;
+       fdir_fltr_ctx.comp_report = ICE_FXD_FLTR_QW0_COMP_REPORT_SW;
        fdir_fltr_ctx.fdid_prio = input->fdid_prio;
        fdir_fltr_ctx.desc_prof = 1;
        fdir_fltr_ctx.desc_prof_prio = 3;