HomeFreeBSD

MFC r318399:

Description

MFC r318399:

Set M_BCAST and M_MCAST flags on mbuf sent via divert socket.

r290383 has changed how mbufs sent by divert socket are handled.
Previously they are always handled by slow path processing in ip_input().
Now ip_tryforward() is invoked from ip_input() before in_broadcast() check.
Since diverted packet lost all mbuf flags, it passes the broadcast check
in ip_tryforward() due to missing M_BCAST flag. In the result the broadcast
packet is forwarded to the wire instead of be consumed by network stack.

Add in_broadcast() check to the div_output() function. And restore the
M_BCAST flag if destination address is broadcast for the given network
interface.

PR:		[[ https://bugs.freebsd.org/209491 | 209491 ]]

Details

Provenance
aeAuthored on
Parents
rS318777: MFC r318400:
Branches
Unknown
Tags
Unknown