Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Mar 2020 15:37:42 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r358911 - in head/sys/netinet: . tcp_stacks
Message-ID:  <202003121537.02CFbgtd088276@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Thu Mar 12 15:37:41 2020
New Revision: 358911
URL: https://svnweb.freebsd.org/changeset/base/358911

Log:
  Use KMOD_TCPSTAT_INC instead of TCPSTAT_INC for RACK and BBR, since
  these are kernel modules. Also add a KMOD_TCPSTAT_ADD and use that
  instead of TCPSTAT_ADD.
  
  Reviewed by:		jtl@, rrs@
  MFC after:		1 week
  Sponsored by:		Netflix, Inc.
  Differential Revision:	https://reviews.freebsd.org/D23904

Modified:
  head/sys/netinet/tcp_input.c
  head/sys/netinet/tcp_stacks/bbr.c
  head/sys/netinet/tcp_stacks/rack.c
  head/sys/netinet/tcp_stacks/rack_bbr_common.c
  head/sys/netinet/tcp_var.h

Modified: head/sys/netinet/tcp_input.c
==============================================================================
--- head/sys/netinet/tcp_input.c	Thu Mar 12 14:01:17 2020	(r358910)
+++ head/sys/netinet/tcp_input.c	Thu Mar 12 15:37:41 2020	(r358911)
@@ -266,14 +266,14 @@ VNET_SYSUNINIT(tcp_vnet_uninit, SI_SUB_PROTO_IFATTACHD
 #endif /* VIMAGE */
 
 /*
- * Kernel module interface for updating tcpstat.  The argument is an index
+ * Kernel module interface for updating tcpstat.  The first argument is an index
  * into tcpstat treated as an array.
  */
 void
-kmod_tcpstat_inc(int statnum)
+kmod_tcpstat_add(int statnum, int val)
 {
 
-	counter_u64_add(VNET(tcpstat)[statnum], 1);
+	counter_u64_add(VNET(tcpstat)[statnum], val);
 }
 
 #ifdef TCP_HHOOK

Modified: head/sys/netinet/tcp_stacks/bbr.c
==============================================================================
--- head/sys/netinet/tcp_stacks/bbr.c	Thu Mar 12 14:01:17 2020	(r358910)
+++ head/sys/netinet/tcp_stacks/bbr.c	Thu Mar 12 15:37:41 2020	(r358911)
@@ -1866,7 +1866,7 @@ bbr_progress_timeout_check(struct tcp_bbr *bbr)
 			bbr_log_progress_event(bbr, bbr->rc_tp, ticks, PROGRESS_DROP, __LINE__);
 			BBR_STAT_INC(bbr_progress_drops);
 #ifdef NETFLIX_STATS
-			TCPSTAT_INC(tcps_progdrops);
+			KMOD_TCPSTAT_INC(tcps_progdrops);
 #endif
 			return (1);
 		}
@@ -4067,7 +4067,7 @@ bbr_cong_signal(struct tcpcb *tp, struct tcphdr *th, u
 		}
 		break;
 	case CC_RTO_ERR:
