diff options
author | jprakash <none@none> | 2006-11-13 11:48:26 -0800 |
---|---|---|
committer | jprakash <none@none> | 2006-11-13 11:48:26 -0800 |
commit | 866ba9dd840c7f527cf2c93eed0711d83da2c554 (patch) | |
tree | 2d70e17aeba303b743c33939a143a0b4cd0e03c8 /usr/src/uts/common/inet/tcp.h | |
parent | dae6ba85caff4b224e672b0291da66d93687f6ec (diff) | |
download | illumos-gate-866ba9dd840c7f527cf2c93eed0711d83da2c554.tar.gz |
6265494 assertion failed: sqp != NULL, file: ../../common/inet/squeue.c, line: 715
6266870 assertion failed: cr != NULL, file: ../../common/os/strsubr.c, line: 8437
6266950 tcp_closemp reuse causes assertion failure in squeue code
6379249 SDT probes in CONN_INC_REF and CONN_DEC_REF should be where conn_lock is held
6402737 IP spends too much time identifying bad remote host when under SYN attack
6404207 tcp_clean_death() gets called twice for an eager
6408242 access to freed tcp_t in tcp_close()
6412077 missing CONN_DEC_REF in tcp_conn_request()
6415132 conn_recv should be set before insering a conn_t in a hash table
6448747 A tcp connection can be queued again for tcp TIMEWAIT processing
Diffstat (limited to 'usr/src/uts/common/inet/tcp.h')
-rw-r--r-- | usr/src/uts/common/inet/tcp.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/usr/src/uts/common/inet/tcp.h b/usr/src/uts/common/inet/tcp.h index 54d46f7f1b..7552e53600 100644 --- a/usr/src/uts/common/inet/tcp.h +++ b/usr/src/uts/common/inet/tcp.h @@ -287,7 +287,8 @@ typedef struct tcp_s { tcp_send_discon_ind : 1, /* TLI accept err, send discon ind */ tcp_cork : 1, /* tcp_cork option */ - tcp_pad_to_bit_31 : 18; + tcp_tconnind_started : 1, /* conn_ind message is being sent */ + tcp_pad_to_bit_31 : 17; uint32_t tcp_if_mtu; /* Outgoing interface MTU. */ @@ -553,8 +554,38 @@ typedef struct tcp_s { kssl_ent_t tcp_kssl_ent; /* SSL table entry */ kssl_ctx_t tcp_kssl_ctx; /* SSL session */ uint_t tcp_label_len; /* length of cached label */ + + /* + * tcp_closemp_used is protected by listener's tcp_eager_lock + * when used for eagers. When used for a tcp in TIME_WAIT state + * or in tcp_close(), it is not protected by any lock as we + * do not expect any other thread to use it concurrently. + * Since we do allow re-use of tcp_closemp at certain places, + * tcp_closemp_used is declared as uint32_t instead of boolean_t + * to record any attempt to re-use tcp_closemp while it is still + * in use. This would facilitate debugging in non-debug kernels. + */ + uint32_t tcp_closemp_used; + + /* + * previous and next eagers in the list of droppable eagers. See + * the comments before MAKE_DROPPABLE(). These pointers are + * protected by listener's tcp_eager_lock. + */ + struct tcp_s *tcp_eager_prev_drop_q0; + struct tcp_s *tcp_eager_next_drop_q0; +#ifdef DEBUG + pc_t tcmp_stk[15]; +#endif } tcp_t; +#ifdef DEBUG +#define TCP_DEBUG_GETPCSTACK(buffer, depth) ((void) getpcstack(buffer, \ + depth)) +#else +#define TCP_DEBUG_GETPCSTACK(buffer, depth) +#endif + extern void tcp_free(tcp_t *tcp); extern void tcp_ddi_init(void); extern void tcp_ddi_destroy(void); |