summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_var.h
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2005-06-27 22:27:42 +0000
committerps <ps@FreeBSD.org>2005-06-27 22:27:42 +0000
commit5dc6983c1de217ad36b70fde8b35a410d96b2dc2 (patch)
tree59028efed8605154623d895586bd0c855841c39b /sys/netinet/tcp_var.h
parent4df35786e2cf2d7ff569269ced581b360f767498 (diff)
downloadFreeBSD-src-5dc6983c1de217ad36b70fde8b35a410d96b2dc2.zip
FreeBSD-src-5dc6983c1de217ad36b70fde8b35a410d96b2dc2.tar.gz
- Postpone SACK option processing until after PAWS checks. SACK option
processing is now done in the ACK processing case. - Merge tcp_sack_option() and tcp_del_sackholes() into a new function called tcp_sack_doack(). - Test (SEG.ACK < SND.MAX) before processing the ACK. Submitted by: Noritoshi Demizu Reveiewed by: Mohan Srinivasan, Raja Mukerji Approved by: re
Diffstat (limited to 'sys/netinet/tcp_var.h')
-rw-r--r--sys/netinet/tcp_var.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index d2f34ea..b1515dd 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -238,7 +238,8 @@ struct tcpopt {
u_int32_t to_tsecr;
u_int16_t to_mss;
u_int8_t to_requested_s_scale;
- u_int8_t to_pad;
+ u_int8_t to_nsacks; /* number of SACK blocks */
+ u_char *to_sacks; /* pointer to the first SACK blocks */
};
#ifdef _NETINET_IN_PCB_H_
@@ -578,9 +579,8 @@ extern u_long tcp_sendspace;
extern u_long tcp_recvspace;
tcp_seq tcp_new_isn(struct tcpcb *);
-int tcp_sack_option(struct tcpcb *,struct tcphdr *,u_char *,int);
+void tcp_sack_doack(struct tcpcb *, struct tcpopt *, tcp_seq);
void tcp_update_sack_list(struct tcpcb *tp, tcp_seq rcv_laststart, tcp_seq rcv_lastend);
-void tcp_del_sackholes(struct tcpcb *, struct tcphdr *);
void tcp_clean_sackreport(struct tcpcb *tp);
void tcp_sack_adjust(struct tcpcb *tp);
struct sackhole *tcp_sack_output(struct tcpcb *tp, int *sack_bytes_rexmt);
OpenPOWER on IntegriCloud