svn commit: r195634 - in head: . sys/netinet sys/sys
Lawrence Stewart
lstewart at FreeBSD.org
Sun Jul 12 09:14:29 UTC 2009
Author: lstewart
Date: Sun Jul 12 09:14:28 2009
New Revision: 195634
URL: http://svn.freebsd.org/changeset/base/195634
Log:
Pad the following TCP related structs to allow MFCs of upcoming features/fixes
back to the 8 branch:
tcp_var.h
- struct sackhint
- struct tcpcb
- struct tcpstat
The patch breaks the ABI. Bump __FreeBSD_version to 800102 accordingly. User
space tools that rely on the size of any of these structs (e.g. sockstat) need
to be recompiled.
Reviewed by: rpaulo, sam, andre, rwatson
Approved by: re & mentor (gnn)
Modified:
head/UPDATING
head/sys/netinet/tcp_var.h
head/sys/sys/param.h
Modified: head/UPDATING
==============================================================================
--- head/UPDATING Sun Jul 12 04:48:47 2009 (r195633)
+++ head/UPDATING Sun Jul 12 09:14:28 2009 (r195634)
@@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20090712:
+ Padding has been added to struct tcpcb, sackhint and tcpstat in
+ <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
+ maintainig the ABI. However, this change breaks the ABI, so bump
+ __FreeBSD_version to 800102. User space tools that rely on the size of
+ any of these structs (e.g. sockstat) need to be recompiled.
+
20090630:
The NFS_LEGACYRPC option has been removed along with the old
kernel RPC implementation that this option selected. Kernel
Modified: head/sys/netinet/tcp_var.h
==============================================================================
--- head/sys/netinet/tcp_var.h Sun Jul 12 04:48:47 2009 (r195633)
+++ head/sys/netinet/tcp_var.h Sun Jul 12 09:14:28 2009 (r195634)
@@ -72,6 +72,9 @@ struct sackhole {
struct sackhint {
struct sackhole *nexthole;
int sack_bytes_rexmit;
+
+ int ispare; /* explicit pad for 64bit alignment */
+ uint64_t _pad[2]; /* 1 sacked_bytes, 1 TBD */
};
struct tcptemp {
@@ -99,6 +102,7 @@ do { \
*/
struct tcpcb {
struct tsegqe_head t_segq; /* segment reassembly queue */
+ void *t_pspare[2]; /* new reassembly queue */
int t_segqlen; /* segment reassembly queue length */
int t_dupacks; /* consecutive dup acks recd */
@@ -190,10 +194,13 @@ struct tcpcb {
int t_rttlow; /* smallest observerved RTT */
u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */
int rfbuf_cnt; /* recv buffer autoscaling byte count */
- void *t_pspare[3]; /* toe usrreqs / toepcb * / congestion algo / 1 general use */
struct toe_usrreqs *t_tu; /* offload operations vector */
void *t_toe; /* TOE pcb pointer */
int t_bytes_acked; /* # bytes acked during current RTT */
+
+ int t_ispare; /* explicit pad for 64bit alignment */
+ void *t_pspare2[6]; /* 2 CC / 4 TBD */
+ uint64_t _pad[12]; /* 7 UTO, 5 TBD (1-2 CC/RTT?) */
};
/*
@@ -460,6 +467,8 @@ struct tcpstat {
u_long tcps_ecn_ect1; /* ECN Capable Transport */
u_long tcps_ecn_shs; /* ECN successful handshakes */
u_long tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */
+
+ u_long _pad[12]; /* 6 UTO, 6 TBD */
};
#ifdef _KERNEL
Modified: head/sys/sys/param.h
==============================================================================
--- head/sys/sys/param.h Sun Jul 12 04:48:47 2009 (r195633)
+++ head/sys/sys/param.h Sun Jul 12 09:14:28 2009 (r195634)
@@ -58,7 +58,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 800101 /* Master, propagated to newvers */
+#define __FreeBSD_version 800102 /* Master, propagated to newvers */
#ifndef LOCORE
#include <sys/types.h>
More information about the svn-src-all
mailing list