Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: dhcp6leased(8): Install reject route for prefix delegation.
To:
tech <tech@openbsd.org>
Date:
Thu, 18 Sep 2025 13:41:11 +0200

Download raw body.

Thread
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 {