-		TCPSTAT_INC(tcps_sndrexmitbad);
+		KMOD_TCPSTAT_INC(tcps_sndrexmitbad);
 		/* RTO was unnecessary, so reset everything. */
 		bbr_reset_lt_bw_sampling(bbr, bbr->r_ctl.rc_rcvtime);
 		if (bbr->rc_bbr_state != BBR_STATE_PROBE_RTT) {
@@ -4808,7 +4808,7 @@ bbr_timeout_delack(struct tcpcb *tp, struct tcp_bbr *b
 	bbr_log_to_event(bbr, cts, BBR_TO_FRM_DELACK);
 	tp->t_flags &= ~TF_DELACK;
 	tp->t_flags |= TF_ACKNOW;
-	TCPSTAT_INC(tcps_delack);
+	KMOD_TCPSTAT_INC(tcps_delack);
 	bbr->r_ctl.rc_hpts_flags &= ~PACE_TMR_DELACK;
 	return (0);
 }
@@ -4840,7 +4840,7 @@ bbr_timeout_persist(struct tcpcb *tp, struct tcp_bbr *
 	 */
 	bbr_log_to_event(bbr, cts, BBR_TO_FRM_PERSIST);
 	bbr->r_ctl.rc_hpts_flags &= ~PACE_TMR_PERSIT;
-	TCPSTAT_INC(tcps_persisttimeo);
+	KMOD_TCPSTAT_INC(tcps_persisttimeo);
 	/*
 	 * Have we exceeded the user specified progress time?
 	 */
@@ -4857,7 +4857,7 @@ bbr_timeout_persist(struct tcpcb *tp, struct tcp_bbr *
 	if (tp->t_rxtshift == TCP_MAXRXTSHIFT &&
 	    (ticks - tp->t_rcvtime >= tcp_maxpersistidle ||
 	    ticks - tp->t_rcvtime >= TCP_REXMTVAL(tp) * tcp_totbackoff)) {
-		TCPSTAT_INC(tcps_persistdrop);
+		KMOD_TCPSTAT_INC(tcps_persistdrop);
 		tcp_set_inp_to_drop(bbr->rc_inp, ETIMEDOUT);
 		goto out;
 	}
@@ -4873,7 +4873,7 @@ bbr_timeout_persist(struct tcpcb *tp, struct tcp_bbr *
 	 */
 	if (tp->t_state > TCPS_CLOSE_WAIT &&
 	    (ticks - tp->t_rcvtime) >= TCPTV_PERSMAX) {
-		TCPSTAT_INC(tcps_persistdrop);
+		KMOD_TCPSTAT_INC(tcps_persistdrop);
 		tcp_set_inp_to_drop(bbr->rc_inp, ETIMEDOUT);
 		goto out;
 	}
@@ -4916,7 +4916,7 @@ bbr_timeout_keepalive(struct tcpcb *tp, struct tcp_bbr
 	 * Keep-alive timer went off; send something or drop connection if
 	 * idle for too long.
 	 */
-	TCPSTAT_INC(tcps_keeptimeo);
+	KMOD_TCPSTAT_INC(tcps_keeptimeo);
 	if (tp->t_state < TCPS_ESTABLISHED)
 		goto dropit;
 	if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) &&
@@ -4933,7 +4933,7 @@ bbr_timeout_keepalive(struct tcpcb *tp, struct tcp_bbr
 		 * protocol spec, this requires the correspondent TCP to
 		 * respond.
 		 */
-		TCPSTAT_INC(tcps_keepprobe);
+		KMOD_TCPSTAT_INC(tcps_keepprobe);
 		t_template = tcpip_maketemplate(inp);
 		if (t_template) {
 			tcp_respond(tp, t_template->tt_ipgen,
@@ -4945,7 +4945,7 @@ bbr_timeout_keepalive(struct tcpcb *tp, struct tcp_bbr
 	bbr_start_hpts_timer(bbr, tp, cts, 4, 0, 0);
 	return (1);
 dropit:
-	TCPSTAT_INC(tcps_keepdrops);
+	KMOD_TCPSTAT_INC(tcps_keepdrops);
 	tcp_set_inp_to_drop(bbr->rc_inp, ETIMEDOUT);
 	return (1);
 }
@@ -5074,7 +5074,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 	}
 	if (tp->t_rxtshift > TCP_MAXRXTSHIFT) {
 		tp->t_rxtshift = TCP_MAXRXTSHIFT;
-		TCPSTAT_INC(tcps_timeoutdrop);
+		KMOD_TCPSTAT_INC(tcps_timeoutdrop);
 		retval = 1;
 		tcp_set_inp_to_drop(bbr->rc_inp,
 		    (tp->t_softerror ? (uint16_t) tp->t_softerror : ETIMEDOUT));
@@ -5111,7 +5111,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 		tp->snd_cwnd = tp->t_maxseg - bbr->rc_last_options;
 		tp->t_flags &= ~TF_PREVVALID;
 	}
-	TCPSTAT_INC(tcps_rexmttimeo);
+	KMOD_TCPSTAT_INC(tcps_rexmttimeo);
 	if ((tp->t_state == TCPS_SYN_SENT) ||
 	    (tp->t_state == TCPS_SYN_RECEIVED))
 		rexmt = USEC_2_TICKS(BBR_INITIAL_RTO) * tcp_backoff[tp->t_rxtshift];
@@ -5168,7 +5168,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 			    tp->t_maxseg > V_tcp_v6pmtud_blackhole_mss) {
 				/* Use the sysctl tuneable blackhole MSS. */
 				tp->t_maxseg = V_tcp_v6pmtud_blackhole_mss;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated);
 			} else if (isipv6) {
 				/* Use the default MSS. */
 				tp->t_maxseg = V_tcp_v6mssdflt;
@@ -5177,7 +5177,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 				 * to minmss.
 				 */
 				tp->t_flags2 &= ~TF2_PLPMTU_PMTUD;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
 			}
 #endif
 #if defined(INET6) && defined(INET)
@@ -5187,7 +5187,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 			if (tp->t_maxseg > V_tcp_pmtud_blackhole_mss) {
 				/* Use the sysctl tuneable blackhole MSS. */
 				tp->t_maxseg = V_tcp_pmtud_blackhole_mss;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated);
 			} else {
 				/* Use the default MSS. */
 				tp->t_maxseg = V_tcp_mssdflt;
@@ -5196,7 +5196,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 				 * to minmss.
 				 */
 				tp->t_flags2 &= ~TF2_PLPMTU_PMTUD;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
 			}
 #endif
 		} else {
@@ -5213,7 +5213,7 @@ bbr_timeout_rxt(struct tcpcb *tp, struct tcp_bbr *bbr,
 				tp->t_flags2 |= TF2_PLPMTU_PMTUD;
 				tp->t_flags2 &= ~TF2_PLPMTU_BLACKHOLE;
 				tp->t_maxseg = tp->t_pmtud_saved_maxseg;
-				TCPSTAT_INC(tcps_pmtud_blackhole_failed);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_failed);
 			}
 		}
 	}
@@ -6508,7 +6508,7 @@ tcp_bbr_xmit_timer_commit(struct tcp_bbr *bbr, struct 
 		tp->t_rttvar = rtt_ticks << (TCP_RTTVAR_SHIFT - 1);
 		tp->t_rttbest = tp->t_srtt + tp->t_rttvar;
 	}
-	TCPSTAT_INC(tcps_rttupdated);
+	KMOD_TCPSTAT_INC(tcps_rttupdated);
 	tp->t_rttupdated++;
 #ifdef STATS
 	stats_voi_update_abs_u32(tp->t_stats, VOI_TCP_RTT, imax(0, rtt_ticks));
@@ -7973,8 +7973,8 @@ bbr_process_ack(struct mbuf *m, struct tcphdr *th, str
 	INP_WLOCK_ASSERT(tp->t_inpcb);
 
 	acked = BYTES_THIS_ACK(tp, th);
-	TCPSTAT_ADD(tcps_rcvackpack, (int)nsegs);
-	TCPSTAT_ADD(tcps_rcvackbyte, acked);
+	KMOD_TCPSTAT_ADD(tcps_rcvackpack, (int)nsegs);
+	KMOD_TCPSTAT_ADD(tcps_rcvackbyte, acked);
 
 	/*
 	 * If we just performed our first retransmit, and the ACK arrives
@@ -8336,7 +8336,7 @@ bbr_process_data(struct mbuf *m, struct tcphdr *th, st
 		/* keep track of pure window updates */
 		if (tlen == 0 &&
 		    tp->snd_wl2 == th->th_ack && tiwin > tp->snd_wnd)
-			TCPSTAT_INC(tcps_rcvwinupd);
+			KMOD_TCPSTAT_INC(tcps_rcvwinupd);
 		tp->snd_wnd = tiwin;
 		tp->snd_wl1 = th->th_seq;
 		tp->snd_wl2 = th->th_ack;
@@ -8502,8 +8502,8 @@ dodata:				/* XXX */
 			}
 			tp->rcv_nxt += tlen;
 			thflags = th->th_flags & TH_FIN;
-			TCPSTAT_ADD(tcps_rcvpack, (int)nsegs);
-			TCPSTAT_ADD(tcps_rcvbyte, tlen);
+			KMOD_TCPSTAT_ADD(tcps_rcvpack, (int)nsegs);
+			KMOD_TCPSTAT_ADD(tcps_rcvbyte, tlen);
 			SOCKBUF_LOCK(&so->so_rcv);
 			if (so->so_rcv.sb_state & SBS_CANTRCVMORE)
 				m_freem(m);
