[ovs-dev] netdev-offload-tc: Add support for ct_state flag rel

Marcelo Ricardo Leitner marcelo.leitner at gmail.com
Wed Mar 31 20:45:40 UTC 2021


On Tue, Mar 30, 2021 at 01:00:15PM +0300, Ariel Levkovich wrote:

TCA_FLOWER_KEY_CT_FLAGS_RELATED is already defined in ovs' copy at
include/linux/pkt_cls.h, so no change there is needed.
To and from flower parsing is handled below.
Mainly due to previous patches, it will not attempt to use it with
kernels that may ignore it.

Tested with ct_state -rel, and it got correctly used.

The change LGTM.

Something ate the '[PATCH]' tag from subject, though. Not sure if
that's a problem.

Thanks,
Marcelo

> Signed-off-by: Ariel Levkovich <lariel at nvidia.com>
> ---
>  lib/netdev-offload-tc.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c
> index 448747eae..41acbdeb7 100644
> --- a/lib/netdev-offload-tc.c
> +++ b/lib/netdev-offload-tc.c
> @@ -765,6 +765,13 @@ parse_tc_flower_to_match(struct tc_flower *flower,
>                  ct_statem |= OVS_CS_F_INVALID;
>              }
>  
> +            if (mask->ct_state & TCA_FLOWER_KEY_CT_FLAGS_RELATED) {
> +                if (key->ct_state & TCA_FLOWER_KEY_CT_FLAGS_RELATED) {
> +                    ct_statev |= OVS_CS_F_RELATED;
> +                }
> +                ct_statem |= OVS_CS_F_RELATED;
> +            }
> +
>              match_set_ct_state_masked(match, ct_statev, ct_statem);
>          }
>  
> @@ -1522,6 +1529,14 @@ parse_match_ct_state_to_flower(struct tc_flower *flower, struct match *match)
>              mask->ct_state &= ~OVS_CS_F_INVALID;
>          }
>  
> +        if (mask->ct_state & OVS_CS_F_RELATED) {
> +            if (key->ct_state & OVS_CS_F_RELATED) {
> +                flower->key.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_RELATED;
> +            }
> +            flower->mask.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_RELATED;
> +            mask->ct_state &= ~OVS_CS_F_RELATED;
> +        }
> +
>          if (flower->key.ct_state & TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED) {
>              flower->key.ct_state &= ~(TCA_FLOWER_KEY_CT_FLAGS_NEW);
>              flower->mask.ct_state &= ~(TCA_FLOWER_KEY_CT_FLAGS_NEW);
> -- 
> 2.25.2
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list