• Ilpo Järvinen's avatar
    tcp: Restore ordering of TCP options for the sake of inter-operability · fd6149d3
    Ilpo Järvinen authored
    This is not our bug! Sadly some devices cannot cope with the change
    of TCP option ordering which was a result of the recent rewrite of
    the option code (not that there was some particular reason steming
    from the rewrite for the reordering) though any ordering of TCP
    options is perfectly legal. Thus we restore the original ordering
    to allow interoperability with/through such broken devices and add
    some warning about this trap. Since the reordering just happened
    without any particular reason, this change shouldn't cost us
    anything.
    
    There are already couple of known failure reports (within close
    proximity of the last release), so the problem might be more
    wide-spread than a single device. And other reports which may
    be due to the same problem though the symptoms were less obvious.
    Analysis of one of the case revealed (with very high probability)
    that sack capability cannot be negotiated as the first option
    (SYN never got a response).
    Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Reported-by: default avatarAldo Maggi <sentiniate@tiscali.it>
    Tested-by: default avatarAldo Maggi <sentiniate@tiscali.it>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fd6149d3
tcp_output.c 75.5 KB