ice: Enable RX queue selection using skbedit action
authorAmritha Nambiar <amritha.nambiar@intel.com>
Fri, 21 Oct 2022 07:58:45 +0000 (00:58 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 25 Oct 2022 08:32:40 +0000 (10:32 +0200)
commit143b86f346c709d6fed661aee36cea70ef874815
treee49149beca384e96750849f87a86e9fa6a77e455
parent4a6a676f8c16ec17d2f8d69ce3b5d680277ed0d2
ice: Enable RX queue selection using skbedit action

This patch uses TC skbedit queue_mapping action to support
forwarding packets to a device queue. Such filters with action
forward to queue will be the highest priority switch filter in
HW.
Example:
$ tc filter add dev ens4f0 protocol ip ingress flower\
  dst_ip 192.168.1.12 ip_proto tcp dst_port 5001\
  action skbedit queue_mapping 5 skip_sw

The above command adds an ingress filter, incoming packets
qualifying the match will be accepted into queue 5. The queue
number is in decimal format.

Refactored ice_add_tc_flower_adv_fltr() to consolidate code with
action FWD_TO_VSI and FWD_TO QUEUE.

Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Reviewed-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/intel/ice/ice.h
drivers/net/ethernet/intel/ice/ice_main.c
drivers/net/ethernet/intel/ice/ice_tc_lib.c
drivers/net/ethernet/intel/ice/ice_tc_lib.h