net/ice: optimize protocol extraction by dynamic mbuf
[dpdk.git] / drivers / net / ice / ice_fdir_filter.c
index 9389b1f..afab5af 100644 (file)
 #define ICE_FDIR_INSET_GTPU_IPV4 (\
        ICE_INSET_GTPU_TEID | ICE_INSET_GTPU_QFI)
 
-#define ICE_FDIR_INSET_GTPU_IPV4_TCP (\
-       ICE_FDIR_INSET_GTPU_IPV4)
-
-#define ICE_FDIR_INSET_GTPU_IPV4_UDP (\
-       ICE_FDIR_INSET_GTPU_IPV4)
-
-#define ICE_FDIR_INSET_GTPU_IPV4_UDP (\
-       ICE_FDIR_INSET_GTPU_IPV4)
-
 static struct ice_pattern_match_item ice_fdir_pattern_os[] = {
        {pattern_eth_ipv4,             ICE_FDIR_INSET_ETH_IPV4,              ICE_INSET_NONE},
        {pattern_eth_ipv4_udp,         ICE_FDIR_INSET_ETH_IPV4_UDP,          ICE_INSET_NONE},
@@ -128,10 +119,6 @@ static struct ice_pattern_match_item ice_fdir_pattern_comms[] = {
        {pattern_eth_ipv4_udp_vxlan_eth_ipv4_sctp,
                                       ICE_FDIR_INSET_VXLAN_IPV4_SCTP,       ICE_INSET_NONE},
        {pattern_eth_ipv4_gtpu_ipv4,   ICE_FDIR_INSET_GTPU_IPV4,             ICE_INSET_NONE},
-       {pattern_eth_ipv4_gtpu_ipv4_tcp,
-                                      ICE_FDIR_INSET_GTPU_IPV4,             ICE_INSET_NONE},
-       {pattern_eth_ipv4_gtpu_ipv4_udp,
-                                      ICE_FDIR_INSET_GTPU_IPV4,             ICE_INSET_NONE},
 };
 
 static struct ice_flow_parser ice_fdir_parser_os;
@@ -647,7 +634,7 @@ ice_fdir_hw_tbl_conf(struct ice_pf *pf, struct ice_vsi *vsi,
                        if (!memcmp(ori_seg, seg, sizeof(*seg)))
                                return -EAGAIN;
                } else {
-                       if (!memcmp(ori_seg, &seg[1], sizeof(*seg)))
+                       if (!memcmp(&ori_seg[1], &seg[1], sizeof(*seg)))
                                return -EAGAIN;
                }
 
@@ -876,8 +863,10 @@ ice_fdir_init(struct ice_adapter *ad)
 
        if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS)
                parser = &ice_fdir_parser_comms;
-       else
+       else if (ad->active_pkg_type == ICE_PKG_TYPE_OS_DEFAULT)
                parser = &ice_fdir_parser_os;
+       else
+               return -EINVAL;
 
        return ice_register_parser(parser, ad);
 }