Cleaned up a bit after merging SACK_OUT support (mostly coding style)

This commit is contained in:
goldsimon
2017-07-03 21:20:56 +02:00
parent b1a3c37c3c
commit 6796bcf7ad
5 changed files with 45 additions and 34 deletions

View File

@@ -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
/**

View File

@@ -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;