I've hit a dilemma in a fix I have in review[1].  Currently, in_broadcast()
iterates over the ifnet address list without holding any locks.  I can
pretty easily panic the kernel by constantly adding and removing addresses
while passing traffic over the interface.  The fix is to acquire the
appropriate rlock, but the catch is that according to dtrace,
in_broadcast() is called on almost every packet that passes through
ip_output().  I'm concerned about adding additional locking operations to
the transmit path.

Do we actually need to call in_broadcast() so often?  It seems silly to
check whether we are sending to a broadcast address on a per-packet basis.


[1] https://reviews.freebsd.org/D7227
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-transport
To unsubscribe, send any mail to "[email protected]"

Reply via email to