Development discussion of WireGuard
 help / color / mirror / Atom feed
From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: WireGuard mailing list <wireguard@lists.zx2c4.com>
Subject: Re: Text-based IPC for Userspace Implementations
Date: Tue, 16 May 2017 15:12:39 +0200	[thread overview]
Message-ID: <87vap1gd2w.fsf@alrua-kau> (raw)
In-Reply-To: <CAHmME9pGX9zH+A9ouz0g8g6R7ZheZ=sKu_seAZ8r-DtBRdY_Rw@mail.gmail.com> (Jason A. Donenfeld's message of "Tue, 16 May 2017 14:36:00 +0200")

"Jason A. Donenfeld" <Jason@zx2c4.com> writes:

> Hey guys,
>
> Currently wg(8) talks to the kernel by passing structs through an
> ioctl. Due to upstream demands, this is going to be changed to
> netlink, and we'll ditch those structs. wg(8) previously tried to
> re-use those same structs for userspace implementations, passing them
> through a unix socket. Implementors did not like dealing with this.
> Since the structs are going for the kernel stuff, we might as well
> move to something better, too, for the userspace stuff. Therefore
> wg(8) now has a very simple text-based IPC format over unix sockets
> (or Windows named pipes) that can be easily implemented in nearly
> every language, even bash.
>
> I've written a small description of it here: https://www.wireguard.io/xplatform/
>
> This will be part of the next snapshot.
>
> Any questions?

I applaud the general idea of moving to a text-based interface. But why
invent Yet Another Configuration Format?

I guess you could say that key=value pairs are fairly straight forward;
but from the examples it looks like there's an implicit nested
structure? I.e. a public_key=xxx line denotes the start of a new
endpoint, and the following keys are logically part of that endpoint?
Or? If this is the case, you'll need a stateful parser to parse it,
which is not immediately obvious from the description, and is bound to
trip people up at some point...

So why not avoid any possible confusion and just emit JSON? Or another
well-established serialisation format where the nesting can be made
explicit... :)

-Toke

  reply	other threads:[~2017-05-16 13:01 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-16 12:36 Jason A. Donenfeld
2017-05-16 13:12 ` Toke Høiland-Jørgensen [this message]
2017-05-16 16:01   ` Jonathan Rudenberg
2017-05-16 16:09     ` Toke Høiland-Jørgensen
2017-05-16 19:26     ` Jörg Thalheim
2017-05-17 14:01       ` Jason A. Donenfeld
2017-05-17 14:04         ` Manuel Schölling
2017-05-17 14:08           ` Jason A. Donenfeld
2017-05-18 16:46             ` Manuel Schölling
2017-05-18 18:04               ` Daniel Kahn Gillmor
2017-05-17 14:14         ` Bzzzz
2017-05-17 14:17           ` Jason A. Donenfeld
2017-05-16 16:33   ` Guanhao Yin
2017-05-17 13:53     ` Jason A. Donenfeld
2017-05-16 15:43 ` Ivan Labáth
2017-05-17 14:00 ` Jason A. Donenfeld
2017-05-17 18:07   ` Toke Høiland-Jørgensen
2017-05-17 18:10     ` Jason A. Donenfeld
2017-05-17 17:04 ` Jason A. Donenfeld
     [not found] ` <20170516154204.GB9458@matrix-dream.net>
     [not found]   ` <CAHmME9roTAqMYB0qB7JG3rkKfGw1nfzTz0AD-frcGyyweCTcJQ@mail.gmail.com>
2017-05-18  8:02     ` allowed_ips move semantics? Ivan Labáth
2017-05-18 10:08       ` Jason A. Donenfeld
2017-05-18 12:00         ` Ivan Labáth

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=87vap1gd2w.fsf@alrua-kau \
    --to=toke@toke.dk \
    --cc=Jason@zx2c4.com \
    --cc=wireguard@lists.zx2c4.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).