tcp: mark lost first sack hole on timeout

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1abff943f3fe3ff0219126b5b8beded4ad859758
This commit is contained in:
Florin Coras
2022-01-05 10:16:07 -08:00
committed by Dave Barach
parent 8e1ada3a61
commit ed5be47009
3 changed files with 27 additions and 1 deletions

View File

@ -264,6 +264,27 @@ scoreboard_init_rxt (sack_scoreboard_t * sb, u32 snd_una)
sb->rescue_rxt = snd_una - 1;
}
void
scoreboard_rxt_mark_lost (sack_scoreboard_t *sb, u32 snd_una, u32 snd_nxt)
{
sack_scoreboard_hole_t *hole;
hole = scoreboard_first_hole (sb);
if (!hole)
{
hole = scoreboard_insert_hole (sb, TCP_INVALID_SACK_HOLE_INDEX, snd_una,
snd_nxt);
sb->tail = scoreboard_hole_index (sb, hole);
sb->high_sacked = snd_una;
}
if (hole->is_lost)
return;
hole->is_lost = 1;
sb->lost_bytes += scoreboard_hole_bytes (hole);
}
void
scoreboard_init (sack_scoreboard_t * sb)
{