Re: Possible networking regression in 3.6.0
From: David Miller <davem@davemloft.net>
Date: 2012-10-03 03:10:39
From: Julian Anastasov <ja@ssi.bg> Date: Wed, 3 Oct 2012 02:24:53 +0300 (EEST)
Can it be a problem related to fib_info reuse from different routes. For example, when local IP address is created for subnet we have: broadcast 192.168.0.255 dev DEV proto kernel scope link src 192.168.0.1 192.168.0.0/24 dev DEV proto kernel scope link src 192.168.0.1 local 192.168.0.1 dev DEV proto kernel scope host src 192.168.0.1 The "dev DEV proto kernel scope link src 192.168.0.1" is a reused fib_info structure where we put cached routes. The result can be same fib_info for 192.168.0.255 and 192.168.0.0/24. RTN_BROADCAST is cached only for input routes. Incoming broadcast to 192.168.0.255 can be cached and can cause problems for traffic forwarded to 192.168.0.0/24. So, this patch should solve the problem because it separates the broadcast from unicast traffic.
Now I understand the problem. I think the way to fix this is to add cfg->fc_type as another thing that fib_info objects are key'd by. I think it also would fix your obscure output multicast case too.