tcp_sack_block
struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */
struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/
struct tcp_sack_block recv_sack_cache[4];
struct tcp_sack_block *next_dup,
struct tcp_sack_block *next_dup,
static int tcp_sack_cache_ok(const struct tcp_sock *tp, const struct tcp_sack_block *cache)
struct tcp_sack_block sp[TCP_NUM_SACKS];
struct tcp_sack_block *cache;
struct tcp_sack_block *next_dup = NULL;
static inline bool tcp_sack_extend(struct tcp_sack_block *sp, u32 seq,
struct tcp_sack_block *sp = &tp->selective_acks[0];
struct tcp_sack_block *swalk = sp + 1;
struct tcp_sack_block *sp = &tp->selective_acks[0];
struct tcp_sack_block *sp = &tp->selective_acks[0];
struct tcp_sack_block *sp = &tp->selective_acks[0];
struct tcp_sack_block *sp = tp->rx_opt.dsack ?