diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -4678,3 +4678,30 @@ return (srtt); } + +void +tcp_account_for_send(struct tcpcb *tp, uint32_t len, uint8_t is_rxt, + uint8_t is_tlp, bool hw_tls) +{ + + if (is_tlp) { + tp->t_sndtlppack++; + tp->t_sndtlpbyte += len; + } + /* To get total bytes sent you must add t_snd_rxt_bytes to t_sndbytes */ + if (is_rxt) + tp->t_snd_rxt_bytes += len; + else + tp->t_sndbytes += len; + +#ifdef KERN_TLS + if (hw_tls && is_rxt && len != 0) { + uint64_t rexmit_percent; + + rexmit_percent = (1000ULL * tp->t_snd_rxt_bytes) / + (10ULL * (tp->t_snd_rxt_bytes + tp->t_sndbytes)); + if (rexmit_percent > ktls_ifnet_max_rexmit_pct) + ktls_disable_ifnet(tp); + } +#endif +} diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -38,7 +38,6 @@ #include #ifdef _KERNEL -#include "opt_kern_tls.h" #include #include #include @@ -1358,6 +1357,7 @@ #define V_tcp_hhh VNET(tcp_hhh) #endif +void tcp_account_for_send(struct tcpcb *, uint32_t, uint8_t, uint8_t, bool); int tcp_addoptions(struct tcpopt *, u_char *); struct tcpcb * tcp_close(struct tcpcb *); @@ -1591,30 +1591,6 @@ th->th_x2 = (flags >> 8) & 0x0f; th->th_flags = flags & 0xff; } - -static inline void -tcp_account_for_send(struct tcpcb *tp, uint32_t len, uint8_t is_rxt, - uint8_t is_tlp, bool hw_tls) -{ - if (is_tlp) { - tp->t_sndtlppack++; - tp->t_sndtlpbyte += len; - } - /* To get total bytes sent you must add t_snd_rxt_bytes to t_sndbytes */ - if (is_rxt) - tp->t_snd_rxt_bytes += len; - else - tp->t_sndbytes += len; - -#ifdef KERN_TLS - if (hw_tls && is_rxt && len != 0) { - uint64_t rexmit_percent = (1000ULL * tp->t_snd_rxt_bytes) / (10ULL * (tp->t_snd_rxt_bytes + tp->t_sndbytes)); - if (rexmit_percent > ktls_ifnet_max_rexmit_pct) - ktls_disable_ifnet(tp); - } -#endif - -} #endif /* _KERNEL */ #endif /* _NETINET_TCP_VAR_H_ */