Date: Sat, 11 Apr 2009 22:07:20 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r190948 - in head/sys: contrib/pf/net dev/cxgb/ulp/tom netinet Message-ID: <200904112207.n3BM7KX3000808@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rwatson Date: Sat Apr 11 22:07:19 2009 New Revision: 190948 URL: http://svn.freebsd.org/changeset/base/190948 Log: Update stats in struct tcpstat using two new macros, TCPSTAT_ADD() and TCPSTAT_INC(), rather than directly manipulating the fields across the kernel. This will make it easier to change the implementation of these statistics, such as using per-CPU versions of the data structures. MFC after: 3 days Modified: head/sys/contrib/pf/net/pf.c head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c head/sys/netinet/tcp_hostcache.c head/sys/netinet/tcp_input.c head/sys/netinet/tcp_output.c head/sys/netinet/tcp_reass.c head/sys/netinet/tcp_sack.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_syncache.c head/sys/netinet/tcp_timer.c head/sys/netinet/tcp_timewait.c head/sys/netinet/tcp_usrreq.c head/sys/netinet/tcp_var.h Modified: head/sys/contrib/pf/net/pf.c ============================================================================== --- head/sys/contrib/pf/net/pf.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/contrib/pf/net/pf.c Sat Apr 11 22:07:19 2009 (r190948) @@ -6291,7 +6291,7 @@ pf_route(struct mbuf **m, struct pf_rule } /* Update relevant hardware checksum stats for TCP/UDP */ if (m0->m_pkthdr.csum_flags & M_TCPV4_CSUM_OUT) - V_tcpstat.tcps_outhwcsum++; + TCPSTAT_INC(tcpstat.tcps_outhwcsum); else if (m0->m_pkthdr.csum_flags & M_UDPV4_CSUM_OUT) V_udpstat.udps_outhwcsum++; error = (*ifp->if_output)(ifp, m0, sintosa(dst), NULL); @@ -6635,7 +6635,7 @@ pf_check_proto_cksum(struct mbuf *m, int case IPPROTO_TCP: { INIT_VNET_INET(curvnet); - V_tcpstat.tcps_rcvbadsum++; + TCPSTAT_INC(tcps_rcvbadsum); break; } case IPPROTO_UDP: @@ -6741,7 +6741,7 @@ pf_check_proto_cksum(struct mbuf *m, int m->m_pkthdr.csum_flags |= flag_bad; switch (p) { case IPPROTO_TCP: - V_tcpstat.tcps_rcvbadsum++; + TCPSTAT_INC(tcps_rcvbadsum); break; case IPPROTO_UDP: V_udpstat.udps_badsum++; Modified: head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c ============================================================================== --- head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c Sat Apr 11 22:07:19 2009 (r190948) @@ -3829,7 +3829,7 @@ socket_act_establish(struct socket *so, #endif toep->tp_state = tp->t_state; - V_tcpstat.tcps_connects++; + TCPSTAT_INC(tcps_connects); } Modified: head/sys/netinet/tcp_hostcache.c ============================================================================== --- head/sys/netinet/tcp_hostcache.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_hostcache.c Sat Apr 11 22:07:19 2009 (r190948) @@ -341,7 +341,7 @@ tcp_hc_insert(struct in_conninfo *inc) TAILQ_REMOVE(&hc_head->hch_bucket, hc_entry, rmx_q); V_tcp_hostcache.hashbase[hash].hch_length--; V_tcp_hostcache.cache_count--; - V_tcpstat.tcps_hc_bucketoverflow++; + TCPSTAT_INC(tcps_hc_bucketoverflow); #if 0 uma_zfree(V_tcp_hostcache.zone, hc_entry); #endif @@ -373,7 +373,7 @@ tcp_hc_insert(struct in_conninfo *inc) TAILQ_INSERT_HEAD(&hc_head->hch_bucket, hc_entry, rmx_q); V_tcp_hostcache.hashbase[hash].hch_length++; V_tcp_hostcache.cache_count++; - V_tcpstat.tcps_hc_added++; + TCPSTAT_INC(tcps_hc_added); return hc_entry; } @@ -508,7 +508,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_rtt = (hc_entry->rmx_rtt + hcml->rmx_rtt) / 2; - V_tcpstat.tcps_cachedrtt++; + TCPSTAT_INC(tcps_cachedrtt); } if (hcml->rmx_rttvar != 0) { if (hc_entry->rmx_rttvar == 0) @@ -516,7 +516,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_rttvar = (hc_entry->rmx_rttvar + hcml->rmx_rttvar) / 2; - V_tcpstat.tcps_cachedrttvar++; + TCPSTAT_INC(tcps_cachedrttvar); } if (hcml->rmx_ssthresh != 0) { if (hc_entry->rmx_ssthresh == 0) @@ -524,7 +524,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_ssthresh = (hc_entry->rmx_ssthresh + hcml->rmx_ssthresh) / 2; - V_tcpstat.tcps_cachedssthresh++; + TCPSTAT_INC(tcps_cachedssthresh); } if (hcml->rmx_bandwidth != 0) { if (hc_entry->rmx_bandwidth == 0) @@ -532,7 +532,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_bandwidth = (hc_entry->rmx_bandwidth + hcml->rmx_bandwidth) / 2; - /* V_tcpstat.tcps_cachedbandwidth++; */ + /* TCPSTAT_INC(tcps_cachedbandwidth); */ } if (hcml->rmx_cwnd != 0) { if (hc_entry->rmx_cwnd == 0) @@ -540,7 +540,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_cwnd = (hc_entry->rmx_cwnd + hcml->rmx_cwnd) / 2; - /* V_tcpstat.tcps_cachedcwnd++; */ + /* TCPSTAT_INC(tcps_cachedcwnd); */ } if (hcml->rmx_sendpipe != 0) { if (hc_entry->rmx_sendpipe == 0) @@ -548,7 +548,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_sendpipe = (hc_entry->rmx_sendpipe + hcml->rmx_sendpipe) /2; - /* V_tcpstat.tcps_cachedsendpipe++; */ + /* TCPSTAT_INC(tcps_cachedsendpipe); */ } if (hcml->rmx_recvpipe != 0) { if (hc_entry->rmx_recvpipe == 0) @@ -556,7 +556,7 @@ tcp_hc_update(struct in_conninfo *inc, s else hc_entry->rmx_recvpipe = (hc_entry->rmx_recvpipe + hcml->rmx_recvpipe) /2; - /* V_tcpstat.tcps_cachedrecvpipe++; */ + /* TCPSTAT_INC(tcps_cachedrecvpipe); */ } TAILQ_REMOVE(&hc_entry->rmx_head->hch_bucket, hc_entry, rmx_q); Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_input.c Sat Apr 11 22:07:19 2009 (r190948) @@ -352,7 +352,7 @@ tcp_input(struct mbuf *m, int off0) #endif to.to_flags = 0; - V_tcpstat.tcps_rcvtotal++; + TCPSTAT_INC(tcps_rcvtotal); if (isipv6) { #ifdef INET6 @@ -360,7 +360,7 @@ tcp_input(struct mbuf *m, int off0) ip6 = mtod(m, struct ip6_hdr *); tlen = sizeof(*ip6) + ntohs(ip6->ip6_plen) - off0; if (in6_cksum(m, IPPROTO_TCP, off0, tlen)) { - V_tcpstat.tcps_rcvbadsum++; + TCPSTAT_INC(tcps_rcvbadsum); goto drop; } th = (struct tcphdr *)((caddr_t)ip6 + off0); @@ -392,7 +392,7 @@ tcp_input(struct mbuf *m, int off0) if (m->m_len < sizeof (struct tcpiphdr)) { if ((m = m_pullup(m, sizeof (struct tcpiphdr))) == NULL) { - V_tcpstat.tcps_rcvshort++; + TCPSTAT_INC(tcps_rcvshort); return; } } @@ -426,7 +426,7 @@ tcp_input(struct mbuf *m, int off0) th->th_sum = in_cksum(m, len); } if (th->th_sum) { - V_tcpstat.tcps_rcvbadsum++; + TCPSTAT_INC(tcps_rcvbadsum); goto drop; } /* Re-initialization for later version check */ @@ -446,7 +446,7 @@ tcp_input(struct mbuf *m, int off0) */ off = th->th_off << 2; if (off < sizeof (struct tcphdr) || off > tlen) { - V_tcpstat.tcps_rcvbadoff++; + TCPSTAT_INC(tcps_rcvbadoff); goto drop; } tlen -= off; /* tlen is used instead of ti->ti_len */ @@ -461,7 +461,7 @@ tcp_input(struct mbuf *m, int off0) if (m->m_len < sizeof(struct ip) + off) { if ((m = m_pullup(m, sizeof (struct ip) + off)) == NULL) { - V_tcpstat.tcps_rcvshort++; + TCPSTAT_INC(tcps_rcvshort); return; } ip = mtod(m, struct ip *); @@ -860,7 +860,7 @@ findpcb: log(LOG_DEBUG, "%s; %s: Listen socket: " "SYN is missing, segment ignored\n", s, __func__); - V_tcpstat.tcps_badsyn++; + TCPSTAT_INC(tcps_badsyn); goto dropunlock; } /* @@ -872,7 +872,7 @@ findpcb: "SYN|ACK invalid, segment rejected\n", s, __func__); syncache_badack(&inc); /* XXX: Not needed! */ - V_tcpstat.tcps_badsyn++; + TCPSTAT_INC(tcps_badsyn); rstreason = BANDLIM_RST_OPENPORT; goto dropwithreset; } @@ -892,7 +892,7 @@ findpcb: log(LOG_DEBUG, "%s; %s: Listen socket: " "SYN|FIN segment ignored (based on " "sysctl setting)\n", s, __func__); - V_tcpstat.tcps_badsyn++; + TCPSTAT_INC(tcps_badsyn); goto dropunlock; } /* @@ -1155,13 +1155,13 @@ tcp_do_segment(struct mbuf *m, struct tc switch (iptos & IPTOS_ECN_MASK) { case IPTOS_ECN_CE: tp->t_flags |= TF_ECN_SND_ECE; - V_tcpstat.tcps_ecn_ce++; + TCPSTAT_INC(tcps_ecn_ce); break; case IPTOS_ECN_ECT0: - V_tcpstat.tcps_ecn_ect0++; + TCPSTAT_INC(tcps_ecn_ect0); break; case IPTOS_ECN_ECT1: - V_tcpstat.tcps_ecn_ect1++; + TCPSTAT_INC(tcps_ecn_ect1); break; } @@ -1174,7 +1174,7 @@ tcp_do_segment(struct mbuf *m, struct tc */ if ((thflags & TH_ECE) && SEQ_LEQ(th->th_ack, tp->snd_recover)) { - V_tcpstat.tcps_ecn_rcwnd++; + TCPSTAT_INC(tcps_ecn_rcwnd); tcp_congestion_exp(tp); } } @@ -1291,14 +1291,14 @@ tcp_do_segment(struct mbuf *m, struct tc __func__, ti_locked); ti_locked = TI_UNLOCKED; - ++V_tcpstat.tcps_predack; + TCPSTAT_INC(tcps_predack); /* * "bad retransmit" recovery. */ if (tp->t_rxtshift == 1 && ticks < tp->t_badrxtwin) { - ++V_tcpstat.tcps_sndrexmitbad; + TCPSTAT_INC(tcps_sndrexmitbad); tp->snd_cwnd = tp->snd_cwnd_prev; tp->snd_ssthresh = tp->snd_ssthresh_prev; @@ -1334,8 +1334,8 @@ tcp_do_segment(struct mbuf *m, struct tc } tcp_xmit_bandwidth_limit(tp, th->th_ack); acked = th->th_ack - tp->snd_una; - V_tcpstat.tcps_rcvackpack++; - V_tcpstat.tcps_rcvackbyte += acked; + TCPSTAT_INC(tcps_rcvackpack); + TCPSTAT_ADD(tcps_rcvackbyte, acked); sbdrop(&so->so_snd, acked); if (SEQ_GT(tp->snd_una, tp->snd_recover) && SEQ_LEQ(th->th_ack, tp->snd_recover)) @@ -1396,7 +1396,7 @@ tcp_do_segment(struct mbuf *m, struct tc /* Clean receiver SACK report if present */ if ((tp->t_flags & TF_SACK_PERMIT) && tp->rcv_numsacks) tcp_clean_sackreport(tp); - ++V_tcpstat.tcps_preddat; + TCPSTAT_INC(tcps_preddat); tp->rcv_nxt += tlen; /* * Pull snd_wl1 up to prevent seq wrap relative to @@ -1408,8 +1408,8 @@ tcp_do_segment(struct mbuf *m, struct tc * rcv_nxt. */ tp->rcv_up = tp->rcv_nxt; - V_tcpstat.tcps_rcvpack++; - V_tcpstat.tcps_rcvbyte += tlen; + TCPSTAT_INC(tcps_rcvpack); + TCPSTAT_ADD(tcps_rcvbyte, tlen); ND6_HINT(tp); /* Some progress has been made */ #ifdef TCPDEBUG if (so->so_options & SO_DEBUG) @@ -1559,7 +1559,7 @@ tcp_do_segment(struct mbuf *m, struct tc tp->irs = th->th_seq; tcp_rcvseqinit(tp); if (thflags & TH_ACK) { - V_tcpstat.tcps_connects++; + TCPSTAT_INC(tcps_connects); soisconnected(so); #ifdef MAC SOCK_LOCK(so); @@ -1585,7 +1585,7 @@ tcp_do_segment(struct mbuf *m, struct tc if ((thflags & TH_ECE) && V_tcp_do_ecn) { tp->t_flags |= TF_ECN_PERMIT; - V_tcpstat.tcps_ecn_shs++; + TCPSTAT_INC(tcps_ecn_shs); } /* @@ -1635,8 +1635,8 @@ tcp_do_segment(struct mbuf *m, struct tc m_adj(m, -todrop); tlen = tp->rcv_wnd; thflags &= ~TH_FIN; - V_tcpstat.tcps_rcvpackafterwin++; - V_tcpstat.tcps_rcvbyteafterwin += todrop; + TCPSTAT_INC(tcps_rcvpackafterwin); + TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop); } tp->snd_wl1 = th->th_seq - 1; tp->rcv_up = th->th_seq; @@ -1740,7 +1740,7 @@ tcp_do_segment(struct mbuf *m, struct tc SEQ_LEQ(th->th_seq, tp->rcv_nxt + 1)) && !(SEQ_GEQ(th->th_seq, tp->last_ack_sent - 1) && SEQ_LEQ(th->th_seq, tp->last_ack_sent + 1))) { - V_tcpstat.tcps_badrst++; + TCPSTAT_INC(tcps_badrst); goto drop; } /* FALLTHROUGH */ @@ -1755,7 +1755,7 @@ tcp_do_segment(struct mbuf *m, struct tc INP_INFO_WLOCK_ASSERT(&V_tcbinfo); tp->t_state = TCPS_CLOSED; - V_tcpstat.tcps_drops++; + TCPSTAT_INC(tcps_drops); tp = tcp_close(tp); break; @@ -1795,9 +1795,9 @@ tcp_do_segment(struct mbuf *m, struct tc */ tp->ts_recent = 0; } else { - V_tcpstat.tcps_rcvduppack++; - V_tcpstat.tcps_rcvdupbyte += tlen; - V_tcpstat.tcps_pawsdrop++; + TCPSTAT_INC(tcps_rcvduppack); + TCPSTAT_ADD(tcps_rcvdupbyte, tlen); + TCPSTAT_INC(tcps_pawsdrop); if (tlen) goto dropafterack; goto drop; @@ -1845,11 +1845,11 @@ tcp_do_segment(struct mbuf *m, struct tc */ tp->t_flags |= TF_ACKNOW; todrop = tlen; - V_tcpstat.tcps_rcvduppack++; - V_tcpstat.tcps_rcvdupbyte += todrop; + TCPSTAT_INC(tcps_rcvduppack); + TCPSTAT_ADD(tcps_rcvdupbyte, todrop); } else { - V_tcpstat.tcps_rcvpartduppack++; - V_tcpstat.tcps_rcvpartdupbyte += todrop; + TCPSTAT_INC(tcps_rcvpartduppack); + TCPSTAT_ADD(tcps_rcvpartdupbyte, todrop); } drop_hdrlen += todrop; /* drop from the top afterwards */ th->th_seq += todrop; @@ -1881,7 +1881,7 @@ tcp_do_segment(struct mbuf *m, struct tc free(s, M_TCPLOG); } tp = tcp_close(tp); - V_tcpstat.tcps_rcvafterclose++; + TCPSTAT_INC(tcps_rcvafterclose); rstreason = BANDLIM_UNLIMITED; goto dropwithreset; } @@ -1892,9 +1892,9 @@ tcp_do_segment(struct mbuf *m, struct tc */ todrop = (th->th_seq + tlen) - (tp->rcv_nxt + tp->rcv_wnd); if (todrop > 0) { - V_tcpstat.tcps_rcvpackafterwin++; + TCPSTAT_INC(tcps_rcvpackafterwin); if (todrop >= tlen) { - V_tcpstat.tcps_rcvbyteafterwin += tlen; + TCPSTAT_ADD(tcps_rcvbyteafterwin, tlen); /* * If window is closed can only take segments at * window edge, and have to drop data and PUSH from @@ -1904,11 +1904,11 @@ tcp_do_segment(struct mbuf *m, struct tc */ if (tp->rcv_wnd == 0 && th->th_seq == tp->rcv_nxt) { tp->t_flags |= TF_ACKNOW; - V_tcpstat.tcps_rcvwinprobe++; + TCPSTAT_INC(tcps_rcvwinprobe); } else goto dropafterack; } else - V_tcpstat.tcps_rcvbyteafterwin += todrop; + TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop); m_adj(m, -todrop); tlen -= todrop; thflags &= ~(TH_PUSH|TH_FIN); @@ -1981,7 +1981,7 @@ tcp_do_segment(struct mbuf *m, struct tc */ case TCPS_SYN_RECEIVED: - V_tcpstat.tcps_connects++; + TCPSTAT_INC(tcps_connects); soisconnected(so); /* Do window scaling? */ if ((tp->t_flags & (TF_RCVD_SCALE|TF_REQ_SCALE)) == @@ -2027,7 +2027,7 @@ tcp_do_segment(struct mbuf *m, struct tc case TCPS_CLOSING: case TCPS_LAST_ACK: if (SEQ_GT(th->th_ack, tp->snd_max)) { - V_tcpstat.tcps_rcvacktoomuch++; + TCPSTAT_INC(tcps_rcvacktoomuch); goto dropafterack; } if ((tp->t_flags & TF_SACK_PERMIT) && @@ -2036,7 +2036,7 @@ tcp_do_segment(struct mbuf *m, struct tc tcp_sack_doack(tp, &to, th->th_ack); if (SEQ_LEQ(th->th_ack, tp->snd_una)) { if (tlen == 0 && tiwin == tp->snd_wnd) { - V_tcpstat.tcps_rcvdupack++; + TCPSTAT_INC(tcps_rcvdupack); /* * If we have outstanding data (other than * a window probe), this is a completely @@ -2119,7 +2119,8 @@ tcp_do_segment(struct mbuf *m, struct tc tcp_timer_activate(tp, TT_REXMT, 0); tp->t_rtttime = 0; if (tp->t_flags & TF_SACK_PERMIT) { - V_tcpstat.tcps_sack_recovery_episode++; + TCPSTAT_INC( + tcps_sack_recovery_episode); tp->sack_newdata = tp->snd_nxt; tp->snd_cwnd = tp->t_maxseg; (void) tcp_output(tp); @@ -2241,8 +2242,8 @@ process_ACK: INP_WLOCK_ASSERT(tp->t_inpcb); acked = th->th_ack - tp->snd_una; - V_tcpstat.tcps_rcvackpack++; - V_tcpstat.tcps_rcvackbyte += acked; + TCPSTAT_INC(tcps_rcvackpack); + TCPSTAT_ADD(tcps_rcvackbyte, acked); /* * If we just performed our first retransmit, and the ACK @@ -2252,7 +2253,7 @@ process_ACK: * we left off. */ if (tp->t_rxtshift == 1 && ticks < tp->t_badrxtwin) { - ++V_tcpstat.tcps_sndrexmitbad; + TCPSTAT_INC(tcps_sndrexmitbad); tp->snd_cwnd = tp->snd_cwnd_prev; tp->snd_ssthresh = tp->snd_ssthresh_prev; tp->snd_recover = tp->snd_recover_prev; @@ -2476,7 +2477,7 @@ step6: /* keep track of pure window updates */ if (tlen == 0 && tp->snd_wl2 == th->th_ack && tiwin > tp->snd_wnd) - V_tcpstat.tcps_rcvwinupd++; + TCPSTAT_INC(tcps_rcvwinupd); tp->snd_wnd = tiwin; tp->snd_wl1 = th->th_seq; tp->snd_wl2 = th->th_ack; @@ -2586,8 +2587,8 @@ dodata: /* XXX */ tp->t_flags |= TF_ACKNOW; tp->rcv_nxt += tlen; thflags = th->th_flags & TH_FIN; - V_tcpstat.tcps_rcvpack++; - V_tcpstat.tcps_rcvbyte += tlen; + TCPSTAT_INC(tcps_rcvpack); + TCPSTAT_ADD(tcps_rcvbyte, tlen); ND6_HINT(tp); SOCKBUF_LOCK(&so->so_rcv); if (so->so_rcv.sb_state & SBS_CANTRCVMORE) @@ -2940,7 +2941,7 @@ tcp_dooptions(struct tcpopt *to, u_char to->to_flags |= TOF_SACK; to->to_nsacks = (optlen - 2) / TCPOLEN_SACK; to->to_sacks = cp + 2; - V_tcpstat.tcps_sack_rcv_blocks++; + TCPSTAT_INC(tcps_sack_rcv_blocks); break; default: continue; @@ -2995,7 +2996,7 @@ tcp_xmit_timer(struct tcpcb *tp, int rtt INP_WLOCK_ASSERT(tp->t_inpcb); - V_tcpstat.tcps_rttupdated++; + TCPSTAT_INC(tcps_rttupdated); tp->t_rttupdated++; if (tp->t_srtt != 0) { /* @@ -3317,10 +3318,10 @@ tcp_mss(struct tcpcb *tp, int offer) if (tp->t_srtt == 0 && (rtt = metrics.rmx_rtt)) { tp->t_srtt = rtt; tp->t_rttbest = tp->t_srtt + TCP_RTT_SCALE; - V_tcpstat.tcps_usedrtt++; + TCPSTAT_INC(tcps_usedrtt); if (metrics.rmx_rttvar) { tp->t_rttvar = metrics.rmx_rttvar; - V_tcpstat.tcps_usedrttvar++; + TCPSTAT_INC(tcps_usedrttvar); } else { /* default variation is +- 1 rtt */ tp->t_rttvar = @@ -3338,7 +3339,7 @@ tcp_mss(struct tcpcb *tp, int offer) * threshold to no less than 2*mss. */ tp->snd_ssthresh = max(2 * mss, metrics.rmx_ssthresh); - V_tcpstat.tcps_usedssthresh++; + TCPSTAT_INC(tcps_usedssthresh); } if (metrics.rmx_bandwidth) tp->snd_bandwidth = metrics.rmx_bandwidth; Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_output.c Sat Apr 11 22:07:19 2009 (r190948) @@ -264,9 +264,9 @@ again: if (len > 0) { sack_rxmit = 1; sendalot = 1; - V_tcpstat.tcps_sack_rexmits++; - V_tcpstat.tcps_sack_rexmit_bytes += - min(len, tp->t_maxseg); + TCPSTAT_INC(tcps_sack_rexmits); + TCPSTAT_ADD(tcps_sack_rexmit_bytes, + min(len, tp->t_maxseg)); } } after_sack_rexmit: @@ -768,13 +768,13 @@ send: u_int moff; if ((tp->t_flags & TF_FORCEDATA) && len == 1) - V_tcpstat.tcps_sndprobe++; + TCPSTAT_INC(tcps_sndprobe); else if (SEQ_LT(tp->snd_nxt, tp->snd_max) || sack_rxmit) { - V_tcpstat.tcps_sndrexmitpack++; - V_tcpstat.tcps_sndrexmitbyte += len; + TCPSTAT_INC(tcps_sndrexmitpack); + TCPSTAT_ADD(tcps_sndrexmitbyte, len); } else { - V_tcpstat.tcps_sndpack++; - V_tcpstat.tcps_sndbyte += len; + TCPSTAT_INC(tcps_sndpack); + TCPSTAT_ADD(tcps_sndbyte, len); } #ifdef notyet if ((m = m_copypack(so->so_snd.sb_mb, off, @@ -841,13 +841,13 @@ send: } else { SOCKBUF_UNLOCK(&so->so_snd); if (tp->t_flags & TF_ACKNOW) - V_tcpstat.tcps_sndacks++; + TCPSTAT_INC(tcps_sndacks); else if (flags & (TH_SYN|TH_FIN|TH_RST)) - V_tcpstat.tcps_sndctrl++; + TCPSTAT_INC(tcps_sndctrl); else if (SEQ_GT(tp->snd_up, tp->snd_una)) - V_tcpstat.tcps_sndurg++; + TCPSTAT_INC(tcps_sndurg); else - V_tcpstat.tcps_sndwinup++; + TCPSTAT_INC(tcps_sndwinup); MGETHDR(m, M_DONTWAIT, MT_DATA); if (m == NULL) { @@ -919,7 +919,7 @@ send: else #endif ip->ip_tos |= IPTOS_ECN_ECT0; - V_tcpstat.tcps_ecn_ect0++; + TCPSTAT_INC(tcps_ecn_ect0); } /* @@ -1085,7 +1085,7 @@ send: if (tp->t_rtttime == 0) { tp->t_rtttime = ticks; tp->t_rtseq = startseq; - V_tcpstat.tcps_segstimed++; + TCPSTAT_INC(tcps_segstimed); } } @@ -1262,7 +1262,7 @@ out: return (error); } } - V_tcpstat.tcps_sndtotal++; + TCPSTAT_INC(tcps_sndtotal); /* * Data sent (as far as we can tell). @@ -1437,7 +1437,7 @@ tcp_addoptions(struct tcpopt *to, u_char optlen += TCPOLEN_SACK; sack++; } - V_tcpstat.tcps_sack_send_blocks++; + TCPSTAT_INC(tcps_sack_send_blocks); break; } default: Modified: head/sys/netinet/tcp_reass.c ============================================================================== --- head/sys/netinet/tcp_reass.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_reass.c Sat Apr 11 22:07:19 2009 (r190948) @@ -172,7 +172,7 @@ tcp_reass(struct tcpcb *tp, struct tcphd (V_tcp_reass_qsize + 1 >= V_tcp_reass_maxseg || tp->t_segqlen >= V_tcp_reass_maxqlen)) { V_tcp_reass_overflows++; - V_tcpstat.tcps_rcvmemdrop++; + TCPSTAT_INC(tcps_rcvmemdrop); m_freem(m); *tlenp = 0; return (0); @@ -184,7 +184,7 @@ tcp_reass(struct tcpcb *tp, struct tcphd */ te = uma_zalloc(V_tcp_reass_zone, M_NOWAIT); if (te == NULL) { - V_tcpstat.tcps_rcvmemdrop++; + TCPSTAT_INC(tcps_rcvmemdrop); m_freem(m); *tlenp = 0; return (0); @@ -212,8 +212,8 @@ tcp_reass(struct tcpcb *tp, struct tcphd i = p->tqe_th->th_seq + p->tqe_len - th->th_seq; if (i > 0) { if (i >= *tlenp) { - V_tcpstat.tcps_rcvduppack++; - V_tcpstat.tcps_rcvdupbyte += *tlenp; + TCPSTAT_INC(tcps_rcvduppack); + TCPSTAT_ADD(tcps_rcvdupbyte, *tlenp); m_freem(m); uma_zfree(V_tcp_reass_zone, te); tp->t_segqlen--; @@ -231,8 +231,8 @@ tcp_reass(struct tcpcb *tp, struct tcphd th->th_seq += i; } } - V_tcpstat.tcps_rcvoopack++; - V_tcpstat.tcps_rcvoobyte += *tlenp; + TCPSTAT_INC(tcps_rcvoopack); + TCPSTAT_ADD(tcps_rcvoobyte, *tlenp); /* * While we overlap succeeding segments trim them or, Modified: head/sys/netinet/tcp_sack.c ============================================================================== --- head/sys/netinet/tcp_sack.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_sack.c Sat Apr 11 22:07:19 2009 (r190948) @@ -260,7 +260,7 @@ tcp_sackhole_alloc(struct tcpcb *tp, tcp if (tp->snd_numholes >= V_tcp_sack_maxholes || V_tcp_sack_globalholes >= V_tcp_sack_globalmaxholes) { - V_tcpstat.tcps_sack_sboverflow++; + TCPSTAT_INC(tcps_sack_sboverflow); return NULL; } Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_subr.c Sat Apr 11 22:07:19 2009 (r190948) @@ -764,9 +764,9 @@ tcp_drop(struct tcpcb *tp, int errno) if (TCPS_HAVERCVDSYN(tp->t_state)) { tp->t_state = TCPS_CLOSED; (void) tcp_output_reset(tp); - V_tcpstat.tcps_drops++; + TCPSTAT_INC(tcps_drops); } else - V_tcpstat.tcps_conndrops++; + TCPSTAT_INC(tcps_conndrops); if (errno == ETIMEDOUT && tp->t_softerror) errno = tp->t_softerror; so->so_error = errno; @@ -889,7 +889,7 @@ tcp_close(struct tcpcb *tp) if (tp->t_state == TCPS_LISTEN) tcp_offload_listen_close(tp); in_pcbdrop(inp); - V_tcpstat.tcps_closed++; + TCPSTAT_INC(tcps_closed); KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); so = inp->inp_socket; soisdisconnected(so); @@ -1638,7 +1638,7 @@ tcp_mtudisc(struct inpcb *inp, int errno tp->t_maxseg = so->so_snd.sb_hiwat; SOCKBUF_UNLOCK(&so->so_snd); - V_tcpstat.tcps_mturesent++; + TCPSTAT_INC(tcps_mturesent); tp->t_rtttime = 0; tp->snd_nxt = tp->snd_una; tcp_free_sackholes(tp); Modified: head/sys/netinet/tcp_syncache.c ============================================================================== --- head/sys/netinet/tcp_syncache.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_syncache.c Sat Apr 11 22:07:19 2009 (r190948) @@ -294,7 +294,7 @@ syncache_insert(struct syncache *sc, str ("sch->sch_length incorrect")); sc2 = TAILQ_LAST(&sch->sch_bucket, sch_head); syncache_drop(sc2, sch); - V_tcpstat.tcps_sc_bucketoverflow++; + TCPSTAT_INC(tcps_sc_bucketoverflow); } /* Put it into the bucket. */ @@ -309,7 +309,7 @@ syncache_insert(struct syncache *sc, str SCH_UNLOCK(sch); V_tcp_syncache.cache_count++; - V_tcpstat.tcps_sc_added++; + TCPSTAT_INC(tcps_sc_added); } /* @@ -398,7 +398,7 @@ syncache_timer(void *xsch) free(s, M_TCPLOG); } syncache_drop(sc, sch); - V_tcpstat.tcps_sc_stale++; + TCPSTAT_INC(tcps_sc_stale); continue; } if ((s = tcp_log_addrs(&sc->sc_inc, NULL, NULL, NULL))) { @@ -409,7 +409,7 @@ syncache_timer(void *xsch) } (void) syncache_respond(sc); - V_tcpstat.tcps_sc_retransmitted++; + TCPSTAT_INC(tcps_sc_retransmitted); syncache_timeout(sc, sch, 0); } if (!TAILQ_EMPTY(&(sch)->sch_bucket)) @@ -489,7 +489,7 @@ syncache_chkrst(struct in_conninfo *inc, if ((s = tcp_log_addrs(inc, th, NULL, NULL))) log(LOG_DEBUG, "%s; %s: Spurious RST with ACK, SYN or " "FIN flag set, segment ignored\n", s, __func__); - V_tcpstat.tcps_badrst++; + TCPSTAT_INC(tcps_badrst); goto done; } @@ -506,7 +506,7 @@ syncache_chkrst(struct in_conninfo *inc, log(LOG_DEBUG, "%s; %s: Spurious RST without matching " "syncache entry (possibly syncookie only), " "segment ignored\n", s, __func__); - V_tcpstat.tcps_badrst++; + TCPSTAT_INC(tcps_badrst); goto done; } @@ -530,13 +530,13 @@ syncache_chkrst(struct in_conninfo *inc, log(LOG_DEBUG, "%s; %s: Our SYN|ACK was rejected, " "connection attempt aborted by remote endpoint\n", s, __func__); - V_tcpstat.tcps_sc_reset++; + TCPSTAT_INC(tcps_sc_reset); } else { if ((s = tcp_log_addrs(inc, th, NULL, NULL))) log(LOG_DEBUG, "%s; %s: RST with invalid SEQ %u != " "IRS %u (+WND %u), segment ignored\n", s, __func__, th->th_seq, sc->sc_irs, sc->sc_wnd); - V_tcpstat.tcps_badrst++; + TCPSTAT_INC(tcps_badrst); } done: @@ -556,7 +556,7 @@ syncache_badack(struct in_conninfo *inc) SCH_LOCK_ASSERT(sch); if (sc != NULL) { syncache_drop(sc, sch); - V_tcpstat.tcps_sc_badack++; + TCPSTAT_INC(tcps_sc_badack); } SCH_UNLOCK(sch); } @@ -590,7 +590,7 @@ syncache_unreach(struct in_conninfo *inc goto done; } syncache_drop(sc, sch); - V_tcpstat.tcps_sc_unreach++; + TCPSTAT_INC(tcps_sc_unreach); done: SCH_UNLOCK(sch); } @@ -622,7 +622,7 @@ syncache_socket(struct syncache *sc, str * have the peer retransmit its SYN again after its * RTO and try again. */ - V_tcpstat.tcps_listendrop++; + TCPSTAT_INC(tcps_listendrop); if ((s = tcp_log_addrs(&sc->sc_inc, NULL, NULL, NULL))) { log(LOG_DEBUG, "%s; %s: Socket create failed " "due to limits or memory shortage\n", @@ -792,7 +792,7 @@ syncache_socket(struct syncache *sc, str INP_WUNLOCK(inp); - V_tcpstat.tcps_accepts++; + TCPSTAT_INC(tcps_accepts); return (so); abort: @@ -912,9 +912,9 @@ syncache_expand(struct in_conninfo *inc, *lsop = syncache_socket(sc, *lsop, m); if (*lsop == NULL) - V_tcpstat.tcps_sc_aborted++; + TCPSTAT_INC(tcps_sc_aborted); else - V_tcpstat.tcps_sc_completed++; + TCPSTAT_INC(tcps_sc_completed); /* how do we find the inp for the new socket? */ if (sc != &scs) @@ -1046,7 +1046,7 @@ _syncache_add(struct in_conninfo *inc, s sc->sc_tu->tu_syncache_event(TOE_SC_ENTRY_PRESENT, sc->sc_toepcb); #endif - V_tcpstat.tcps_sc_dupsyn++; + TCPSTAT_INC(tcps_sc_dupsyn); if (ipopts) { /* * If we were remembering a previous source route, @@ -1081,8 +1081,8 @@ _syncache_add(struct in_conninfo *inc, s if (!TOEPCB_ISSET(sc) && syncache_respond(sc) == 0) { sc->sc_rxmits = 0; syncache_timeout(sc, sch, 1); - V_tcpstat.tcps_sndacks++; - V_tcpstat.tcps_sndtotal++; + TCPSTAT_INC(tcps_sndacks); + TCPSTAT_INC(tcps_sndtotal); } SCH_UNLOCK(sch); goto done; @@ -1095,7 +1095,7 @@ _syncache_add(struct in_conninfo *inc, s * Treat this as if the cache was full; drop the oldest * entry and insert the new one. */ - V_tcpstat.tcps_sc_zonefail++; + TCPSTAT_INC(tcps_sc_zonefail); if ((sc = TAILQ_LAST(&sch->sch_bucket, sch_head)) != NULL) syncache_drop(sc, sch); sc = uma_zalloc(V_tcp_syncache.zone, M_NOWAIT | M_ZERO); @@ -1233,12 +1233,12 @@ _syncache_add(struct in_conninfo *inc, s syncache_free(sc); else if (sc != &scs) syncache_insert(sc, sch); /* locks and unlocks sch */ - V_tcpstat.tcps_sndacks++; - V_tcpstat.tcps_sndtotal++; + TCPSTAT_INC(tcps_sndacks); + TCPSTAT_INC(tcps_sndtotal); } else { if (sc != &scs) syncache_free(sc); - V_tcpstat.tcps_sc_dropped++; + TCPSTAT_INC(tcps_sc_dropped); } done: @@ -1351,7 +1351,7 @@ syncache_respond(struct syncache *sc) if (sc->sc_flags & SCF_ECN) { th->th_flags |= TH_ECE; - V_tcpstat.tcps_ecn_shs++; + TCPSTAT_INC(tcps_ecn_shs); } /* Tack on the TCP options. */ @@ -1584,7 +1584,7 @@ syncookie_generate(struct syncache_head sc->sc_tsoff = data - ticks; /* after XOR */ } - V_tcpstat.tcps_sc_sendcookie++; + TCPSTAT_INC(tcps_sc_sendcookie); } static struct syncache * @@ -1687,7 +1687,7 @@ syncookie_lookup(struct in_conninfo *inc sc->sc_rxmits = 0; sc->sc_peer_mss = tcp_sc_msstab[mss]; - V_tcpstat.tcps_sc_recvcookie++; + TCPSTAT_INC(tcps_sc_recvcookie); return (sc); } Modified: head/sys/netinet/tcp_timer.c ============================================================================== --- head/sys/netinet/tcp_timer.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_timer.c Sat Apr 11 22:07:19 2009 (r190948) @@ -191,7 +191,7 @@ tcp_timer_delack(void *xtp) callout_deactivate(&tp->t_timers->tt_delack); tp->t_flags |= TF_ACKNOW; - V_tcpstat.tcps_delack++; + TCPSTAT_INC(tcps_delack); (void) tcp_output(tp); INP_WUNLOCK(inp); CURVNET_RESTORE(); @@ -250,7 +250,7 @@ tcp_timer_2msl(void *xtp) if (tcp_fast_finwait2_recycle && tp->t_state == TCPS_FIN_WAIT_2 && tp->t_inpcb && tp->t_inpcb->inp_socket && (tp->t_inpcb->inp_socket->so_rcv.sb_state & SBS_CANTRCVMORE)) { - V_tcpstat.tcps_finwait2_drops++; + TCPSTAT_INC(tcps_finwait2_drops); tp = tcp_close(tp); } else { if (tp->t_state != TCPS_TIME_WAIT && @@ -313,7 +313,7 @@ tcp_timer_keep(void *xtp) * Keep-alive timer went off; send something * or drop connection if idle for too long. */ - V_tcpstat.tcps_keeptimeo++; + TCPSTAT_INC(tcps_keeptimeo); if (tp->t_state < TCPS_ESTABLISHED) goto dropit; if ((always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && @@ -332,7 +332,7 @@ tcp_timer_keep(void *xtp) * by the protocol spec, this requires the * correspondent TCP to respond. */ - V_tcpstat.tcps_keepprobe++; + TCPSTAT_INC(tcps_keepprobe); t_template = tcpip_maketemplate(inp); if (t_template) { tcp_respond(tp, t_template->tt_ipgen, @@ -355,7 +355,7 @@ tcp_timer_keep(void *xtp) return; dropit: - V_tcpstat.tcps_keepdrops++; + TCPSTAT_INC(tcps_keepdrops); tp = tcp_drop(tp, ETIMEDOUT); #ifdef TCPDEBUG @@ -409,7 +409,7 @@ tcp_timer_persist(void *xtp) * Persistance timer into zero window. * Force a byte to be output, if possible. */ - V_tcpstat.tcps_persisttimeo++; + TCPSTAT_INC(tcps_persisttimeo); /* * Hack: if the peer is dead/unreachable, we do not * time out if the window is closed. After a full @@ -420,7 +420,7 @@ tcp_timer_persist(void *xtp) if (tp->t_rxtshift == TCP_MAXRXTSHIFT && ((ticks - tp->t_rcvtime) >= tcp_maxpersistidle || (ticks - tp->t_rcvtime) >= TCP_REXMTVAL(tp) * tcp_totbackoff)) { - V_tcpstat.tcps_persistdrop++; + TCPSTAT_INC(tcps_persistdrop); tp = tcp_drop(tp, ETIMEDOUT); goto out; } @@ -487,7 +487,7 @@ tcp_timer_rexmt(void * xtp) */ if (++tp->t_rxtshift > TCP_MAXRXTSHIFT) { tp->t_rxtshift = TCP_MAXRXTSHIFT; - V_tcpstat.tcps_timeoutdrop++; + TCPSTAT_INC(tcps_timeoutdrop); tp = tcp_drop(tp, tp->t_softerror ? tp->t_softerror : ETIMEDOUT); goto out; @@ -513,7 +513,7 @@ tcp_timer_rexmt(void * xtp) tp->t_flags &= ~TF_WASFRECOVERY; tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); } - V_tcpstat.tcps_rexmttimeo++; + TCPSTAT_INC(tcps_rexmttimeo); if (tp->t_state == TCPS_SYN_SENT) rexmt = TCP_REXMTVAL(tp) * tcp_syn_backoff[tp->t_rxtshift]; else Modified: head/sys/netinet/tcp_timewait.c ============================================================================== --- head/sys/netinet/tcp_timewait.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_timewait.c Sat Apr 11 22:07:19 2009 (r190948) @@ -472,7 +472,7 @@ tcp_twclose(struct tcptw *tw, int reuse) } } else in_pcbfree(inp); - V_tcpstat.tcps_closed++; + TCPSTAT_INC(tcps_closed); crfree(tw->tw_cred); tw->tw_cred = NULL; if (reuse) @@ -567,10 +567,10 @@ tcp_twrespond(struct tcptw *tw, int flag NULL, inp); } if (flags & TH_ACK) - V_tcpstat.tcps_sndacks++; + TCPSTAT_INC(tcps_sndacks); else - V_tcpstat.tcps_sndctrl++; - V_tcpstat.tcps_sndtotal++; + TCPSTAT_INC(tcps_sndctrl); + TCPSTAT_INC(tcps_sndtotal); return (error); } Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Sat Apr 11 22:01:40 2009 (r190947) +++ head/sys/netinet/tcp_usrreq.c Sat Apr 11 22:07:19 2009 (r190948) @@ -1113,7 +1113,7 @@ tcp_connect(struct tcpcb *tp, struct soc tp->request_r_scale++; soisconnecting(so); - V_tcpstat.tcps_connattempt++; + TCPSTAT_INC(tcps_connattempt); tp->t_state = TCPS_SYN_SENT; tcp_timer_activate(tp, TT_KEEP, tcp_keepinit); tp->iss = tcp_new_isn(tp); @@ -1177,7 +1177,7 @@ tcp6_connect(struct tcpcb *tp, struct so tp->request_r_scale++; soisconnecting(so); - V_tcpstat.tcps_connattempt++; + TCPSTAT_INC(tcps_connattempt); tp->t_state = TCPS_SYN_SENT; tcp_timer_activate(tp, TT_KEEP, tcp_keepinit); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904112207.n3BM7KX3000808>