]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'udp-fix-early-demux-for-mcast-packets'
authorDavid S. Miller <davem@davemloft.net>
Sun, 1 Oct 2017 02:55:47 +0000 (03:55 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 1 Oct 2017 02:55:47 +0000 (03:55 +0100)
commita5d6c59109e260ca3b6cd6448ee532c110973a8c
treee5cfa29af9e217039d26148e80b6b4546f39494f
parent23df80cb30c622c10766f90f31d075ffb0dc4ff4
parent41ed40bbeec2c04f6ce29843d9a45e0b9e041731
Merge branch 'udp-fix-early-demux-for-mcast-packets'

Paolo Abeni says:

====================
udp: fix early demux for mcast packets

Currently the early demux callbacks do not perform source address validation.
This is not an issue for TCP or UDP unicast, where the early demux
is only allowed for connected sockets and the source address is validated
for the first packet and never change.

The UDP protocol currently allows early demux also for unconnected multicast
sockets, and we are not currently doing any validation for them, after that
the first packet lands on the socket: beyond ignoring the rp_filter - if
enabled - any kind of martian sources are also allowed.

This series addresses the issue allowing the early demux callback to return an
error code, and performing the proper checks for unconnected UDP multicast
sockets before leveraging the rx dst cache.

Alternatively we could disable the early demux for unconnected mcast sockets,
but that would cause relevant performance regression - around 50% - while with
this series, with full rp_filter in place, we keep the regression to a more
moderate level.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>