From: Xin Long <lucien....@gmail.com>
Date: Sun,  2 Jun 2019 19:10:24 +0800

> With the topo:
> 
>     h1 ---| rp1            |
>           |     route  rp3 |--- h3 (192.168.200.1)
>     h2 ---| rp2            |
> 
> If rp1 bc_forwarding is set while rp2 bc_forwarding is not, after
> doing "ping 192.168.200.255" on h1, then ping 192.168.200.255 on
> h2, and the packets can still be forwared.
> 
> This issue was caused by the input route cache. It should only do
> the cache for either bc forwarding or local delivery. Otherwise,
> local delivery can use the route cache for bc forwarding of other
> interfaces.
> 
> This patch is to fix it by not doing cache for local delivery if
> all.bc_forwarding is enabled.
> 
> Note that we don't fix it by checking route cache local flag after
> rt_cache_valid() in "local_input:" and "ip_mkroute_input", as the
> common route code shouldn't be touched for bc_forwarding.
> 
> Fixes: 5cbf777cfdf6 ("route: add support for directed broadcast forwarding")
> Reported-by: Jianlin Shi <ji...@redhat.com>
> Signed-off-by: Xin Long <lucien....@gmail.com>

Applied and queued up for -stable.

Reply via email to