svn commit: r365601 - in stable/12/sys/netinet: . tcp_stacks
Michael Tuexen
tuexen at FreeBSD.org
Thu Sep 10 17:49:22 UTC 2020
Author: tuexen
Date: Thu Sep 10 17:49:21 2020
New Revision: 365601
URL: https://svnweb.freebsd.org/changeset/base/365601
Log:
MFC r356417 (from rrs):
This catches rack up in the recent changes to ECN and
also commonizes the functions that both the freebsd and
rack stack uses.
Modified:
stable/12/sys/netinet/tcp_input.c
stable/12/sys/netinet/tcp_stacks/rack.c
stable/12/sys/netinet/tcp_var.h
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/netinet/tcp_input.c
==============================================================================
--- stable/12/sys/netinet/tcp_input.c Thu Sep 10 17:48:27 2020 (r365600)
+++ stable/12/sys/netinet/tcp_input.c Thu Sep 10 17:49:21 2020 (r365601)
@@ -493,7 +493,7 @@ cc_post_recovery(struct tcpcb *tp, struct tcphdr *th)
(tlen <= tp->t_maxseg) && \
(V_tcp_delack_enabled || (tp->t_flags & TF_NEEDSYN)))
-static void inline
+void inline
cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, uint8_t iptos)
{
INP_WLOCK_ASSERT(tp->t_inpcb);
Modified: stable/12/sys/netinet/tcp_stacks/rack.c
==============================================================================
--- stable/12/sys/netinet/tcp_stacks/rack.c Thu Sep 10 17:48:27 2020 (r365600)
+++ stable/12/sys/netinet/tcp_stacks/rack.c Thu Sep 10 17:49:21 2020 (r365601)
@@ -6752,6 +6752,10 @@ rack_hpts_do_segment(struct mbuf *m, struct tcphdr *th
TCPSTAT_INC(tcps_ecn_ect1);
break;
}
+
+ /* Process a packet differently from RFC3168. */
+ cc_ecnpkt_handler(tp, th, iptos);
+
/* Congestion experienced. */
if (thflags & TH_ECE) {
rack_cong_signal(tp, th, CC_ECN);
Modified: stable/12/sys/netinet/tcp_var.h
==============================================================================
--- stable/12/sys/netinet/tcp_var.h Thu Sep 10 17:48:27 2020 (r365600)
+++ stable/12/sys/netinet/tcp_var.h Thu Sep 10 17:49:21 2020 (r365601)
@@ -868,6 +868,7 @@ void cc_ack_received(struct tcpcb *tp, struct tcphdr *
uint16_t nsegs, uint16_t type);
void cc_conn_init(struct tcpcb *tp);
void cc_post_recovery(struct tcpcb *tp, struct tcphdr *th);
+void cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, uint8_t iptos);
void cc_cong_signal(struct tcpcb *tp, struct tcphdr *th, uint32_t type);
#ifdef TCP_HHOOK
void hhook_run_tcp_est_in(struct tcpcb *tp,
More information about the svn-src-all
mailing list