summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/tcp.h
diff options
context:
space:
mode:
authorYu Xiangning <Eric.Yu@Sun.COM>2008-12-11 20:04:13 -0800
committerYu Xiangning <Eric.Yu@Sun.COM>2008-12-11 20:04:13 -0800
commit0f1702c5201310f0529cd5abb77652e5e9b241b6 (patch)
tree83bbea7ada9d11097f73645900c06c37d8346669 /usr/src/uts/common/inet/tcp.h
parent9a9ae70f32271d74856130e37667ca926b27feb4 (diff)
downloadillumos-gate-0f1702c5201310f0529cd5abb77652e5e9b241b6.tar.gz
PSARC 2007/587 Volo -- Low Latency Socket Framework
PSARC 2008/694 Volo Interfaces Amendment 6765829 Integration of project Volo PSARC/2007/587 6644935 mblk cred_t reference counting limits scalability 6693633 TCP receive does not scale because of heavy refcounting of cred structures 4764841 connect/accept is slow on Solaris when compared to Linux 5105708 socket creation retains hold on accessvp 4764836 setsockopt is slow on Solaris when compared to Linux 4772191 socket close(2) is slow on Solaris when compared to Linux --HG-- rename : usr/src/uts/common/fs/sockfs/socksctp.c => usr/src/uts/common/inet/sockmods/socksctp.c rename : usr/src/uts/common/fs/sockfs/socksctp.h => usr/src/uts/common/inet/sockmods/socksctp.h rename : usr/src/uts/common/fs/sockfs/socksctpsubr.c => usr/src/uts/common/inet/sockmods/socksctpsubr.c rename : usr/src/uts/common/fs/sockfs/socksdp.c => usr/src/uts/common/inet/sockmods/socksdp.c rename : usr/src/uts/common/fs/sockfs/socksdp.h => usr/src/uts/common/inet/sockmods/socksdp.h
Diffstat (limited to 'usr/src/uts/common/inet/tcp.h')
-rw-r--r--usr/src/uts/common/inet/tcp.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/usr/src/uts/common/inet/tcp.h b/usr/src/uts/common/inet/tcp.h
index 3a557048d6..76d1864d62 100644
--- a/usr/src/uts/common/inet/tcp.h
+++ b/usr/src/uts/common/inet/tcp.h
@@ -35,6 +35,7 @@ extern "C" {
#include <netinet/ip6.h>
#include <netinet/tcp.h>
#include <sys/socket.h>
+#include <sys/socket_proto.h>
#include <sys/sodirect.h>
#include <sys/multidata.h>
#include <sys/md5.h>
@@ -201,7 +202,6 @@ typedef struct tcp_s {
#define TCP_OFO_FIN_VALID 0x8 /* Has TCP received an out of order FIN? */
- int32_t tcp_xmit_hiwater; /* Send buffer high water mark. */
timeout_id_t tcp_timer_tid; /* Control block for timer service */
uchar_t tcp_timer_backoff; /* Backoff shift count. */
@@ -340,7 +340,10 @@ typedef struct tcp_s {
struct tcp_s *tcp_listener; /* Our listener */
- int32_t tcp_xmit_lowater; /* Send buffer low water mark. */
+ size_t tcp_xmit_hiwater; /* Send buffer high water mark. */
+ size_t tcp_xmit_lowater; /* Send buffer low water mark. */
+ size_t tcp_recv_hiwater; /* Recv high water mark */
+ size_t tcp_recv_lowater; /* Recv low water mark */
uint32_t tcp_irs; /* Initial recv seq num */
uint32_t tcp_fss; /* Final/fin send seq num */
@@ -491,6 +494,7 @@ typedef struct tcp_s {
struct tcp_s *tcp_acceptor_hash; /* Acceptor hash chain */
struct tcp_s **tcp_ptpahn; /* Pointer to previous accept hash next. */
struct tcp_s *tcp_bind_hash; /* Bind hash chain */
+ struct tcp_s *tcp_bind_hash_port; /* tcp_t's bound to the same lport */
struct tcp_s **tcp_ptpbhn;
boolean_t tcp_ire_ill_check_done;
@@ -599,6 +603,15 @@ typedef struct tcp_s {
boolean_t tcp_flow_stopped;
/*
+ * The socket generation number is bumped when an outgoing connection
+ * attempts is made, and it sent up to the socket when the
+ * connection was successfully established, or an error occured. The
+ * generation is used to ensure that the socket does not miss the
+ * asynchronous notification.
+ */
+ sock_connid_t tcp_connid;
+
+ /*
* tcp_sodirect is used by tcp on the receive side to push mblk_t(s)
* directly to sockfs. Also, to schedule asynchronous copyout directly
* to a pending user-land uio buffer.