On 2/4/21 3:42 PM, Marcelo Ricardo Leitner wrote:
> On Thu, Feb 04, 2021 at 03:34:41PM +0100, Ilya Maximets wrote:
>> On 2/4/21 3:50 AM, [email protected] wrote:
>>> From: wenxu <[email protected]>
>>>
>>> TC flower doesn't support some ct state flags such as
>>> INVALID/SNAT/DNAT/REPLY. So it is better to reject this rule.
>>>
>>
>> Fixes: 576126a931cd ("netdev-offload-tc: Add conntrack support")
>>
>>> Signed-off-by: wenxu <[email protected]>
>>> ---
>>> lib/netdev-offload-tc.c | 5 +++--
>>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> This version loogs good to me.
>> Marcelo, Paul, what do you think?
>
> +1
> Reviewed-by: Marcelo Ricardo Leitner <[email protected]>
Thanks.
Applied to master and backported down to 2.13.
>
> ...
>>> @@ -1660,14 +1662,13 @@ netdev_tc_flow_put(struct netdev *netdev, struct
>>> match *match,
>>> flower.key.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_TRACKED;
>>> }
>>> flower.mask.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_TRACKED;
>>> + mask->ct_state &= ~OVS_CS_F_TRACKED;
>>> }
>>>
>>> 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);
>>> }
>
> Btw, this check is probably useless as validate_ct_state() already does:
>
> if (state & CS_NEW && state & CS_ESTABLISHED) {
> ds_put_format(ds, "%s: invalid connection state: "
> "\"new\" and \"est\" are mutually exclusive\n",
>
> And it would be wrong if it was effective. The translation shouldn't
> be saying which flag has preference.
>
IIUC, this part of the code is from validate_ct_state() function, but
it only used during ofproto/trace. But I agree that we should not
silently clear one of the flags. Some part of the code should fail
instead.
>>> -
>>> - mask->ct_state = 0;
>>> }
>>>
>>> if (mask->ct_zone) {
>>>
>>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev