Julian Anastasov
636174219b
ipv4: do not cache looped multicasts
...
Starting from 3.6 we cache output routes for
multicasts only when using route to 224/4. For local receivers
we can set RTCF_LOCAL flag depending on the membership but
in such case we use maddr and saddr which are not caching
keys as before. Additionally, we can not use same place to
cache routes that differ in RTCF_LOCAL flag value.
Fix it by caching only RTCF_MULTICAST entries
without RTCF_LOCAL (send-only, no loopback). As a side effect,
we avoid unneeded lookup for fnhe when not caching because
multicasts are not redirected and they do not learn PMTU.
Thanks to Maxime Bizon for showing the caching
problems in __mkroute_output for 3.6 kernels: different
RTCF_LOCAL flag in cache can lead to wrong ip_mc_output or
ip_output call and the visible problem is that traffic can
not reach local receivers via loopback.
Reported-by: Maxime Bizon <mbizon@freebox.fr>
Tested-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-11-22 16:06:49 -05:00
..
netfilter
netfilter: nf_nat: don't check for port change on ICMP tuples
2012-10-28 22:43:34 +01:00
af_inet.c
ipv4: Don't add TCP-code in inet_sock_destruct
2012-09-20 17:12:27 -04:00
ah4.c
arp.c
ipv4/route: arg delay is useless in rt_cache_flush()
2012-09-18 15:44:34 -04:00
cipso_ipv4.c
datagram.c
devinet.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2012-09-28 14:40:49 -04:00
esp4.c
fib_frontend.c
ipv4: fix sending of redirects
2012-10-08 17:42:35 -04:00
fib_lookup.h
fib_rules.c
sections: fix section conflicts in net
2012-10-06 03:04:45 +09:00
fib_semantics.c
ipv4: make sure nh_pcpu_rth_output is always allocated
2012-10-08 17:42:35 -04:00
fib_trie.c
ipv4/route: arg delay is useless in rt_cache_flush()
2012-09-18 15:44:34 -04:00
gre.c
icmp.c
igmp.c
igmp: export symbol ip_mc_leave_group
2012-10-01 18:39:44 -04:00
inet_connection_sock.c
ipv4: introduce rt_uses_gateway
2012-10-08 17:42:36 -04:00
inet_diag.c
net: inet_diag -- Return error code if protocol handler is missed
2012-11-04 01:56:49 -04:00
inet_fragment.c
ipv6: unify fragment thresh handling code
2012-09-19 17:23:28 -04:00
inet_hashtables.c
inet_lro.c
inet_timewait_sock.c
inetpeer.c
Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2012-10-02 09:54:49 -07:00
ip_forward.c
ipv4: introduce rt_uses_gateway
2012-10-08 17:42:36 -04:00
ip_fragment.c
ipv6: unify fragment thresh handling code
2012-09-19 17:23:28 -04:00
ip_gre.c
gre: fix sparse warning
2012-10-01 17:35:31 -04:00
ip_input.c
net: TCP early demux cleanup
2012-07-30 14:53:21 -07:00
ip_options.c
ip_output.c
ipv4: introduce rt_uses_gateway
2012-10-08 17:42:36 -04:00
ip_sockglue.c
ipv4: avoid undefined behavior in do_ip_setsockopt()
2012-11-11 17:53:13 -05:00
ip_vti.c
ipv4/ip_vti.c: VTI fix post-decryption forwarding
2012-11-14 21:40:21 -05:00
ipcomp.c
ipconfig.c
ipconfig: fix trivial build error
2012-09-25 13:22:30 -04:00
ipip.c
tunnel: drop packet if ECN present with not-ECT
2012-09-27 18:12:37 -04:00
ipmr.c
sections: fix section conflicts in net
2012-10-06 03:04:45 +09:00
Kconfig
Makefile
memcg: rename config variables
2012-07-31 18:42:43 -07:00
netfilter.c
netfilter: properly annotate ipv4_netfilter_{init,fini}()
2012-09-03 13:56:04 +02:00
ping.c
userns: Use kgids for sysctl_ping_group_range
2012-08-14 21:49:10 -07:00
proc.c
tcp: TCP Fast Open Server - header & support functions
2012-08-31 20:02:18 -04:00
protocol.c
raw.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2012-10-02 11:11:09 -07:00
route.c
ipv4: do not cache looped multicasts
2012-11-22 16:06:49 -05:00
syncookies.c
tcp: TCP Fast Open Server - support TFO listeners
2012-08-31 20:02:19 -04:00
sysctl_net_ipv4.c
tcp: sysctl interface leaks 16 bytes of kernel memory
2012-10-11 15:12:33 -04:00
tcp.c
tcp: fix retransmission in repair mode
2012-11-15 17:44:58 -05:00
tcp_bic.c
tcp_cong.c
tcp: Apply device TSO segment limit earlier
2012-08-02 00:19:17 -07:00
tcp_cubic.c
tcp_diag.c
tcp_fastopen.c
tcp: TCP Fast Open Server - header & support functions
2012-08-31 20:02:18 -04:00
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
net: fix divide by zero in tcp algorithm illinois
2012-11-01 11:55:59 -04:00
tcp_input.c
tcp: tcp_replace_ts_recent() should not be called from tcp_validate_incoming()
2012-11-13 14:35:17 -05:00
tcp_ipv4.c
tcp: add SYN/data info to TCP_INFO
2012-10-22 15:16:06 -04:00
tcp_lp.c
tcp_memcontrol.c
tcp_metrics.c
tcp: handle tcp_net_metrics_init() order-5 memory allocation failures
2012-11-16 13:36:27 -05:00
tcp_minisocks.c
tcp: add SYN/data info to TCP_INFO
2012-10-22 15:16:06 -04:00
tcp_output.c
tcp: fix retransmission in repair mode
2012-11-15 17:44:58 -05:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c
tcp: Reject invalid ack_seq to Fast Open sockets
2012-10-23 02:42:56 -04:00
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2012-10-02 11:11:09 -07:00
udp_diag.c
netlink: Rename pid to portid to avoid confusion
2012-09-10 15:30:41 -04:00
udp_impl.h
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c
xfrm: Fix the gc threshold value for ipv4
2012-11-13 09:15:07 +01:00
xfrm4_state.c
xfrm4_tunnel.c