• Gerrit Renker's avatar
    dccp ccid-3: Bug-Fix - Zero RTT is possible · 3294f202
    Gerrit Renker authored
    In commit $(825de27d) (from 27th May, commit
    message `dccp ccid-3: Fix "t_ipi explosion" bug'), the CCID-3 window counter
    computation was fixed to cope with RTTs < 4 microseconds.
    
    Such RTTs can be found e.g. when running CCID-3 over loopback. The fix removed
    a check against RTT < 4, but introduced a divide-by-zero bug.
    
    All steady-state RTTs in DCCP are filtered using dccp_sample_rtt(), which
    ensures non-zero samples. However, a zero RTT is possible on initialisation,
    when there is no RTT sample from the Request/Response exchange.
    
    The fix is to use the fallback-RTT from RFC 4340, 3.4.
    
    This is also better than just fixing update_win_count() since it allows other
    parts of the code to always assume that the RTT is non-zero during the time
    that the CCID is used.
    Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    3294f202
ccid3.c 29.2 KB