📄 tcp_var.h
字号:
* the minimum feasible timer (which is 2 ticks). * This macro assumes that the value of TCP_RTTVAR_SCALE * is the same as the multiplier for rttvar. */#define TCP_REXMTVAL(tp) \ ((((tp)->t_srtt >> TCP_RTT_SHIFT) + (tp)->t_rttvar) >> 2)/* * TCP statistics. * Many of these should be kept per connection, * but that's inconvenient at the moment. */struct tcpstat { u_int32_t tcps_connattempt; /* connections initiated */ u_int32_t tcps_accepts; /* connections accepted */ u_int32_t tcps_connects; /* connections established */ u_int32_t tcps_drops; /* connections dropped */ u_int32_t tcps_conndrops; /* embryonic connections dropped */ u_int32_t tcps_closed; /* conn. closed (includes drops) */ u_int32_t tcps_segstimed; /* segs where we tried to get rtt */ u_int32_t tcps_rttupdated; /* times we succeeded */ u_int32_t tcps_delack; /* delayed acks sent */ u_int32_t tcps_timeoutdrop; /* conn. dropped in rxmt timeout */ u_int32_t tcps_rexmttimeo; /* retransmit timeouts */ u_int32_t tcps_persisttimeo; /* persist timeouts */ u_int32_t tcps_persistdrop; /* connections dropped in persist */ u_int32_t tcps_keeptimeo; /* keepalive timeouts */ u_int32_t tcps_keepprobe; /* keepalive probes sent */ u_int32_t tcps_keepdrops; /* connections dropped in keepalive */ u_int32_t tcps_sndtotal; /* total packets sent */ u_int32_t tcps_sndpack; /* data packets sent */ u_int64_t tcps_sndbyte; /* data bytes sent */ u_int32_t tcps_sndrexmitpack; /* data packets retransmitted */ u_int64_t tcps_sndrexmitbyte; /* data bytes retransmitted */ u_int64_t tcps_sndrexmitfast; /* Fast retransmits */ u_int32_t tcps_sndacks; /* ack-only packets sent */ u_int32_t tcps_sndprobe; /* window probes sent */ u_int32_t tcps_sndurg; /* packets sent with URG only */ u_int32_t tcps_sndwinup; /* window update-only packets sent */ u_int32_t tcps_sndctrl; /* control (SYN|FIN|RST) packets sent */ u_int32_t tcps_rcvtotal; /* total packets received */ u_int32_t tcps_rcvpack; /* packets received in sequence */ u_int64_t tcps_rcvbyte; /* bytes received in sequence */ u_int32_t tcps_rcvbadsum; /* packets received with ccksum errs */ u_int32_t tcps_rcvbadoff; /* packets received with bad offset */ u_int32_t tcps_rcvmemdrop; /* packets dropped for lack of memory */ u_int32_t tcps_rcvnosec; /* packets dropped for lack of ipsec */ u_int32_t tcps_rcvshort; /* packets received too short */ u_int32_t tcps_rcvduppack; /* duplicate-only packets received */ u_int64_t tcps_rcvdupbyte; /* duplicate-only bytes received */ u_int32_t tcps_rcvpartduppack; /* packets with some duplicate data */ u_int64_t tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ u_int32_t tcps_rcvoopack; /* out-of-order packets received */ u_int64_t tcps_rcvoobyte; /* out-of-order bytes received */ u_int32_t tcps_rcvpackafterwin; /* packets with data after window */ u_int64_t tcps_rcvbyteafterwin; /* bytes rcvd after window */ u_int32_t tcps_rcvafterclose; /* packets rcvd after "close" */ u_int32_t tcps_rcvwinprobe; /* rcvd window probe packets */ u_int32_t tcps_rcvdupack; /* rcvd duplicate acks */ u_int32_t tcps_rcvacktoomuch; /* rcvd acks for unsent data */ u_int32_t tcps_rcvackpack; /* rcvd ack packets */ u_int64_t tcps_rcvackbyte; /* bytes acked by rcvd acks */ u_int32_t tcps_rcvwinupd; /* rcvd window update packets */ u_int32_t tcps_pawsdrop; /* segments dropped due to PAWS */ u_int32_t tcps_predack; /* times hdr predict ok for acks */ u_int32_t tcps_preddat; /* times hdr predict ok for data pkts */ u_int32_t tcps_pcbhashmiss; /* input packets missing pcb hash */ u_int32_t tcps_noport; /* no socket on port */ u_int32_t tcps_badsyn; /* SYN packet with src==dst rcv'ed */ u_int32_t tcps_rcvbadsig; /* rcvd bad/missing TCP signatures */ u_int64_t tcps_rcvgoodsig; /* rcvd good TCP signatures */};/* * Names for TCP sysctl objects. */ #define TCPCTL_RFC1323 1 /* enable/disable RFC1323 timestamps/scaling */#define TCPCTL_KEEPINITTIME 2 /* TCPT_KEEP value */#define TCPCTL_KEEPIDLE 3 /* allow tcp_keepidle to be changed */#define TCPCTL_KEEPINTVL 4 /* allow tcp_keepintvl to be changed */#define TCPCTL_SLOWHZ 5 /* return kernel idea of PR_SLOWHZ */ #define TCPCTL_BADDYNAMIC 6 /* return bad dynamic port bitmap */ #define TCPCTL_RECVSPACE 7 /* receive buffer space */#define TCPCTL_SENDSPACE 8 /* send buffer space */#define TCPCTL_IDENT 9 /* get connection owner */#define TCPCTL_SACK 10 /* selective acknowledgement, rfc 2018 */#define TCPCTL_MSSDFLT 11 /* Default maximum segment size */#define TCPCTL_MAXID 12#define TCPCTL_NAMES { \ { 0, 0 }, \ { "rfc1323", CTLTYPE_INT }, \ { "keepinittime", CTLTYPE_INT }, \ { "keepidle", CTLTYPE_INT }, \ { "keepintvl", CTLTYPE_INT }, \ { "slowhz", CTLTYPE_INT }, \ { "baddynamic", CTLTYPE_STRUCT }, \ { "recvspace", CTLTYPE_INT }, \ { "sendspace", CTLTYPE_INT }, \ { "ident", CTLTYPE_STRUCT }, \ { "sack", CTLTYPE_INT }, \ { "mssdflt", CTLTYPE_INT }, \}struct tcp_ident_mapping { struct sockaddr faddr, laddr; int euid, ruid;};#ifdef _KERNELstruct inpcbtable tcbtable; /* head of queue of active tcpcb's */struct tcpstat tcpstat; /* tcp statistics */u_int32_t tcp_now; /* for RFC 1323 timestamps */extern int tcp_do_rfc1323; /* enabled/disabled? */extern int tcp_mssdflt; /* default maximum segment size */#ifdef TCP_SACKextern int tcp_do_sack; /* SACK enabled/disabled */#endifint tcp_attach __P((struct socket *));void tcp_canceltimers __P((struct tcpcb *));struct tcpcb * tcp_close __P((struct tcpcb *));#if defined(INET6) && !defined(TCP6)void tcp6_ctlinput __P((int, struct sockaddr *, void *));#endifvoid *tcp_ctlinput __P((int, struct sockaddr *, void *));int tcp_ctloutput __P((int, struct socket *, int, int, struct mbuf **));struct tcpcb * tcp_disconnect __P((struct tcpcb *));struct tcpcb * tcp_drop __P((struct tcpcb *, int));void tcp_dooptions __P((struct tcpcb *, u_char *, int, struct tcphdr *, int *, u_int32_t *, u_int32_t *)); void tcp_drain __P((void));void tcp_fasttimo __P((void));void tcp_init __P((void));#if defined(INET6) && !defined(TCP6)int tcp6_input __P((struct mbuf **, int *, int));#endifvoid tcp_input __P((struct mbuf *, ...));int tcp_mss __P((struct tcpcb *, u_int));struct tcpcb * tcp_newtcpcb __P((struct inpcb *));void tcp_notify __P((struct inpcb *, int));int tcp_output __P((struct tcpcb *));void tcp_pulloutofband __P((struct socket *, u_int, struct mbuf *, int));void tcp_quench __P((struct inpcb *, int));int tcp_reass __P((struct tcpcb *, struct tcphdr *, struct mbuf *, int *));void tcp_respond __P((struct tcpcb *, caddr_t, struct mbuf *, tcp_seq, tcp_seq, int));void tcp_setpersist __P((struct tcpcb *));void tcp_slowtimo __P((void));struct mbuf * tcp_template __P((struct tcpcb *));struct tcpcb * tcp_timers __P((struct tcpcb *, int));void tcp_trace __P((int, int, struct tcpcb *, caddr_t, int, int));struct tcpcb * tcp_usrclosed __P((struct tcpcb *));int tcp_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));#if defined(INET6) && !defined(TCP6)int tcp6_usrreq __P((struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct proc *));#endifint tcp_usrreq __P((struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *));void tcp_xmit_timer __P((struct tcpcb *, int));void tcpdropoldhalfopen __P((struct tcpcb *, u_int16_t));#ifdef TCP_SACKint tcp_sack_option __P((struct tcpcb *,struct tcphdr *,u_char *,int));void tcp_update_sack_list __P((struct tcpcb *tp));void tcp_del_sackholes __P((struct tcpcb *, struct tcphdr *));void tcp_clean_sackreport __P((struct tcpcb *tp));void tcp_sack_adjust __P((struct tcpcb *tp));struct sackhole * tcp_sack_output __P((struct tcpcb *tp));int tcp_sack_partialack __P((struct tcpcb *, struct tcphdr *));#ifdef DEBUGvoid tcp_print_holes __P((struct tcpcb *tp));#endif#endif /* TCP_SACK */#if defined(TCP_SACK)int tcp_newreno __P((struct tcpcb *, struct tcphdr *));u_long tcp_seq_subtract __P((u_long, u_long )); #endif /* TCP_SACK */#ifdef TCP_SIGNATUREint tcp_signature_apply __P((caddr_t, caddr_t, unsigned int));#endif /* TCP_SIGNATURE */#endif /* _KERNEL */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -