Skip to content
  • Jesper Dangaard Brouer's avatar
    ipvs: IPv6 MTU checking cleanup and bugfix · 590e3f79
    Jesper Dangaard Brouer authored
    
    
    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: default avatarJesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    590e3f79