r330675 introduced an extra window check in the LRO code to ensure it
captured and reported the highest window advertisement with the same SEQ/ACK. However, the window comparison uses modulo 2**16 math, rather than directly comparing the absolute values. Because windows use absolute values and not modulo 2**16 math (i.e. they don't wrap), we need to compare the absolute values. Reviewed by: gallatin MFC after: 3 days Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D14937
This commit is contained in:
parent
1d9f8a89e8
commit
be2627c2e3
@ -47,10 +47,10 @@
|
||||
#define SEQ_MIN(a, b) ((SEQ_LT(a, b)) ? (a) : (b))
|
||||
#define SEQ_MAX(a, b) ((SEQ_GT(a, b)) ? (a) : (b))
|
||||
|
||||
#define WIN_LT(a,b) ((short)(ntohs(a)-ntohs(b)) < 0)
|
||||
#define WIN_LEQ(a,b) ((short)(ntohs(a)-ntohs(b)) <= 0)
|
||||
#define WIN_GT(a,b) ((short)(ntohs(a)-ntohs(b)) > 0)
|
||||
#define WIN_GEQ(a,b) ((short)(ntohs(a)-ntohs(b)) >= 0)
|
||||
#define WIN_LT(a,b) (ntohs(a) < ntohs(b))
|
||||
#define WIN_LEQ(a,b) (ntohs(a) <= ntohs(b))
|
||||
#define WIN_GT(a,b) (ntohs(a) > ntohs(b))
|
||||
#define WIN_GEQ(a,b) (ntohs(a) >= ntohs(b))
|
||||
|
||||
#define WIN_MIN(a, b) ((WIN_LT(a, b)) ? (a) : (b))
|
||||
#define WIN_MAX(a, b) ((WIN_GT(a, b)) ? (a) : (b))
|
||||
|
Loading…
Reference in New Issue
Block a user