diff options
author | Amritha Nambiar <amritha.nambiar@intel.com> | 2022-10-21 00:58:39 -0700 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2022-10-25 10:32:40 +0200 |
commit | 4a6a676f8c16ec17d2f8d69ce3b5d680277ed0d2 (patch) | |
tree | a1014bbd973a3a8a61a26e0bea2114df665d6fe2 /include/net/flow_offload.h | |
parent | 6143eca3578f486e4d58fe6fb5e96a5699c86fbc (diff) | |
download | linux-4a6a676f8c16ec17d2f8d69ce3b5d680277ed0d2.tar.gz linux-4a6a676f8c16ec17d2f8d69ce3b5d680277ed0d2.tar.bz2 linux-4a6a676f8c16ec17d2f8d69ce3b5d680277ed0d2.zip |
act_skbedit: skbedit queue mapping for receive queue
Add support for skbedit queue mapping action on receive
side. This is supported only in hardware, so the skip_sw
flag is enforced. This enables offloading filters for
receive queue selection in the hardware using the
skbedit action. Traffic arrives on the Rx queue requested
in the skbedit action parameter. A new tc action flag
TCA_ACT_FLAGS_AT_INGRESS is introduced to identify the
traffic direction the action queue_mapping is requested
on during filter addition. This is used to disallow
offloading the skbedit queue mapping action on transmit
side.
Example:
$tc filter add dev $IFACE ingress protocol ip flower dst_ip $DST_IP\
action skbedit queue_mapping $rxq_id skip_sw
Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/net/flow_offload.h')
-rw-r--r-- | include/net/flow_offload.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index e343f9f8363e..7a60bc6d72c9 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -155,6 +155,7 @@ enum flow_action_id { FLOW_ACTION_MARK, FLOW_ACTION_PTYPE, FLOW_ACTION_PRIORITY, + FLOW_ACTION_RX_QUEUE_MAPPING, FLOW_ACTION_WAKE, FLOW_ACTION_QUEUE, FLOW_ACTION_SAMPLE, @@ -247,6 +248,7 @@ struct flow_action_entry { u32 csum_flags; /* FLOW_ACTION_CSUM */ u32 mark; /* FLOW_ACTION_MARK */ u16 ptype; /* FLOW_ACTION_PTYPE */ + u16 rx_queue; /* FLOW_ACTION_RX_QUEUE_MAPPING */ u32 priority; /* FLOW_ACTION_PRIORITY */ struct { /* FLOW_ACTION_QUEUE */ u32 ctx; |