#1101842 ITP: racd -- Extensible IPv6 Router Advertisement Client Daemon

#1101842#5
Date:
2025-04-01 16:10:34 UTC
From:
To:
Forging ever on along the IPv6-only path.

RAcd is a peice of glue intended to allow system components such as
src:clatd to interface easily with IPv6 router advertisements, but while
I'm at it I may as well fix my gripes with Linux ipv6/addrconf — something
that will ofc. be configurable.

The relatively recent addition of PREF64 to IPv6 standards has shown that
ossification is a terrible idea in a modern protocol implementations and
leads to sluggish deployment of perfectly good, but new, ideas.

RAcd is my fork of rdnssd (src:ndisc6) with DNS-configuration specific code
pushed out of the C-part of the program with a generalized mechanism to let
the system interface with it in it's place.

* Package name    : racd
  Version         : 0.1 (native package)
  Upstream Contact: Daniel Gröber <dxld@darkboxed.org>
* License         : GPL-2 or GPL-3
  Programming Lang: C
  Description     : Extensible IPv6 Router Advertisement Client Daemon

 The RAcd userspace daemon takes over responsibility for IPv6 RAs from the
 Linux kernel. It does so by kicking off the necessary system changes using
 a system specific script akin to a DHCP client.
 .
 RAcd fixes some rough edges in the kernel ipv6/addrconf facility and goes
 back to the good'ol unix ways of being simple, portable and composible.

I haven't 100% decided on the script interface yet. I'm thinking either
(binary) files in /run/racd/$IFACE (in raw ICMPv6 option format) with a
commandline tool to query them or just steal the dhclient design involving
envvars.

I like the idea of having the state of RAs passively queryable in the
system somewhere so we could (in theory) always check what the state of the
system should be given a RA state, but maybe it's not actually so important
given rdisc6 exists for admins.

Personally I always found the dhclient script style to be very hard to work
with so maybe I should just follow my experience here.

I plan on maintaining racd myself, but co-maintainers are, as always,
welcome. Perhaps once some other people get interested in IPv6 again we
could start a team :-).

#1101842#14
Date:
2025-04-01 20:33:50 UTC
From:
To:
Daniel Gröber <dxld@darkboxed.org> wrote:
    > I haven't 100% decided on the script interface yet. I'm thinking either
    > (binary) files in /run/racd/$IFACE (in raw ICMPv6 option format) with a
    > commandline tool to query them or just steal the dhclient design involving
    > envvars.

/run tends to be ramdisk, and cleared on every boot.
I don't understand why you'd have any kind of executable there.
It belongs in /lib, I think.

#1101842#19
Date:
2025-04-01 20:33:50 UTC
From:
To:
Daniel Gröber <dxld@darkboxed.org> wrote:
    > I haven't 100% decided on the script interface yet. I'm thinking either
    > (binary) files in /run/racd/$IFACE (in raw ICMPv6 option format) with a
    > commandline tool to query them or just steal the dhclient design involving
    > envvars.

/run tends to be ramdisk, and cleared on every boot.
I don't understand why you'd have any kind of executable there.
It belongs in /lib, I think.

#1101842#24
Date:
2025-04-02 00:10:43 UTC
From:
To:
The files in /run would hold the ICMPv6 options in that design. The query tool would go to /usr/bin. I think the word "binary" might have thrown you off ;-).
#1101842#29
Date:
2025-04-02 00:10:43 UTC
From:
To:
The files in /run would hold the ICMPv6 options in that design. The query tool would go to /usr/bin. I think the word "binary" might have thrown you off ;-).