All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Chuck Lever III <chuck.lever@oracle.com>
Cc: Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>,
	"open list:NETWORKING [GENERAL]" <netdev@vger.kernel.org>,
	"hare@suse.com" <hare@suse.com>,
	David Howells <dhowells@redhat.com>,
	Benjamin Coddington <bcodding@redhat.com>,
	Olga Kornievskaia <kolga@netapp.com>,
	"jmeneghi@redhat.com" <jmeneghi@redhat.com>
Subject: Re: [PATCH v3 1/2] net/handshake: Create a NETLINK service for handling handshake requests
Date: Fri, 10 Feb 2023 13:44:16 -0800	[thread overview]
Message-ID: <20230210134416.0391f272@kernel.org> (raw)
In-Reply-To: <1B1298B2-C884-48BA-A4E8-BBB95C42786B@oracle.com>

On Fri, 10 Feb 2023 19:04:34 +0000 Chuck Lever III wrote:
> >> v2 of the series used generic netlink for the downcall piece.
> >> I can convert back to using generic netlink for v4 of the
> >> series.  
> > 
> > Would you be able to write the spec for it? I'm happy to help with that
> > as I mentioned.  
> 
> I'm coming from an RPC background, we usually do start from an
> XDR protocol specification. So, I'm used to that, and it might
> give us some new ideas about protocol correctness or
> simplification.

Nice, our thing is completely homegrown and unprofessional.
Hopefully it won't make you run away.

> Point me to a sample spec or maybe a language reference and we
> can discuss it further.

There are only two specs so far in net-next:

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/Documentation/netlink/specs

Neither of these is great (fou is a bit legacy, and ethtool is not
fully expressed), a better example may be this one which is pending 
in the bpf-next tree:

https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/Documentation/netlink/specs/netdev.yaml

There is a JSON schema spec (which may be useful for checking available
fields quickly):

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/Documentation/netlink/genetlink.yaml

And (uncharacteristically?), docs:

https://docs.kernel.org/next/userspace-api/netlink/index.html

> > Perhaps you have the user space already hand-written
> > here but in case the mechanism/family gets reused it'd be sad if people
> > had to hand write bindings for other programming languages.  
> 
> Yes, the user space implementation is currently hand-written C,
> but it can easily be converted to machine-generated if you have
> a favorite tool to do that.

I started hacking on a code generator for C in net-next in
tools/net/ynl/ynl-gen-c.py but it's likely bitrotted already.
I don't actually have a strong user in C to justify the time
investment. All the cool kids these days want to use Rust or Go
(and the less cool C++). For development I use Python
(tools/net/ynl/cli.py tools/net/ynl/lib/).

It should work fairly well for generating the kernel bits 
(uAPI header, policy and op tables).

  reply	other threads:[~2023-02-10 21:44 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-07 21:41 [PATCH v3 0/2] Another crack at a handshake upcall mechanism Chuck Lever
2023-02-07 21:41 ` [PATCH v3 1/2] net/handshake: Create a NETLINK service for handling handshake requests Chuck Lever
2023-02-08 16:20   ` Hannes Reinecke
2023-02-09  6:00   ` Jakub Kicinski
2023-02-09 15:43     ` Chuck Lever III
2023-02-09 16:02       ` Paolo Abeni
2023-02-09 16:34         ` Chuck Lever III
2023-02-10 11:41           ` Paolo Abeni
2023-02-10 14:31             ` Chuck Lever III
2023-02-10 15:06               ` Hannes Reinecke
2023-02-10 15:21               ` Paolo Abeni
2023-02-10 15:38                 ` Chuck Lever III
2023-02-12 15:40           ` Jamal Hadi Salim
2023-02-12 17:24             ` Chuck Lever III
2023-02-10  2:07       ` Jakub Kicinski
2023-02-10 14:17         ` Chuck Lever III
2023-02-10 18:09           ` Jakub Kicinski
2023-02-10 19:04             ` Chuck Lever III
2023-02-10 21:44               ` Jakub Kicinski [this message]
2023-02-11 20:55                 ` Chuck Lever III
2023-02-13 21:40                   ` Jakub Kicinski
2023-02-11 12:11             ` Hannes Reinecke
2023-02-13 21:55               ` Jakub Kicinski
2023-02-07 21:41 ` [PATCH v3 2/2] net/tls: Support AF_HANDSHAKE in kTLS Chuck Lever
2023-02-08 16:34   ` Hannes Reinecke
2023-02-08 17:04     ` Chuck Lever III
2023-02-08 17:48     ` Marcel Holtmann
2023-02-14  9:44 ` [PATCH v3 0/2] Another crack at a handshake upcall mechanism Hannes Reinecke
2023-02-14 11:09   ` Hannes Reinecke

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=20230210134416.0391f272@kernel.org \
    --to=kuba@kernel.org \
    --cc=bcodding@redhat.com \
    --cc=chuck.lever@oracle.com \
    --cc=dhowells@redhat.com \
    --cc=edumazet@google.com \
    --cc=hare@suse.com \
    --cc=jmeneghi@redhat.com \
    --cc=kolga@netapp.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.