linux-stable/net/netfilter/ipvs
Jesper Dangaard Brouer 590e3f79a2 ipvs: IPv6 MTU checking cleanup and bugfix
Cleaning up the IPv6 MTU checking in the IPVS xmit code, by using
a common helper function __mtu_check_toobig_v6().

The MTU check for tunnel mode can also use this helper as
ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr) is qual to
skb->len.  And the 'mtu' variable have been adjusted before
calling helper.

Notice, this also fixes a bug, as the the MTU check in ip_vs_dr_xmit_v6()
were missing a check for skb_is_gso().

This bug e.g. caused issues for KVM IPVS setups, where different
Segmentation Offloading techniques are utilized, between guests,
via the virtio driver.  This resulted in very bad performance,
due to the ICMPv6 "too big" messages didn't affect the sender.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2012-08-30 02:55:39 +02:00
..
ip_vs_app.c ipvs: generalize app registration in netns 2012-08-10 10:34:51 +09:00
ip_vs_conn.c ipvs: optimize the use of flags in ip_vs_bind_dest 2012-05-08 19:40:49 +02:00
ip_vs_core.c ipvs: implement passive PMTUD for IPIP packets 2012-08-10 10:35:03 +09:00
ip_vs_ctl.c Merge git://1984.lsi.us.es/nf-next 2012-08-22 18:48:52 -07:00
ip_vs_dh.c ipvs: DH scheduler does not need GFP_ATOMIC allocation 2012-05-08 19:37:20 +02:00
ip_vs_est.c IPVS: remove unused init and cleanup functions. 2011-06-14 09:07:32 +09:00
ip_vs_ftp.c ipvs: generalize app registration in netns 2012-08-10 10:34:51 +09:00
ip_vs_lblc.c ipvs: LBLC scheduler does not need GFP_ATOMIC allocation on init 2012-05-08 19:37:17 +02:00
ip_vs_lblcr.c ipvs: LBLCR scheduler does not need GFP_ATOMIC allocation on init 2012-05-08 19:37:26 +02:00
ip_vs_lc.c ipvs: unify the formula to estimate the overhead of processing connections 2011-02-25 11:35:41 +09:00
ip_vs_nfct.c ipvs: Remove unused parameter from ip_vs_confirm_conntrack() 2011-11-01 09:19:29 +01:00
ip_vs_nq.c ipvs: make "no destination available" message more informative 2011-02-16 14:53:33 +09:00
ip_vs_pe.c IPVS: Backup, Adding Version 1 receive capability 2010-11-25 10:42:59 +09:00
ip_vs_pe_sip.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
ip_vs_proto.c ipvs: ip_vs_proto: local functions should not be exposed globally 2012-05-08 19:40:54 +02:00
ip_vs_proto_ah_esp.c IPVS: netns, connection hash got net as param. 2011-01-13 10:30:28 +09:00
ip_vs_proto_sctp.c ipvs: take care of return value from protocol init_netns 2012-04-30 10:40:35 +02:00
ip_vs_proto_tcp.c ipvs: take care of return value from protocol init_netns 2012-04-30 10:40:35 +02:00
ip_vs_proto_udp.c ipvs: take care of return value from protocol init_netns 2012-04-30 10:40:35 +02:00
ip_vs_rr.c ipvs: make "no destination available" message more informative 2011-02-16 14:53:33 +09:00
ip_vs_sched.c ipvs: make "no destination available" message more informative 2011-02-16 14:53:33 +09:00
ip_vs_sed.c ipvs: make "no destination available" message more informative 2011-02-16 14:53:33 +09:00
ip_vs_sh.c ipvs: SH scheduler does not need GFP_ATOMIC allocation 2012-05-08 19:37:28 +02:00
ip_vs_sync.c ipvs: add support for sync threads 2012-05-08 19:40:33 +02:00
ip_vs_wlc.c ipvs: unify the formula to estimate the overhead of processing connections 2011-02-25 11:35:41 +09:00
ip_vs_wrr.c ipvs: WRR scheduler does not need GFP_ATOMIC allocation 2012-05-08 19:37:22 +02:00
ip_vs_xmit.c ipvs: IPv6 MTU checking cleanup and bugfix 2012-08-30 02:55:39 +02:00
Kconfig ipvs: ip_vs_ftp depends on nf_conntrack_ftp helper 2012-08-10 10:34:51 +09:00
Makefile IPVS: sip persistence engine 2010-10-04 22:45:24 +09:00