From patchwork Thu Feb 4 02:50:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wenxu X-Patchwork-Id: 1435809 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DWNMk0tckz9sxS for ; Thu, 4 Feb 2021 13:50:42 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 1DDC086B80; Thu, 4 Feb 2021 02:50:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sNXxb3-q9E60; Thu, 4 Feb 2021 02:50:38 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by whitealder.osuosl.org (Postfix) with ESMTP id 745A886A9C; Thu, 4 Feb 2021 02:50:31 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id F36FBC08A1; Thu, 4 Feb 2021 02:50:30 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 3661BC013A for ; Thu, 4 Feb 2021 02:50:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 1D533871B5 for ; Thu, 4 Feb 2021 02:50:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5VB6ChzP+aTx for ; Thu, 4 Feb 2021 02:50:26 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-m2836.qiye.163.com (mail-m2836.qiye.163.com [103.74.28.36]) by hemlock.osuosl.org (Postfix) with ESMTPS id CA354871C1 for ; Thu, 4 Feb 2021 02:50:23 +0000 (UTC) Received: from localhost.localdomain (unknown [123.59.132.129]) by mail-m2836.qiye.163.com (Hmail) with ESMTPA id E0CE9C0096; Thu, 4 Feb 2021 10:50:14 +0800 (CST) From: wenxu@ucloud.cn To: mleitner@redhat.com, i.maximets@ovn.org Date: Thu, 4 Feb 2021 10:50:14 +0800 Message-Id: <1612407014-25237-1-git-send-email-wenxu@ucloud.cn> X-Mailer: git-send-email 1.8.3.1 X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgYFAkeWUFZS1VLWVdZKFlBSUI3V1ktWUFJV1kPCR oVCBIfWUFZSUxJHUlPHhlNTR4dVkpNSklPS0xLSk9CQ0pVGRETFhoSFyQUDg9ZV1kWGg8SFR0UWU FZT0tIVUpKS0hKQ1VLWQY+ X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6MS46Cyo5Vj0zDAJKESEYTTk0 FR8wC0tVSlVKTUpJT0tMS0pOSkhCVTMWGhIXVQweFQMOOw4YFxQOH1UYFUVZV1kSC1lBWUpJSFVO QlVKSElVSklCWVdZCAFZQUlPS0M3Bg++ X-HM-Tid: 0a776af2861b841ekuqwe0ce9c0096 Cc: dev@openvswitch.org Subject: [ovs-dev] [PATCH v3] netdev-offload-tc: Reject install rules for tc flower unsupported ct_state flags X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: wenxu TC flower doesn't support some ct state flags such as INVALID/SNAT/DNAT/REPLY. So it is better to reject this rule. Signed-off-by: wenxu Reviewed-by: Marcelo Ricardo Leitner --- lib/netdev-offload-tc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c index 586d99d..7cdd849 100644 --- a/lib/netdev-offload-tc.c +++ b/lib/netdev-offload-tc.c @@ -1646,6 +1646,7 @@ netdev_tc_flow_put(struct netdev *netdev, struct match *match, flower.key.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_NEW; } flower.mask.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_NEW; + mask->ct_state &= ~OVS_CS_F_NEW; } if (mask->ct_state & OVS_CS_F_ESTABLISHED) { @@ -1653,6 +1654,7 @@ netdev_tc_flow_put(struct netdev *netdev, struct match *match, flower.key.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED; } flower.mask.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED; + mask->ct_state &= ~OVS_CS_F_ESTABLISHED; } if (mask->ct_state & OVS_CS_F_TRACKED) { @@ -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); } - - mask->ct_state = 0; } if (mask->ct_zone) {