summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_var.h
diff options
context:
space:
mode:
authorshin <shin@FreeBSD.org>2000-01-09 19:17:30 +0000
committershin <shin@FreeBSD.org>2000-01-09 19:17:30 +0000
commit3bdc213839894a0b030b1dbcd75627552b53f9e0 (patch)
tree791258919d385ab19f9452b82289317ac87b7b82 /sys/netinet/tcp_var.h
parent7db2a1ade5cd3959a2fb9d19a12f9791a6a31b66 (diff)
downloadFreeBSD-src-3bdc213839894a0b030b1dbcd75627552b53f9e0.zip
FreeBSD-src-3bdc213839894a0b030b1dbcd75627552b53f9e0.tar.gz
tcp updates to support IPv6.
also a small patch to sys/nfs/nfs_socket.c, as max_hdr size change. Reviewed by: freebsd-arch, cvs-committers Obtained from: KAME project
Diffstat (limited to 'sys/netinet/tcp_var.h')
-rw-r--r--sys/netinet/tcp_var.h32
1 files changed, 26 insertions, 6 deletions
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index 2b1b2e5..5d64cf2 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -40,14 +40,33 @@
* Kernel variables for tcp.
*/
+/* TCP segment queue entry */
+struct tseg_qent {
+ LIST_ENTRY(tseg_qent) tqe_q;
+ int tqe_len; /* TCP segment data length */
+ struct tcphdr *tqe_th; /* a pointer to tcp header */
+ struct mbuf *tqe_m; /* mbuf contains packet */
+};
+LIST_HEAD(tsegqe_head, tseg_qent);
+#ifdef MALLOC_DECLARE
+MALLOC_DECLARE(M_TSEGQ);
+#endif
+
+struct tcptemp {
+ u_char tt_ipgen[40]; /* the size must be of max ip header, now IPv6 */
+ struct tcphdr tt_t;
+};
+
+#define tcp6cb tcpcb /* for KAME src sync over BSD*'s */
+
/*
* Tcp control block, one per tcp; fields:
* Organized for 16 byte cacheline efficiency.
*/
struct tcpcb {
- struct mbuf *t_segq;
+ struct tsegqe_head t_segq;
int t_dupacks; /* consecutive dup acks recd */
- struct tcpiphdr *t_template; /* skeletal packet for transmit */
+ struct tcptemp *t_template; /* skeletal packet for transmit */
struct callout *tt_rexmt; /* retransmit timer */
struct callout *tt_persist; /* retransmit persistence */
@@ -369,17 +388,18 @@ struct tcpcb *
tcp_newtcpcb __P((struct inpcb *));
int tcp_output __P((struct tcpcb *));
void tcp_quench __P((struct inpcb *, int));
-void tcp_respond __P((struct tcpcb *,
- struct tcpiphdr *, struct mbuf *, tcp_seq, tcp_seq, int));
+void tcp_respond __P((struct tcpcb *, void *,
+ struct tcphdr *, struct mbuf *, tcp_seq, tcp_seq, int));
struct rtentry *
tcp_rtlookup __P((struct inpcb *));
void tcp_setpersist __P((struct tcpcb *));
void tcp_slowtimo __P((void));
-struct tcpiphdr *
+struct tcptemp *
tcp_template __P((struct tcpcb *));
struct tcpcb *
tcp_timers __P((struct tcpcb *, int));
-void tcp_trace __P((int, int, struct tcpcb *, struct tcpiphdr *, int));
+void tcp_trace __P((int, int, struct tcpcb *, void *, struct tcphdr *,
+ int));
extern struct pr_usrreqs tcp_usrreqs;
extern u_long tcp_sendspace;
OpenPOWER on IntegriCloud