HomeFreeBSD

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

Description

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: 209491
MFC after: 1 week

Details

Provenance
aeAuthored on
Parents
rS318398: Bump default MAXTSIZ (kern.maxtsiz) from 128MB to 32GB. The old limit
Branches
Unknown
Tags
Unknown