Download raw body.
dhcp6leased(8): Install reject route for prefix delegation.
On Wed, Sep 17, 2025 at 05:19:30PM +0200, Florian Obser wrote:
> This prevents routing loops in case only parts of the delegated prefix
> are configured on interfaces.
Reads fine.
ok tb
See below for a tiny whitespace nit in code adjacent to your diff.
>
> diff --git dhcp6leased.c dhcp6leased.c
> index ae29f5a9436..90333592b95 100644
> --- dhcp6leased.c
> +++ dhcp6leased.c
> @@ -76,6 +76,7 @@ void main_dispatch_engine(int, short, void *);
> void open_udpsock(uint32_t);
> void configure_address(struct imsg_configure_address *);
> void deconfigure_address(struct imsg_configure_address *);
> +void configure_reject_route(struct imsg_configure_reject_route *, uint8_t);
> void read_lease_file(struct imsg_ifinfo *);
> uint8_t *get_uuid(void);
> void write_lease_file(struct imsg_lease_info *);
> @@ -553,6 +554,26 @@ main_dispatch_engine(int fd, short event, void *bula)
> deconfigure_address(&imsg_configure_address);
> break;
> }
> + case IMSG_CONFIGURE_REJECT_ROUTE: {
> + struct imsg_configure_reject_route imsg_crr;
> + if (IMSG_DATA_SIZE(imsg) != sizeof(imsg_crr))
> + fatalx("%s: IMSG_CONFIGURE_REJECT_ROUTE wrong "
> + "length: %lu", __func__,
> + IMSG_DATA_SIZE(imsg));
> + memcpy(&imsg_crr, imsg.data, sizeof(imsg_crr));
> + configure_reject_route(&imsg_crr, RTM_ADD);
> + break;
> + }
> + case IMSG_DECONFIGURE_REJECT_ROUTE: {
> + struct imsg_configure_reject_route imsg_crr;
> + if (IMSG_DATA_SIZE(imsg) != sizeof(imsg_crr))
> + fatalx("%s: IMSG_CONFIGURE_REJECT_ROUTE wrong "
> + "length: %lu", __func__,
> + IMSG_DATA_SIZE(imsg));
> + memcpy(&imsg_crr, imsg.data, sizeof(imsg_crr));
> + configure_reject_route(&imsg_crr, RTM_DELETE);
> + break;
> + }
> case IMSG_WRITE_LEASE: {
two spaces before {
dhcp6leased(8): Install reject route for prefix delegation.