net/ice/base: add dedicate MAC type for E810
[dpdk.git] / drivers / net / ice / base / ice_fdir.c
index 87fa0af..ba00258 100644 (file)
@@ -401,6 +401,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)
@@ -412,13 +416,16 @@ 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;
-       fdir_fltr_ctx.fdid_prio = 3;
+       fdir_fltr_ctx.fdid_prio = input->fdid_prio;
        fdir_fltr_ctx.desc_prof = 1;
        fdir_fltr_ctx.desc_prof_prio = 3;
        ice_set_fd_desc_val(&fdir_fltr_ctx, fdesc);
@@ -804,6 +811,10 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,
        case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP:
        case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_ICMP:
        case ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER:
+               ice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,
+                                       input->ip.v4.src_ip);
+               ice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,
+                                       input->ip.v4.dst_ip);
                ice_pkt_insert_u32(loc, ICE_IPV4_GTPU_TEID_OFFSET,
                                   input->gtpu_data.teid);
                ice_pkt_insert_u6_qfi(loc, ICE_IPV4_GTPU_QFI_OFFSET,