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)
This commit is contained in:
parent
20c0188a09
commit
e13a0a527a
7
UPDATING
7
UPDATING
@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW:
|
|||||||
to maximize performance. (To disable malloc debugging, run
|
to maximize performance. (To disable malloc debugging, run
|
||||||
ln -s aj /etc/malloc.conf.)
|
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:
|
20090630:
|
||||||
The NFS_LEGACYRPC option has been removed along with the old
|
The NFS_LEGACYRPC option has been removed along with the old
|
||||||
kernel RPC implementation that this option selected. Kernel
|
kernel RPC implementation that this option selected. Kernel
|
||||||
|
@ -72,6 +72,9 @@ struct sackhole {
|
|||||||
struct sackhint {
|
struct sackhint {
|
||||||
struct sackhole *nexthole;
|
struct sackhole *nexthole;
|
||||||
int sack_bytes_rexmit;
|
int sack_bytes_rexmit;
|
||||||
|
|
||||||
|
int ispare; /* explicit pad for 64bit alignment */
|
||||||
|
uint64_t _pad[2]; /* 1 sacked_bytes, 1 TBD */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tcptemp {
|
struct tcptemp {
|
||||||
@ -99,6 +102,7 @@ do { \
|
|||||||
*/
|
*/
|
||||||
struct tcpcb {
|
struct tcpcb {
|
||||||
struct tsegqe_head t_segq; /* segment reassembly queue */
|
struct tsegqe_head t_segq; /* segment reassembly queue */
|
||||||
|
void *t_pspare[2]; /* new reassembly queue */
|
||||||
int t_segqlen; /* segment reassembly queue length */
|
int t_segqlen; /* segment reassembly queue length */
|
||||||
int t_dupacks; /* consecutive dup acks recd */
|
int t_dupacks; /* consecutive dup acks recd */
|
||||||
|
|
||||||
@ -190,10 +194,13 @@ struct tcpcb {
|
|||||||
int t_rttlow; /* smallest observerved RTT */
|
int t_rttlow; /* smallest observerved RTT */
|
||||||
u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */
|
u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */
|
||||||
int rfbuf_cnt; /* recv buffer autoscaling byte count */
|
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 */
|
struct toe_usrreqs *t_tu; /* offload operations vector */
|
||||||
void *t_toe; /* TOE pcb pointer */
|
void *t_toe; /* TOE pcb pointer */
|
||||||
int t_bytes_acked; /* # bytes acked during current RTT */
|
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_ect1; /* ECN Capable Transport */
|
||||||
u_long tcps_ecn_shs; /* ECN successful handshakes */
|
u_long tcps_ecn_shs; /* ECN successful handshakes */
|
||||||
u_long tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */
|
u_long tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */
|
||||||
|
|
||||||
|
u_long _pad[12]; /* 6 UTO, 6 TBD */
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
* in the range 5 to 9.
|
* in the range 5 to 9.
|
||||||
*/
|
*/
|
||||||
#undef __FreeBSD_version
|
#undef __FreeBSD_version
|
||||||
#define __FreeBSD_version 800101 /* Master, propagated to newvers */
|
#define __FreeBSD_version 800102 /* Master, propagated to newvers */
|
||||||
|
|
||||||
#ifndef LOCORE
|
#ifndef LOCORE
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user