• Wang Shanker's avatar
    net: l2tp: fix reversed udp6 checksum flags · 018f8258
    Wang Shanker authored
    This patch fixes a bug which causes the behavior of whether to ignore
    udp6 checksum of udp6 encapsulated l2tp tunnel contrary to what
    userspace program requests.
    
    When the flag `L2TP_ATTR_UDP_ZERO_CSUM6_RX` is set by userspace, it is
    expected that udp6 checksums of received packets of the l2tp tunnel
    to create should be ignored. In `l2tp_netlink.c`:
    `l2tp_nl_cmd_tunnel_create()`, `cfg.udp6_zero_rx_checksums` is set
    according to the flag, and then passed to `l2tp_core.c`:
    `l2tp_tunnel_create()` and then `l2tp_tunnel_sock_create()`. In
    `l2tp_tunnel_sock_create()`, `udp_conf.use_udp6_rx_checksums` is set
    the same to `cfg.udp6_zero_rx_checksums`. However, if we want the
    checksum to be ignored, `udp_conf.use_udp6_rx_checksums` should be set
    to `false`, i.e. be set to the contrary. Similarly, the same should be
    done to `udp_conf.use_udp6_tx_checksums`.
    Signed-off-by: default avatarMiao Wang <shankerwangmiao@gmail.com>
    Acked-by: default avatarJames Chapman <jchapman@katalix.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    018f8258
l2tp_core.c 51.2 KB