summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/tcp_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/inet/tcp_impl.h')
-rw-r--r--usr/src/uts/common/inet/tcp_impl.h45
1 files changed, 8 insertions, 37 deletions
diff --git a/usr/src/uts/common/inet/tcp_impl.h b/usr/src/uts/common/inet/tcp_impl.h
index bec2b3256f..1b7c87736a 100644
--- a/usr/src/uts/common/inet/tcp_impl.h
+++ b/usr/src/uts/common/inet/tcp_impl.h
@@ -70,41 +70,6 @@ extern "C" {
}
/*
- * Before caching the conn IRE, we need to make sure certain TCP
- * states are in sync with the ire. The mismatch could occur if the
- * TCP state has been set in tcp_adapt_ire() using a different IRE,
- * e.g if an address was not present during an initial connect(),
- * tcp_adapt_ire() will set the state using the interface route.
- * Subsequently, if the address is added to the local machine, the
- * retransmitted SYN will get the correct (loopback) IRE, but the TCP
- * state (tcp_loopback and tcp_localnet) will remain out of sync.
- * This is especially an issue with TCP fusion which relies on the
- * TCP state to be accurate.
- *
- * This check/change should be made only if the TCP is not yet in
- * the established state, else it would lead to inconsistencies.
- */
-#define TCP_CHECK_IREINFO(tcp, ire) { \
- if ((tcp)->tcp_state < TCPS_ESTABLISHED) { \
- if (((ire)->ire_type & (IRE_LOOPBACK | \
- IRE_LOCAL)) && !(tcp)->tcp_loopback) { \
- (tcp)->tcp_loopback = B_TRUE; \
- } else if ((tcp)->tcp_loopback && \
- !((ire)->ire_type & (IRE_LOOPBACK | IRE_LOCAL))) { \
- (tcp)->tcp_loopback = B_FALSE; \
- } \
- if ((tcp)->tcp_ipversion == IPV4_VERSION) { \
- (tcp)->tcp_localnet = \
- ((ire)->ire_gateway_addr == 0); \
- } else { \
- (tcp)->tcp_localnet = \
- IN6_IS_ADDR_UNSPECIFIED( \
- &(ire)->ire_gateway_addr_v6); \
- } \
- } \
-}
-
-/*
* Write-side flow-control is implemented via the per instance STREAMS
* write-side Q by explicitly setting QFULL to stop the flow of mblk_t(s)
* and clearing QFULL and calling qbackenable() to restart the flow based
@@ -205,18 +170,19 @@ typedef struct tcpparam_s {
#define tcps_keepalive_abort_interval_high tcps_params[59].tcp_param_max
#define tcps_keepalive_abort_interval tcps_params[59].tcp_param_val
#define tcps_keepalive_abort_interval_low tcps_params[59].tcp_param_min
+#define tcps_dev_flow_ctl tcps_params[60].tcp_param_val
extern struct qinit tcp_rinitv4, tcp_rinitv6;
extern boolean_t do_tcp_fusion;
extern int tcp_maxpsz_set(tcp_t *, boolean_t);
extern void tcp_timers_stop(tcp_t *);
-extern void tcp_rcv_enqueue(tcp_t *, mblk_t *, uint_t);
+extern void tcp_rcv_enqueue(tcp_t *, mblk_t *, uint_t, cred_t *);
extern void tcp_push_timer(void *);
extern timeout_id_t tcp_timeout(conn_t *, void (*)(void *), clock_t);
extern clock_t tcp_timeout_cancel(conn_t *, timeout_id_t);
-extern void tcp_fuse(tcp_t *, uchar_t *, tcph_t *);
+extern void tcp_fuse(tcp_t *, uchar_t *, tcpha_t *);
extern void tcp_unfuse(tcp_t *);
extern boolean_t tcp_fuse_output(tcp_t *, mblk_t *, uint32_t);
extern void tcp_fuse_output_urg(tcp_t *, mblk_t *);
@@ -242,6 +208,11 @@ extern int tcp_fallback(sock_lower_handle_t, queue_t *, boolean_t,
extern sock_downcalls_t sock_tcp_downcalls;
+extern int tcp_opt_default(queue_t *, t_scalar_t, t_scalar_t, uchar_t *);
+extern int tcp_tpi_opt_get(queue_t *, t_scalar_t, t_scalar_t, uchar_t *);
+extern int tcp_tpi_opt_set(queue_t *, uint_t, int, int, uint_t, uchar_t *,
+ uint_t *, uchar_t *, void *, cred_t *);
+
#endif /* _KERNEL */
#ifdef __cplusplus