33 #ifndef _NETINET_TCP_VAR_H_ 34 #define _NETINET_TCP_VAR_H_ 49 struct tcpiphdr *seg_next;
50 struct tcpiphdr *seg_prev;
53 #define TF_ACKNOW 0x000001 54 #define TF_DELACK 0x000002 55 #define TF_NODELAY 0x000004 56 #define TF_NOOPT 0x000008 57 #define TF_SENTFIN 0x000010 58 #define TF_REQ_SCALE 0x000020 59 #define TF_RCVD_SCALE 0x000040 60 #define TF_REQ_TSTMP 0x000080 61 #define TF_RCVD_TSTMP 0x000100 62 #define TF_SACK_PERMIT 0x000200 63 #define TF_NEEDSYN 0x000400 64 #define TF_NEEDFIN 0x000800 65 #define TF_NOPUSH 0x001000 66 #define TF_REQ_CC 0x002000 67 #define TF_RCVD_CC 0x004000 68 #define TF_SENDCCNEW 0x008000 69 #define TF_MORETOCOME 0x010000 70 #define TF_LQ_OVERFLOW 0x020000 71 #define TF_LASTIDLE 0x040000 72 #define TF_RXWIN0SENT 0x080000 73 #define TF_FASTRECOVERY 0x100000 74 #define TF_WASFRECOVERY 0x200000 75 #define TF_SIGNATURE 0x400000 77 int t_timer[TCPT_NTIMERS];
83 struct tcpiphdr *t_template;
84 struct inpcb *t_inpcb;
133 #define TCPOOB_HAVEDATA 0x01 134 #define TCPOOB_HADDATA 0x02 138 u_char request_r_scale;
139 u_char requested_s_scale;
142 u_long ts_recent_age;
143 tcp_seq last_ack_sent;
163 #define TOF_TS 0x0001 164 #define TOF_CC 0x0002 165 #define TOF_CCNEW 0x0004 166 #define TOF_CCECHO 0x0008 167 #define TOF_MSS 0x0010 168 #define TOF_SCALE 0x0020 169 #define TOF_SIGNATURE 0x0040 170 #define TOF_SIGLEN 0x0080 171 #define TOF_SACK 0x0100 187 #define rmx_taop(r) ((struct rmxp_tao *)(r).rmx_filler) 189 #define intotcpcb(ip) ((struct tcpcb *)(ip)->inp_ppcb) 190 #define intotw(ip) ((struct tcptw *)(ip)->inp_ppcb) 191 #define sototcpcb(so) (intotcpcb(sotoinpcb(so))) 203 #define TCP_RTT_SCALE 32 204 #define TCP_RTT_SHIFT 5 205 #define TCP_RTTVAR_SCALE 16 206 #define TCP_RTTVAR_SHIFT 4 207 #define TCP_DELTA_SHIFT 2 225 #define TCP_REXMTVAL(tp) \ 226 ((((tp)->t_srtt >> (TCP_RTT_SHIFT - TCP_DELTA_SHIFT)) \ 227 + (tp)->t_rttvar) >> TCP_DELTA_SHIFT) 237 #if (defined(__GNUC__) && (defined(__arm__) || defined(__mips__))) 238 #define STR32_UNALGN(ti,m) \ 239 (ti)->ti_sport = (unsigned short)(((unsigned int) m & 0xffff0000) >> 16); \ 240 (ti)->ti_dport = (unsigned short) ((unsigned int) m & 0x0000ffff); 241 #define LD32_UNALGN(ti,m) \ 242 m = (struct mbuf *)((((unsigned int) (ti)->ti_sport) << 16) | ( (unsigned int)(ti)->ti_dport)); 245 #define REASS_MBUF(ti) (*(struct mbuf **)&((ti)->ti_t)) 254 u_long tcps_connattempt;
256 u_long tcps_connects;
258 u_long tcps_conndrops;
260 u_long tcps_segstimed;
261 u_long tcps_rttupdated;
263 u_long tcps_timeoutdrop;
264 u_long tcps_rexmttimeo;
265 u_long tcps_persisttimeo;
266 u_long tcps_keeptimeo;
267 u_long tcps_keepprobe;
268 u_long tcps_keepdrops;
270 u_long tcps_sndtotal;
273 u_long tcps_sndrexmitpack;
274 u_long tcps_sndrexmitbyte;
276 u_long tcps_sndprobe;
278 u_long tcps_sndwinup;
281 u_long tcps_rcvtotal;
284 u_long tcps_rcvbadsum;
285 u_long tcps_rcvbadoff;
286 u_long tcps_rcvshort;
287 u_long tcps_rcvduppack;
288 u_long tcps_rcvdupbyte;
289 u_long tcps_rcvpartduppack;
290 u_long tcps_rcvpartdupbyte;
291 u_long tcps_rcvoopack;
292 u_long tcps_rcvoobyte;
293 u_long tcps_rcvpackafterwin;
294 u_long tcps_rcvbyteafterwin;
295 u_long tcps_rcvafterclose;
296 u_long tcps_rcvwinprobe;
297 u_long tcps_rcvdupack;
298 u_long tcps_rcvacktoomuch;
299 u_long tcps_rcvackpack;
300 u_long tcps_rcvackbyte;
301 u_long tcps_rcvwinupd;
302 u_long tcps_pawsdrop;
305 u_long tcps_pcbcachemiss;
306 u_long tcps_cachedrtt;
307 u_long tcps_cachedrttvar;
308 u_long tcps_cachedssthresh;
310 u_long tcps_usedrttvar;
311 u_long tcps_usedssthresh;
312 u_long tcps_persistdrop;
314 u_long tcps_mturesent;
315 u_long tcps_listendrop;
323 #if defined(_NETINET_IN_PCB_H_) && defined(_SYS_SOCKETVAR_H_) 329 struct xsocket xt_socket;
330 u_quad_t xt_alignment_hack;
338 #define TCPCTL_DO_RFC1323 1 339 #define TCPCTL_DO_RFC1644 2 340 #define TCPCTL_MSSDFLT 3 341 #define TCPCTL_STATS 4 342 #define TCPCTL_RTTDFLT 5 343 #define TCPCTL_KEEPIDLE 6 344 #define TCPCTL_KEEPINTVL 7 345 #define TCPCTL_SENDSPACE 8 346 #define TCPCTL_RECVSPACE 9 347 #define TCPCTL_KEEPINIT 10 348 #define TCPCTL_PCBLIST 11 349 #define TCPCTL_MAXID 12 351 #define TCPCTL_NAMES { \ 353 { "rfc1323", CTLTYPE_INT }, \ 354 { "rfc1644", CTLTYPE_INT }, \ 355 { "mssdflt", CTLTYPE_INT }, \ 356 { "stats", CTLTYPE_STRUCT }, \ 357 { "rttdflt", CTLTYPE_INT }, \ 358 { "keepidle", CTLTYPE_INT }, \ 359 { "keepintvl", CTLTYPE_INT }, \ 360 { "sendspace", CTLTYPE_INT }, \ 361 { "recvspace", CTLTYPE_INT }, \ 362 { "keepinit", CTLTYPE_INT }, \ 367 SYSCTL_DECL(_net_inet_tcp);
370 extern struct inpcbhead tcb;
372 extern struct tcpstat tcpstat;
373 extern int tcp_mssdflt;
374 extern u_long tcp_now;
376 void tcp_canceltimers(
struct tcpcb *);
378 tcp_close(
struct tcpcb *);
379 void tcp_ctlinput(
int,
struct sockaddr *,
void *);
380 int tcp_ctloutput(
int,
struct socket *,
int,
int,
struct mbuf **);
382 tcp_drop(
struct tcpcb *,
int);
383 void tcp_drain(
void);
384 void tcp_fasttimo(
void);
386 tcp_gettaocache(
struct inpcb *);
388 void tcp_input(
struct mbuf *,
int);
389 void tcp_mss(
struct tcpcb *,
int);
390 int tcp_mssopt(
struct tcpcb *);
391 void tcp_mtudisc(
struct inpcb *,
int);
393 tcp_newtcpcb(
struct inpcb *);
394 int tcp_output(
struct tcpcb *);
395 void tcp_quench(
struct inpcb *,
int);
396 void tcp_respond(
struct tcpcb *,
397 struct tcpiphdr *,
struct mbuf *, tcp_seq, tcp_seq,
int);
399 tcp_rtlookup(
struct inpcb *);
400 void tcp_setpersist(
struct tcpcb *);
401 void tcp_slowtimo(
void);
403 tcp_template(
struct tcpcb *);
405 tcp_timers(
struct tcpcb *,
int);
406 void tcp_trace(
short,
short,
struct tcpcb *,
struct tcpiphdr *,
int);
408 extern struct pr_usrreqs tcp_usrreqs;
409 extern u_long tcp_sendspace;
410 extern u_long tcp_recvspace;
Definition: socketvar.h:49