From nobody Fri Oct 3 05:27:00 2025 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 A872C275B0A; Thu, 4 Sep 2025 22:03:26 +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=1757023408; cv=none; b=VsbzOB/gf3nMySB2iWYBpBxU668xuhXvgSxfXdivN2VT+6W5aov0tR0DoWwc09vpLvPin7y2nXEZkgOl6o58tQ8CR98Ply0EqpRlYTyYcdCYgSxRi5rUYYXbg9TNmFY6NR41MWsoWGaDbMYRyy1YUfSYFCKIuHVvL8VrhVSoiPQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023408; c=relaxed/simple; bh=ODj6RhlwRxLTGLnRhQ5eS3l2jrWo/SBLLtOAG4EVhhM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Uhhr+UYgehm2fkLgL22FoXno5c+to8MxMRy0eU3WvmFN0SBV1hwbOKQ06rKW2gHOV6/Ps3boT6mdJz9pJhC9ovm8YdgwP8IJZwC37Rjly4ooTAFlg7+alxcqtd9IH8HfbaAZlfcKpZScp5i9us1Y2ZaL75XrtO7CMMyb+q6ZEno= 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=P7lKnSX6; 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="P7lKnSX6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=ODj6RhlwRxLTGLnRhQ5eS3l2jrWo/SBLLtOAG4EVhhM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P7lKnSX6zr+/PVcx4vRXprAnAhEYt1+EhLFWZdW91EkGVGscno9bi5T9JkDgNrZhj XfL6WwYvp8hGf/zxFJbDjMI1+pm4jkGv8ls6PK2K9+iDmfzmj+r0qWNxl56euJwjw5 jnCjRdaEDZGuqNjltbl7EGOwQaWIr6Pkq+CCQpVtNON8n4xiQGl1lpnrwNMyqEW1qE KQ1rf4/jLJWgnv76XAhol+XjtPzKCmcEX8mNSvjqxRCPgkwaJofxJgGGaLMlkgDutg 29visO5/vmRB9z28F1e1pfjPGTiVVbWbQqER+HJQedLp4izuaAMTFd4WXQbeIBzbCM glrnhKUhhF18A== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 9DE816012E; Thu, 4 Sep 2025 22:03:11 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 8C1E6201FD8; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 01/11] tools: ynl-gen: allow overriding name-prefix for constants Date: Thu, 4 Sep 2025 22:01:24 +0000 Message-ID: <20250904220156.1006541-1-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 Allow using custom name-prefix with constants, just like it is for enum and flags declarations. This is needed for generating WG_KEY_LEN in include/uapi/linux/wireguard.h from a spec. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter Reviewed-by: Jacob Keller Reviewed-by: Jakub Kicinski --- tools/net/ynl/pyynl/ynl_gen_c.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index fb7e03805a11..1543d4911bf5 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -3211,8 +3211,9 @@ def render_uapi(family, cw): cw.block_end(line=3D';') cw.nl() elif const['type'] =3D=3D 'const': + name_pfx =3D const.get('name-prefix', f"{family.ident_name}-") defines.append([c_upper(family.get('c-define-name', - f"{family.ident_name}-{cons= t['name']}")), + f"{name_pfx}{const['name']}= ")), const['value']]) =20 if defines: --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 C30742DF6F4; Thu, 4 Sep 2025 22:03:29 +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=1757023411; cv=none; b=dNWoszu5WewrB+o6zT0TtOPiBJUyuN1ds9uq0HHljFKJmUyI1jITNggOJjBlSDKJEVlcVMFnF7miOwmRlyr4biGqtmyJPJgRW/4aWX3V0Fa2ESl7yV0YjJRI2nbB+dP+p1PxYiZ72IXwQKw0Sn2tSAiUNmbRfdrSyenasFPYKkA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023411; c=relaxed/simple; bh=eBBuwNaUDHXo8diw1UVgSV3P1XZ5UqZY0UXPecgkD5k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IB84aA3qmhZHrXw9mUboVCXkq765g5IAwerAmHvQI52eETYefu/O8au2Lwzg/eaUReVZoS5q4nssl3YPJYKIDNJdygoXWbUUZ2OZ0bNCaF7Q7htf5Qw7aLvVBXnR+eFcrE8pdEEY005Adt7OqZlL94p8zmgST3DCozIFJYf9qzQ= 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=G2FjblNS; 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="G2FjblNS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=eBBuwNaUDHXo8diw1UVgSV3P1XZ5UqZY0UXPecgkD5k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G2FjblNSimyRinWpU52JayO17SNj9IDU70wB4c74C1GPk5ZwAxxLn53/kKzbQ2dyc CyCRm6wy11I+8pmuGqMmYmv6Ks5W4/KdaYVXaeamcpoNxG60w4tvdeSt0ZiDgwfTBm mxX+62rW5Hp9wQ9GsmVVSqMwlJPY/O17mYD41UOIdZ3WsDdyv2uz9hxOz0KKb46ICy 4CJpzZ4c2RptkZLM/TA4Hr0hjk78poWK2xSLUizgcUHLoB/Az34ch52y6++J7uIoWW RRGCAgEOa+N600eXqWWqXd2KX6on/LpvjtIxFGf13WJN6uVhelo+zVysN/Iw0FfSV6 SZrIxwQaxTEyQ== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 4C5B960138; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 954F72020F1; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 02/11] tools: ynl-gen: generate nested array policies Date: Thu, 4 Sep 2025 22:01:25 +0000 Message-ID: <20250904220156.1006541-2-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 adds support for NLA_POLICY_NESTED_ARRAY() policies. Example spec (from future wireguard.yaml): - name: wgpeer attributes: - name: allowedips type: indexed-array sub-type: nest nested-attributes: wgallowedip yields NLA_POLICY_NESTED_ARRAY(wireguard_wgallowedip_nl_policy). This doesn't change any currently generated code, as it isn't used in any specs currently used for generating code. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter Reviewed-by: Jakub Kicinski --- tools/net/ynl/pyynl/ynl_gen_c.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index 1543d4911bf5..b7de7f6b1fc7 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -816,6 +816,11 @@ class TypeArrayNest(Type): f'unsigned int n_{self.c_name}'] return super().arg_member(ri) =20 + def _attr_policy(self, policy): + if self.attr['sub-type'] =3D=3D 'nest': + return f'NLA_POLICY_NESTED_ARRAY({self.nested_render_name}_nl_= policy)' + return super()._attr_policy(policy) + def _attr_typol(self): if self.attr['sub-type'] in scalars: return f'.type =3D YNL_PT_U{c_upper(self.sub_type[1:])}, ' --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 E17512DF715; Thu, 4 Sep 2025 22:03:29 +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=1757023412; cv=none; b=J2+qIOuwPQbcGVKDNbwRfUF+GmsdTI+mb3kQWMh5fWBnzGR4Vu8eUk75IAIYE6YsFHQoxb0lWkVOsa+BgXgKusiywOJ1vDiQtMGhBXE5DecLlS7eUbjcrUF9iUlwLSgN8Mw3z/tp505GyFU6JFsiXwPa+MRaXIewNeci8AFCvxk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023412; c=relaxed/simple; bh=7mPaZYp6IBm/oj1/oMkLKS5KcOMTq2FZ1vUvfx3mqLc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qyX6zLmHkozTM8cKGftwpOR5CWes+SIwFyVSlurnMLKz2YSTm+OEkJOP8PTGbTFy4j+DY65KRprz4sMXDHnoN96eaDXUasZeBcFlTRQlL6JIQiV9UfIk78gX496srJbCQu4kmVVqz5VBbUAdY1obsU6JkAlahXwR+4ol6prUJzw= 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=Q08+1KNc; 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="Q08+1KNc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=7mPaZYp6IBm/oj1/oMkLKS5KcOMTq2FZ1vUvfx3mqLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q08+1KNcfP0JSDXoY2eORt544YehFndoOuLJxAAvx+JPDINNxVOuU8sJZu0wGSXug tJ/4k0dxxd71ZzD4oG/NDL+7Sd4S4P0PMcPsU2H8OeCEMdHo8pjhIBVJqQl4QLB/Tc D53xrnNKZuU4sVHanNuKlqHiyh2o0k9pCIbuf6ZC54EcH3TwvMojywQUjtIOMSKZij fSgEtA7ZCE+ZRvyylUc5ox73KqTLoga9lQupfnF7TElineIV4T/LkD6XwkWJ++OEz0 qiZkXRZg5ryGWxRwoiwQH0MErs0yuAIpVgwW0iU0wAEgJBFFKxvxDW+cA2LkLQmMB8 TzJZPXZV4DAHw== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 481F360137; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id 9E68D202231; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 03/11] tools: ynl-gen: add sub-type check Date: Thu, 4 Sep 2025 22:01:26 +0000 Message-ID: <20250904220156.1006541-3-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 Add a check to verify that the sub-type is "nest", and throw an exception if no policy could be generated, as a guard to prevent against generating a bad policy. This is a trivial patch with no behavioural changes intended. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter Reviewed-by: Jacob Keller Reviewed-by: Jakub Kicinski --- tools/net/ynl/pyynl/ynl_gen_c.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index b7de7f6b1fc7..04c26ed92ca3 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -826,8 +826,10 @@ class TypeArrayNest(Type): return f'.type =3D YNL_PT_U{c_upper(self.sub_type[1:])}, ' elif self.attr['sub-type'] =3D=3D 'binary' and 'exact-len' in self= .checks: return f'.type =3D YNL_PT_BINARY, .len =3D {self.checks["exact= -len"]}, ' - else: + elif self.attr['sub-type'] =3D=3D 'nest': return f'.type =3D YNL_PT_NEST, .nest =3D &{self.nested_render= _name}_nest, ' + else: + raise Exception(f"Typol for ArrayNest sub-type {self.attr['sub= -type']} not supported, yet") =20 def _attr_get(self, ri, var): local_vars =3D ['const struct nlattr *attr2;'] --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 8279D2EACF7; Thu, 4 Sep 2025 22:03:33 +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=1757023417; cv=none; b=uf/cpF0Wz9CY8nT3VqTVM9b47KjCk64Xptabt/80dGf9RMGDGt7uptcZLiw+prG5AsYFMsUUjG+L+S6JwPBtIB+grSO4iMrcbPoTdcqpUBg7l3C1jlZoFRvW1ADnQueawCyNgYbY+fLa+vVHwP7kwdvinP3YRQfu4BhsDVI+Eqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023417; c=relaxed/simple; bh=3titisb2qOCRkFsigSmEsTRxF1CfZY1f9y1aFsaVeS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=F5wQPe5c1TEmNeEzHM2oyBzEM7b65RSbbAF1AZYSpJ36sKSeaZaj0HRBfWhbNM5MZuwUASQH/EABjwBwV5GgizlaVwt3N7lzTDBAzrZt1R9pGSyb4Y+ErQFL1em172pruRFC5hAbaX+X/nNrhIBdNK+gzT0adlxaUpqjCkKOAyA= 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=sdIvtphO; 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="sdIvtphO" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023399; bh=3titisb2qOCRkFsigSmEsTRxF1CfZY1f9y1aFsaVeS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sdIvtphOcH283w5+jo96tBv1w5Xb4I/VHDC5l3YaIfFjix9w7CM6ik0qK3I7ev8pL ddq5Ss+1FzJL7uGlcGS/YbAnVe4nHCa9Am6A5UW+txliwfu9s1uUvN4znv7UPLggMI HurpCP/WiveitbuzqiK+2SM40mnStB/oHmZpF4uZWFDWbKq2xXWtUjzZMmRJTUc1BV qFfuiQewZQPAoZab3Hj/zyF9dbjRJa8HTTK2dDchkU74EpScZz6f1IUWInC4j3/7fx E63FDOZZG2+JipdNu104wZhwWYyee8dCYkpOfyA2VGxagWNFiInQxEYpImyyzYg/yf ezcNHy+tdLQ6g== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 1C21D60586; Thu, 4 Sep 2025 22:03:19 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id A7BF320228C; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 04/11] tools: ynl-gen: define count iterator in print_dump() Date: Thu, 4 Sep 2025 22:01:27 +0000 Message-ID: <20250904220156.1006541-4-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 In wireguard_get_device_dump(), as generated by print_dump(), it didn't generate a declaration of `unsigned int i`: $ make -C tools/net/ynl/generated wireguard-user.o -e CC wireguard-user.o wireguard-user.c: In function =E2=80=98wireguard_get_device_dump=E2=80=99: wireguard-user.c:502:22: error: =E2=80=98i=E2=80=99 undeclared (first use i= n this fn) 502 | for (i =3D 0; i < req->_count.peers; i++) | ^ Copy the logic from print_req() as it correctly generated the iterator in wireguard_set_device(). Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter Reviewed-by: Jacob Keller Reviewed-by: Jakub Kicinski --- tools/net/ynl/pyynl/ynl_gen_c.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index 04c26ed92ca3..b0eeedfca2f2 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -2425,6 +2425,11 @@ def print_dump(ri): local_vars +=3D ['size_t hdr_len;', 'void *hdr;'] =20 + for _, attr in ri.struct['request'].member_list(): + if attr.presence_type() =3D=3D 'count': + local_vars +=3D ['unsigned int i;'] + break + ri.cw.write_func_lvar(local_vars) =20 ri.cw.p('yds.yarg.ys =3D ys;') --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 C20462DF6E9; Thu, 4 Sep 2025 22:03:29 +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=1757023411; cv=none; b=QUbWfzaistSAnqxsfalBKdVJZjf1pC6r1ZOHv3OCyRYewwFRtq9ytuPNuDLzWZLXgtV+x0nGcoyS3xP+dlHc6fRQh+7lupNI0oCYOYnJE663xgWRpYOnm0WcSwvKwysutx6fShLoyfUjupmdtbMmIcYSK6EMFNBkNmvFSUvqt60= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023411; c=relaxed/simple; bh=kfNKsp1FHappfXlSa3oCQen0sULVOEgKmZ5WZwpdTBk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HIuFe/hNkAy44WnPSPO7OY8VIZe7JjTYNd0d+RLZwEqgqCKqxtJBkegN6jlT3yJCD/Z/R0RuRDQRxugEE+EwqGx4tYGpBmNJ4xdteDjObA1je1sccdV6alNPEKNGDKINy6w491IsVH6bt8pS0PARYo6Hy39SJQbNSAmSv6w5DVo= 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=HhCs/zKf; 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="HhCs/zKf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=kfNKsp1FHappfXlSa3oCQen0sULVOEgKmZ5WZwpdTBk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HhCs/zKfXQtb+hq+pa99bB1PTkRLkiO84V9dq15EmSJ/7PDXYqePkTS4Kxe7A4Kui /Ggma/1U5k+fZeVj03VOXSNzULLuzFfQqFdgO+L/SrRKHoH0fWcOf9RQD42wvHKm41 sxWwZHSzWSB/0haGq/bShUKKUkDomWGs9AoILzyYGYTQjOkQBM6Mrf4DRRMOAVyxNc gSMZ8HXgUPFLkk2fJDMGOwOts+xB0+sRyvPpTlhLHVMYGulzk5BflSFjoIrr+oq9JO 7j7R61lMNpbvNCi1roX5TtWlYHYqobDzTTEf/vO1mx9dCz/+6ZSTqmU0JYTB8P7/4p 9QtGcAAlyHj9w== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 9485860142; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id B168C2024AB; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 05/11] tools: ynl-gen: define nlattr *array in a block scope Date: Thu, 4 Sep 2025 22:01:28 +0000 Message-ID: <20250904220156.1006541-5-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 Instead of trying to define "struct nlattr *array;" in the all the right places, then simply define it in a block scope, as it's only used here. Before this patch it was generated for attribute set _put() functions, like wireguard_wgpeer_put(), but missing and caused a compile error for the command function wireguard_set_device(). $ make -C tools/net/ynl/generated wireguard-user.o -e CC wireguard-user.o wireguard-user.c: In function =E2=80=98wireguard_set_device=E2=80=99: wireguard-user.c:548:9: error: =E2=80=98array=E2=80=99 undeclared (first us= e in ..) 548 | array =3D ynl_attr_nest_start(nlh, WGDEVICE_A_PEERS); | ^~~~~ Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter --- tools/net/ynl/pyynl/ynl_gen_c.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index b0eeedfca2f2..e6a84e13ec0a 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -842,6 +842,9 @@ class TypeArrayNest(Type): return get_lines, None, local_vars =20 def attr_put(self, ri, var): + ri.cw.block_start() + ri.cw.p('struct nlattr *array;') + ri.cw.nl() ri.cw.p(f'array =3D ynl_attr_nest_start(nlh, {self.enum_name});') if self.sub_type in scalars: put_type =3D self.sub_type @@ -857,6 +860,7 @@ class TypeArrayNest(Type): else: raise Exception(f"Put for ArrayNest sub-type {self.attr['sub-t= ype']} not supported, yet") ri.cw.p('ynl_attr_nest_end(nlh, array);') + ri.cw.block_end() =20 def _setter_lines(self, ri, member, presence): return [f"{member} =3D {self.c_name};", @@ -2063,13 +2067,9 @@ def put_req_nested(ri, struct): init_lines.append(f"hdr =3D ynl_nlmsg_put_extra_header(nlh, {struc= t_sz});") init_lines.append(f"memcpy(hdr, &obj->_hdr, {struct_sz});") =20 - has_anest =3D False has_count =3D False for _, arg in struct.member_list(): - has_anest |=3D arg.type =3D=3D 'indexed-array' has_count |=3D arg.presence_type() =3D=3D 'count' - if has_anest: - local_vars.append('struct nlattr *array;') if has_count: local_vars.append('unsigned int i;') =20 --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 7792C2E7184; Thu, 4 Sep 2025 22:03:31 +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=1757023413; cv=none; b=IwTBTXqB0JzGfvaSrK5pLL6m6glNEbvroQhKNQti58Wz6v0KkCyqVp/pgRW4JaAiwZQVf18xwEIleNijAMElAqTS0zihzuYfYlh/QdZWJ6DFDs1MADVomkelcbMBUJoKM1KGibYBXlPPqtUil/hxLT7mD6NS4G3l3ghSZX6Zo3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023413; c=relaxed/simple; bh=6Iy0Yilm5oHEhz283wxOZHnY/ug/LSR1F9Nk/MVOvDs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ee/XdZ77hT2iYqs/bM6J75TJHWa5vHrAuKzJOuSH2RSoIjqI7vUmovmbkVyImMuGWKJhmMvd3ca66j3J9BK9jcKUzkL+N1affh22ewyecx2Mh6XWfw2ek+NNjFXqiUU+ll5sbQKHE9tc0Ek/KwIi2HDmvxFxDVbfYIHe+sbC00Q= 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=qEEI4Ltt; 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="qEEI4Ltt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=6Iy0Yilm5oHEhz283wxOZHnY/ug/LSR1F9Nk/MVOvDs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qEEI4LttJNohu7lB6eUkOQr2nz2sTpGWRZhz6XnAoO+tBSvFgNejInjjNn44+fq8s KIUiy2z3dVkp7iTJdhYCT/sWqzUGuNj0BCMsVOJ37xKGe5AbJFZWC86TxOwl06tGRw CiLstuomxop6jk+Kqii8jEoXu2ZxRFYwNaf1+L3+Y6L30mfIi9q8dzhMAt+YjPT/e7 0CmImC1pjSrgTQB5Ri+K6uhgwdSRNUlbE9FEHttx7zbZIz3/c0tQvBtp32M/kpYL1W xnfwGdwA+k6O0AYUtVxC98XFgUgZtBJlNOjTsHbpZhsLuUNi0I2C1L7ci0DXqLENEx VCJO3FJ4k8Icw== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 8F0B660140; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id BA5F62025C0; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 06/11] tools: ynl-gen: don't validate nested array attribute types Date: Thu, 4 Sep 2025 22:01:29 +0000 Message-ID: <20250904220156.1006541-6-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 In nested arrays don't require that the intermediate attribute type should be a valid attribute type, it might just be an index or simple 0, it is often not even used. See include/net/netlink.h about NLA_NESTED_ARRAY: > The difference to NLA_NESTED is the structure: > NLA_NESTED has the nested attributes directly inside > while an array has the nested attributes at another > level down and the attribute types directly in the > nesting don't matter. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen --- tools/net/ynl/pyynl/ynl_gen_c.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index e6a84e13ec0a..3c0b158c4da8 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -834,11 +834,12 @@ class TypeArrayNest(Type): def _attr_get(self, ri, var): local_vars =3D ['const struct nlattr *attr2;'] get_lines =3D [f'attr_{self.c_name} =3D attr;', - 'ynl_attr_for_each_nested(attr2, attr) {', - '\tif (ynl_attr_validate(yarg, attr2))', - '\t\treturn YNL_PARSE_CB_ERROR;', - f'\tn_{self.c_name}++;', - '}'] + 'ynl_attr_for_each_nested(attr2, attr) {'] + if self.attr['sub-type'] !=3D 'nest': + get_lines.append('\tif (ynl_attr_validate(yarg, attr2))') + get_lines.append('\t\treturn YNL_PARSE_CB_ERROR;') + get_lines.append(f'\tn_{self.c_name}++;') + get_lines.append('}') return get_lines, None, local_vars =20 def attr_put(self, ri, var): --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 14AF62EA15E; Thu, 4 Sep 2025 22:03:32 +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=1757023416; cv=none; b=ZOBRtPt9jgNt39jg0Z9niu3RSeb6f1uLK4J2pdTWTspXQ5n1TF05vVigCrvq7GT6ZJJNsrq2sySNfUPefi9G8u0w1HiY6/l1qMhYI/n8OK/bywxWPyYzH9b/B8vYGve00Au+Xaao6YdHZ2FMbhiqbm+6kEoRlX/bBS0SLyP1N44= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023416; c=relaxed/simple; bh=1d9dz0MFSz7ZmhIL6hDuc8ci8qBPILxE41nDcSMMkeg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=motbwAp/3QlRrLHyPZVMrUNZrppn/6EuQ4gDahD+4Bbpamu7+S6+BHoTenARukxtxEO+Lf66MSxG+i16g9nGelpufUn8hpOddG8o63Kpn4+uXcm9pt0JCTxIpT4US6ROLLxq/s9udHyz0skgiOaldwG0/fbrFKzDsM+aF3F/fhM= 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=ky1OlIjG; 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="ky1OlIjG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=1d9dz0MFSz7ZmhIL6hDuc8ci8qBPILxE41nDcSMMkeg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ky1OlIjG9upN4xQj7DcuxsvGtECcUoeZ+xy+n6+pfAZiYlAuY5U8HoIG9f0mnn719 df1ZFS8nsGgJCdGGB25lagosD0M/7FcIu9HlhGJn2yxsduWWoxg4QAMc2aUH9PaMvH D2F36N0EWmCG8OEOaNpC2QD0hXCCY1NFNnUTaA9NRK6kXMM2iHld1QyRSyGLcnLGwU 8TuiU378kRJZ4beVM9gEhZNhTAoF3TK/pvk5vALhug0P6N+X2BgLm2nvZ8GyoT5um+ e4S79rz0rJSAKWIip+yOe3pqUD3Ma8BZumdpg0A32mawG/Z6JcRZp8QmrISAe3JwMi GNB3+VYWBfLCg== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id ED15B6057F; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id C34122025D6; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 07/11] tools: ynl-gen: rename TypeArrayNest to TypeIndexedArray Date: Thu, 4 Sep 2025 22:01:30 +0000 Message-ID: <20250904220156.1006541-7-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 As TypeArrayNest can now be used with many other sub-types than nest, then rename it to TypeIndexedArray, to reduce confusion. This is a trivial patch with no behavioural changes intended. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter --- tools/net/ynl/pyynl/ynl_gen_c.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen= _c.py index 3c0b158c4da8..c4a6895ab5bb 100755 --- a/tools/net/ynl/pyynl/ynl_gen_c.py +++ b/tools/net/ynl/pyynl/ynl_gen_c.py @@ -792,7 +792,7 @@ class TypeMultiAttr(Type): f"{presence} =3D n_{self.c_name};"] =20 =20 -class TypeArrayNest(Type): +class TypeIndexedArray(Type): def is_multi_val(self): return True =20 @@ -829,7 +829,7 @@ class TypeArrayNest(Type): elif self.attr['sub-type'] =3D=3D 'nest': return f'.type =3D YNL_PT_NEST, .nest =3D &{self.nested_render= _name}_nest, ' else: - raise Exception(f"Typol for ArrayNest sub-type {self.attr['sub= -type']} not supported, yet") + raise Exception(f"Typol for IndexedArray sub-type {self.attr['= sub-type']} not supported, yet") =20 def _attr_get(self, ri, var): local_vars =3D ['const struct nlattr *attr2;'] @@ -859,7 +859,7 @@ class TypeArrayNest(Type): ri.cw.p(f'for (i =3D 0; i < {var}->_count.{self.c_name}; i++)') ri.cw.p(f"{self.nested_render_name}_put(nlh, i, &{var}->{self.= c_name}[i]);") else: - raise Exception(f"Put for ArrayNest sub-type {self.attr['sub-t= ype']} not supported, yet") + raise Exception(f"Put for IndexedArray sub-type {self.attr['su= b-type']} not supported, yet") ri.cw.p('ynl_attr_nest_end(nlh, array);') ri.cw.block_end() =20 @@ -1137,7 +1137,7 @@ class AttrSet(SpecAttrSet): t =3D TypeNest(self.family, self, elem, value) elif elem['type'] =3D=3D 'indexed-array' and 'sub-type' in elem: if elem["sub-type"] in ['binary', 'nest', 'u32']: - t =3D TypeArrayNest(self.family, self, elem, value) + t =3D TypeIndexedArray(self.family, self, elem, value) else: raise Exception(f'new_attr: unsupported sub-type {elem["su= b-type"]}') elif elem['type'] =3D=3D 'nest-type-value': --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 DA3482EB5B4; Thu, 4 Sep 2025 22:03:33 +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=1757023416; cv=none; b=IlIuhWTDIFNSqlxy6Tk7mJBN6l4YXMShKdlGv/KjY+3plsYmCx8M8OLPF8hZQU/Nd8JKleIy4in3QiUq0c3E/sGM7tsd+WdARPcSgWiD1v/NdwT5qXHK7uh13PZTEtjGsf1ISqFILCDFn/TyAmEjRPpVS0pAVpbd9MEoorFWzUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023416; c=relaxed/simple; bh=1RFc/pW39oBZ0KGQQemB1yrZjFzlWLZCdWNfKKF5zzg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z2pw5rsOeSlI5NQT/u4qQtOIKqbM8lBsqQRG/2QbEcL2J0ZbQazi0enaEkGYGKCIJGgCvf6ij7hBKsd29uI+biHCXZ+ejjKJ273UF1Dv48Lj4UaObf6yMGHJeKGIYnmvGgC+B850NHPzO+4WgkX7Hu6UHAgA7hRNu+em/bjRb1o= 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=JNtjo5vy; 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="JNtjo5vy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=1RFc/pW39oBZ0KGQQemB1yrZjFzlWLZCdWNfKKF5zzg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JNtjo5vy21ADZCeR4p04qE6EDMiskDmWDgfE0/ZzVgSuc2jlR/2cBnlR03DjqKhIQ vw30V0s039G/8t85aiVhKQDcof3YKH1K83iaX2UPX3YXRh5Vg/81ArEpbT6KeZs9bd N344+Zb1lGJc5FpZz9A2caCcPYjw4ejS9W7VdfpfChux4lmF3/EO1f+6NjYsPLxwsa RcpDtQwhu4T/eh0QLtvK/77kdMAimi2J4G544MlfFbPafghZjxxkETxbbEOfm3AnYU EYJo1UEQFn8pwvYwF5XrnR+wS76PPnZZKpeLqdy0/2FwVhMiNHtJWQoCOBzAaLE3rA 8alyWAcwf04bw== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id ED0C36057D; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id CD5E5202695; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 08/11] tools: ynl: move nest packing to a helper function Date: Thu, 4 Sep 2025 22:01:31 +0000 Message-ID: <20250904220156.1006541-8-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 moves nest packing into a helper function, that can also be used for packing indexed arrays. No behavioural changes intended. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter --- tools/net/ynl/pyynl/lib/ynl.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/net/ynl/pyynl/lib/ynl.py b/tools/net/ynl/pyynl/lib/ynl.py index 8244a5f440b2..4928b41c636a 100644 --- a/tools/net/ynl/pyynl/lib/ynl.py +++ b/tools/net/ynl/pyynl/lib/ynl.py @@ -562,11 +562,8 @@ class YnlFamily(SpecFamily): =20 if attr["type"] =3D=3D 'nest': nl_type |=3D Netlink.NLA_F_NESTED - attr_payload =3D b'' sub_space =3D attr['nested-attributes'] - sub_attrs =3D SpaceAttrs(self.attr_sets[sub_space], value, sea= rch_attrs) - for subname, subvalue in value.items(): - attr_payload +=3D self._add_attr(sub_space, subname, subva= lue, sub_attrs) + attr_payload =3D self._add_nest_attrs(value, sub_space, search= _attrs) elif attr["type"] =3D=3D 'flag': if not value: # If value is absent or false then skip attribute creation. @@ -623,6 +620,14 @@ class YnlFamily(SpecFamily): pad =3D b'\x00' * ((4 - len(attr_payload) % 4) % 4) return struct.pack('HH', len(attr_payload) + 4, nl_type) + attr_pa= yload + pad =20 + def _add_nest_attrs(self, value, sub_space, search_attrs): + sub_attrs =3D SpaceAttrs(self.attr_sets[sub_space], value, search_= attrs) + attr_payload =3D b'' + for subname, subvalue in value.items(): + attr_payload +=3D self._add_attr(sub_space, subname, subvalue, + sub_attrs) + return attr_payload + def _get_enum_or_unknown(self, enum, raw): try: name =3D enum.entries_by_val[raw].name --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 359172DA762; Thu, 4 Sep 2025 22:03:28 +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=1757023409; cv=none; b=EE0eI6xncrbgPZJBkROPjiYzvNfpb3vapXZryA1sZQF4HklJNrKMCHpZhocMPtjJc1qQthrnzqOItqcjExEkm1prS5SvCtnwbec9x4I/RlH/tiHREb/HjCgkDtDQrMn0tFzOp97wTf0A7mToMcLiMN2jjES72Kly9FfnyFPcl6s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023409; c=relaxed/simple; bh=woEk/16zCB9jjHSN1udeBatbeBvJgoxHXprMMI53ihc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=q+7XkkGXttnT2uIFel9rRFAxwl7qQ10D0VPMMnGeyvaysj2diOsKgF22rv4hKSsdA16TmoBZxYi9Ir+fem0K3+zDjMgF0loBvzLnQg3THi7kSiEh0Q79kmr9IR1RbyTV302hOFB+Ml7V/PrUBviCyCGO8ok8sl1GffDaJCJoRVo= 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=XE/rTpN7; 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="XE/rTpN7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=woEk/16zCB9jjHSN1udeBatbeBvJgoxHXprMMI53ihc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XE/rTpN7VLhgQuFEIcL6E38F7Pq9/zT1Rj7/1sn7TxmqFL/bFFgsHw0iJZ/QlT8HR VUftYk/VeK/pWug1iMzy4bu99rseXHqIQayQRiltlovm+LeCSV2bUMXU981bFFP4Ml w4b4FgdBEoRPBQ5HRq1wxjWFPI9kZaOcwlvFfWyt6VQkzrqcxsh/ifwt3ubiaYCYe1 Q9g0KVZqdks2ANkFDARXDFteUih6AVuOcPHoXeQ78nUHX8ex6wHLR7gkuqocQm97Au wpx6gX3jSZ7oNQM7OrIqYlF5ERaFr79ao6aSnvviUBQuoORPo3pc3v6Vd7ggzlqggk KIMoTR2040Iow== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 937A6600C4; Thu, 4 Sep 2025 22:03:11 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id D6A5C202775; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 09/11] tools: ynl: encode indexed-array Date: Thu, 4 Sep 2025 22:01:32 +0000 Message-ID: <20250904220156.1006541-9-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 adds support for encoding indexed-array attributes with sub-type nest in pyynl. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen --- tools/net/ynl/pyynl/lib/ynl.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tools/net/ynl/pyynl/lib/ynl.py b/tools/net/ynl/pyynl/lib/ynl.py index 4928b41c636a..a37294a751da 100644 --- a/tools/net/ynl/pyynl/lib/ynl.py +++ b/tools/net/ynl/pyynl/lib/ynl.py @@ -564,6 +564,11 @@ class YnlFamily(SpecFamily): nl_type |=3D Netlink.NLA_F_NESTED sub_space =3D attr['nested-attributes'] attr_payload =3D self._add_nest_attrs(value, sub_space, search= _attrs) + elif attr['type'] =3D=3D 'indexed-array' and attr['sub-type'] =3D= =3D 'nest': + nl_type |=3D Netlink.NLA_F_NESTED + sub_space =3D attr['nested-attributes'] + attr_payload =3D self._encode_indexed_array(value, sub_space, + search_attrs) elif attr["type"] =3D=3D 'flag': if not value: # If value is absent or false then skip attribute creation. @@ -617,6 +622,9 @@ class YnlFamily(SpecFamily): else: raise Exception(f'Unknown type at {space} {name} {value} {attr= ["type"]}') =20 + return self._add_attr_raw(nl_type, attr_payload) + + def _add_attr_raw(self, nl_type, attr_payload): pad =3D b'\x00' * ((4 - len(attr_payload) % 4) % 4) return struct.pack('HH', len(attr_payload) + 4, nl_type) + attr_pa= yload + pad =20 @@ -628,6 +636,15 @@ class YnlFamily(SpecFamily): sub_attrs) return attr_payload =20 + def _encode_indexed_array(self, vals, sub_space, search_attrs): + attr_payload =3D b'' + nested_flag =3D Netlink.NLA_F_NESTED + for i, val in enumerate(vals): + idx =3D i | Netlink.NLA_F_NESTED + val_payload =3D self._add_nest_attrs(val, sub_space, search_at= trs) + attr_payload +=3D self._add_attr_raw(idx, val_payload) + return attr_payload + def _get_enum_or_unknown(self, enum, raw): try: name =3D enum.entries_by_val[raw].name --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 A87A8284688; Thu, 4 Sep 2025 22:03:26 +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=1757023408; cv=none; b=NW1+7yEAo+HqDjDT/69yBzaEKav5MYW/kDLhnn2GZnrZ/Y8abx/qYC6yGrI9cNQ6XjnREfqPjn6tVcybfpID5NmqVijMDH0as/jMa+WTgm1YcwAwCWTrY0R2ZR1gw6KSPN2cAkBMeEdAtQlcXBGvi+aADMXkXmMBITmdKVi5euw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023408; c=relaxed/simple; bh=rgolZjPG+XHuMI4WAnndyywf6dHN7deNYLKzBJ40Ug8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=L0GbU2NlaB82oqxiG39FVIJVI7a5DW1X145m530s6VhHytuwGrxRmc2dlLzeXKzHEXX5xvN85H7YglBIMwwqkZBsG8CPrPMiqqyhcJn7LJ8pXG3ChyqUWsxyTE/JPMKrQ7A8JnX/PNamO04ZSy0/r/O9Ot9WJY1h9lxBNvLOpAc= 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=Kf+BU0Mb; 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="Kf+BU0Mb" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=rgolZjPG+XHuMI4WAnndyywf6dHN7deNYLKzBJ40Ug8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kf+BU0Mbw6te1L3Y0k0/wJuAWt208nEyXV8HTdlhU489vDYjfjqTUGezvTHZ38jnA 5ueFnP+5W7ERO9HX9DZOUjs6OGIqA2L0WfYSFvIdxaYr7WfsOb0Im3TCSZbjc7JDbg amwVSjPtlfc0zjxzue7V6oU8vR8ogXIQkBHpKguqfsHUQ2+gAWoM04EvfTV79oTPU9 4S/+dXuantJZ0UxrcVAC/bFSghtiXda6Iu17+Noa0R7+6ABjT4aQOitwV/a7DyaZJA xcMc042Yu3yy1Covvf6MNeeyTsbgP0lGgLXNI957fsnGgsybcV7N+hGuBmann7ltmJ qQW3ShRKa2mIQ== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id 8D9476000C; Thu, 4 Sep 2025 22:03:11 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id DFCAC2027BB; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 10/11] tools: ynl: decode hex input Date: Thu, 4 Sep 2025 22:01:33 +0000 Message-ID: <20250904220156.1006541-10-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 add support for decoding hex input, so that binary attributes can be read through --json. Example (using future wireguard.yaml): $ sudo ./tools/net/ynl/pyynl/cli.py --family wireguard \ --do set-device --json '{"ifindex":3, "private-key":"2a ae 6c 35 c9 4f cf <... to 32 bytes>"}' Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter --- tools/net/ynl/pyynl/lib/ynl.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/net/ynl/pyynl/lib/ynl.py b/tools/net/ynl/pyynl/lib/ynl.py index a37294a751da..78c0245ca587 100644 --- a/tools/net/ynl/pyynl/lib/ynl.py +++ b/tools/net/ynl/pyynl/lib/ynl.py @@ -973,6 +973,8 @@ class YnlFamily(SpecFamily): raw =3D ip.packed else: raw =3D int(ip) + elif attr_spec.display_hint =3D=3D 'hex': + raw =3D bytes.fromhex(string) else: raise Exception(f"Display hint '{attr_spec.display_hint}' not = implemented" f" when parsing '{attr_spec['name']}'") --=20 2.51.0 From nobody Fri Oct 3 05:27:00 2025 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 633E72EAB94; Thu, 4 Sep 2025 22:03:33 +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=1757023415; cv=none; b=nyDFsw8WdAdTeYsGA5tW/YuDdecfbRuHXOJhPMBN4WSWAi9rjybc0OzSbhJ4sK8m1I1HMAp8UkoFFs0dvaQJWsDB2h02m0baKE1TfNek2G1jDvCwcPQQwoVrcKdQPg7bdWOoG9UvCGU7dA86fTLq9mWWEnGWCQhiDM+dh5G4l7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757023415; c=relaxed/simple; bh=o6ldSlIH7/zXAlDQRWE4ITIETHzFOXj7+iucAitTmIU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=P+et68e1ImNWkSZXZlEvNbvet03EqIc2E72bHhybcOrrqYeKum4bqaQMJIqYmFGQFlc/mWraBM2Y77Q3wAd/N0EzttjW+eu7SVHovcSQdPoA37vivJiRRFbImkJNsFpHdmXgQ8beNcsjl9h7r4uP3a5KFH7ANoTKR+Z0dOtheWI= 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=Ch1JYDPr; 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="Ch1JYDPr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fiberby.net; s=202008; t=1757023398; bh=o6ldSlIH7/zXAlDQRWE4ITIETHzFOXj7+iucAitTmIU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ch1JYDPrM/bQzg/3xT3mqPg31nnaIncgf/czIIIivDK/pMwll/OxOZapbyfXsYBVk 1HUfXC0pGaUPixOmEaPou/Gff9IWv//SngiWFCYVn5b2jOqnJGoJyXGobd6Zq6F/yV +ff0KbWYKA8/UPOdlY0sy0JCxVvsHpPmkT6EjRz47B5EjZIfLRBzXhs0gk5BnLTV84 oZKi9eRVEBtJ3/xhVhg9382yigZ1pqvVXsD4cfgQb3GCx5FDYNZ+Ct/YIPD23T8FK5 awfj7uOsFpSkNC7GdG/XfvLTsA4pYd3X8uXZO+3hDTJ8Xrjat7qXoAVCUBN3VvLuXZ ZJBP5QgaYOzEw== Received: from x201s (193-104-135-243.ip4.fiberby.net [193.104.135.243]) by mail1.fiberby.net (Postfix) with ESMTPSA id B85616039F; Thu, 4 Sep 2025 22:03:18 +0000 (UTC) Received: by x201s (Postfix, from userid 1000) id E96A12027C4; Thu, 04 Sep 2025 22:02:09 +0000 (UTC) From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= To: "Jason A. Donenfeld" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= , Donald Hunter , Simon Horman , Jacob Keller , Andrew Lunn , wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 11/11] tools: ynl: add ipv4-or-v6 display hint Date: Thu, 4 Sep 2025 22:01:34 +0000 Message-ID: <20250904220156.1006541-11-ast@fiberby.net> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250904-wg-ynl-prep@fiberby.net> References: <20250904-wg-ynl-prep@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 The attribute WGALLOWEDIP_A_IPADDR can contain either an IPv4 or an IPv6 address depending on WGALLOWEDIP_A_FAMILY, however in practice it is enough to look at the attribute length. This patch implements an ipv4-or-v6 display hint, that can deal with this kind of attribute. It only implements this display hint for genetlink-legacy, it can be added to other protocol variants if needed, but we don't want to encourage it's use. Signed-off-by: Asbj=C3=B8rn Sloth T=C3=B8nnesen Reviewed-by: Donald Hunter --- Documentation/netlink/genetlink-legacy.yaml | 2 +- tools/net/ynl/pyynl/lib/ynl.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/netlink/genetlink-legacy.yaml b/Documentation/ne= tlink/genetlink-legacy.yaml index b29d62eefa16..66fb8653a344 100644 --- a/Documentation/netlink/genetlink-legacy.yaml +++ b/Documentation/netlink/genetlink-legacy.yaml @@ -154,7 +154,7 @@ properties: Optional format indicator that is intended only for choo= sing the right formatting mechanism when displaying values of= this type. - enum: [ hex, mac, fddi, ipv4, ipv6, uuid ] + enum: [ hex, mac, fddi, ipv4, ipv6, ipv4-or-v6, uuid ] struct: description: Name of the nested struct type. type: string diff --git a/tools/net/ynl/pyynl/lib/ynl.py b/tools/net/ynl/pyynl/lib/ynl.py index 78c0245ca587..6d2f12d43a08 100644 --- a/tools/net/ynl/pyynl/lib/ynl.py +++ b/tools/net/ynl/pyynl/lib/ynl.py @@ -958,7 +958,7 @@ class YnlFamily(SpecFamily): formatted =3D hex(raw) else: formatted =3D bytes.hex(raw, ' ') - elif display_hint in [ 'ipv4', 'ipv6' ]: + elif display_hint in [ 'ipv4', 'ipv6', 'ipv4-or-v6' ]: formatted =3D format(ipaddress.ip_address(raw)) elif display_hint =3D=3D 'uuid': formatted =3D str(uuid.UUID(bytes=3Draw)) @@ -967,7 +967,7 @@ class YnlFamily(SpecFamily): return formatted =20 def _from_string(self, string, attr_spec): - if attr_spec.display_hint in ['ipv4', 'ipv6']: + if attr_spec.display_hint in ['ipv4', 'ipv6', 'ipv4-or-v6']: ip =3D ipaddress.ip_address(string) if attr_spec['type'] =3D=3D 'binary': raw =3D ip.packed --=20 2.51.0