* Implementation for the 9front operating system
@ 2026-08-04 21:08 Jacob Moody
2026-10-12 19:14 ` Jacob Moody
2026-11-10 16:15 ` Jason A. Donenfeld
0 siblings, 2 replies; 4+ messages in thread
From: Jacob Moody @ 2026-08-04 21:08 UTC (permalink / raw)
To: wireguard
All,
I've been working on an implementation of wireguard for 9front.
I am starting to get to the point where I feel like the implementation is getting
pretty close, and its in a good spot to review before I do some tighter integration into 9front.
I know in the past I've seen some desire from the wg community to ensure that code using the wireguard
name at least be somewhat decent. So I wanted to share it here and get feedback if people felt inclined.
Grab the code from your choice of git hosts:
git://shithub.us/moody/wg
https://github.com/majiru/wg
I am happy to answer any questions regarding plan 9/9front specifics.
One note is that there's some stubs right now, the dynamic runtime addition
and subtraction of peers, and likewise the condition under which we send
cookie's is not implemented, that's pending the more tighter integration.
Thanks,
moody
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Implementation for the 9front operating system
2026-08-04 21:08 Implementation for the 9front operating system Jacob Moody
@ 2026-10-12 19:14 ` Jacob Moody
2026-11-10 16:15 ` Jason A. Donenfeld
1 sibling, 0 replies; 4+ messages in thread
From: Jacob Moody @ 2026-10-12 19:14 UTC (permalink / raw)
To: wireguard
On 8/4/26 16:08, Jacob Moody wrote:
> All,
>
> I've been working on an implementation of wireguard for 9front.
> I am starting to get to the point where I feel like the implementation is getting
> pretty close, and its in a good spot to review before I do some tighter integration into 9front.
>
> I know in the past I've seen some desire from the wg community to ensure that code using the wireguard
> name at least be somewhat decent. So I wanted to share it here and get feedback if people felt inclined.
>
> Grab the code from your choice of git hosts:
> git://shithub.us/moody/wg
> https://github.com/majiru/wg
>
> I am happy to answer any questions regarding plan 9/9front specifics.
>
> One note is that there's some stubs right now, the dynamic runtime addition
> and subtraction of peers, and likewise the condition under which we send
> cookie's is not implemented, that's pending the more tighter integration.
>
> Thanks,
> moody
>
Just giving a bump to this, sorry I had sent two mails because I was not sure if the first got dropped with the
moderation queue taking so long.
It's totally fine if there's no interest, 9front is fairly niche, I just wanted to avoid a faux pas
in shipping something without consulting the broader community.
With that said, after haven taken a break from this for a bit I plan to work on this a bit more and upstream it.
If folks are interested but just need more time to look and would prefer that happen before I merge anything just LMK.
Thanks,
moody
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Implementation for the 9front operating system
2026-08-04 21:08 Implementation for the 9front operating system Jacob Moody
2026-10-12 19:14 ` Jacob Moody
@ 2026-11-10 16:15 ` Jason A. Donenfeld
2026-11-10 19:41 ` Jacob Moody
1 sibling, 1 reply; 4+ messages in thread
From: Jason A. Donenfeld @ 2026-11-10 16:15 UTC (permalink / raw)
To: Jacob Moody; +Cc: wireguard
Hi Moody,
On Tue, Aug 04, 2026 at 04:08:07PM -0500, Jacob Moody wrote:
> All,
>
> I've been working on an implementation of wireguard for 9front.
> I am starting to get to the point where I feel like the implementation is getting
> pretty close, and its in a good spot to review before I do some tighter integration into 9front.
>
> I know in the past I've seen some desire from the wg community to ensure that code using the wireguard
> name at least be somewhat decent. So I wanted to share it here and get feedback if people felt inclined.
>
> Grab the code from your choice of git hosts:
> git://shithub.us/moody/wg
> https://github.com/majiru/wg
>
> I am happy to answer any questions regarding plan 9/9front specifics.
>
> One note is that there's some stubs right now, the dynamic runtime addition
> and subtraction of peers, and likewise the condition under which we send
> cookie's is not implemented, that's pending the more tighter integration.
Cool project! Would be happy to look at it together at some point. Let
me know when you feel like it's "complete" and matches the various
semantics of the Linux implementation, and then maybe we can do a
read through together. I've always wanted to learn more about 9front.
Jason
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Implementation for the 9front operating system
2026-11-10 16:15 ` Jason A. Donenfeld
@ 2026-11-10 19:41 ` Jacob Moody
0 siblings, 0 replies; 4+ messages in thread
From: Jacob Moody @ 2026-11-10 19:41 UTC (permalink / raw)
To: Jason A. Donenfeld; +Cc: wireguard
On 11/10/26 10:15, Jason A. Donenfeld wrote:
> Hi Moody,
>
> On Tue, Aug 04, 2026 at 04:08:07PM -0500, Jacob Moody wrote:
>> All,
>>
>> I've been working on an implementation of wireguard for 9front.
>> I am starting to get to the point where I feel like the implementation is getting
>> pretty close, and its in a good spot to review before I do some tighter integration into 9front.
>>
>> I know in the past I've seen some desire from the wg community to ensure that code using the wireguard
>> name at least be somewhat decent. So I wanted to share it here and get feedback if people felt inclined.
>>
>> Grab the code from your choice of git hosts:
>> git://shithub.us/moody/wg
>> https://github.com/majiru/wg
>>
>> I am happy to answer any questions regarding plan 9/9front specifics.
>>
>> One note is that there's some stubs right now, the dynamic runtime addition
>> and subtraction of peers, and likewise the condition under which we send
>> cookie's is not implemented, that's pending the more tighter integration.
>
> Cool project! Would be happy to look at it together at some point. Let
> me know when you feel like it's "complete" and matches the various
> semantics of the Linux implementation, and then maybe we can do a
> read through together. I've always wanted to learn more about 9front.
>
Thanks! Very excited to get some more eyes on it. I can give this thread a ping
when I feel its at a more complete state.
I don't anticipate the flow of the code to change too much, but for a rough idea of
what remains:
- Integration into our key storage file system (auth/factotum), I have a protocol for this
sketched out but need to finish and implement it with the existing code.
- Figure out a way to provide changes in peers at runtime. Plan 9 has no ioctl's or something
similar, so perhaps the wg code exposes a filesystem for modifications, still undecided.
Another thing, I could be misremembering (I got nerd sniped to go look at some other things), but
I believe the portable implementation gets some sort of peek into the UDP queue to determine if we
should start sending cookies/PoW challenges. We currently do not have this sort of information from
userspace in 9front, my best semantic equivalence was to count auth_rpc (to auth/factotum) in flight.
For this implementation that is likely the thing to "guard against", but I understand this is a slight
departure.
Also curious, is there some further reading/discussion for cases in which an initiator sends a PoW challenge
back to a responder? I understand that the P2P nature and potential role-switching makes the individual role
of an endpoint fluid over a long enough time frame, however I'd like to understand a bit more.
Cheers,
Moody
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-10 19:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-04 21:08 Implementation for the 9front operating system Jacob Moody
2026-10-12 19:14 ` Jacob Moody
2026-11-10 16:15 ` Jason A. Donenfeld
2026-11-10 19:41 ` Jacob Moody
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox