• Hannes Frederic Sowa's avatar
    ipv6: pmtudisc setting not respected with UFO/CORK · 4df98e76
    Hannes Frederic Sowa authored
    Sockets marked with IPV6_PMTUDISC_PROBE (or later IPV6_PMTUDISC_INTERFACE)
    don't respect this setting when the outgoing interface supports UFO.
    
    We had the same problem in IPv4, which was fixed in commit
    daba287b ("ipv4: fix DO and PROBE pmtu
    mode regarding local fragmentation with UFO/CORK").
    
    Also IPV6_DONTFRAG mode did not care about already corked data, thus
    it may generate a fragmented frame even if this socket option was
    specified. It also did not care about the length of the ipv6 header and
    possible options.
    
    In the error path allow the user to receive the pmtu notifications via
    both, rxpmtu method or error queue. The user may opted in for both,
    so deliver the notification to both error handlers (the handlers check
    if the error needs to be enqueued).
    
    Also report back consistent pmtu values when sending on an already
    cork-appended socket.
    Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4df98e76
ip6_output.c 39.9 KB