summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/tcp_impl.h
diff options
context:
space:
mode:
authordh155122 <none@none>2007-01-19 16:59:38 -0800
committerdh155122 <none@none>2007-01-19 16:59:38 -0800
commitf4b3ec61df05330d25f55a36b975b4d7519fdeb1 (patch)
tree395c234b901886c84a82603a767e031fca136e09 /usr/src/uts/common/inet/tcp_impl.h
parent2e59fc6dac28cd69376c21d6b90a5624160ba94c (diff)
downloadillumos-gate-f4b3ec61df05330d25f55a36b975b4d7519fdeb1.tar.gz
PSARC 2006/366 IP Instances
6289221 RFE: Need virtualized ip-stack for each local zone 6512601 panic in ipsec_in_tag - allocation failure 6514637 error message from dhcpagent: add_pkt_opt: option type 60 is missing required value 6364643 RFE: allow persistent setting of interface flags per zone 6307539 RFE: Invalid network address causes zone boot failure 5041214 Allow IPMP configuration with zones 5005887 RFE: zoneadmd should support plumbing an interface via DHCP 4991139 RFE: zones should provide a mechanism to configure a defaultrouter for a zone 6218378 zoneadmd doesn't set the netmask for non-loopback addresses hosted on lo0 4963280 zones: need to virtualize the IPv6 default address selection mechanism 4963285 zones: need support of stateless address autoconfiguration for IPv6 5048068 zones don't boot if one of its interfaces has failed 5057154 RFE: ability to change interface status from within a zone 4963287 zones should support the plumbing of the first (and only) logical interface 4978517 TCP privileged port space should be partitioned per zone 5023347 zones don't work well with network routes other than default 4963372 investigate whether global zone can act as a router for local zones 6378364 RFE: Allow each zone to have its own virtual IPFilter
Diffstat (limited to 'usr/src/uts/common/inet/tcp_impl.h')
-rw-r--r--usr/src/uts/common/inet/tcp_impl.h241
1 files changed, 68 insertions, 173 deletions
diff --git a/usr/src/uts/common/inet/tcp_impl.h b/usr/src/uts/common/inet/tcp_impl.h
index c724f53980..2f31dc531a 100644
--- a/usr/src/uts/common/inet/tcp_impl.h
+++ b/usr/src/uts/common/inet/tcp_impl.h
@@ -144,180 +144,75 @@ typedef struct tcpparam_s {
char *tcp_param_name;
} tcpparam_t;
-extern tcpparam_t tcp_param_arr[];
-#define tcp_time_wait_interval tcp_param_arr[0].tcp_param_val
-#define tcp_conn_req_max_q tcp_param_arr[1].tcp_param_val
-#define tcp_conn_req_max_q0 tcp_param_arr[2].tcp_param_val
-#define tcp_conn_req_min tcp_param_arr[3].tcp_param_val
-#define tcp_conn_grace_period tcp_param_arr[4].tcp_param_val
-#define tcp_cwnd_max_ tcp_param_arr[5].tcp_param_val
-#define tcp_dbg tcp_param_arr[6].tcp_param_val
-#define tcp_smallest_nonpriv_port tcp_param_arr[7].tcp_param_val
-#define tcp_ip_abort_cinterval tcp_param_arr[8].tcp_param_val
-#define tcp_ip_abort_linterval tcp_param_arr[9].tcp_param_val
-#define tcp_ip_abort_interval tcp_param_arr[10].tcp_param_val
-#define tcp_ip_notify_cinterval tcp_param_arr[11].tcp_param_val
-#define tcp_ip_notify_interval tcp_param_arr[12].tcp_param_val
-#define tcp_ipv4_ttl tcp_param_arr[13].tcp_param_val
-#define tcp_keepalive_interval_high tcp_param_arr[14].tcp_param_max
-#define tcp_keepalive_interval tcp_param_arr[14].tcp_param_val
-#define tcp_keepalive_interval_low tcp_param_arr[14].tcp_param_min
-#define tcp_maxpsz_multiplier tcp_param_arr[15].tcp_param_val
-#define tcp_mss_def_ipv4 tcp_param_arr[16].tcp_param_val
-#define tcp_mss_max_ipv4 tcp_param_arr[17].tcp_param_val
-#define tcp_mss_min tcp_param_arr[18].tcp_param_val
-#define tcp_naglim_def tcp_param_arr[19].tcp_param_val
-#define tcp_rexmit_interval_initial tcp_param_arr[20].tcp_param_val
-#define tcp_rexmit_interval_max tcp_param_arr[21].tcp_param_val
-#define tcp_rexmit_interval_min tcp_param_arr[22].tcp_param_val
-#define tcp_deferred_ack_interval tcp_param_arr[23].tcp_param_val
-#define tcp_snd_lowat_fraction tcp_param_arr[24].tcp_param_val
-#define tcp_sth_rcv_hiwat tcp_param_arr[25].tcp_param_val
-#define tcp_sth_rcv_lowat tcp_param_arr[26].tcp_param_val
-#define tcp_dupack_fast_retransmit tcp_param_arr[27].tcp_param_val
-#define tcp_ignore_path_mtu tcp_param_arr[28].tcp_param_val
-#define tcp_smallest_anon_port tcp_param_arr[29].tcp_param_val
-#define tcp_largest_anon_port tcp_param_arr[30].tcp_param_val
-#define tcp_xmit_hiwat tcp_param_arr[31].tcp_param_val
-#define tcp_xmit_lowat tcp_param_arr[32].tcp_param_val
-#define tcp_recv_hiwat tcp_param_arr[33].tcp_param_val
-#define tcp_recv_hiwat_minmss tcp_param_arr[34].tcp_param_val
-#define tcp_fin_wait_2_flush_interval tcp_param_arr[35].tcp_param_val
-#define tcp_co_min tcp_param_arr[36].tcp_param_val
-#define tcp_max_buf tcp_param_arr[37].tcp_param_val
-#define tcp_strong_iss tcp_param_arr[38].tcp_param_val
-#define tcp_rtt_updates tcp_param_arr[39].tcp_param_val
-#define tcp_wscale_always tcp_param_arr[40].tcp_param_val
-#define tcp_tstamp_always tcp_param_arr[41].tcp_param_val
-#define tcp_tstamp_if_wscale tcp_param_arr[42].tcp_param_val
-#define tcp_rexmit_interval_extra tcp_param_arr[43].tcp_param_val
-#define tcp_deferred_acks_max tcp_param_arr[44].tcp_param_val
-#define tcp_slow_start_after_idle tcp_param_arr[45].tcp_param_val
-#define tcp_slow_start_initial tcp_param_arr[46].tcp_param_val
-#define tcp_co_timer_interval tcp_param_arr[47].tcp_param_val
-#define tcp_sack_permitted tcp_param_arr[48].tcp_param_val
-#define tcp_trace tcp_param_arr[49].tcp_param_val
-#define tcp_compression_enabled tcp_param_arr[50].tcp_param_val
-#define tcp_ipv6_hoplimit tcp_param_arr[51].tcp_param_val
-#define tcp_mss_def_ipv6 tcp_param_arr[52].tcp_param_val
-#define tcp_mss_max_ipv6 tcp_param_arr[53].tcp_param_val
-#define tcp_rev_src_routes tcp_param_arr[54].tcp_param_val
-#define tcp_local_dack_interval tcp_param_arr[55].tcp_param_val
-#define tcp_ndd_get_info_interval tcp_param_arr[56].tcp_param_val
-#define tcp_local_dacks_max tcp_param_arr[57].tcp_param_val
-#define tcp_ecn_permitted tcp_param_arr[58].tcp_param_val
-#define tcp_rst_sent_rate_enabled tcp_param_arr[59].tcp_param_val
-#define tcp_rst_sent_rate tcp_param_arr[60].tcp_param_val
-#define tcp_push_timer_interval tcp_param_arr[61].tcp_param_val
-#define tcp_use_smss_as_mss_opt tcp_param_arr[62].tcp_param_val
-#define tcp_keepalive_abort_interval_high tcp_param_arr[63].tcp_param_max
-#define tcp_keepalive_abort_interval tcp_param_arr[63].tcp_param_val
-#define tcp_keepalive_abort_interval_low tcp_param_arr[63].tcp_param_min
-
-/* Kstats */
-typedef struct tcp_stat {
- kstat_named_t tcp_time_wait;
- kstat_named_t tcp_time_wait_syn;
- kstat_named_t tcp_time_wait_syn_success;
- kstat_named_t tcp_time_wait_syn_fail;
- kstat_named_t tcp_reinput_syn;
- kstat_named_t tcp_ip_output;
- kstat_named_t tcp_detach_non_time_wait;
- kstat_named_t tcp_detach_time_wait;
- kstat_named_t tcp_time_wait_reap;
- kstat_named_t tcp_clean_death_nondetached;
- kstat_named_t tcp_reinit_calls;
- kstat_named_t tcp_eager_err1;
- kstat_named_t tcp_eager_err2;
- kstat_named_t tcp_eager_blowoff_calls;
- kstat_named_t tcp_eager_blowoff_q;
- kstat_named_t tcp_eager_blowoff_q0;
- kstat_named_t tcp_not_hard_bound;
- kstat_named_t tcp_no_listener;
- kstat_named_t tcp_found_eager;
- kstat_named_t tcp_wrong_queue;
- kstat_named_t tcp_found_eager_binding1;
- kstat_named_t tcp_found_eager_bound1;
- kstat_named_t tcp_eager_has_listener1;
- kstat_named_t tcp_open_alloc;
- kstat_named_t tcp_open_detached_alloc;
- kstat_named_t tcp_rput_time_wait;
- kstat_named_t tcp_listendrop;
- kstat_named_t tcp_listendropq0;
- kstat_named_t tcp_wrong_rq;
- kstat_named_t tcp_rsrv_calls;
- kstat_named_t tcp_eagerfree2;
- kstat_named_t tcp_eagerfree3;
- kstat_named_t tcp_eagerfree4;
- kstat_named_t tcp_eagerfree5;
- kstat_named_t tcp_timewait_syn_fail;
- kstat_named_t tcp_listen_badflags;
- kstat_named_t tcp_timeout_calls;
- kstat_named_t tcp_timeout_cached_alloc;
- kstat_named_t tcp_timeout_cancel_reqs;
- kstat_named_t tcp_timeout_canceled;
- kstat_named_t tcp_timermp_alloced;
- kstat_named_t tcp_timermp_freed;
- kstat_named_t tcp_timermp_allocfail;
- kstat_named_t tcp_timermp_allocdblfail;
- kstat_named_t tcp_push_timer_cnt;
- kstat_named_t tcp_ack_timer_cnt;
- kstat_named_t tcp_ire_null1;
- kstat_named_t tcp_ire_null;
- kstat_named_t tcp_ip_send;
- kstat_named_t tcp_ip_ire_send;
- kstat_named_t tcp_wsrv_called;
- kstat_named_t tcp_flwctl_on;
- kstat_named_t tcp_timer_fire_early;
- kstat_named_t tcp_timer_fire_miss;
- kstat_named_t tcp_freelist_cleanup;
- kstat_named_t tcp_rput_v6_error;
- kstat_named_t tcp_out_sw_cksum;
- kstat_named_t tcp_out_sw_cksum_bytes;
- kstat_named_t tcp_zcopy_on;
- kstat_named_t tcp_zcopy_off;
- kstat_named_t tcp_zcopy_backoff;
- kstat_named_t tcp_zcopy_disable;
- kstat_named_t tcp_mdt_pkt_out;
- kstat_named_t tcp_mdt_pkt_out_v4;
- kstat_named_t tcp_mdt_pkt_out_v6;
- kstat_named_t tcp_mdt_discarded;
- kstat_named_t tcp_mdt_conn_halted1;
- kstat_named_t tcp_mdt_conn_halted2;
- kstat_named_t tcp_mdt_conn_halted3;
- kstat_named_t tcp_mdt_conn_resumed1;
- kstat_named_t tcp_mdt_conn_resumed2;
- kstat_named_t tcp_mdt_legacy_small;
- kstat_named_t tcp_mdt_legacy_all;
- kstat_named_t tcp_mdt_legacy_ret;
- kstat_named_t tcp_mdt_allocfail;
- kstat_named_t tcp_mdt_addpdescfail;
- kstat_named_t tcp_mdt_allocd;
- kstat_named_t tcp_mdt_linked;
- kstat_named_t tcp_fusion_flowctl;
- kstat_named_t tcp_fusion_backenabled;
- kstat_named_t tcp_fusion_urg;
- kstat_named_t tcp_fusion_putnext;
- kstat_named_t tcp_fusion_unfusable;
- kstat_named_t tcp_fusion_aborted;
- kstat_named_t tcp_fusion_unqualified;
- kstat_named_t tcp_fusion_rrw_busy;
- kstat_named_t tcp_fusion_rrw_msgcnt;
- kstat_named_t tcp_fusion_rrw_plugged;
- kstat_named_t tcp_in_ack_unsent_drop;
- kstat_named_t tcp_sock_fallback;
- kstat_named_t tcp_lso_enabled;
- kstat_named_t tcp_lso_disabled;
- kstat_named_t tcp_lso_times;
- kstat_named_t tcp_lso_pkt_out;
-} tcp_stat_t;
-
-extern tcp_stat_t tcp_statistics;
-
-#define TCP_STAT(x) (tcp_statistics.x.value.ui64++)
-#define TCP_STAT_UPDATE(x, n) (tcp_statistics.x.value.ui64 += (n))
-#define TCP_STAT_SET(x, n) (tcp_statistics.x.value.ui64 = (n))
+#define tcps_time_wait_interval tcps_params[0].tcp_param_val
+#define tcps_conn_req_max_q tcps_params[1].tcp_param_val
+#define tcps_conn_req_max_q0 tcps_params[2].tcp_param_val
+#define tcps_conn_req_min tcps_params[3].tcp_param_val
+#define tcps_conn_grace_period tcps_params[4].tcp_param_val
+#define tcps_cwnd_max_ tcps_params[5].tcp_param_val
+#define tcps_dbg tcps_params[6].tcp_param_val
+#define tcps_smallest_nonpriv_port tcps_params[7].tcp_param_val
+#define tcps_ip_abort_cinterval tcps_params[8].tcp_param_val
+#define tcps_ip_abort_linterval tcps_params[9].tcp_param_val
+#define tcps_ip_abort_interval tcps_params[10].tcp_param_val
+#define tcps_ip_notify_cinterval tcps_params[11].tcp_param_val
+#define tcps_ip_notify_interval tcps_params[12].tcp_param_val
+#define tcps_ipv4_ttl tcps_params[13].tcp_param_val
+#define tcps_keepalive_interval_high tcps_params[14].tcp_param_max
+#define tcps_keepalive_interval tcps_params[14].tcp_param_val
+#define tcps_keepalive_interval_low tcps_params[14].tcp_param_min
+#define tcps_maxpsz_multiplier tcps_params[15].tcp_param_val
+#define tcps_mss_def_ipv4 tcps_params[16].tcp_param_val
+#define tcps_mss_max_ipv4 tcps_params[17].tcp_param_val
+#define tcps_mss_min tcps_params[18].tcp_param_val
+#define tcps_naglim_def tcps_params[19].tcp_param_val
+#define tcps_rexmit_interval_initial tcps_params[20].tcp_param_val
+#define tcps_rexmit_interval_max tcps_params[21].tcp_param_val
+#define tcps_rexmit_interval_min tcps_params[22].tcp_param_val
+#define tcps_deferred_ack_interval tcps_params[23].tcp_param_val
+#define tcps_snd_lowat_fraction tcps_params[24].tcp_param_val
+#define tcps_sth_rcv_hiwat tcps_params[25].tcp_param_val
+#define __tcps_not_used1 tcps_params[26].tcp_param_val
+#define tcps_dupack_fast_retransmit tcps_params[27].tcp_param_val
+#define tcps_ignore_path_mtu tcps_params[28].tcp_param_val
+#define tcps_smallest_anon_port tcps_params[29].tcp_param_val
+#define tcps_largest_anon_port tcps_params[30].tcp_param_val
+#define tcps_xmit_hiwat tcps_params[31].tcp_param_val
+#define tcps_xmit_lowat tcps_params[32].tcp_param_val
+#define tcps_recv_hiwat tcps_params[33].tcp_param_val
+#define tcps_recv_hiwat_minmss tcps_params[34].tcp_param_val
+#define tcps_fin_wait_2_flush_interval tcps_params[35].tcp_param_val
+#define __tcps_not_used2 tcps_params[36].tcp_param_val
+#define tcps_max_buf tcps_params[37].tcp_param_val
+#define tcps_strong_iss tcps_params[38].tcp_param_val
+#define tcps_rtt_updates tcps_params[39].tcp_param_val
+#define tcps_wscale_always tcps_params[40].tcp_param_val
+#define tcps_tstamp_always tcps_params[41].tcp_param_val
+#define tcps_tstamp_if_wscale tcps_params[42].tcp_param_val
+#define tcps_rexmit_interval_extra tcps_params[43].tcp_param_val
+#define tcps_deferred_acks_max tcps_params[44].tcp_param_val
+#define tcps_slow_start_after_idle tcps_params[45].tcp_param_val
+#define tcps_slow_start_initial tcps_params[46].tcp_param_val
+#define tcps_co_timer_interval tcps_params[47].tcp_param_val
+#define tcps_sack_permitted tcps_params[48].tcp_param_val
+#define tcps_trace tcps_params[49].tcp_param_val
+#define __tcps_not_used4 tcps_params[50].tcp_param_val
+#define tcps_ipv6_hoplimit tcps_params[51].tcp_param_val
+#define tcps_mss_def_ipv6 tcps_params[52].tcp_param_val
+#define tcps_mss_max_ipv6 tcps_params[53].tcp_param_val
+#define tcps_rev_src_routes tcps_params[54].tcp_param_val
+#define tcps_local_dack_interval tcps_params[55].tcp_param_val
+#define tcps_ndd_get_info_interval tcps_params[56].tcp_param_val
+#define tcps_local_dacks_max tcps_params[57].tcp_param_val
+#define tcps_ecn_permitted tcps_params[58].tcp_param_val
+#define tcps_rst_sent_rate_enabled tcps_params[59].tcp_param_val
+#define tcps_rst_sent_rate tcps_params[60].tcp_param_val
+#define tcps_push_timer_interval tcps_params[61].tcp_param_val
+#define tcps_use_smss_as_mss_opt tcps_params[62].tcp_param_val
+#define tcps_keepalive_abort_interval_high tcps_params[63].tcp_param_max
+#define tcps_keepalive_abort_interval tcps_params[63].tcp_param_val
+#define tcps_keepalive_abort_interval_low tcps_params[63].tcp_param_min
extern struct qinit tcp_loopback_rinit, tcp_rinit;
extern boolean_t do_tcp_fusion;