mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2026-05-23 00:27:09 +08:00
Cleaned up a bit after merging SACK_OUT support (mostly coding style)
This commit is contained in:
@@ -1215,13 +1215,13 @@
|
||||
* LWIP_TCP_SACK_OUT==1: TCP will support sending selective acknowledgements (SACKs).
|
||||
*/
|
||||
#if !defined LWIP_TCP_SACK_OUT || defined __DOXYGEN__
|
||||
#define LWIP_TCP_SACK_OUT 0
|
||||
#define LWIP_TCP_SACK_OUT 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* LWIP_TCP_MAX_SACK_NUM: The maximum number of SACK values to include in TCP packets.
|
||||
* LWIP_TCP_MAX_SACK_NUM: The maximum number of SACK values to include in TCP segments.
|
||||
* Must be at least 1, but is only used if LWIP_TCP_SACK_OUT is enabled.
|
||||
* NOTE: Even though we never send more than 4 SACK ranges in a single packet
|
||||
* NOTE: Even though we never send more than 3 or 4 SACK ranges in a single segment
|
||||
* (depending on other options), setting this option to values greater than 4 is not pointless.
|
||||
* This is basically the max number of SACK ranges we want to keep track of.
|
||||
* As new data is delivered, some of the SACK ranges may be removed or merged.
|
||||
@@ -1229,7 +1229,7 @@
|
||||
* The amount of memory used to store SACK ranges is LWIP_TCP_MAX_SACK_NUM * 8 bytes for each TCP PCB.
|
||||
*/
|
||||
#if !defined LWIP_TCP_MAX_SACK_NUM || defined __DOXYGEN__
|
||||
#define LWIP_TCP_MAX_SACK_NUM 4
|
||||
#define LWIP_TCP_MAX_SACK_NUM 4
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
@@ -152,6 +152,17 @@ typedef err_t (*tcp_connected_fn)(void *arg, struct tcp_pcb *tpcb, err_t err);
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#if LWIP_TCP_SACK_OUT
|
||||
/** SACK ranges to include in ACK packets.
|
||||
* SACK entry is invalid if left==right. */
|
||||
struct tcp_sack_range {
|
||||
/** Left edge of the SACK: the first acknowledged sequence number. */
|
||||
u32_t left;
|
||||
/** Right edge of the SACK: the last acknowledged sequence number +1 (so first NOT acknowledged). */
|
||||
u32_t right;
|
||||
};
|
||||
#endif /* LWIP_TCP_SACK_OUT */
|
||||
|
||||
typedef u16_t tcpflags_t;
|
||||
|
||||
/**
|
||||
@@ -232,18 +243,11 @@ struct tcp_pcb {
|
||||
tcpwnd_size_t rcv_ann_wnd; /* receiver window to announce */
|
||||
u32_t rcv_ann_right_edge; /* announced right edge of window */
|
||||
|
||||
#ifdef LWIP_TCP_SACK_OUT
|
||||
/* SACK ranges to include in ACK packets.
|
||||
SACK entry is invalid if left=right. */
|
||||
struct
|
||||
{
|
||||
/* Left edge of the SACK: the first acknowledged sequence number. */
|
||||
u32_t left;
|
||||
|
||||
/* Right edge of the SACK: the last acknowledged sequence number +1 (so first NOT acknowledged). */
|
||||
u32_t right;
|
||||
} rcv_sacks[LWIP_TCP_MAX_SACK_NUM];
|
||||
#endif
|
||||
#if LWIP_TCP_SACK_OUT
|
||||
/* SACK ranges to include in ACK packets (entry is invalid if left==right) */
|
||||
struct tcp_sack_range rcv_sacks[LWIP_TCP_MAX_SACK_NUM];
|
||||
#define LWIP_TCP_SACK_VALID(pcb, idx) ((pcb)->rcv_sacks[idx].left == (pcb)->rcv_sacks[idx].right)
|
||||
#endif /* LWIP_TCP_SACK_OUT */
|
||||
|
||||
/* Retransmission timer. */
|
||||
s16_t rtime;
|
||||
|
||||
Reference in New Issue
Block a user