Re: 14.1-R rc.conf/ifconfig netmask issue was really hard to figure out
Date: Wed, 12 Jun 2024 16:14:53 UTC
On Wed, 12 Jun 2024 15:35:58 +0000 "Poul-Henning Kamp" <phk@phk.freebsd.dk> wrote: > -------- > Michael Gmelin writes: > > > @phk From which version did you upgrade? > > To be totally honest: I'm not entirely sure. Probably 13.x > @Bjoern I checked again, I'm pretty sure the problem was introduced in https://cgit.freebsd.org/src/commit/?id=4bf44dd73bc0a (this was part of adding netlink into the code). The preparation work by the late Mike Karels was consistent, as one can see in 13.x. So basically the behavior on 13.x is: - ifconfig bla0 10.1.1.1 => 10.1.1.1/8 - ifconfig bla0 192.168.1.1 => 192.168.1.1/24 This is in line with one would expect. On 14.x it's the opposite. The code in 4bf44dd73bc0a68b73f7ee50d52adf5d7cda3eb8 introduced a function to emulate the previous behavior. This function uses IN_CLASSX_NSHIFT as bitmask - therefore 10.1.1.1 uses /24 and 192.168.1.1 uses /8. To fix the code, one has to actually use the bitmask, which is (32 - IN_CLASSX_NSHIFT). So this is simply a bug. I opened a code review request to fix this: https://reviews.freebsd.org/D45570 Best Michael -- Michael Gmelin