netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacob Keller <jacob.e.keller@intel.com>
To: Jakub Kicinski <kuba@kernel.org>, <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>, <edumazet@google.com>,
	<pabeni@redhat.com>, <andrew+netdev@lunn.ch>, <horms@kernel.org>,
	<donald.hunter@gmail.com>, <yuyanghuang@google.com>,
	<sdf@fomichev.me>, <gnault@redhat.com>,
	<nicolas.dichtel@6wind.com>, <petrm@nvidia.com>
Subject: Re: [PATCH net-next 12/13] tools: ynl: generate code for rt-addr and add a sample
Date: Tue, 8 Apr 2025 22:04:46 -0700	[thread overview]
Message-ID: <4fdcd9d0-b150-41c9-8d50-655e1f38098c@intel.com> (raw)
In-Reply-To: <20250409000400.492371-13-kuba@kernel.org>



On 4/8/2025 5:03 PM, Jakub Kicinski wrote:
> diff --git a/tools/net/ynl/samples/rt-addr.c b/tools/net/ynl/samples/rt-addr.c
> new file mode 100644
> index 000000000000..c9a6436ad420
> --- /dev/null
> +++ b/tools/net/ynl/samples/rt-addr.c
> @@ -0,0 +1,80 @@
> +int main(int argc, char **argv)
> +{
> +	struct rt_addr_getaddr_list *rsp;
> +	struct rt_addr_getaddr_req *req;
> +	struct ynl_error yerr;
> +	struct ynl_sock *ys;
> +
> +	ys = ynl_sock_create(&ynl_rt_addr_family, &yerr);
> +	if (!ys) {
> +		fprintf(stderr, "YNL: %s\n", yerr.msg);
> +		return 1;
> +	}
> +
> +	req = rt_addr_getaddr_req_alloc();
> +	if (!req)
> +		goto err_destroy;
> +
> +	rsp = rt_addr_getaddr_dump(ys, req);
> +	rt_addr_getaddr_req_free(req);
> +	if (!rsp)
> +		goto err_close;
> +
> +	if (ynl_dump_empty(rsp))
> +		fprintf(stderr, "Error: no addresses reported\n");
> +	ynl_dump_foreach(rsp, addr)
> +		rt_addr_print(addr, 0);
> +	rt_addr_getaddr_list_free(rsp);
> +
> +	ynl_sock_destroy(ys);
> +	return 0;
> +
> +err_close:
> +	fprintf(stderr, "YNL: %s\n", ys->err.msg);
> +err_destroy:
> +	ynl_sock_destroy(ys);
> +	return 2;
> +}
Nice! This makes it a lot simpler to write small tools for dedicated
tasks or debugging vs trying to use one of the other existing libraries.
I think it helps make netlink more accessible, and appreciate the work
to support the classic netlink families, even with their quirks.

Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>

Thanks,
Jake

  reply	other threads:[~2025-04-09  5:04 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-09  0:03 [PATCH net-next 00/13] tools: ynl: c: basic netlink-raw support Jakub Kicinski
2025-04-09  0:03 ` [PATCH net-next 01/13] netlink: specs: rename rtnetlink specs in accordance with family name Jakub Kicinski
2025-04-09  4:49   ` Jacob Keller
2025-04-09 12:15     ` Donald Hunter
2025-04-09 14:15       ` Jakub Kicinski
2025-04-09 14:36         ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 02/13] netlink: specs: rt-route: specify fixed-header at operations level Jakub Kicinski
2025-04-09  4:50   ` Jacob Keller
2025-04-09 12:16   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 03/13] netlink: specs: rt-addr: remove the fixed members from attrs Jakub Kicinski
2025-04-09  4:53   ` Jacob Keller
2025-04-09  4:58     ` Jacob Keller
2025-04-09 12:19   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 04/13] netlink: specs: rt-route: " Jakub Kicinski
2025-04-09  4:58   ` Jacob Keller
2025-04-09 12:20   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 05/13] netlink: specs: rt-addr: add C naming info Jakub Kicinski
2025-04-09  4:54   ` Jacob Keller
2025-04-09 12:21   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 06/13] netlink: specs: rt-route: " Jakub Kicinski
2025-04-09  4:54   ` Jacob Keller
2025-04-09 12:21   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 07/13] tools: ynl: support creating non-genl sockets Jakub Kicinski
2025-04-09  4:56   ` Jacob Keller
2025-04-09 12:25   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 08/13] tools: ynl-gen: don't consider requests with fixed hdr empty Jakub Kicinski
2025-04-09  4:57   ` Jacob Keller
2025-04-09  0:03 ` [PATCH net-next 09/13] tools: ynl: don't use genlmsghdr in classic netlink Jakub Kicinski
2025-04-09  4:59   ` Jacob Keller
2025-04-09 12:26   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 10/13] tools: ynl-gen: consider dump ops without a do "type-consistent" Jakub Kicinski
2025-04-09  5:01   ` Jacob Keller
2025-04-09 12:38   ` Donald Hunter
2025-04-09 13:52     ` Jakub Kicinski
2025-04-09 21:58       ` Jacob Keller
2025-04-09  0:03 ` [PATCH net-next 11/13] tools: ynl-gen: use family c-name in notifications Jakub Kicinski
2025-04-09  5:01   ` Jacob Keller
2025-04-09 12:38   ` Donald Hunter
2025-04-09  0:03 ` [PATCH net-next 12/13] tools: ynl: generate code for rt-addr and add a sample Jakub Kicinski
2025-04-09  5:04   ` Jacob Keller [this message]
2025-04-09 15:01     ` Jakub Kicinski
2025-04-09 12:50   ` Donald Hunter
2025-04-09  0:04 ` [PATCH net-next 13/13] tools: ynl: generate code for rt-route " Jakub Kicinski
2025-04-09  5:05   ` Jacob Keller
2025-04-09 12:49   ` Donald Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4fdcd9d0-b150-41c9-8d50-655e1f38098c@intel.com \
    --to=jacob.e.keller@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=donald.hunter@gmail.com \
    --cc=edumazet@google.com \
    --cc=gnault@redhat.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.dichtel@6wind.com \
    --cc=pabeni@redhat.com \
    --cc=petrm@nvidia.com \
    --cc=sdf@fomichev.me \
    --cc=yuyanghuang@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).