• Jouni Malinen's avatar
    mac80211: Add a timeout for frames in the RX reorder buffer · 4d050f1d
    Jouni Malinen authored
    This patch allows skbs to be released from the RX reorder buffer in
    case they have been there for an unexpectedly long time without us
    having received the missing frames before them. Previously, these
    frames were only released when the reorder window moved and that could
    take very long time unless new frames were received constantly (e.g.,
    TCP connections could be killed more or less indefinitely).
    
    This situation should not happen very frequently, but it looks like
    there are some scenarious that trigger it for some reason. As such,
    this should be considered mostly a workaround to speed up recovery
    from unexpected siutation that could result in connections hanging for
    long periods of time.
    
    The changes here will only check for timeout situation when adding new
    RX frames to the reorder buffer. It does not handle all possible
    cases, but seems to help for most cases that could result from common
    network usage (e.g., TCP retrying at least couple of times). For more
    completely coverage, a timer could be used to periodically check
    whether there are any frames remaining in the reorder buffer if no new
    frames are received.
    Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    4d050f1d
rx.c 71.2 KB