• Xin Long's avatar
    sctp: make the raise timer more simple and accurate · 70331909
    Xin Long authored
    Currently, the probe timer is reused as the raise timer when PLPMTUD is in
    the Search Complete state. raise_count was introduced to count how many
    times the probe timer has timed out. When raise_count reaches to 30, the
    raise timer handler will be triggered.
    
    During the whole processing above, the timer keeps timing out every probe_
    interval. It is a waste for the Search Complete state, as the raise timer
    only needs to time out after 30 * probe_interval.
    
    Since the raise timer and probe timer are never used at the same time, it
    is no need to keep probe timer 'alive' in the Search Complete state. This
    patch to introduce sctp_transport_reset_raise_timer() to start the timer
    as the raise timer when entering the Search Complete state. When entering
    the other states, sctp_transport_reset_probe_timer() will still be called
    to reset the timer to the probe timer.
    
    raise_count can be removed from sctp_transport as no need to count probe
    timer timeout for raise timer timeout. last_rtx_chunks can be removed as
    sctp_transport_reset_probe_timer() can be called in the place where asoc
    rtx_data_chunks is changed.
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Link: https://lore.kernel.org/r/edb0e48988ea85997488478b705b11ddc1ba724a.1637781974.git.lucien.xin@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    70331909
structs.h 67 KB