net/iavf: refactor RSS
authorQi Zhang <qi.z.zhang@intel.com>
Fri, 4 Sep 2020 03:33:12 +0000 (11:33 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:08 +0000 (18:55 +0200)
commit91f27b2e39abbc7692d6fd7fd8ea3694c4c985e1
tree3471fc5136d9d97aad87531c6fb53ab39b2e2b55
parent55b41f2372ce68ea2e5bc6fa4e576ed25129bc86
net/iavf: refactor RSS

Current RSS implementation is not easy to scale and maintain.
The patch refactor the code base on below design:

1. iavf_pattern_match_item->input_set_mask is the superset of
   ETH_RSS_xxx.
2. iavf_pattern_match_item->meta is the virtchnl_proto_hdrs template.
3. iavf_hash_parse_pattern will generate pattern hint.
4. iavf_hash_parse_action will refine the virtchnl_proto_hdrs base on
   pattern hint and ETH_RSS_xxx.
5. The refine process include
   1) refine field selector of l2, l3, l4.
   2) insert gtpu proto_hdr at the beginning base on pattern hint.
   3) refine field selector for gtpu header.

The patch reduce the code from 4000+ line to less than 1000.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
drivers/net/iavf/iavf_hash.c