mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
sctp: Rework the tsn map to use generic bitmap.
The tsn map currently use is 4K large and is stuck inside the sctp_association structure making memory references REALLY expensive. What we really need is at most 4K worth of bits so the biggest map we would have is 512 bytes. Also, the map is only really usefull when we have gaps to store and report. As such, starting with minimal map of say 32 TSNs (bits) should be enough for normal low-loss operations. We can grow the map by some multiple of 32 along with some extra room any time we receive the TSN which would put us outside of the map boundry. As we close gaps, we can shift the map to rebase it on the latest TSN we've seen. This saves 4088 bytes per association just in the map alone along savings from the now unnecessary structure members. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3c689b7320
commit
8e1ee18c33
8 changed files with 175 additions and 221 deletions
|
@ -261,7 +261,9 @@ enum { SCTP_ARBITRARY_COOKIE_ECHO_LEN = 200 };
|
|||
* must be less than 65535 (2^16 - 1), or we will have overflow
|
||||
* problems creating SACK's.
|
||||
*/
|
||||
#define SCTP_TSN_MAP_SIZE 2048
|
||||
#define SCTP_TSN_MAP_INITIAL BITS_PER_LONG
|
||||
#define SCTP_TSN_MAP_INCREMENT SCTP_TSN_MAP_INITIAL
|
||||
#define SCTP_TSN_MAP_SIZE 4096
|
||||
#define SCTP_TSN_MAX_GAP 65535
|
||||
|
||||
/* We will not record more than this many duplicate TSNs between two
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue