ACK: [SRU][F:linux-bluefield][PATCH] UBUNTU: SAUCE: net/sched: act_ct: Offload connections with commit action

Kleber Souza kleber.souza at canonical.com
Wed May 26 13:55:25 UTC 2021


On 24.05.21 21:18, Daniel Jurgens wrote:
> From: Paul Blakey <paulb at nvidia.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1929459
> 
> Currently established connections are not offloaded if the filter has a
> "ct commit" action. This behavior will not offload connections of the
> following scenario:
> 
> $ tc_filter add dev $DEV ingress protocol ip prio 1 flower \
>    ct_state -trk \
>    action ct commit action goto chain 1
> 
> $ tc_filter add dev $DEV ingress protocol ip chain 1 prio 1 flower \
>    action mirred egress redirect dev $DEV2
> 
> $ tc_filter add dev $DEV2 ingress protocol ip prio 1 flower \
>    action ct commit action goto chain 1
> 
> $ tc_filter add dev $DEV2 ingress protocol ip prio 1 chain 1 flower \
>    ct_state +trk+est \
>    action mirred egress redirect dev $DEV
> 
> Offload established connections, regardless of the commit flag.
> 
> Signed-off-by: Paul Blakey <paulb at nvidia.com>
> Reviewed-by: Oz Shlomo <ozsh at nvidia.com>
> Signed-off-by: Daniel Jurgens <danielj at nvidia.com>

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>

Thanks

> ---
>   net/sched/act_ct.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
> index 4627bb7..4bc7c5e 100644
> --- a/net/sched/act_ct.c
> +++ b/net/sched/act_ct.c
> @@ -965,7 +965,7 @@ static int tcf_ct_act(struct sk_buff *skb, const struct tc_action *a,
>   	 */
>   	cached = tcf_ct_skb_nfct_cached(net, skb, p->zone, force);
>   	if (!cached) {
> -		if (!commit && tcf_ct_flow_table_lookup(p, skb, family)) {
> +		if (tcf_ct_flow_table_lookup(p, skb, family)) {
>   			skip_add = true;
>   			goto do_nat;
>   		}
> @@ -1005,10 +1005,11 @@ static int tcf_ct_act(struct sk_buff *skb, const struct tc_action *a,
>   		 * even if the connection is already confirmed.
>   		 */
>   		nf_conntrack_confirm(skb);
> -	} else if (!skip_add) {
> -		tcf_ct_flow_table_process_conn(p->ct_ft, ct, ctinfo);
>   	}
>   
> +	if (!skip_add)
> +		tcf_ct_flow_table_process_conn(p->ct_ft, ct, ctinfo);
> +
>   out_push:
>   	skb_push_rcsum(skb, nh_ofs);
>   
> 




More information about the kernel-team mailing list