• Tom Hughes's avatar
    Clear IFF_XMIT_DST_RELEASE for teql interfaces · fa68a782
    Tom Hughes authored
    https://bugzilla.kernel.org/show_bug.cgi?id=16183
    
    The sch_teql module, which can be used to load balance over a set of
    underlying interfaces, stopped working after 2.6.30 and has been
    broken in all kernels since then for any underlying interface which
    requires the addition of link level headers.
    
    The problem is that the transmit routine relies on being able to
    access the destination address in the skb in order to do address
    resolution once it has decided which underlying interface it is going
    to transmit through.
    
    In 2.6.31 the IFF_XMIT_DST_RELEASE flag was introduced, and set by
    default for all interfaces, which causes the destination address to be
    released before the transmit routine for the interface is called.
    
    The solution is to clear that flag for teql interfaces.
    Signed-off-by: default avatarTom Hughes <tom@compton.nu>
    Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fa68a782
sch_teql.c 11.9 KB