@@ -8715,7 +8715,7 @@ bbr_do_fastnewdata(struct mbuf *m, struct tcphdr *th, 
 	/* Clean receiver SACK report if present */
 	if (tp->rcv_numsacks)
 		tcp_clean_sackreport(tp);
-	TCPSTAT_INC(tcps_preddat);
+	KMOD_TCPSTAT_INC(tcps_preddat);
 	tp->rcv_nxt += tlen;
 	/*
 	 * Pull snd_wl1 up to prevent seq wrap relative to th_seq.
@@ -8725,8 +8725,8 @@ bbr_do_fastnewdata(struct mbuf *m, struct tcphdr *th, 
 	 * Pull rcv_up up to prevent seq wrap relative to rcv_nxt.
 	 */
 	tp->rcv_up = tp->rcv_nxt;
-	TCPSTAT_ADD(tcps_rcvpack, (int)nsegs);
-	TCPSTAT_ADD(tcps_rcvbyte, tlen);
+	KMOD_TCPSTAT_ADD(tcps_rcvpack, (int)nsegs);
+	KMOD_TCPSTAT_ADD(tcps_rcvbyte, tlen);
 #ifdef TCPDEBUG
 	if (so->so_options & SO_DEBUG)
 		tcp_trace(TA_INPUT, ostate, tp,
@@ -8886,7 +8886,7 @@ bbr_fastack(struct mbuf *m, struct tcphdr *th, struct 
 	/*
 	 * This is a pure ack for outstanding data.
 	 */
-	TCPSTAT_INC(tcps_predack);
+	KMOD_TCPSTAT_INC(tcps_predack);
 
 	/*
 	 * "bad retransmit" recovery.
@@ -8911,8 +8911,8 @@ bbr_fastack(struct mbuf *m, struct tcphdr *th, struct 
 	hhook_run_tcp_est_in(tp, th, to);
 #endif
 
-	TCPSTAT_ADD(tcps_rcvackpack, (int)nsegs);
-	TCPSTAT_ADD(tcps_rcvackbyte, acked);
+	KMOD_TCPSTAT_ADD(tcps_rcvackpack, (int)nsegs);
+	KMOD_TCPSTAT_ADD(tcps_rcvackbyte, acked);
 	sbdrop(&so->so_snd, acked);
 
 	if (SEQ_GT(th->th_ack, tp->snd_una))
@@ -9026,7 +9026,7 @@ bbr_do_syn_sent(struct mbuf *m, struct tcphdr *th, str
 	if (thflags & TH_ACK) {
 		int tfo_partial = 0;
 
-		TCPSTAT_INC(tcps_connects);
+		KMOD_TCPSTAT_INC(tcps_connects);
 		soisconnected(so);
 #ifdef MAC
 		mac_socketpeer_set_from_mbuf(m, so);
@@ -9119,8 +9119,8 @@ bbr_do_syn_sent(struct mbuf *m, struct tcphdr *th, str
 		m_adj(m, -todrop);
 		tlen = tp->rcv_wnd;
 		thflags &= ~TH_FIN;
-		TCPSTAT_INC(tcps_rcvpackafterwin);
-		TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop);
+		KMOD_TCPSTAT_INC(tcps_rcvpackafterwin);
+		KMOD_TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop);
 	}
 	tp->snd_wl1 = th->th_seq - 1;
 	tp->rcv_up = th->th_seq;
@@ -9287,7 +9287,7 @@ bbr_do_syn_recv(struct mbuf *m, struct tcphdr *th, str
 		return (bbr_process_data(m, th, so, tp, drop_hdrlen, tlen,
 					 tiwin, thflags, nxt_pkt));
 	}
-	TCPSTAT_INC(tcps_connects);
+	KMOD_TCPSTAT_INC(tcps_connects);
 	soisconnected(so);
 	/* Do window scaling? */
 	if ((tp->t_flags & (TF_RCVD_SCALE | TF_REQ_SCALE)) ==
@@ -9624,7 +9624,7 @@ bbr_check_data_after_close(struct mbuf *m, struct tcp_
 	if (bbr->rc_allow_data_af_clo == 0) {
 close_now:
 		tp = tcp_close(tp);
-		TCPSTAT_INC(tcps_rcvafterclose);
+		KMOD_TCPSTAT_INC(tcps_rcvafterclose);
 		ctf_do_dropwithreset(m, tp, th, BANDLIM_UNLIMITED, (*tlen));
 		return (1);
 	}
@@ -11948,8 +11948,8 @@ static inline void
 bbr_do_error_accounting(struct tcpcb *tp, struct tcp_bbr *bbr, struct bbr_sendmap *rsm, int32_t len, int32_t error)
 {
 #ifdef NETFLIX_STATS
-	TCPSTAT_INC(tcps_sndpack_error);
-	TCPSTAT_ADD(tcps_sndbyte_error, len);
+	KMOD_TCPSTAT_INC(tcps_sndpack_error);
+	KMOD_TCPSTAT_ADD(tcps_sndbyte_error, len);
 #endif
 }
 
@@ -11962,7 +11962,7 @@ bbr_do_send_accounting(struct tcpcb *tp, struct tcp_bb
 	}
 	if ((tp->t_flags & TF_FORCEDATA) && len == 1) {
 		/* Window probe */
-		TCPSTAT_INC(tcps_sndprobe);
+		KMOD_TCPSTAT_INC(tcps_sndprobe);
 #ifdef STATS
 		stats_voi_update_abs_u32(tp->t_stats,
 		    VOI_TCP_RETXPB, len);
@@ -11976,14 +11976,14 @@ bbr_do_send_accounting(struct tcpcb *tp, struct tcp_bb
 #ifdef NETFLIX_STATS
 			tp->t_sndtlppack++;
 			tp->t_sndtlpbyte += len;
-			TCPSTAT_INC(tcps_tlpresends);
-			TCPSTAT_ADD(tcps_tlpresend_bytes, len);
+			KMOD_TCPSTAT_INC(tcps_tlpresends);
+			KMOD_TCPSTAT_ADD(tcps_tlpresend_bytes, len);
 #endif
 		} else {
 			/* Retransmit */
 			tp->t_sndrexmitpack++;
-			TCPSTAT_INC(tcps_sndrexmitpack);
-			TCPSTAT_ADD(tcps_sndrexmitbyte, len);
+			KMOD_TCPSTAT_INC(tcps_sndrexmitpack);
+			KMOD_TCPSTAT_ADD(tcps_sndrexmitbyte, len);
 #ifdef STATS
 			stats_voi_update_abs_u32(tp->t_stats, VOI_TCP_RETXPB,
 			    len);
@@ -12015,8 +12015,8 @@ bbr_do_send_accounting(struct tcpcb *tp, struct tcp_bb
 
 	} else {
 		/* New sends */
-		TCPSTAT_INC(tcps_sndpack);
-		TCPSTAT_ADD(tcps_sndbyte, len);
+		KMOD_TCPSTAT_INC(tcps_sndpack);
+		KMOD_TCPSTAT_ADD(tcps_sndbyte, len);
 		/* Place in 17's the total sent */
 		counter_u64_add(bbr_state_resend[17], len);
 		counter_u64_add(bbr_state_lost[17], len);
@@ -12480,8 +12480,8 @@ recheck_resend:
 		sb_offset = rsm->r_start - tp->snd_una;
 		if (len > 0) {
 			sack_rxmit = 1;
-			TCPSTAT_INC(tcps_sack_rexmits);
-			TCPSTAT_ADD(tcps_sack_rexmit_bytes,
+			KMOD_TCPSTAT_INC(tcps_sack_rexmits);
+			KMOD_TCPSTAT_ADD(tcps_sack_rexmit_bytes,
 			    min(len, maxseg));
 		} else {
 			/* I dont think this can happen */
@@ -13574,13 +13574,13 @@ send:
 	} else {
 		SOCKBUF_UNLOCK(sb);
 		if (tp->t_flags & TF_ACKNOW)
-			TCPSTAT_INC(tcps_sndacks);
+			KMOD_TCPSTAT_INC(tcps_sndacks);
 		else if (flags & (TH_SYN | TH_FIN | TH_RST))
-			TCPSTAT_INC(tcps_sndctrl);
+			KMOD_TCPSTAT_INC(tcps_sndctrl);
 		else if (SEQ_GT(tp->snd_up, tp->snd_una))
-			TCPSTAT_INC(tcps_sndurg);
+			KMOD_TCPSTAT_INC(tcps_sndurg);
 		else
-			TCPSTAT_INC(tcps_sndwinup);
+			KMOD_TCPSTAT_INC(tcps_sndwinup);
 
 		m = m_gethdr(M_NOWAIT, MT_DATA);
 		if (m == NULL) {
@@ -14290,7 +14290,7 @@ nomore:
 		tp->t_flags |= TF_GPUTINPROG;
 #endif
 	}
-	TCPSTAT_INC(tcps_sndtotal);
+	KMOD_TCPSTAT_INC(tcps_sndtotal);
 	if ((bbr->bbr_hdw_pace_ena) &&
 	    (bbr->bbr_attempt_hdwr_pace == 0) &&
 	    (bbr->rc_past_init_win) &&

Modified: head/sys/netinet/tcp_stacks/rack.c
==============================================================================
--- head/sys/netinet/tcp_stacks/rack.c	Thu Mar 12 14:01:17 2020	(r358910)
+++ head/sys/netinet/tcp_stacks/rack.c	Thu Mar 12 15:37:41 2020	(r358911)
@@ -1104,7 +1104,7 @@ rack_progress_timeout_check(struct tcpcb *tp)
 			rack = (struct tcp_rack *)tp->t_fb_ptr;
 			counter_u64_add(rack_progress_drops, 1);
 #ifdef NETFLIX_STATS
-			TCPSTAT_INC(tcps_progdrops);
+			KMOD_TCPSTAT_INC(tcps_progdrops);
 #endif
 			rack_log_progress_event(rack, tp, ticks, PROGRESS_DROP, __LINE__);
 			return (1);
@@ -1801,7 +1801,7 @@ rack_cong_signal(struct tcpcb *tp, struct tcphdr *th, 
 		break;
 	case CC_ECN:
 		if (!IN_CONGRECOVERY(tp->t_flags)) {
-			TCPSTAT_INC(tcps_ecn_rcwnd);
+			KMOD_TCPSTAT_INC(tcps_ecn_rcwnd);
 			tp->snd_recover = tp->snd_max;
 			if (tp->t_flags2 & TF2_ECN_PERMIT)
 				tp->t_flags2 |= TF2_ECN_SND_CWR;
@@ -1818,7 +1818,7 @@ rack_cong_signal(struct tcpcb *tp, struct tcphdr *th, 
 			tp->t_flags2 |= TF2_ECN_SND_CWR;
 		break;
 	case CC_RTO_ERR:
-		TCPSTAT_INC(tcps_sndrexmitbad);
+		KMOD_TCPSTAT_INC(tcps_sndrexmitbad);
 		/* RTO was unnecessary, so reset everything. */
 		tp->snd_cwnd = tp->snd_cwnd_prev;
 		tp->snd_ssthresh = tp->snd_ssthresh_prev;
@@ -1853,9 +1853,9 @@ rack_cc_after_idle(struct tcpcb *tp)
 	INP_WLOCK_ASSERT(tp->t_inpcb);
 
 #ifdef NETFLIX_STATS
-	TCPSTAT_INC(tcps_idle_restarts);
+	KMOD_TCPSTAT_INC(tcps_idle_restarts);
 	if (tp->t_state == TCPS_ESTABLISHED)
-		TCPSTAT_INC(tcps_idle_estrestarts);
+		KMOD_TCPSTAT_INC(tcps_idle_estrestarts);
 #endif
 	if (CC_ALGO(tp)->after_idle != NULL)
 		CC_ALGO(tp)->after_idle(tp->ccv);
@@ -2915,7 +2915,7 @@ rack_timeout_delack(struct tcpcb *tp, struct tcp_rack 
 	rack_log_to_event(rack, RACK_TO_FRM_DELACK, 0);
 	tp->t_flags &= ~TF_DELACK;
 	tp->t_flags |= TF_ACKNOW;
-	TCPSTAT_INC(tcps_delack);
+	KMOD_TCPSTAT_INC(tcps_delack);
 	rack->r_ctl.rc_hpts_flags &= ~PACE_TMR_DELACK;
 	return (0);
 }
@@ -2951,7 +2951,7 @@ rack_timeout_persist(struct tcpcb *tp, struct tcp_rack
 	 * Persistence timer into zero window. Force a byte to be output, if
 	 * possible.
 	 */
-	TCPSTAT_INC(tcps_persisttimeo);
+	KMOD_TCPSTAT_INC(tcps_persisttimeo);
 	/*
 	 * Hack: if the peer is dead/unreachable, we do not time out if the
 	 * window is closed.  After a full backoff, drop the connection if
@@ -2961,7 +2961,7 @@ rack_timeout_persist(struct tcpcb *tp, struct tcp_rack
 	if (tp->t_rxtshift == TCP_MAXRXTSHIFT &&
 	    (ticks - tp->t_rcvtime >= tcp_maxpersistidle ||
 	    ticks - tp->t_rcvtime >= TCP_REXMTVAL(tp) * tcp_totbackoff)) {
-		TCPSTAT_INC(tcps_persistdrop);
+		KMOD_TCPSTAT_INC(tcps_persistdrop);
 		retval = 1;
 		tcp_set_inp_to_drop(rack->rc_inp, ETIMEDOUT);
 		goto out;
@@ -2977,7 +2977,7 @@ rack_timeout_persist(struct tcpcb *tp, struct tcp_rack
 	if (tp->t_state > TCPS_CLOSE_WAIT &&
 	    (ticks - tp->t_rcvtime) >= TCPTV_PERSMAX) {
 		retval = 1;
-		TCPSTAT_INC(tcps_persistdrop);
+		KMOD_TCPSTAT_INC(tcps_persistdrop);
 		tcp_set_inp_to_drop(rack->rc_inp, ETIMEDOUT);
 		goto out;
 	}
@@ -3022,7 +3022,7 @@ rack_timeout_keepalive(struct tcpcb *tp, struct tcp_ra
 	 * Keep-alive timer went off; send something or drop connection if
 	 * idle for too long.
 	 */
-	TCPSTAT_INC(tcps_keeptimeo);
+	KMOD_TCPSTAT_INC(tcps_keeptimeo);
 	if (tp->t_state < TCPS_ESTABLISHED)
 		goto dropit;
 	if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) &&
@@ -3039,7 +3039,7 @@ rack_timeout_keepalive(struct tcpcb *tp, struct tcp_ra
 		 * protocol spec, this requires the correspondent TCP to
 		 * respond.
 		 */
-		TCPSTAT_INC(tcps_keepprobe);
+		KMOD_TCPSTAT_INC(tcps_keepprobe);
 		t_template = tcpip_maketemplate(inp);
 		if (t_template) {
 			tcp_respond(tp, t_template->tt_ipgen,
@@ -3051,7 +3051,7 @@ rack_timeout_keepalive(struct tcpcb *tp, struct tcp_ra
 	rack_start_hpts_timer(rack, tp, cts, 0, 0, 0);
 	return (1);
 dropit:
-	TCPSTAT_INC(tcps_keepdrops);
+	KMOD_TCPSTAT_INC(tcps_keepdrops);
 	tcp_set_inp_to_drop(rack->rc_inp, ETIMEDOUT);
 	return (1);
 }
@@ -3156,7 +3156,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 	}
 	if (tp->t_rxtshift > TCP_MAXRXTSHIFT) {
 		tp->t_rxtshift = TCP_MAXRXTSHIFT;
-		TCPSTAT_INC(tcps_timeoutdrop);
+		KMOD_TCPSTAT_INC(tcps_timeoutdrop);
 		retval = 1;
 		tcp_set_inp_to_drop(rack->rc_inp,
 		    (tp->t_softerror ? (uint16_t) tp->t_softerror : ETIMEDOUT));
@@ -3193,7 +3193,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 		tp->t_flags |= TF_PREVVALID;
 	} else
 		tp->t_flags &= ~TF_PREVVALID;
-	TCPSTAT_INC(tcps_rexmttimeo);
+	KMOD_TCPSTAT_INC(tcps_rexmttimeo);
 	if ((tp->t_state == TCPS_SYN_SENT) ||
 	    (tp->t_state == TCPS_SYN_RECEIVED))
 		rexmt = MSEC_2_TICKS(RACK_INITIAL_RTO * tcp_backoff[tp->t_rxtshift]);
@@ -3248,7 +3248,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 			    tp->t_maxseg > V_tcp_v6pmtud_blackhole_mss) {
 				/* Use the sysctl tuneable blackhole MSS. */
 				tp->t_maxseg = V_tcp_v6pmtud_blackhole_mss;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated);
 			} else if (isipv6) {
 				/* Use the default MSS. */
 				tp->t_maxseg = V_tcp_v6mssdflt;
@@ -3257,7 +3257,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 				 * to minmss.
 				 */
 				tp->t_flags2 &= ~TF2_PLPMTU_PMTUD;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
 			}
 #endif
 #if defined(INET6) && defined(INET)
@@ -3267,7 +3267,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 			if (tp->t_maxseg > V_tcp_pmtud_blackhole_mss) {
 				/* Use the sysctl tuneable blackhole MSS. */
 				tp->t_maxseg = V_tcp_pmtud_blackhole_mss;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated);
 			} else {
 				/* Use the default MSS. */
 				tp->t_maxseg = V_tcp_mssdflt;
@@ -3276,7 +3276,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 				 * to minmss.
 				 */
 				tp->t_flags2 &= ~TF2_PLPMTU_PMTUD;
-				TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_activated_min_mss);
 			}
 #endif
 		} else {
@@ -3293,7 +3293,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct tcp_rack *ra
 				tp->t_flags2 |= TF2_PLPMTU_PMTUD;
 				tp->t_flags2 &= ~TF2_PLPMTU_BLACKHOLE;
 				tp->t_maxseg = tp->t_pmtud_saved_maxseg;
-				TCPSTAT_INC(tcps_pmtud_blackhole_failed);
+				KMOD_TCPSTAT_INC(tcps_pmtud_blackhole_failed);
 			}
 		}
 	}
@@ -3898,7 +3898,7 @@ tcp_rack_xmit_timer_commit(struct tcp_rack *rack, stru
 		tp->t_rttvar = rtt << (TCP_RTTVAR_SHIFT - 1);
 		tp->t_rttbest = tp->t_srtt + tp->t_rttvar;
 	}
-	TCPSTAT_INC(tcps_rttupdated);
+	KMOD_TCPSTAT_INC(tcps_rttupdated);
 	rack_log_rtt_upd(tp, rack, rtt, o_srtt, o_var);
 	tp->t_rttupdated++;
 #ifdef STATS
@@ -5350,8 +5350,8 @@ rack_process_ack(struct mbuf *m, struct tcphdr *th, st
 	INP_WLOCK_ASSERT(tp->t_inpcb);
 
 	acked = BYTES_THIS_ACK(tp, th);
-	TCPSTAT_ADD(tcps_rcvackpack, nsegs);
-	TCPSTAT_ADD(tcps_rcvackbyte, acked);
+	KMOD_TCPSTAT_ADD(tcps_rcvackpack, nsegs);
+	KMOD_TCPSTAT_ADD(tcps_rcvackbyte, acked);
 
 	/*
 	 * If we just performed our first retransmit, and the ACK arrives
@@ -5581,7 +5581,7 @@ rack_process_data(struct mbuf *m, struct tcphdr *th, s
 		/* keep track of pure window updates */
 		if (tlen == 0 &&
 		    tp->snd_wl2 == th->th_ack && tiwin > tp->snd_wnd)
-			TCPSTAT_INC(tcps_rcvwinupd);
+			KMOD_TCPSTAT_INC(tcps_rcvwinupd);
 		tp->snd_wnd = tiwin;
 		tp->snd_wl1 = th->th_seq;
 		tp->snd_wl2 = th->th_ack;
@@ -5748,8 +5748,8 @@ dodata:				/* XXX */
 			}
 			tp->rcv_nxt += tlen;
 			thflags = th->th_flags & TH_FIN;
-			TCPSTAT_ADD(tcps_rcvpack, nsegs);
-			TCPSTAT_ADD(tcps_rcvbyte, tlen);
+			KMOD_TCPSTAT_ADD(tcps_rcvpack, nsegs);
+			KMOD_TCPSTAT_ADD(tcps_rcvbyte, tlen);
 			SOCKBUF_LOCK(&so->so_rcv);
 			if (so->so_rcv.sb_state & SBS_CANTRCVMORE) {
 				m_freem(m);
@@ -5963,7 +5963,7 @@ rack_do_fastnewdata(struct mbuf *m, struct tcphdr *th,
 	/* Clean receiver SACK report if present */
 	if (tp->rcv_numsacks)
 		tcp_clean_sackreport(tp);
-	TCPSTAT_INC(tcps_preddat);
+	KMOD_TCPSTAT_INC(tcps_preddat);
 	tp->rcv_nxt += tlen;
 	/*
 	 * Pull snd_wl1 up to prevent seq wrap relative to th_seq.
@@ -5973,8 +5973,8 @@ rack_do_fastnewdata(struct mbuf *m, struct tcphdr *th,
 	 * Pull rcv_up up to prevent seq wrap relative to rcv_nxt.
 	 */
 	tp->rcv_up = tp->rcv_nxt;
-	TCPSTAT_ADD(tcps_rcvpack, nsegs);
-	TCPSTAT_ADD(tcps_rcvbyte, tlen);
+	KMOD_TCPSTAT_ADD(tcps_rcvpack, nsegs);
+	KMOD_TCPSTAT_ADD(tcps_rcvbyte, tlen);
 #ifdef TCPDEBUG
 	if (so->so_options & SO_DEBUG)
 		tcp_trace(TA_INPUT, ostate, tp,
@@ -6133,7 +6133,7 @@ rack_fastack(struct mbuf *m, struct tcphdr *th, struct
 	/*
 	 * This is a pure ack for outstanding data.
 	 */
-	TCPSTAT_INC(tcps_predack);
+	KMOD_TCPSTAT_INC(tcps_predack);
 
 	/*
 	 * "bad retransmit" recovery.
@@ -6158,8 +6158,8 @@ rack_fastack(struct mbuf *m, struct tcphdr *th, struct
 	hhook_run_tcp_est_in(tp, th, to);
 #endif
 
-	TCPSTAT_ADD(tcps_rcvackpack, nsegs);
-	TCPSTAT_ADD(tcps_rcvackbyte, acked);
+	KMOD_TCPSTAT_ADD(tcps_rcvackpack, nsegs);
+	KMOD_TCPSTAT_ADD(tcps_rcvackbyte, acked);
 	sbdrop(&so->so_snd, acked);
 	/*
 	 * Let the congestion control algorithm update congestion control
@@ -6264,7 +6264,7 @@ rack_do_syn_sent(struct mbuf *m, struct tcphdr *th, st
 	if (thflags & TH_ACK) {
 		int tfo_partial = 0;
 
-		TCPSTAT_INC(tcps_connects);
+		KMOD_TCPSTAT_INC(tcps_connects);
 		soisconnected(so);
 #ifdef MAC
 		mac_socketpeer_set_from_mbuf(m, so);
@@ -6301,7 +6301,7 @@ rack_do_syn_sent(struct mbuf *m, struct tcphdr *th, st
 		if (((thflags & (TH_CWR | TH_ECE)) == TH_ECE) &&
 		    (V_tcp_do_ecn == 1)) {
 			tp->t_flags2 |= TF2_ECN_PERMIT;
-			TCPSTAT_INC(tcps_ecn_shs);
+			KMOD_TCPSTAT_INC(tcps_ecn_shs);
 		}
 		if (SEQ_GT(th->th_ack, tp->snd_una)) {
 			/*
@@ -6356,8 +6356,8 @@ rack_do_syn_sent(struct mbuf *m, struct tcphdr *th, st
 		m_adj(m, -todrop);
 		tlen = tp->rcv_wnd;
 		thflags &= ~TH_FIN;
-		TCPSTAT_INC(tcps_rcvpackafterwin);
-		TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop);
+		KMOD_TCPSTAT_INC(tcps_rcvpackafterwin);
+		KMOD_TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop);
 	}
 	tp->snd_wl1 = th->th_seq - 1;
 	tp->rcv_up = th->th_seq;
@@ -6519,7 +6519,7 @@ rack_do_syn_recv(struct mbuf *m, struct tcphdr *th, st
 		return (rack_process_data(m, th, so, tp, drop_hdrlen, tlen,
 		    tiwin, thflags, nxt_pkt));
 	}
-	TCPSTAT_INC(tcps_connects);
+	KMOD_TCPSTAT_INC(tcps_connects);
 	soisconnected(so);
 	/* Do window scaling? */
 	if ((tp->t_flags & (TF_RCVD_SCALE | TF_REQ_SCALE)) ==
@@ -6842,7 +6842,7 @@ rack_check_data_after_close(struct mbuf *m,
 	if (rack->rc_allow_data_af_clo == 0) {
 	close_now:
 		tp = tcp_close(tp);
-		TCPSTAT_INC(tcps_rcvafterclose);
+		KMOD_TCPSTAT_INC(tcps_rcvafterclose);
 		ctf_do_dropwithreset(m, tp, th, BANDLIM_UNLIMITED, (*tlen));
 		return (1);
 	}
@@ -7711,13 +7711,13 @@ rack_do_segment_nounlock(struct mbuf *m, struct tcphdr
 		switch (iptos & IPTOS_ECN_MASK) {
 		case IPTOS_ECN_CE:
 			tp->t_flags2 |= TF2_ECN_SND_ECE;
-			TCPSTAT_INC(tcps_ecn_ce);
+			KMOD_TCPSTAT_INC(tcps_ecn_ce);
 			break;
 		case IPTOS_ECN_ECT0:
-			TCPSTAT_INC(tcps_ecn_ect0);
+			KMOD_TCPSTAT_INC(tcps_ecn_ect0);
 			break;
 		case IPTOS_ECN_ECT1:
-			TCPSTAT_INC(tcps_ecn_ect1);
+			KMOD_TCPSTAT_INC(tcps_ecn_ect1);
 			break;
 		}
 
@@ -8379,8 +8379,8 @@ again:
 		if (len > 0) {
 			sub_from_prr = 1;
 			sack_rxmit = 1;
-			TCPSTAT_INC(tcps_sack_rexmits);
-			TCPSTAT_ADD(tcps_sack_rexmit_bytes,
+			KMOD_TCPSTAT_INC(tcps_sack_rexmits);
+			KMOD_TCPSTAT_ADD(tcps_sack_rexmit_bytes,
 			    min(len, ctf_fixed_maxseg(tp)));
 			counter_u64_add(rack_rtm_prr_retran, 1);
 		}
@@ -9318,7 +9318,7 @@ send:
 			}
 		}
 		if ((tp->t_flags & TF_FORCEDATA) && len == 1) {
-			TCPSTAT_INC(tcps_sndprobe);
+			KMOD_TCPSTAT_INC(tcps_sndprobe);
 #ifdef STATS
 			if (SEQ_LT(tp->snd_nxt, tp->snd_max))
 				stats_voi_update_abs_u32(tp->t_stats,
@@ -9337,16 +9337,16 @@ send:
 				counter_u64_add(rack_tlp_retran_bytes, len);
 			} else {
 				tp->t_sndrexmitpack++;
-				TCPSTAT_INC(tcps_sndrexmitpack);
-				TCPSTAT_ADD(tcps_sndrexmitbyte, len);
+				KMOD_TCPSTAT_INC(tcps_sndrexmitpack);
+				KMOD_TCPSTAT_ADD(tcps_sndrexmitbyte, len);
 			}
 #ifdef STATS
 			stats_voi_update_abs_u32(tp->t_stats, VOI_TCP_RETXPB,
 			    len);
 #endif
 		} else {
-			TCPSTAT_INC(tcps_sndpack);
-			TCPSTAT_ADD(tcps_sndbyte, len);
+			KMOD_TCPSTAT_INC(tcps_sndpack);
+			KMOD_TCPSTAT_ADD(tcps_sndbyte, len);
 #ifdef STATS
 			stats_voi_update_abs_u64(tp->t_stats, VOI_TCP_TXPB,
 			    len);
@@ -9381,13 +9381,13 @@ send:
 	} else {
 		SOCKBUF_UNLOCK(sb);
 		if (tp->t_flags & TF_ACKNOW)
-			TCPSTAT_INC(tcps_sndacks);
+			KMOD_TCPSTAT_INC(tcps_sndacks);
 		else if (flags & (TH_SYN | TH_FIN | TH_RST))
-			TCPSTAT_INC(tcps_sndctrl);
+			KMOD_TCPSTAT_INC(tcps_sndctrl);
 		else if (SEQ_GT(tp->snd_up, tp->snd_una))
-			TCPSTAT_INC(tcps_sndurg);
+			KMOD_TCPSTAT_INC(tcps_sndurg);
 		else
-			TCPSTAT_INC(tcps_sndwinup);
+			KMOD_TCPSTAT_INC(tcps_sndwinup);
 
 		m = m_gethdr(M_NOWAIT, MT_DATA);
 		if (m == NULL) {
@@ -9488,7 +9488,7 @@ send:
 			else
 #endif
 				ip->ip_tos |= IPTOS_ECN_ECT0;
-			TCPSTAT_INC(tcps_ecn_ect0);
+			KMOD_TCPSTAT_INC(tcps_ecn_ect0);
 		}
 		/*
 		 * Reply with proper ECN notifications.
@@ -9929,7 +9929,7 @@ out:
 			if (tp->t_rtttime == 0) {
 				tp->t_rtttime = ticks;
 				tp->t_rtseq = startseq;
-				TCPSTAT_INC(tcps_segstimed);
+				KMOD_TCPSTAT_INC(tcps_segstimed);
 			}
 #ifdef STATS
 			if (!(tp->t_flags & TF_GPUTINPROG) && len) {
@@ -10043,7 +10043,7 @@ nomore:
 	} else {
 		rack->rc_enobuf = 0;
 	}
-	TCPSTAT_INC(tcps_sndtotal);
+	KMOD_TCPSTAT_INC(tcps_sndtotal);
 
 	/*
 	 * Data sent (as far as we can tell). If this advertises a larger

Modified: head/sys/netinet/tcp_stacks/rack_bbr_common.c
==============================================================================
--- head/sys/netinet/tcp_stacks/rack_bbr_common.c	Thu Mar 12 14:01:17 2020	(r358910)
+++ head/sys/netinet/tcp_stacks/rack_bbr_common.c	Thu Mar 12 15:37:41 2020	(r358911)
@@ -301,7 +301,7 @@ skip_vnet:
 			if (m->m_len < (sizeof(*ip6) + sizeof(*th))) {
 				m = m_pullup(m, sizeof(*ip6) + sizeof(*th));
 				if (m == NULL) {
-					TCPSTAT_INC(tcps_rcvshort);
+					KMOD_TCPSTAT_INC(tcps_rcvshort);
 					m_freem(m);
 					goto skipped_pkt;
 				}
@@ -320,7 +320,7 @@ skip_vnet:
 			} else
 				th->th_sum = in6_cksum(m, IPPROTO_TCP, drop_hdrlen, tlen);
 			if (th->th_sum) {
-				TCPSTAT_INC(tcps_rcvbadsum);
+				KMOD_TCPSTAT_INC(tcps_rcvbadsum);
 				m_freem(m);
 				goto skipped_pkt;
 			}
@@ -347,7 +347,7 @@ skip_vnet:
 			if (m->m_len < sizeof (struct tcpiphdr)) {
 				if ((m = m_pullup(m, sizeof (struct tcpiphdr)))
 				    == NULL) {
-					TCPSTAT_INC(tcps_rcvshort);
+					KMOD_TCPSTAT_INC(tcps_rcvshort);
 					m_freem(m);
 					goto skipped_pkt;
 				}
@@ -385,7 +385,7 @@ skip_vnet:
 				ip->ip_hl = sizeof(*ip) >> 2;
 			}
 			if (th->th_sum) {
-				TCPSTAT_INC(tcps_rcvbadsum);
+				KMOD_TCPSTAT_INC(tcps_rcvbadsum);
 				m_freem(m);
 				goto skipped_pkt;
 			}
@@ -400,7 +400,7 @@ skip_vnet:
 
 		off = th->th_off << 2;
 		if (off < sizeof (struct tcphdr) || off > tlen) {
-			TCPSTAT_INC(tcps_rcvbadoff);
+			KMOD_TCPSTAT_INC(tcps_rcvbadoff);
 				m_freem(m);
 				goto skipped_pkt;
 		}
@@ -539,11 +539,11 @@ ctf_drop_checks(struct tcpopt *to, struct mbuf *m, str
 			 */
 			tp->t_flags |= TF_ACKNOW;
 			todrop = tlen;
-			TCPSTAT_INC(tcps_rcvduppack);
-			TCPSTAT_ADD(tcps_rcvdupbyte, todrop);
+			KMOD_TCPSTAT_INC(tcps_rcvduppack);
+			KMOD_TCPSTAT_ADD(tcps_rcvdupbyte, todrop);
 		} else {
-			TCPSTAT_INC(tcps_rcvpartduppack);
-			TCPSTAT_ADD(tcps_rcvpartdupbyte, todrop);
+			KMOD_TCPSTAT_INC(tcps_rcvpartduppack);
+			KMOD_TCPSTAT_ADD(tcps_rcvpartdupbyte, todrop);
 		}
 		/*
 		 * DSACK - add SACK block for dropped range
@@ -573,9 +573,9 @@ ctf_drop_checks(struct tcpopt *to, struct mbuf *m, str
 	 */
 	todrop = (th->th_seq + tlen) - (tp->rcv_nxt + tp->rcv_wnd);
 	if (todrop > 0) {
-		TCPSTAT_INC(tcps_rcvpackafterwin);
+		KMOD_TCPSTAT_INC(tcps_rcvpackafterwin);
 		if (todrop >= tlen) {
-			TCPSTAT_ADD(tcps_rcvbyteafterwin, tlen);
+			KMOD_TCPSTAT_ADD(tcps_rcvbyteafterwin, tlen);
 			/*
 			 * If window is closed can only take segments at
 			 * window edge, and have to drop data and PUSH from
@@ -585,13 +585,13 @@ ctf_drop_checks(struct tcpopt *to, struct mbuf *m, str
 			 */
 			if (tp->rcv_wnd == 0 && th->th_seq == tp->rcv_nxt) {
 				tp->t_flags |= TF_ACKNOW;
-				TCPSTAT_INC(tcps_rcvwinprobe);
+				KMOD_TCPSTAT_INC(tcps_rcvwinprobe);
 			} else {
 				ctf_do_dropafterack(m, tp, th, thflags, tlen, ret_val);
 				return (1);
 			}
 		} else
-			TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop);
+			KMOD_TCPSTAT_ADD(tcps_rcvbyteafterwin, todrop);
 		m_adj(m, -todrop);
 		tlen -= todrop;
 		thflags &= ~(TH_PUSH | TH_FIN);
@@ -677,7 +677,7 @@ ctf_process_rst(struct mbuf *m, struct tcphdr *th, str
 		    (tp->last_ack_sent == th->th_seq) ||
 		    (tp->rcv_nxt == th->th_seq) ||
 		    ((tp->last_ack_sent - 1) == th->th_seq)) {
-			TCPSTAT_INC(tcps_drops);
+			KMOD_TCPSTAT_INC(tcps_drops);
 			/* Drop the connection. */
 			switch (tp->t_state) {
 			case TCPS_SYN_RECEIVED:
@@ -699,7 +699,7 @@ ctf_process_rst(struct mbuf *m, struct tcphdr *th, str
 			dropped = 1;
 			ctf_do_drop(m, tp);
 		} else {
-			TCPSTAT_INC(tcps_badrst);
+			KMOD_TCPSTAT_INC(tcps_badrst);
 			/* Send challenge ACK. */
 			tcp_respond(tp, mtod(m, void *), th, m,
 			    tp->rcv_nxt, tp->snd_nxt, TH_ACK);
@@ -723,7 +723,7 @@ ctf_challenge_ack(struct mbuf *m, struct tcphdr *th, s
 
 	NET_EPOCH_ASSERT();
 
-	TCPSTAT_INC(tcps_badsyn);
+	KMOD_TCPSTAT_INC(tcps_badsyn);
 	if (V_tcp_insecure_syn &&
 	    SEQ_GEQ(th->th_seq, tp->last_ack_sent) &&
 	    SEQ_LT(th->th_seq, tp->last_ack_sent + tp->rcv_wnd)) {
@@ -766,9 +766,9 @@ ctf_ts_check(struct mbuf *m, struct tcphdr *th, struct
 		 */
 		tp->ts_recent = 0;
 	} else {
-		TCPSTAT_INC(tcps_rcvduppack);
-		TCPSTAT_ADD(tcps_rcvdupbyte, tlen);
-		TCPSTAT_INC(tcps_pawsdrop);
+		KMOD_TCPSTAT_INC(tcps_rcvduppack);
+		KMOD_TCPSTAT_ADD(tcps_rcvdupbyte, tlen);
+		KMOD_TCPSTAT_INC(tcps_pawsdrop);
 		*ret_val = 0;
 		if (tlen) {
 			ctf_do_dropafterack(m, tp, th, thflags, tlen, ret_val);

Modified: head/sys/netinet/tcp_var.h
==============================================================================
--- head/sys/netinet/tcp_var.h	Thu Mar 12 14:01:17 2020	(r358910)
+++ head/sys/netinet/tcp_var.h	Thu Mar 12 15:37:41 2020	(r358911)
@@ -652,9 +652,10 @@ VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat);	/* tcp
 /*
  * Kernel module consumers must use this accessor macro.
  */
-void	kmod_tcpstat_inc(int statnum);
-#define	KMOD_TCPSTAT_INC(name)						\
-    kmod_tcpstat_inc(offsetof(struct tcpstat, name) / sizeof(uint64_t))
+void	kmod_tcpstat_add(int statnum, int val);
+#define	KMOD_TCPSTAT_ADD(name, val)					\
+    kmod_tcpstat_add(offsetof(struct tcpstat, name) / sizeof(uint64_t), val)
+#define	KMOD_TCPSTAT_INC(name)	KMOD_TCPSTAT_ADD(name, 1)
 
 /*
  * Running TCP connection count by state.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003121537.02CFbgtd088276>