Go to the source code of this file.
|
static void | scoreboard_remove_hole (sack_scoreboard_t *sb, sack_scoreboard_hole_t *hole) |
|
static sack_scoreboard_hole_t * | scoreboard_insert_hole (sack_scoreboard_t *sb, u32 prev_index, u32 start, u32 end) |
|
static void | scoreboard_update_sacked (sack_scoreboard_t *sb, u32 start, u32 end, u8 has_rxt, u16 snd_mss) |
|
static void | scoreboard_update_bytes (sack_scoreboard_t *sb, u32 ack, u32 snd_mss) |
|
sack_scoreboard_hole_t * | scoreboard_next_rxt_hole (sack_scoreboard_t *sb, sack_scoreboard_hole_t *start, u8 have_unsent, u8 *can_rescue, u8 *snd_limited) |
| Figure out the next hole to retransmit. More...
|
|
void | scoreboard_init_rxt (sack_scoreboard_t *sb, u32 snd_una) |
|
void | scoreboard_init (sack_scoreboard_t *sb) |
|
void | scoreboard_clear (sack_scoreboard_t *sb) |
|
void | scoreboard_clear_reneging (sack_scoreboard_t *sb, u32 start, u32 end) |
|
u8 | tcp_scoreboard_is_sane_post_recovery (tcp_connection_t *tc) |
| Test that scoreboard is sane after recovery. More...
|
|
void | tcp_rcv_sacks (tcp_connection_t *tc, u32 ack) |
|
static u8 | tcp_sack_vector_is_sane (sack_block_t *sacks) |
|
void | tcp_update_sack_list (tcp_connection_t *tc, u32 start, u32 end) |
| Build SACK list as per RFC2018. More...
|
|
u32 | tcp_sack_list_bytes (tcp_connection_t *tc) |
|
◆ scoreboard_clear()
◆ scoreboard_clear_reneging()
◆ scoreboard_init()
◆ scoreboard_init_rxt()
◆ scoreboard_insert_hole()
◆ scoreboard_next_rxt_hole()
Figure out the next hole to retransmit.
Follows logic proposed in RFC6675 Sec. 4, NextSeg()
Definition at line 194 of file tcp_sack.c.
◆ scoreboard_remove_hole()
◆ scoreboard_update_bytes()
◆ scoreboard_update_sacked()
◆ tcp_rcv_sacks()
◆ tcp_sack_list_bytes()
◆ tcp_sack_vector_is_sane()
◆ tcp_scoreboard_is_sane_post_recovery()
Test that scoreboard is sane after recovery.
Returns 1 if scoreboard is empty or if first hole beyond snd_una.
Definition at line 317 of file tcp_sack.c.
◆ tcp_update_sack_list()
Build SACK list as per RFC2018.
Makes sure the first block contains the segment that generated the current ACK and the following ones are the ones most recently reported in SACK blocks.
- Parameters
-
tc | TCP connection for which the SACK list is updated |
start | Start sequence number of the newest SACK block |
end | End sequence of the newest SACK block |
Definition at line 568 of file tcp_sack.c.