From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 44425155A26; Fri, 5 Jul 2024 13:34:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186460; cv=none; b=hSrW9Jj9JNG89kWscg1qE6Xm5bkgqKAO0oa3CJ74rEancpfKmMXAdax5wjcucga44yUHJLk49XGPbKTvX7OasNKDcbkLW0M5465o1XSvfd+WL95QHKFAMcBiJin7UYb8yxDyCcfVZDX7hpArkyc5MArTPV9Gb9IGGk71hpUYwvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186460; c=relaxed/simple; bh=U8fAUnOXpGztA1trUTv5zEWA4jw7bK7vWDTmwvAnmjg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=giM0XvCMbnI8hZE0pjgW8KjlbghM76PNYFK+TD3ZVU6Rxd5a9q+26FzbLbnr+Yorusjvd0RNNxzYbwbXfNPAekYCsj2sNsXQ0QyNKzdTNzbreRDP+pG2Hvai7KaLvaGYI7HTUd4GzyiaRWlRnc8bgRwk6YtWxAGfXxAkQ1RSAJ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=Pe6+JHtJ; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="Pe6+JHtJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=U8fAUnOXpGztA1trUTv5zEWA4jw7bK7vWDTmwvAnmjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pe6+JHtJW7AOydbFxFjEn47M8LvclAUd9mShKQ+o53oq/t2i1/mJTxiaWklxmTCNm +MyHZq4s/ZA+Ri667LrhAcIk2rPRAgkndpuCXaCl+4O/BNfn6zyAWWb46mkd6QGODR onDKifXuRumeIKYnJXH8I5eElz1aV4UNPb3K4+DZv9r39qSMexisquHhzdGMsPMnQt biOxVHALhx6FGgNvERO2Pa//ZmaBUYYGnuI08d3bH3V4BEbY25Cu6gpuQUOaSg4YQn klwzM8/VU9c3IT9F0hNAr6T5ITFDV6lsGDHjcJ/QLBVefm/13huxz43xOKWKTRvpMF st0Ze6APRhpoA== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 38F8B6009B; Fri, 5 Jul 2024 13:34:10 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id EBA8D204753; Fri, 05 Jul 2024 13:33:49 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 01/10] net/sched: flower: refactor tunnel flag definitions Date: Fri, 5 Jul 2024 13:33:37 +0000 Message-ID: <20240705133348.728901-2-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Redefine the flower control flags as an enum, so they are included in BTF info. Make the kernel-side enum a more explicit superset of TCA_FLOWER_KEY_FLAGS_*, new flags still need to be added to both enums, but at least the bit position only has to be defined once. FLOW_DIS_ENCAPSULATION is never set for mask, so it can't be exposed to userspace in an unsupported flags mask error message, so it will be placed one bit position above the last uAPI flag. Suggested-by: Alexander Lobakin Suggested-by: Jakub Kicinski Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen --- include/net/flow_dissector.h | 14 +++++++++++--- include/uapi/linux/pkt_cls.h | 3 +++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index 3e47e123934d4..c3fce070b9129 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h @@ -7,6 +7,7 @@ #include #include #include +#include =20 struct bpf_prog; struct net; @@ -24,9 +25,16 @@ struct flow_dissector_key_control { u32 flags; }; =20 -#define FLOW_DIS_IS_FRAGMENT BIT(0) -#define FLOW_DIS_FIRST_FRAG BIT(1) -#define FLOW_DIS_ENCAPSULATION BIT(2) +/* The control flags are kept in sync with TCA_FLOWER_KEY_FLAGS_*, as those + * flags are exposed to userspace in some error paths, ie. unsupported fla= gs. + */ +enum flow_dissector_ctrl_flags { + FLOW_DIS_IS_FRAGMENT =3D TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT, + FLOW_DIS_FIRST_FRAG =3D TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST, + + /* These flags are internal to the kernel */ + FLOW_DIS_ENCAPSULATION =3D (TCA_FLOWER_KEY_FLAGS_MAX << 1), +}; =20 enum flow_dissect_ret { FLOW_DISSECT_RET_OUT_GOOD, diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index b6d38f5fd7c05..12db276f0c11e 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -677,8 +677,11 @@ enum { enum { TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT =3D (1 << 0), TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST =3D (1 << 1), + __TCA_FLOWER_KEY_FLAGS_MAX, }; =20 +#define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1) + enum { TCA_FLOWER_KEY_CFM_OPT_UNSPEC, TCA_FLOWER_KEY_CFM_MD_LEVEL, --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21F5A14B945; Fri, 5 Jul 2024 13:34:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186457; cv=none; b=FCaLpu4awmkMbPxi4LPJ5Skf+g4rGLx2dMnYZT4AXwYaTfOcPe39kWgjYpvWJBv4UJaCBTASENfym5+KLAU/YRpFy4Na7ppqxkYysrd+nviilZxZJW06AF6M6/wU6/KpOwl2bwoNcbp8mxWLa81jfUsVQf18fEkEStVjes7Cm7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186457; c=relaxed/simple; bh=LOODhtsR95I0F9IFBdCOwy9wo67VLpNk6PUcw7BPFec=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mplCAAHV9SvdU6d6/4DLsB0opFPLcoenJapvmdEwkYJDdgp+HePpu5ykjWOhIrcLldBAir0w9H5/kPU5nCl0Wosh/1dnvv4gFWKtEmvWAHmP+3oBzxttTmyB2+86BMk9P/Fv2OaUSwF48sibEYJBI55wByGKBLLrWKbRw+1hYpE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=bCOm/ar/; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="bCOm/ar/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=LOODhtsR95I0F9IFBdCOwy9wo67VLpNk6PUcw7BPFec=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bCOm/ar/t4aSUKwRU0s/xaRlTwC/j1ZCpCMFGfsYHCCM2C6FdF1J9SM0rRarLPPRP q8FWt+KaevVkiO9Eo6UIqvvn78YyYKvIRRTrKlmpw6IurrrJ8tjElhG7i8baDYSddO 8wBV0D+HA8IMrH7gxkrir5RrD4p8JgSuv5OBcLZ3vqfY9cebv2Em7xo8bDrLqTVyNV rbpTYLRkKtdbLae28zBR3CYEX1zrAYvVIB2oqwbyCf/cbSRQCqKaAHGUOqieRNqid4 OdxFc3TwyaVUwpxpNOqQhim5h6wtO1KmEzfq0VBIjFo92ewqh7gQ8/xjE4W5ocakzK KWhhUvAuQneuQ== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id E69CB60085; Fri, 5 Jul 2024 13:34:10 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 2B8EE204766; Fri, 05 Jul 2024 13:33:50 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 02/10] net/sched: flower: define new tunnel flags Date: Fri, 5 Jul 2024 13:33:38 +0000 Message-ID: <20240705133348.728901-3-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Define new TCA_FLOWER_KEY_FLAGS_* flags for use in struct flow_dissector_key_control, covering the same flags as currently exposed through TCA_FLOWER_KEY_ENC_FLAGS. Put the new flags under FLOW_DIS_F_*. The idea is that we can later, move the existing flags under FLOW_DIS_F_* as well. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen --- include/net/flow_dissector.h | 7 ++++++- include/uapi/linux/pkt_cls.h | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index c3fce070b9129..460ea65b9e592 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h @@ -17,7 +17,8 @@ struct sk_buff; * struct flow_dissector_key_control: * @thoff: Transport header offset * @addr_type: Type of key. One of FLOW_DISSECTOR_KEY_* - * @flags: Key flags. Any of FLOW_DIS_(IS_FRAGMENT|FIRST_FRAGENCAPSULA= TION) + * @flags: Key flags. + * Any of FLOW_DIS_(IS_FRAGMENT|FIRST_FRAG|ENCAPSULATION|F_*) */ struct flow_dissector_key_control { u16 thoff; @@ -31,6 +32,10 @@ struct flow_dissector_key_control { enum flow_dissector_ctrl_flags { FLOW_DIS_IS_FRAGMENT =3D TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT, FLOW_DIS_FIRST_FRAG =3D TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST, + FLOW_DIS_F_TUNNEL_CSUM =3D TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM, + FLOW_DIS_F_TUNNEL_DONT_FRAGMENT =3D TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAG= MENT, + FLOW_DIS_F_TUNNEL_OAM =3D TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM, + FLOW_DIS_F_TUNNEL_CRIT_OPT =3D TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT, =20 /* These flags are internal to the kernel */ FLOW_DIS_ENCAPSULATION =3D (TCA_FLOWER_KEY_FLAGS_MAX << 1), diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index 12db276f0c11e..3dc4388e944cb 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -677,6 +677,10 @@ enum { enum { TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT =3D (1 << 0), TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST =3D (1 << 1), + TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM =3D (1 << 2), + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT =3D (1 << 3), + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM =3D (1 << 4), + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT =3D (1 << 5), __TCA_FLOWER_KEY_FLAGS_MAX, }; =20 --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22275155305; Fri, 5 Jul 2024 13:34:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186460; cv=none; b=qArmYuusdVXZuo6HJrglOn+NzsfOSsRkFGKc5Mp2YEVFVl1CveT3kdV8VnmFFRfiV28G7kxay9ggicqmsCTcaA1V6VBB8uEFvaPRTBXx5wEln6h8sN9vUQ0PX9H6bw4/X4GiG/ctwuAm2V3AXbnvP8Rnc21l1lkZj9kk+WpU6Ao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186460; c=relaxed/simple; bh=hc4cV+xJKLe9gUryam5x32eujRILky1DfHOfzcfSoco=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WIcrErZIDh4T3/41ldu+xxdOiCKPTj2gMiB9jbbW8gVbCEb0WSbnByI6kV+D+cU70mqjnFaWtSGJdaTl737HIG4xy7/4jWeJ9lyJ6ZjwxbAj2uWUdT0LJ4SI8eA+doLacNP/R5ww8CzwWpNuY1CzXm+jcL1np/vLLzX6zhbzxpY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=IMRddXfJ; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="IMRddXfJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=hc4cV+xJKLe9gUryam5x32eujRILky1DfHOfzcfSoco=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IMRddXfJuP5rh04eP84x0dMONLh0inpl7k4UUA4bPbCq9v1mC9U8TT/wXt2w2e0PO TXjUsWzZghHjzxXKZh68apk7Z+rhFBjglS+yVWIE6MZy9U9z7//mGAkejOfqocLWmg mGw4ss0xBOmqnkdtOTexabGMQXxhdHCsxLvq1U2AlowB+7MQUWAtqYbZcI7UkJVBs9 X3R+ec3LpFKuEQopC+nCk09wxcTsBbtP6hPdgeNWaKzsGmcUk3lzGXaiPgYwmpq7P9 iK5/MhW3PtJRr5igpAUqW1a9WwmKI/EpMqzGNrL1b8aW2Z7ptWIdeblea3LE18TGmX Fygrx/2YDH2ng== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 000996008B; Fri, 5 Jul 2024 13:34:10 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 5BA302047A2; Fri, 05 Jul 2024 13:33:50 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 03/10] net/sched: cls_flower: prepare fl_{set,dump}_key_flags() for ENC_FLAGS Date: Fri, 5 Jul 2024 13:33:39 +0000 Message-ID: <20240705133348.728901-4-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Prepare fl_set_key_flags/fl_dump_key_flags() for use with TCA_FLOWER_KEY_ENC_FLAGS{,_MASK}. This patch adds an encap argument, similar to fl_set_key_ip/ fl_dump_key_ip(), and determine the flower keys based on the encap argument, and use them in the rest of the two functions. Since these functions are so far, only called with encap set false, then there is no functional change. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- net/sched/cls_flower.c | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index eef570c577ac7..6a5cecfd95619 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -1166,19 +1166,28 @@ static void fl_set_key_flag(u32 flower_key, u32 flo= wer_mask, } } =20 -static int fl_set_key_flags(struct nlattr **tb, u32 *flags_key, +static int fl_set_key_flags(struct nlattr **tb, bool encap, u32 *flags_key, u32 *flags_mask, struct netlink_ext_ack *extack) { + int fl_key, fl_mask; u32 key, mask; =20 + if (encap) { + fl_key =3D TCA_FLOWER_KEY_ENC_FLAGS; + fl_mask =3D TCA_FLOWER_KEY_ENC_FLAGS_MASK; + } else { + fl_key =3D TCA_FLOWER_KEY_FLAGS; + fl_mask =3D TCA_FLOWER_KEY_FLAGS_MASK; + } + /* mask is mandatory for flags */ - if (!tb[TCA_FLOWER_KEY_FLAGS_MASK]) { + if (NL_REQ_ATTR_CHECK(extack, NULL, tb, fl_mask)) { NL_SET_ERR_MSG(extack, "Missing flags mask"); return -EINVAL; } =20 - key =3D be32_to_cpu(nla_get_be32(tb[TCA_FLOWER_KEY_FLAGS])); - mask =3D be32_to_cpu(nla_get_be32(tb[TCA_FLOWER_KEY_FLAGS_MASK])); + key =3D be32_to_cpu(nla_get_be32(tb[fl_key])); + mask =3D be32_to_cpu(nla_get_be32(tb[fl_mask])); =20 *flags_key =3D 0; *flags_mask =3D 0; @@ -2086,7 +2095,7 @@ static int fl_set_key(struct net *net, struct nlattr = **tb, return ret; =20 if (tb[TCA_FLOWER_KEY_FLAGS]) { - ret =3D fl_set_key_flags(tb, &key->control.flags, + ret =3D fl_set_key_flags(tb, false, &key->control.flags, &mask->control.flags, extack); if (ret) return ret; @@ -3084,12 +3093,22 @@ static void fl_get_key_flag(u32 dissector_key, u32 = dissector_mask, } } =20 -static int fl_dump_key_flags(struct sk_buff *skb, u32 flags_key, u32 flags= _mask) +static int fl_dump_key_flags(struct sk_buff *skb, bool encap, + u32 flags_key, u32 flags_mask) { - u32 key, mask; + int fl_key, fl_mask; __be32 _key, _mask; + u32 key, mask; int err; =20 + if (encap) { + fl_key =3D TCA_FLOWER_KEY_ENC_FLAGS; + fl_mask =3D TCA_FLOWER_KEY_ENC_FLAGS_MASK; + } else { + fl_key =3D TCA_FLOWER_KEY_FLAGS; + fl_mask =3D TCA_FLOWER_KEY_FLAGS_MASK; + } + if (!memchr_inv(&flags_mask, 0, sizeof(flags_mask))) return 0; =20 @@ -3105,11 +3124,11 @@ static int fl_dump_key_flags(struct sk_buff *skb, u= 32 flags_key, u32 flags_mask) _key =3D cpu_to_be32(key); _mask =3D cpu_to_be32(mask); =20 - err =3D nla_put(skb, TCA_FLOWER_KEY_FLAGS, 4, &_key); + err =3D nla_put(skb, fl_key, 4, &_key); if (err) return err; =20 - return nla_put(skb, TCA_FLOWER_KEY_FLAGS_MASK, 4, &_mask); + return nla_put(skb, fl_mask, 4, &_mask); } =20 static int fl_dump_key_geneve_opt(struct sk_buff *skb, @@ -3632,7 +3651,8 @@ static int fl_dump_key(struct sk_buff *skb, struct ne= t *net, if (fl_dump_key_ct(skb, &key->ct, &mask->ct)) goto nla_put_failure; =20 - if (fl_dump_key_flags(skb, key->control.flags, mask->control.flags)) + if (fl_dump_key_flags(skb, false, key->control.flags, + mask->control.flags)) goto nla_put_failure; =20 if (fl_dump_key_val(skb, &key->hash.hash, TCA_FLOWER_KEY_HASH, --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A704A146A8D; Fri, 5 Jul 2024 13:34:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; cv=none; b=stw3znKxuUARikvGDLOoEkVw/QQnww1WeISic/8n/Obnx08zwmDQxP8lcWyn7anQmMFT0ptasvHplbqNRiNAK96FBsm1g7MesQGGL1ShGyjWMMMTmoj8qBY/UH/2e0df0Bne0Obh1bMJHbF5eMOdCAAoSsbT9E44ocYyFK1dZ/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; c=relaxed/simple; bh=KalIqYrrAmq2wYiKdfTeen2fcLPp3RDkpdrBpHQLS0A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Yd9h6VhQRJu1O1BWXyYgL99beqZXDhYIaWxwQpTIBXdaUM4wqDCHgIbaatq/WBoa4QHAf9thVJ/nGC9X/OMdvoZZHNTFGsibz1NmSdJR0t68OtHbo5uswGGpG20mUTVgunZ3iCzgQKc6t6wyXSM7wNY8uIog9P7N4V7qH2gHBuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=VJkrr0Le; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="VJkrr0Le" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186450; bh=KalIqYrrAmq2wYiKdfTeen2fcLPp3RDkpdrBpHQLS0A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VJkrr0Le+oq7HxC3O4TzjaXuf0NS64kj/fnKQwDZkg8gYepbkEuIkd5iO7rlxmhhZ XIuyy80eDIercIFx2U5XsCXMhtoWSdoP8E7C+zdKfTfu+wAW736TbdUQY1Wr8wEsoV J3FrXkHE+Uxvf+pHQku8BTo126Zvgu4ExNS9TL2Q/xWt2pWTwrb8W7LliOsE4PRIlr OW22mnrMGHfgcHcdbFSLHT7MLO3pCcLAEsp09Z6ondBOEYwbcmcnLEUaa9PIWthE6p gAYs3kCs6v++o7HWY0K6Z4nNBtL2hh5knu3gRFSSezxCwane/cmFPOO18jdOl7TsMm /I5L1B+3ny1pA== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 73EA06007C; Fri, 5 Jul 2024 13:34:09 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 849B2204819; Fri, 05 Jul 2024 13:33:50 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 04/10] net/sched: cls_flower: add policy for TCA_FLOWER_KEY_FLAGS Date: Fri, 5 Jul 2024 13:33:40 +0000 Message-ID: <20240705133348.728901-5-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This policy guards fl_set_key_flags() from seeing flags not used in the context of TCA_FLOWER_KEY_FLAGS. In order For the policy check to be performed with the correct endianness, then we also needs to change the attribute type to NLA_BE32 (Thanks Davide). TCA_FLOWER_KEY_FLAGS{,_MASK} already has a be32 comment in include/uapi/linux/pkt_cls.h. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- net/sched/cls_flower.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 6a5cecfd95619..fc9a9a0b4897c 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -41,6 +41,10 @@ #define TCA_FLOWER_KEY_CT_FLAGS_MASK \ (TCA_FLOWER_KEY_CT_FLAGS_MAX - 1) =20 +#define TCA_FLOWER_KEY_FLAGS_POLICY_MASK \ + (TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT | \ + TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST) + #define TUNNEL_FLAGS_PRESENT (\ _BITUL(IP_TUNNEL_CSUM_BIT) | \ _BITUL(IP_TUNNEL_DONT_FRAGMENT_BIT) | \ @@ -676,8 +680,10 @@ static const struct nla_policy fl_policy[TCA_FLOWER_MA= X + 1] =3D { [TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK] =3D { .type =3D NLA_U16 }, [TCA_FLOWER_KEY_ENC_UDP_DST_PORT] =3D { .type =3D NLA_U16 }, [TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK] =3D { .type =3D NLA_U16 }, - [TCA_FLOWER_KEY_FLAGS] =3D { .type =3D NLA_U32 }, - [TCA_FLOWER_KEY_FLAGS_MASK] =3D { .type =3D NLA_U32 }, + [TCA_FLOWER_KEY_FLAGS] =3D NLA_POLICY_MASK(NLA_BE32, + TCA_FLOWER_KEY_FLAGS_POLICY_MASK), + [TCA_FLOWER_KEY_FLAGS_MASK] =3D NLA_POLICY_MASK(NLA_BE32, + TCA_FLOWER_KEY_FLAGS_POLICY_MASK), [TCA_FLOWER_KEY_ICMPV4_TYPE] =3D { .type =3D NLA_U8 }, [TCA_FLOWER_KEY_ICMPV4_TYPE_MASK] =3D { .type =3D NLA_U8 }, [TCA_FLOWER_KEY_ICMPV4_CODE] =3D { .type =3D NLA_U8 }, --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0240C15532C; Fri, 5 Jul 2024 13:34:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186459; cv=none; b=NLSPZQxiZLc8qMlcrguufec15vCnfe3qkczMySKn/4gahLQqtC+6nOXO+uEltH3QvKtkQujk1YOl4q6Vw+k6+tZBLrGXKSFSFfPlYVDOPBNN09L37hwoCgskHA/OUtDhAYjoh+Asj0eR+k6/vDd2xUBRHctdcWbKIFvAw5GSWeU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186459; c=relaxed/simple; bh=n9VSnbuZA6+5txFLRZ658BvO8DVWQTXs5yrhCIrUC1U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OR1x2pDJJgADCghP4EgOqu+KpqGY53P/sUJDFs8DXkkasKgkHfd4o0KhmjEqHC0vgcSVgRTdq9fgNypfHb9mSrhV2wq0Opg58J83UoGknTSKAA7L3dYbnal04T0QhHSkk7wuvvsIXyA9aREOffF1mvJodDNWFRkJvP/J+99hO34= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=OOVzPrVz; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="OOVzPrVz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=n9VSnbuZA6+5txFLRZ658BvO8DVWQTXs5yrhCIrUC1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OOVzPrVzMCJMRerv4tUHsRVR+wwzYRIG8kFmDXcspNMUtT+py8tMfuaZCf1weTNCI 7GYGKdFfnNuSxv7gLEycX3kFIhjbgqKaDVhQLKrlSjDdipsBehgUV8YUlZDYMZw3w4 ehp30BWsTe0PKwb9G/UzqpPZpg/US4xjQaSn4t3PnIg0BFUr2nXGf8J2HzGv4WuoSw 4chXRJBBYzZD7eQ2Vgq8xeQHaljh11z76hDHojOxIGGBDanIAq8uTqJrqZrC+O0ruy F91xS7nKiwWhcvkJ4pomgNRBzFZ430O8Aih1WBhwkJCQJtf5KNCRrg92IAcpBUF6v/ s8kQCM0Vo/M0A== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 053C56008C; Fri, 5 Jul 2024 13:34:11 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id ACEE620484E; Fri, 05 Jul 2024 13:33:50 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 05/10] flow_dissector: prepare for encapsulated control flags Date: Fri, 5 Jul 2024 13:33:41 +0000 Message-ID: <20240705133348.728901-6-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Rename skb_flow_dissect_set_enc_addr_type() to skb_flow_dissect_set_enc_control(), and make it set both addr_type and flags in FLOW_DISSECTOR_KEY_ENC_CONTROL. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- net/core/flow_dissector.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index e64a263798070..1614c6708ea7c 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -299,9 +299,10 @@ void skb_flow_dissect_meta(const struct sk_buff *skb, EXPORT_SYMBOL(skb_flow_dissect_meta); =20 static void -skb_flow_dissect_set_enc_addr_type(enum flow_dissector_key_id type, - struct flow_dissector *flow_dissector, - void *target_container) +skb_flow_dissect_set_enc_control(enum flow_dissector_key_id type, + u32 ctrl_flags, + struct flow_dissector *flow_dissector, + void *target_container) { struct flow_dissector_key_control *ctrl; =20 @@ -312,6 +313,7 @@ skb_flow_dissect_set_enc_addr_type(enum flow_dissector_= key_id type, FLOW_DISSECTOR_KEY_ENC_CONTROL, target_container); ctrl->addr_type =3D type; + ctrl->flags =3D ctrl_flags; } =20 void @@ -367,6 +369,7 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, { struct ip_tunnel_info *info; struct ip_tunnel_key *key; + u32 ctrl_flags =3D 0; =20 /* A quick check to see if there might be something to do. */ if (!dissector_uses_key(flow_dissector, @@ -395,9 +398,9 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, =20 switch (ip_tunnel_info_af(info)) { case AF_INET: - skb_flow_dissect_set_enc_addr_type(FLOW_DISSECTOR_KEY_IPV4_ADDRS, - flow_dissector, - target_container); + skb_flow_dissect_set_enc_control(FLOW_DISSECTOR_KEY_IPV4_ADDRS, + ctrl_flags, flow_dissector, + target_container); if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS)) { struct flow_dissector_key_ipv4_addrs *ipv4; @@ -410,9 +413,9 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, } break; case AF_INET6: - skb_flow_dissect_set_enc_addr_type(FLOW_DISSECTOR_KEY_IPV6_ADDRS, - flow_dissector, - target_container); + skb_flow_dissect_set_enc_control(FLOW_DISSECTOR_KEY_IPV6_ADDRS, + ctrl_flags, flow_dissector, + target_container); if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS)) { struct flow_dissector_key_ipv6_addrs *ipv6; --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED6CD147C9E; Fri, 5 Jul 2024 13:34:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; cv=none; b=LMkR3j5lszHW6BqFR+ZtmXxbwnqpwHvvbBIH+u1jstkDiys6f9zT3jQ1gWx6RJOBtJhMXmwVi0P60sQXZr35Ge8fFGvP+QShz2VT7iSgFdzyNwqdeB5Yuyw/eXZUwUcfg/x0ZXDEk3yxMeMHCSplu5al6VsJ67UPk/N44LwXsFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; c=relaxed/simple; bh=WQvcmcR5yHifzr47skJIiXUoYESrckFNFBxiMIM1XOI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HDzNZRNTLkYpAoPhcB13bfQK1Z9Qss+oi77JPh06BjPkekaDTuWy+8dZk1YKqBsCxHYzo+cDb4HR/9cPW+BTDyWOTxRX8X0/Rcltr6r/FS9Z8G921C86GxqGhRZQYi1cU+LUD+o7SKX+KPa67y938tuE1FDYjBvgKmjNEcNgv4Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=YKSD0XDW; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="YKSD0XDW" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186450; bh=WQvcmcR5yHifzr47skJIiXUoYESrckFNFBxiMIM1XOI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YKSD0XDWkz9KtUopWJduguUJYINY8NMSoJxMDqyj5Zwdls6VBbqNCTxscU9eDRq1w dRAX2bzRApz5urmXnM49bxnR8jIT+/Jd3Oz0dCT4N3+8US+jkIWObgP+Uxs3+3opOH w9W5SXaeKdfl1OfJQ/SE+b1vKVVqcu5MWtfE36YHb3VsrkDbZLsWiiIf7RxzdOzA0a rYEPgoOeK7Yg8732Ld3xZixsHxWtxJ1LVZns+SmTdzynYkgavpMz3bMT2cJ88TCXP+ jjHO4lT6YVWkWRGLclw7g3MfZOorimvax/8LQ4OQWJ+Ld9D0RHjskyV3E9JmPq7J2o kOuJ7wFysBpaA== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 70BDA6007A; Fri, 5 Jul 2024 13:34:10 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id D7CF1204863; Fri, 05 Jul 2024 13:33:50 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 06/10] flow_dissector: set encapsulated control flags from tun_flags Date: Fri, 5 Jul 2024 13:33:42 +0000 Message-ID: <20240705133348.728901-7-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Set the new FLOW_DIS_F_TUNNEL_* encapsulated control flags, based on if their counter-part is set in tun_flags. These flags are not userspace visible yet, as the code to dump encapsulated control flags will first be added, and later activated in the following patches. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- net/core/flow_dissector.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 1614c6708ea7c..a0263a4c5489e 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -396,6 +396,15 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, =20 key =3D &info->key; =20 + if (test_bit(IP_TUNNEL_CSUM_BIT, key->tun_flags)) + ctrl_flags |=3D FLOW_DIS_F_TUNNEL_CSUM; + if (test_bit(IP_TUNNEL_DONT_FRAGMENT_BIT, key->tun_flags)) + ctrl_flags |=3D FLOW_DIS_F_TUNNEL_DONT_FRAGMENT; + if (test_bit(IP_TUNNEL_OAM_BIT, key->tun_flags)) + ctrl_flags |=3D FLOW_DIS_F_TUNNEL_OAM; + if (test_bit(IP_TUNNEL_CRIT_OPT_BIT, key->tun_flags)) + ctrl_flags |=3D FLOW_DIS_F_TUNNEL_CRIT_OPT; + switch (ip_tunnel_info_af(info)) { case AF_INET: skb_flow_dissect_set_enc_control(FLOW_DISSECTOR_KEY_IPV4_ADDRS, --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4439015574A; Fri, 5 Jul 2024 13:34:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186459; cv=none; b=Jnq5ekhTED41iIWxvKx8LMSUt31vIMB6MtAZtfnhZFd2daaCWEwcmxM75jth9RftLOZvEmRoMGKOVL68+vMf9+uAkc3DEUChVmo4n+rD3qredxkxUeSdR0mBPckdB4zozyTyIe+/pIyeKsnuCZvhnKEoBzvsl9YjTPIBGUd1Rys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186459; c=relaxed/simple; bh=JJoSLE5E+0mjDp0PfeRqb2o1NFt14d/nWg6OdMLm9/M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=F7tPo067Aw7vdxqrG6juYqeiGNuUu3iBhLaKIHWhdUGHljbrMp5063CGW6khncBNpLt+QehzcO8ifUfRDxo36UdQkPQ3yFB0rnSEqrCojEnO2QbxpIQx0SVwCVhd6mZM1/hrRa5QKPauMyrQJZ4FRzhSBPqVe+q3OQR94ooHsQw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=R2W8xAB5; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="R2W8xAB5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=JJoSLE5E+0mjDp0PfeRqb2o1NFt14d/nWg6OdMLm9/M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R2W8xAB5Ldt4R0R2QUgU/ZVjbhEW5J85dmj1D8ep+nkAT8wtVQjr7raSDkHiBPR6Z dQAU4/WFJMwBvUXeYlk+im1Zb9ORG11e56S9vsqQztAWomUue6kAWqougNwitw80cy 4IBkQSSJBpg5W6dwGJCxRmxfVoryuCwIz1JDW9j3Py2nF3bM92h5bPCg9olLwWZc3j LlCshz3iQwr6UBKZqjOGdRKyoZ3k3ZOoUO0cMuG8ZRv/CvGqmrk7PQN1J/OEoIXR2m wm85DI/ApnJP4J5g/ixKD2ipBKMerS4EdmB9lt9XYdR0F9cbMZvWenGGrODwJaBb9a JVGbmc6a8YazA== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 2D0E160079; Fri, 5 Jul 2024 13:34:09 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 0EA722048B2; Fri, 05 Jul 2024 13:33:51 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 07/10] net/sched: cls_flower: add tunnel flags to fl_{set,dump}_key_flags() Date: Fri, 5 Jul 2024 13:33:43 +0000 Message-ID: <20240705133348.728901-8-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Prepare to set and dump the tunnel flags. This code won't see any of these flags yet, as these flags aren't allowed by the NLA_POLICY_MASK, and the functions doesn't get called with encap set to true yet. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- net/sched/cls_flower.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index fc9a9a0b4897c..2a440f11fe1fa 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -1204,6 +1204,21 @@ static int fl_set_key_flags(struct nlattr **tb, bool= encap, u32 *flags_key, TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST, FLOW_DIS_FIRST_FRAG); =20 + fl_set_key_flag(key, mask, flags_key, flags_mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM, + FLOW_DIS_F_TUNNEL_CSUM); + + fl_set_key_flag(key, mask, flags_key, flags_mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT, + FLOW_DIS_F_TUNNEL_DONT_FRAGMENT); + + fl_set_key_flag(key, mask, flags_key, flags_mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM, FLOW_DIS_F_TUNNEL_OAM); + + fl_set_key_flag(key, mask, flags_key, flags_mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT, + FLOW_DIS_F_TUNNEL_CRIT_OPT); + return 0; } =20 @@ -3127,6 +3142,21 @@ static int fl_dump_key_flags(struct sk_buff *skb, bo= ol encap, TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST, FLOW_DIS_FIRST_FRAG); =20 + fl_get_key_flag(flags_key, flags_mask, &key, &mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM, + FLOW_DIS_F_TUNNEL_CSUM); + + fl_get_key_flag(flags_key, flags_mask, &key, &mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT, + FLOW_DIS_F_TUNNEL_DONT_FRAGMENT); + + fl_get_key_flag(flags_key, flags_mask, &key, &mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM, FLOW_DIS_F_TUNNEL_OAM); + + fl_get_key_flag(flags_key, flags_mask, &key, &mask, + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT, + FLOW_DIS_F_TUNNEL_CRIT_OPT); + _key =3D cpu_to_be32(key); _mask =3D cpu_to_be32(mask); =20 --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4F4A154C18; Fri, 5 Jul 2024 13:34:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186459; cv=none; b=DLjCKDdIS+Ek2CCcYOK7ZHCpNcb+nLc6bBntAklLB5pfTmAR+3Yg1+fcGhGvtv6vsMeOhUUafJfSDa4T685pHRu0G6eU0GHOWqhcoaxCf+yo03PhSfX9jjG/JGc5Anf8g8mgRcPxi3vlmiUeCz3frnjMmg8Zg/0IUMR/e26/FwE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186459; c=relaxed/simple; bh=QK7RBLq1BnjxwzsWCcQg3CmYib4tNp/7csuynX6VBN0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sRnQMXCHd1eDczYs6k2TjL9Y2tLD/SVMnmDJVv7meV6ZahmCqUh9Kghrn3MZBsimcFIgHA+anEge0EQTS3NK0CvpfZ0SKeMkSuaRW0SdnZvxYR0kKGTmstmraITbXsrcQ5UX4tjzzaWTpBG05lnuhUpwim18XHShgImrkS/WNQ4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=ph8talFo; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="ph8talFo" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=QK7RBLq1BnjxwzsWCcQg3CmYib4tNp/7csuynX6VBN0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ph8talFohQJSEg9WBFHcCXj0QHagvFMu79EK29PHv5vRRX90WQVBik2S8kt4kLQoa lr35yWcmAtvCbLcvC8HTTpalP+U3RiNNaaIKtuNTDhjuwGxwHPn1PsV0zfcdshrtRB f1DyspwoRmG0UcJVDZs3MpTmtVzFhVL0u7ZMPOJKuBMcDm1vmypC2ZNhYiWldZI9yu wn9+SbGogJhLp9/4G9uDSrTMtwnjJbTvfQEDIhWDRCOfw1x1MJdHXXrvjONczOnD11 iTRPmRovENJ92OArzBxDKzznZ+yf07+nPvwN3EhACi8WTSt8rfFbiqhCxmWgZySxy3 ZbLBS8m5+UKxQ== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id ED61D60089; Fri, 5 Jul 2024 13:34:10 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 3FBC02048C9; Fri, 05 Jul 2024 13:33:51 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 08/10] net/sched: cls_flower: rework TCA_FLOWER_KEY_ENC_FLAGS usage Date: Fri, 5 Jul 2024 13:33:44 +0000 Message-ID: <20240705133348.728901-9-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This patch changes how TCA_FLOWER_KEY_ENC_FLAGS is used, so that it is used with TCA_FLOWER_KEY_FLAGS_* flags, in the same way as TCA_FLOWER_KEY_FLAGS is currently used. Where TCA_FLOWER_KEY_FLAGS uses {key,mask}->control.flags, then TCA_FLOWER_KEY_ENC_FLAGS now uses {key,mask}->enc_control.flags, therefore {key,mask}->enc_flags is now unused. As the generic fl_set_key_flags/fl_dump_key_flags() is used with encap set to true, then fl_{set,dump}_key_enc_flags() is removed. This breaks unreleased userspace API (net-next since 2024-06-04). Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- include/uapi/linux/pkt_cls.h | 4 +-- net/sched/cls_flower.c | 56 +++++++++--------------------------- 2 files changed, 15 insertions(+), 45 deletions(-) diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index 3dc4388e944cb..d36d9cdf0c008 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -554,8 +554,8 @@ enum { TCA_FLOWER_KEY_SPI, /* be32 */ TCA_FLOWER_KEY_SPI_MASK, /* be32 */ =20 - TCA_FLOWER_KEY_ENC_FLAGS, /* u32 */ - TCA_FLOWER_KEY_ENC_FLAGS_MASK, /* u32 */ + TCA_FLOWER_KEY_ENC_FLAGS, /* be32 */ + TCA_FLOWER_KEY_ENC_FLAGS_MASK, /* be32 */ =20 __TCA_FLOWER_MAX, }; diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 2a440f11fe1fa..e2239ab013555 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -45,11 +45,11 @@ (TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT | \ TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST) =20 -#define TUNNEL_FLAGS_PRESENT (\ - _BITUL(IP_TUNNEL_CSUM_BIT) | \ - _BITUL(IP_TUNNEL_DONT_FRAGMENT_BIT) | \ - _BITUL(IP_TUNNEL_OAM_BIT) | \ - _BITUL(IP_TUNNEL_CRIT_OPT_BIT)) +#define TCA_FLOWER_KEY_ENC_FLAGS_POLICY_MASK \ + (TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM | \ + TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT | \ + TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM | \ + TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT) =20 struct fl_flow_key { struct flow_dissector_key_meta meta; @@ -745,10 +745,10 @@ static const struct nla_policy fl_policy[TCA_FLOWER_M= AX + 1] =3D { [TCA_FLOWER_KEY_SPI_MASK] =3D { .type =3D NLA_U32 }, [TCA_FLOWER_L2_MISS] =3D NLA_POLICY_MAX(NLA_U8, 1), [TCA_FLOWER_KEY_CFM] =3D { .type =3D NLA_NESTED }, - [TCA_FLOWER_KEY_ENC_FLAGS] =3D NLA_POLICY_MASK(NLA_U32, - TUNNEL_FLAGS_PRESENT), - [TCA_FLOWER_KEY_ENC_FLAGS_MASK] =3D NLA_POLICY_MASK(NLA_U32, - TUNNEL_FLAGS_PRESENT), + [TCA_FLOWER_KEY_ENC_FLAGS] =3D NLA_POLICY_MASK(NLA_BE32, + TCA_FLOWER_KEY_ENC_FLAGS_POLICY_MASK), + [TCA_FLOWER_KEY_ENC_FLAGS_MASK] =3D NLA_POLICY_MASK(NLA_BE32, + TCA_FLOWER_KEY_ENC_FLAGS_POLICY_MASK), }; =20 static const struct nla_policy @@ -1866,21 +1866,6 @@ static int fl_set_key_cfm(struct nlattr **tb, return 0; } =20 -static int fl_set_key_enc_flags(struct nlattr **tb, u32 *flags_key, - u32 *flags_mask, struct netlink_ext_ack *extack) -{ - /* mask is mandatory for flags */ - if (NL_REQ_ATTR_CHECK(extack, NULL, tb, TCA_FLOWER_KEY_ENC_FLAGS_MASK)) { - NL_SET_ERR_MSG(extack, "missing enc_flags mask"); - return -EINVAL; - } - - *flags_key =3D nla_get_u32(tb[TCA_FLOWER_KEY_ENC_FLAGS]); - *flags_mask =3D nla_get_u32(tb[TCA_FLOWER_KEY_ENC_FLAGS_MASK]); - - return 0; -} - static int fl_set_key(struct net *net, struct nlattr **tb, struct fl_flow_key *key, struct fl_flow_key *mask, struct netlink_ext_ack *extack) @@ -2123,8 +2108,8 @@ static int fl_set_key(struct net *net, struct nlattr = **tb, } =20 if (tb[TCA_FLOWER_KEY_ENC_FLAGS]) - ret =3D fl_set_key_enc_flags(tb, &key->enc_flags.flags, - &mask->enc_flags.flags, extack); + ret =3D fl_set_key_flags(tb, true, &key->enc_control.flags, + &mask->enc_control.flags, extack); =20 return ret; } @@ -3381,22 +3366,6 @@ static int fl_dump_key_cfm(struct sk_buff *skb, return err; } =20 -static int fl_dump_key_enc_flags(struct sk_buff *skb, - struct flow_dissector_key_enc_flags *key, - struct flow_dissector_key_enc_flags *mask) -{ - if (!memchr_inv(mask, 0, sizeof(*mask))) - return 0; - - if (nla_put_u32(skb, TCA_FLOWER_KEY_ENC_FLAGS, key->flags)) - return -EMSGSIZE; - - if (nla_put_u32(skb, TCA_FLOWER_KEY_ENC_FLAGS_MASK, mask->flags)) - return -EMSGSIZE; - - return 0; -} - static int fl_dump_key_options(struct sk_buff *skb, int enc_opt_type, struct flow_dissector_key_enc_opts *enc_opts) { @@ -3699,7 +3668,8 @@ static int fl_dump_key(struct sk_buff *skb, struct ne= t *net, if (fl_dump_key_cfm(skb, &key->cfm, &mask->cfm)) goto nla_put_failure; =20 - if (fl_dump_key_enc_flags(skb, &key->enc_flags, &mask->enc_flags)) + if (fl_dump_key_flags(skb, true, key->enc_control.flags, + mask->enc_control.flags)) goto nla_put_failure; =20 return 0; --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77B0E149DF7; Fri, 5 Jul 2024 13:34:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; cv=none; b=D341q6dkNF6hyggOs36ynNTfbGR7wMONCVYEYW4qNsyKoiOg583tv1eep4MLcRPyounAI8zETc5rhjHq5upLzhcmqmPspU1lp98a6gDie+0latWeVAH6cw9B1QZk07pKG9hu/OwxKWLnSq6dsXqfbR7cmLQC6zrHD/04AeGytSs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; c=relaxed/simple; bh=dVWPlq9stmnPkyoqz1bgNjgDVefAda05VgvkOzC0S+4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IcWnLyWmcgEwyOh0psN6u3ut88ouJmSiPvTS21nt+P/vt1rTqpjx4Sd9Hek9aLEPhWd9f26cj+Rs4hX0HcyrcG/dUF1mR5wNeXujPI+/5AnLjb1Y/V76zBdAu2t57ZOk/MxlJWYazdFg582ZHPX69lJjnl1RJmU2UZN/rqzcIeo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=Dbf5BDT4; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="Dbf5BDT4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186451; bh=dVWPlq9stmnPkyoqz1bgNjgDVefAda05VgvkOzC0S+4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dbf5BDT4Ff87Fr7eu3yi3fJjykhBw0wxQ+92r5wlcTzYZ3n5r+9U2ASYgJ2bMIMEJ Uy+7sHBvDtsxQLgkJjwCCYYRmlS04aRJ4D/WKOLBi4inMgroDofwRbIWRgbNMEcjQO 7dNu6mVrZKs3hcOdoaRIetUmYUcjQH2/wIsbNxLE5DR7K4sXeL7dZ111C7+v988XaQ qoR/hhQBpPyoj9Fr3tcBseBoykTZ6gEzvp5vZSU1hfIsebTDUqVuO8isVYScPylwz3 UfkOfPod/Qw5fhQaxC21ZxRzRoTvMjPZYk0z3Cw5Ho8Gj1MHVnC7gFH5EK1QiB6T+c PbYgGPiVcAu2w== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 141A36008D; Fri, 5 Jul 2024 13:34:11 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 6A845204966; Fri, 05 Jul 2024 13:33:51 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 09/10] flow_dissector: cleanup FLOW_DISSECTOR_KEY_ENC_FLAGS Date: Fri, 5 Jul 2024 13:33:45 +0000 Message-ID: <20240705133348.728901-10-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Now that TCA_FLOWER_KEY_ENC_FLAGS is unused, as it's former data is stored behind TCA_FLOWER_KEY_ENC_CONTROL, then remove the last bits of FLOW_DISSECTOR_KEY_ENC_FLAGS. FLOW_DISSECTOR_KEY_ENC_FLAGS is unreleased, and have been in net-next since 2024-06-04. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- include/net/flow_dissector.h | 9 --------- include/net/ip_tunnels.h | 12 ------------ net/core/flow_dissector.c | 16 +--------------- net/sched/cls_flower.c | 3 --- 4 files changed, 1 insertion(+), 39 deletions(-) diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index 460ea65b9e592..ced79dc8e8560 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h @@ -342,14 +342,6 @@ struct flow_dissector_key_cfm { #define FLOW_DIS_CFM_MDL_MASK GENMASK(7, 5) #define FLOW_DIS_CFM_MDL_MAX 7 =20 -/** - * struct flow_dissector_key_enc_flags: tunnel metadata control flags - * @flags: tunnel control flags - */ -struct flow_dissector_key_enc_flags { - u32 flags; -}; - enum flow_dissector_key_id { FLOW_DISSECTOR_KEY_CONTROL, /* struct flow_dissector_key_control */ FLOW_DISSECTOR_KEY_BASIC, /* struct flow_dissector_key_basic */ @@ -384,7 +376,6 @@ enum flow_dissector_key_id { FLOW_DISSECTOR_KEY_L2TPV3, /* struct flow_dissector_key_l2tpv3 */ FLOW_DISSECTOR_KEY_CFM, /* struct flow_dissector_key_cfm */ FLOW_DISSECTOR_KEY_IPSEC, /* struct flow_dissector_key_ipsec */ - FLOW_DISSECTOR_KEY_ENC_FLAGS, /* struct flow_dissector_key_enc_flags */ =20 FLOW_DISSECTOR_KEY_MAX, }; diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index 3877315cf8b8c..1db2417b8ff52 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h @@ -247,18 +247,6 @@ static inline bool ip_tunnel_is_options_present(const = unsigned long *flags) return ip_tunnel_flags_intersect(flags, present); } =20 -static inline void ip_tunnel_set_encflags_present(unsigned long *flags) -{ - IP_TUNNEL_DECLARE_FLAGS(present) =3D { }; - - __set_bit(IP_TUNNEL_CSUM_BIT, present); - __set_bit(IP_TUNNEL_DONT_FRAGMENT_BIT, present); - __set_bit(IP_TUNNEL_OAM_BIT, present); - __set_bit(IP_TUNNEL_CRIT_OPT_BIT, present); - - ip_tunnel_flags_or(flags, flags, present); -} - static inline bool ip_tunnel_flags_is_be16_compat(const unsigned long *fla= gs) { IP_TUNNEL_DECLARE_FLAGS(supp) =3D { }; diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index a0263a4c5489e..1a9ca129fddde 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -385,9 +385,7 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, !dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_IP) && !dissector_uses_key(flow_dissector, - FLOW_DISSECTOR_KEY_ENC_OPTS) && - !dissector_uses_key(flow_dissector, - FLOW_DISSECTOR_KEY_ENC_FLAGS)) + FLOW_DISSECTOR_KEY_ENC_OPTS)) return; =20 info =3D skb_tunnel_info(skb); @@ -489,18 +487,6 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, IP_TUNNEL_GENEVE_OPT_BIT); enc_opt->dst_opt_type =3D val < __IP_TUNNEL_FLAG_NUM ? val : 0; } - - if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_FLAGS)) { - struct flow_dissector_key_enc_flags *enc_flags; - IP_TUNNEL_DECLARE_FLAGS(flags) =3D {}; - - enc_flags =3D skb_flow_dissector_target(flow_dissector, - FLOW_DISSECTOR_KEY_ENC_FLAGS, - target_container); - ip_tunnel_set_encflags_present(flags); - ip_tunnel_flags_and(flags, flags, info->key.tun_flags); - enc_flags->flags =3D bitmap_read(flags, IP_TUNNEL_CSUM_BIT, 32); - } } EXPORT_SYMBOL(skb_flow_dissect_tunnel_info); =20 diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index e2239ab013555..897d6b683cc6f 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -85,7 +85,6 @@ struct fl_flow_key { struct flow_dissector_key_l2tpv3 l2tpv3; struct flow_dissector_key_ipsec ipsec; struct flow_dissector_key_cfm cfm; - struct flow_dissector_key_enc_flags enc_flags; } __aligned(BITS_PER_LONG / 8); /* Ensure that we can do comparisons as lo= ngs. */ =20 struct fl_flow_mask_range { @@ -2223,8 +2222,6 @@ static void fl_init_dissector(struct flow_dissector *= dissector, FLOW_DISSECTOR_KEY_IPSEC, ipsec); FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_CFM, cfm); - FL_KEY_SET_IF_MASKED(mask, keys, cnt, - FLOW_DISSECTOR_KEY_ENC_FLAGS, enc_flags); =20 skb_flow_dissector_init(dissector, keys, cnt); } --=20 2.45.2 From nobody Sun Feb 8 00:11:57 2026 Received: from mail1.fiberby.net (mail1.fiberby.net [193.104.135.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77AC0148FFB; Fri, 5 Jul 2024 13:34:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.104.135.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; cv=none; b=KqcMrZtjplI2ZVDcQv2CpdYldOLcL9RjQ8aRWElwqQ10CSfLzknB+1gMZcZRdog2t/FenT1A+sYC3mePShh3yxAok5Jg55drwHbuC42/C2bjBIX69ldAikeiqkHaoCVOig1Z49t77f5jETeaIZ50FFbDAcgQDj08tDiclUR4Bc8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720186456; c=relaxed/simple; bh=SAPg0fozvoj3F2KG1fuguRG7wOIqoyJx/Pogexzx0HQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mnB4tfKIMtYjHLtqUhNwGb2AyE2edGDxoQSicSpJrhAZIbb5szfCuQxxjm8gm+moAmqDCDAWBFquasj0HqwIxB7lJOy7CaUFAwqUprq8cUvYCVEP5R7A3K/uVqY7Ml8A9skAKdyyx7T5xtp2zmtmHZbat/WXWfGrvoLEmnuRNpU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net; spf=pass smtp.mailfrom=fiberby.net; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b=hgTWH+iJ; arc=none smtp.client-ip=193.104.135.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=fiberby.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fiberby.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fiberby.net header.i=@fiberby.net header.b="hgTWH+iJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1720186450; bh=SAPg0fozvoj3F2KG1fuguRG7wOIqoyJx/Pogexzx0HQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hgTWH+iJmgQ8QF3Plh56CdkhZ1encNeXV9yD2DPIyNgKaTizRuo0RxpZ3cZNqxNdu 6gbOBAwrrnonIT1Aam7qAkxZ/N3LG7KJTbvkZ0kz8xco0/vS+NKxC589aKsmoRSid0 5AlNGqXpCNNcwyaYBnrZc49X+hb30nK0oO2WLQhIIIXyQazy6ZXKus8h3YWyIuCbGn zOjZXDKdlkB2JGxg2XtMnkvvbOh0sK6hPW6T88H3vK7msnm0Y5OsVfOGZ8cqU5jde5 z2kkA4TiVom7+au6mxjTlqU3XOZ3vAVhKV7j0pGJaIwWo9K5XyWWAmf+qMIcyfzV05 pb/uMGUei+ugQ== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 8DEA16007D; Fri, 5 Jul 2024 13:34:10 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 9C6C720499A; Fri, 05 Jul 2024 13:33:51 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Davide Caratti , Ilya Maximets , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Ahern , Simon Horman , Ratheesh Kannoth , Florian Westphal , Alexander Lobakin , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 10/10] flow_dissector: set encapsulation control flags for non-IP Date: Fri, 5 Jul 2024 13:33:46 +0000 Message-ID: <20240705133348.728901-11-ast@fiberby.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240705133348.728901-1-ast@fiberby.net> References: <20240705133348.728901-1-ast@fiberby.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Make sure to set encapsulated control flags also for non-IP packets, such that it's possible to allow matching on e.g. TUNNEL_OAM on a geneve packet carrying a non-IP packet. Suggested-by: Davide Caratti Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Tested-by: Davide Caratti --- net/core/flow_dissector.c | 4 ++++ net/sched/cls_flower.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 1a9ca129fddde..ada1e39b557e0 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -434,6 +434,10 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb, ipv6->dst =3D key->u.ipv6.dst; } break; + default: + skb_flow_dissect_set_enc_control(0, ctrl_flags, flow_dissector, + target_container); + break; } =20 if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_KEYID)) { diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 897d6b683cc6f..38b2df387c1e1 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -2199,7 +2199,8 @@ static void fl_init_dissector(struct flow_dissector *= dissector, FL_KEY_SET_IF_MASKED(mask, keys, cnt, FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, enc_ipv6); if (FL_KEY_IS_MASKED(mask, enc_ipv4) || - FL_KEY_IS_MASKED(mask, enc_ipv6)) + FL_KEY_IS_MASKED(mask, enc_ipv6) || + FL_KEY_IS_MASKED(mask, enc_control)) FL_KEY_SET(keys, cnt, FLOW_DISSECTOR_KEY_ENC_CONTROL, enc_control); FL_KEY_SET_IF_MASKED(mask, keys, cnt, --=20 2.45.2