Long ago (4.2BSD), the IP broadcast address was the lowest address on a network, the one with a host part of 0. In RFC1122, the broadcast address was standardized using a host part of all ones. 4.3BSD changed its default, and made the broadcast address settable with ifconfig. However, FreeBSD *still* broadcasts packets sent to the lowest address on a subnet.
I have a change in review to stop broadcasting the lowest address on a subnet by default, but added a sysctl to revert to the current behavior. I really doubt that anyone is still using a 0-based broadcast address. This change allows host 0 on a subnet to be used as an assigned host address, as long as the systems on that network support it (including routers). Linux already has this change. The review is https://reviews.freebsd.org/D31861. See also https:/datatracker.ietf.org/draft-schoen-intarea-lowest-address/ and some of the discussion in https://reviews.freebsd.org/D19316. Comments are welcome on the review. I will wait a couple of days for comments before proceeding. I am also interested in comments on whether this should be MFC'ed to 13-stable after a suitable delay. Mike