[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 02475) Kernel patches changing behavior of socket bind()



I notice that certain of the usagi patches to 2.4.18+ kernels modify the behavior of get_port in the various protocols, causing the isc dhcp server and relay to fail. I've examined the code and can readily fix either the server or the kernel to work. However, I would like to understand the motivation for some of the kernel changes. I need to decide what "flavor" of SO_REUSEADDR to support, and consequently, what behavior the damons should expect.

The stock kernel basically allows SO_REUSEADDR to allow unlimited bindings to the same socket tuple. This behavior is basically carried forward into the 2.5 snd 2.6.test kernels. The usagi IPV6 patches change the behavior to be more selective and configurable - SO_REUSEADDR is mapped into the SO_REUSEPORT equivalent for multicast addresses, device and address bindings must be specified for both sockets to avoid a reuse error, MODERATE_REUSE is allowed to be configured to protect a DOS attack, and perhaps a couple of other nits.

We need to release a distribution supporting IPV6, and we generally use the usagi patches. However, I need your input to decide what sort of reuse we need to support.

Comments, please.

Thanks,
Mark Huth