summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_offload.h
diff options
context:
space:
mode:
authorlstewart <lstewart@FreeBSD.org>2009-07-13 11:51:02 +0000
committerlstewart <lstewart@FreeBSD.org>2009-07-13 11:51:02 +0000
commit31cb6fd0f611d62a67ef9aa10d33bec66c2ca87e (patch)
tree7cc55e422a0a1c514ce30ad5dd81afc1953c41fa /sys/netinet/tcp_offload.h
parentf8ef0d9b7276dbb53a6d2c76693bd3950cabec64 (diff)
downloadFreeBSD-src-31cb6fd0f611d62a67ef9aa10d33bec66c2ca87e.zip
FreeBSD-src-31cb6fd0f611d62a67ef9aa10d33bec66c2ca87e.tar.gz
Replace struct tcpopt with a proxy toeopt struct in the TOE driver interface to
the TCP syncache. This returns struct tcpopt to being private within the TCP implementation, thus allowing it to be modified without ABI concerns. The patch breaks the ABI. Bump __FreeBSD_version to 800103 accordingly. The cxgb driver is the only TOE consumer affected by this change, and needs to be recompiled along with the kernel. Suggested by: rwatson Reviewed by: rwatson, kmacy Approved by: re (kensmith), kensmith (mentor temporarily unavailable)
Diffstat (limited to 'sys/netinet/tcp_offload.h')
-rw-r--r--sys/netinet/tcp_offload.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/netinet/tcp_offload.h b/sys/netinet/tcp_offload.h
index d05ef46..48f35ff 100644
--- a/sys/netinet/tcp_offload.h
+++ b/sys/netinet/tcp_offload.h
@@ -184,6 +184,19 @@ struct toe_usrreqs {
void (*tu_syncache_event)(int event, void *toep);
};
+/*
+ * Proxy for struct tcpopt between TOE drivers and TCP functions.
+ */
+struct toeopt {
+ u_int64_t to_flags; /* see tcpopt in tcp_var.h */
+ u_int16_t to_mss; /* maximum segment size */
+ u_int8_t to_wscale; /* window scaling */
+
+ u_int8_t _pad1; /* explicit pad for 64bit alignment */
+ u_int32_t _pad2; /* explicit pad for 64bit alignment */
+ u_int64_t _pad3[4]; /* TBD */
+};
+
#define TOE_SC_ENTRY_PRESENT 1 /* 4-tuple already present */
#define TOE_SC_DROP 2 /* connection was timed out */
OpenPOWER on IntegriCloud