On Sun, Nov 20, 2022 at 05:28:06PM -0500, Stefan R. Filipek wrote: > My router advertises its MTU over ICMPv6 router advertisements. It's > somewhat large (9216), and exceeds the hardware capabilities of my > OpenBSD system's rge interface (9194). This results in a bunch of > noisy log messages of: > > > slaacd[...]: failed to set MTU: Invalid argument > > And the obvious outcome where slaacd doesn't actually adjust the MTU > to something larger. > > I thought I'd be helpful and make a patch where slaacd clamps to the > maximum hardware capability before attempting to set the MTU. However, > I got blocked by pledge: There currently is no pledge that gives > access to SIOCGIFHARDMTU. > > So, some questions arise: > 1. Does it make sense to add SIOCGIFHARDMTU (and maybe SIOCGIFMTU too) > to pledge("route")? > 2. Should slaacd clamp at all or or have some additional settings for > MTU control?
You announce an MTU that is larger than the interface can handle. In other words you may end up with packet loss. The only sane fix for your issue is to lower your RA's mtu from 9216 down to the max of what all your hardware on that segment can handle. If rge(4) has the lowest MRU then it has to be 9194. Else a system may try to send a 9200 byte packet to your rge(4) which will fail and it will take a lot of time and resources to figure out why. I see no reason to change anything right now for this. Maybe the error message could include the number it tries to set. But slaacd should fail as hard as possible in this case because you can't properly connect this this network. -- :wq Claudio