Date: Sat, 24 Feb 2024 19:24:01 +0100 From: Baptiste Daroussin <bapt@FreeBSD.org> To: Richard Scheffenegger <rscheff@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: =?US-ASCII?Q?Re=3A_git=3A_f74352fbcf15_-_main_-_tcp=3A_use_?= =?US-ASCII?Q?enum_for_all_congestion__control_signals?= Message-ID: <A1F250AD-27F6-459F-A8FA-29EF8CF8EE44@FreeBSD.org> In-Reply-To: <202402241615.41OGFcg7091756@gitrepo.freebsd.org> References: <202402241615.41OGFcg7091756@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
------T877TB56UDSFUDD4AKM6Z78MQX4HAZ Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le 24 f=C3=A9vrier 2024 17:15:38 GMT+01:00, Richard Scheffenegger <rscheff@= FreeBSD=2Eorg> a =C3=A9crit=C2=A0: >The branch main has been updated by rscheff: > >URL: https://cgit=2EFreeBSD=2Eorg/src/commit/?id=3Df74352fbcf15341accaf5a= 92240871f98323215d > >commit f74352fbcf15341accaf5a92240871f98323215d >Author: Richard Scheffenegger <rscheff@FreeBSD=2Eorg> >AuthorDate: 2024-02-24 15:41:31 +0000 >Commit: Richard Scheffenegger <rscheff@FreeBSD=2Eorg> >CommitDate: 2024-02-24 15:41:48 +0000 > > tcp: use enum for all congestion control signals > =20 > Facilitate easier troubleshooting by enumerating > all congestion control signals=2E Typecast the > enum to int, when a congestion control module uses > private signals=2E > =20 > No external change=2E > =20 > Reviewed By: glebius, tuexen, #transport > Sponsored by: NetApp, Inc=2E > Differential Revision: https://reviews=2Efreebsd=2Eorg/D43838 >--- > sys/netinet/cc/cc=2Ec | 2 +- > sys/netinet/cc/cc=2Eh | 42 +++++++++++++++++++++----------------= ----- > sys/netinet/cc/cc_cdg=2Ec | 10 +++++----- > sys/netinet/cc/cc_chd=2Ec | 11 ++++++----- > sys/netinet/cc/cc_cubic=2Ec | 10 ++++++---- > sys/netinet/cc/cc_dctcp=2Ec | 10 ++++++---- > sys/netinet/cc/cc_hd=2Ec | 4 ++-- > sys/netinet/cc/cc_htcp=2Ec | 10 ++++++---- > sys/netinet/cc/cc_newreno=2Ec | 10 ++++++---- > sys/netinet/cc/cc_vegas=2Ec | 13 +++++++------ > 10 files changed, 66 insertions(+), 56 deletions(-) > >diff --git a/sys/netinet/cc/cc=2Ec b/sys/netinet/cc/cc=2Ec >index c2965b1e6a48=2E=2E9308b5f8d764 100644 >--- a/sys/netinet/cc/cc=2Ec >+++ b/sys/netinet/cc/cc=2Ec >@@ -505,7 +505,7 @@ newreno_cc_cong_signal(struct cc_var *ccv, uint32_t t= ype) > } >=20 > void >-newreno_cc_ack_received(struct cc_var *ccv, uint16_t type) >+newreno_cc_ack_received(struct cc_var *ccv, ccsignal_t type) > { > if (type =3D=3D CC_ACK && !IN_RECOVERY(CCV(ccv, t_flags)) && > (ccv->flags & CCF_CWND_LIMITED)) { >diff --git a/sys/netinet/cc/cc=2Eh b/sys/netinet/cc/cc=2Eh >index 9571da50b2c7=2E=2E5b2cb58a24a0 100644 >--- a/sys/netinet/cc/cc=2Eh >+++ b/sys/netinet/cc/cc=2Eh >@@ -121,25 +121,25 @@ struct cc_var { > #define CCF_HYSTART_CAN_SH_CWND 0x0800 /* Can hystart when going CSS ->= CA slam the cwnd */ > #define CCF_HYSTART_CONS_SSTH 0x1000 /* Should hystart use the more cons= ervative ssthresh */ >=20 >-/* ACK types passed to the ack_received() hook=2E */ >-#define CC_ACK 0x0001 /* Regular in sequence ACK=2E */ >-#define CC_DUPACK 0x0002 /* Duplicate ACK=2E */ >-#define CC_PARTIALACK 0x0004 /* Not yet=2E */ >-#define CC_SACK 0x0008 /* Not yet=2E */ >+typedef enum { >+ /* ACK types passed to the ack_received() hook=2E */ >+ CC_ACK =3D 0x0001, /* Regular in sequence ACK=2E */ >+ CC_DUPACK =3D 0x0002, /* Duplicate ACK=2E */ >+ CC_PARTIALACK =3D 0x0004, /* Not yet=2E */ >+ CC_SACK =3D 0x0008, /* Not yet=2E */ >+ /* Congestion signal types passed to the cong_signal() hook=2E */ >+ CC_ECN =3D 0x0100, /* ECN marked packet received=2E */ >+ CC_RTO =3D 0x0200, /* RTO fired=2E */ >+ CC_RTO_ERR =3D 0x0400, /* RTO fired in error=2E */ >+ CC_NDUPACK =3D 0x0800, /* Threshold of dupack's reached=2E */ >+ /* >+ * The highest order 8 bits (0x01000000 - 0x80000000) are reserved >+ * for CC algos to declare their own congestion signal types=2E >+ */ >+ CC_SIGPRIVMASK =3D 0xFF000000 /* Mask to check if sig is private=2E */ >+} ccsignal_t; > #endif /* defined(_KERNEL) || defined(_WANT_TCPCB) */ >=20 >-/* >- * Congestion signal types passed to the cong_signal() hook=2E The highe= st order 8 >- * bits (0x01000000 - 0x80000000) are reserved for CC algos to declare t= heir own >- * congestion signal types=2E >- */ >-#define CC_ECN 0x00000001 /* ECN marked packet received=2E */ >-#define CC_RTO 0x00000002 /* RTO fired=2E */ >-#define CC_RTO_ERR 0x00000004 /* RTO fired in error=2E */ >-#define CC_NDUPACK 0x00000008 /* Threshold of dupack's reached=2E */ >- >-#define CC_SIGPRIVMASK 0xFF000000 /* Mask to check if sig is private=2E = */ >- > #ifdef _KERNEL > /* > * Structure to hold data and function pointers that together represent = a >@@ -175,10 +175,10 @@ struct cc_algo { > void (*conn_init)(struct cc_var *ccv); >=20 > /* Called on receipt of an ack=2E */ >- void (*ack_received)(struct cc_var *ccv, uint16_t type); >+ void (*ack_received)(struct cc_var *ccv, ccsignal_t type); >=20 > /* Called on detection of a congestion signal=2E */ >- void (*cong_signal)(struct cc_var *ccv, uint32_t type); >+ void (*cong_signal)(struct cc_var *ccv, ccsignal_t type); >=20 > /* Called after exiting congestion recovery=2E */ > void (*post_recovery)(struct cc_var *ccv); >@@ -236,8 +236,8 @@ extern struct rwlock cc_list_lock; > */ > void newreno_cc_post_recovery(struct cc_var *); > void newreno_cc_after_idle(struct cc_var *); >-void newreno_cc_cong_signal(struct cc_var *, uint32_t ); >-void newreno_cc_ack_received(struct cc_var *, uint16_t); >+void newreno_cc_cong_signal(struct cc_var *, ccsignal_t); >+void newreno_cc_ack_received(struct cc_var *, ccsignal_t); >=20 > /* Called to temporarily keep an algo from going away during change */ > void cc_refer(struct cc_algo *algo); >diff --git a/sys/netinet/cc/cc_cdg=2Ec b/sys/netinet/cc/cc_cdg=2Ec >index 3f23c4091170=2E=2E1e9236f878d4 100644 >--- a/sys/netinet/cc/cc_cdg=2Ec >+++ b/sys/netinet/cc/cc_cdg=2Ec >@@ -221,8 +221,8 @@ static int cdg_mod_destroy(void); > static void cdg_conn_init(struct cc_var *ccv); > static int cdg_cb_init(struct cc_var *ccv, void *ptr); > static void cdg_cb_destroy(struct cc_var *ccv); >-static void cdg_cong_signal(struct cc_var *ccv, uint32_t signal_type); >-static void cdg_ack_received(struct cc_var *ccv, uint16_t ack_type); >+static void cdg_cong_signal(struct cc_var *ccv, ccsignal_t signal_type); >+static void cdg_ack_received(struct cc_var *ccv, ccsignal_t ack_type); > static size_t cdg_data_sz(void); >=20 > struct cc_algo cdg_cc_algo =3D { >@@ -450,11 +450,11 @@ cdg_window_increase(struct cc_var *ccv, int new_mea= surement) > } >=20 > static void >-cdg_cong_signal(struct cc_var *ccv, uint32_t signal_type) >+cdg_cong_signal(struct cc_var *ccv, ccsignal_t signal_type) > { > struct cdg *cdg_data =3D ccv->cc_data; >=20 >- switch(signal_type) { >+ switch((int)signal_type) { > case CC_CDG_DELAY: > CCV(ccv, snd_ssthresh) =3D cdg_window_decrease(ccv, > CCV(ccv, snd_cwnd), V_cdg_beta_delay); >@@ -571,7 +571,7 @@ calc_moving_average(struct cdg *cdg_data, long qdiff_= max, long qdiff_min) > } >=20 > static void >-cdg_ack_received(struct cc_var *ccv, uint16_t ack_type) >+cdg_ack_received(struct cc_var *ccv, ccsignal_t ack_type) > { > struct cdg *cdg_data; > struct ertt *e_t; >diff --git a/sys/netinet/cc/cc_chd=2Ec b/sys/netinet/cc/cc_chd=2Ec >index c644d9b2cdb8=2E=2E52048a7c05ae 100644 >--- a/sys/netinet/cc/cc_chd=2Ec >+++ b/sys/netinet/cc/cc_chd=2Ec >@@ -88,10 +88,10 @@ > /* Largest possible number returned by random()=2E */ > #define RANDOM_MAX INT_MAX >=20 >-static void chd_ack_received(struct cc_var *ccv, uint16_t ack_type); >+static void chd_ack_received(struct cc_var *ccv, ccsignal_t ack_type); > static void chd_cb_destroy(struct cc_var *ccv); > static int chd_cb_init(struct cc_var *ccv, void *ptr); >-static void chd_cong_signal(struct cc_var *ccv, uint32_t signal_type); >+static void chd_cong_signal(struct cc_var *ccv, ccsignal_t signal_type); > static void chd_conn_init(struct cc_var *ccv); > static int chd_mod_init(void); > static size_t chd_data_sz(void); >@@ -235,7 +235,7 @@ chd_window_increase(struct cc_var *ccv, int new_measu= rement) > * ack_type =3D=3D CC_ACK=2E > */ > static void >-chd_ack_received(struct cc_var *ccv, uint16_t ack_type) >+chd_ack_received(struct cc_var *ccv, ccsignal_t ack_type) > { > struct chd *chd_data; > struct ertt *e_t; >@@ -336,7 +336,7 @@ chd_cb_init(struct cc_var *ccv, void *ptr) > } >=20 > static void >-chd_cong_signal(struct cc_var *ccv, uint32_t signal_type) >+chd_cong_signal(struct cc_var *ccv, ccsignal_t signal_type) > { > struct ertt *e_t; > struct chd *chd_data; >@@ -346,7 +346,7 @@ chd_cong_signal(struct cc_var *ccv, uint32_t signal_t= ype) > chd_data =3D ccv->cc_data; > qdly =3D imax(e_t->rtt, chd_data->maxrtt_in_rtt) - e_t->minrtt; >=20 >- switch(signal_type) { >+ switch((int)signal_type) { > case CC_CHD_DELAY: > chd_window_decrease(ccv); /* Set new ssthresh=2E */ > CCV(ccv, snd_cwnd) =3D CCV(ccv, snd_ssthresh); >@@ -387,6 +387,7 @@ chd_cong_signal(struct cc_var *ccv, uint32_t signal_t= ype) >=20 > default: > newreno_cc_cong_signal(ccv, signal_type); >+ break; > } > } >=20 >diff --git a/sys/netinet/cc/cc_cubic=2Ec b/sys/netinet/cc/cc_cubic=2Ec >index eb1587d44427=2E=2Ea9c7592b80ca 100644 >--- a/sys/netinet/cc/cc_cubic=2Ec >+++ b/sys/netinet/cc/cc_cubic=2Ec >@@ -73,10 +73,10 @@ > #include <netinet/cc/cc_cubic=2Eh> > #include <netinet/cc/cc_module=2Eh> >=20 >-static void cubic_ack_received(struct cc_var *ccv, uint16_t type); >+static void cubic_ack_received(struct cc_var *ccv, ccsignal_t type); > static void cubic_cb_destroy(struct cc_var *ccv); > static int cubic_cb_init(struct cc_var *ccv, void *ptr); >-static void cubic_cong_signal(struct cc_var *ccv, uint32_t type); >+static void cubic_cong_signal(struct cc_var *ccv, ccsignal_t type); > static void cubic_conn_init(struct cc_var *ccv); > static int cubic_mod_init(void); > static void cubic_post_recovery(struct cc_var *ccv); >@@ -233,7 +233,7 @@ cubic_does_slow_start(struct cc_var *ccv, struct cubi= c *cubicd) > } >=20 > static void >-cubic_ack_received(struct cc_var *ccv, uint16_t type) >+cubic_ack_received(struct cc_var *ccv, ccsignal_t type) > { > struct cubic *cubic_data; > unsigned long W_est, W_cubic; >@@ -417,7 +417,7 @@ cubic_cb_init(struct cc_var *ccv, void *ptr) > * Perform any necessary tasks before we enter congestion recovery=2E > */ > static void >-cubic_cong_signal(struct cc_var *ccv, uint32_t type) >+cubic_cong_signal(struct cc_var *ccv, ccsignal_t type) > { > struct cubic *cubic_data; > uint32_t mss, pipe; >@@ -503,6 +503,8 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) > cubic_data->cwnd_epoch =3D cubic_data->undo_cwnd_epoch; > cubic_data->t_epoch =3D cubic_data->undo_t_epoch; > break; >+ default: >+ break; > } > } >=20 >diff --git a/sys/netinet/cc/cc_dctcp=2Ec b/sys/netinet/cc/cc_dctcp=2Ec >index ae0a56839449=2E=2E374db98c5e60 100644 >--- a/sys/netinet/cc/cc_dctcp=2Ec >+++ b/sys/netinet/cc/cc_dctcp=2Ec >@@ -79,11 +79,11 @@ struct dctcp { > uint32_t num_cong_events; /* # of congestion events */ > }; >=20 >-static void dctcp_ack_received(struct cc_var *ccv, uint16_t type); >+static void dctcp_ack_received(struct cc_var *ccv, ccsignal_t type); > static void dctcp_after_idle(struct cc_var *ccv); > static void dctcp_cb_destroy(struct cc_var *ccv); > static int dctcp_cb_init(struct cc_var *ccv, void *ptr); >-static void dctcp_cong_signal(struct cc_var *ccv, uint32_t type); >+static void dctcp_cong_signal(struct cc_var *ccv, ccsignal_t type); > static void dctcp_conn_init(struct cc_var *ccv); > static void dctcp_post_recovery(struct cc_var *ccv); > static void dctcp_ecnpkt_handler(struct cc_var *ccv); >@@ -104,7 +104,7 @@ struct cc_algo dctcp_cc_algo =3D { > }; >=20 > static void >-dctcp_ack_received(struct cc_var *ccv, uint16_t type) >+dctcp_ack_received(struct cc_var *ccv, ccsignal_t type) > { > struct dctcp *dctcp_data; > int bytes_acked =3D 0; >@@ -237,7 +237,7 @@ dctcp_cb_init(struct cc_var *ccv, void *ptr) > * Perform any necessary tasks before we enter congestion recovery=2E > */ > static void >-dctcp_cong_signal(struct cc_var *ccv, uint32_t type) >+dctcp_cong_signal(struct cc_var *ccv, ccsignal_t type) > { > struct dctcp *dctcp_data; > uint32_t cwin, mss, pipe; >@@ -308,6 +308,8 @@ dctcp_cong_signal(struct cc_var *ccv, uint32_t type) > dctcp_data->save_sndnxt +=3D CCV(ccv, t_maxseg); > dctcp_data->num_cong_events++; > break; >+ default: >+ break; > } > } else > newreno_cc_cong_signal(ccv, type); >diff --git a/sys/netinet/cc/cc_hd=2Ec b/sys/netinet/cc/cc_hd=2Ec >index 1a8b62ccf426=2E=2E82486563f97e 100644 >--- a/sys/netinet/cc/cc_hd=2Ec >+++ b/sys/netinet/cc/cc_hd=2Ec >@@ -80,7 +80,7 @@ > /* Largest possible number returned by random()=2E */ > #define RANDOM_MAX INT_MAX >=20 >-static void hd_ack_received(struct cc_var *ccv, uint16_t ack_type); >+static void hd_ack_received(struct cc_var *ccv, ccsignal_t ack_type); > static int hd_mod_init(void); > static size_t hd_data_sz(void); >=20 >@@ -138,7 +138,7 @@ should_backoff(int qdly, int maxqdly) > * as NewReno in all other circumstances=2E > */ > static void >-hd_ack_received(struct cc_var *ccv, uint16_t ack_type) >+hd_ack_received(struct cc_var *ccv, ccsignal_t ack_type) > { > struct ertt *e_t; > int qdly; >diff --git a/sys/netinet/cc/cc_htcp=2Ec b/sys/netinet/cc/cc_htcp=2Ec >index 43224446fd84=2E=2E41c552a3bfa0 100644 >--- a/sys/netinet/cc/cc_htcp=2Ec >+++ b/sys/netinet/cc/cc_htcp=2Ec >@@ -136,10 +136,10 @@ > (((diff) / hz) * (((diff) << HTCP_ALPHA_INC_SHIFT) / (4 * hz))) \ > ) >> HTCP_ALPHA_INC_SHIFT) >=20 >-static void htcp_ack_received(struct cc_var *ccv, uint16_t type); >+static void htcp_ack_received(struct cc_var *ccv, ccsignal_t type); > static void htcp_cb_destroy(struct cc_var *ccv); > static int htcp_cb_init(struct cc_var *ccv, void *ptr); >-static void htcp_cong_signal(struct cc_var *ccv, uint32_t type); >+static void htcp_cong_signal(struct cc_var *ccv, ccsignal_t type); > static int htcp_mod_init(void); > static void htcp_post_recovery(struct cc_var *ccv); > static void htcp_recalc_alpha(struct cc_var *ccv); >@@ -190,7 +190,7 @@ struct cc_algo htcp_cc_algo =3D { > }; >=20 > static void >-htcp_ack_received(struct cc_var *ccv, uint16_t type) >+htcp_ack_received(struct cc_var *ccv, ccsignal_t type) > { > struct htcp *htcp_data; >=20 >@@ -278,7 +278,7 @@ htcp_cb_init(struct cc_var *ccv, void *ptr) > * Perform any necessary tasks before we enter congestion recovery=2E > */ > static void >-htcp_cong_signal(struct cc_var *ccv, uint32_t type) >+htcp_cong_signal(struct cc_var *ccv, ccsignal_t type) > { > struct htcp *htcp_data; > uint32_t mss, pipe; >@@ -345,6 +345,8 @@ htcp_cong_signal(struct cc_var *ccv, uint32_t type) > if (CCV(ccv, t_rxtshift) >=3D 2) > htcp_data->t_last_cong =3D ticks; > break; >+ default: >+ break; > } > } >=20 >diff --git a/sys/netinet/cc/cc_newreno=2Ec b/sys/netinet/cc/cc_newreno=2E= c >index 71f2764ef4bc=2E=2Eaa20e2c64f7d 100644 >--- a/sys/netinet/cc/cc_newreno=2Ec >+++ b/sys/netinet/cc/cc_newreno=2Ec >@@ -84,9 +84,9 @@ > #include <netinet/cc/cc_newreno=2Eh> >=20 > static void newreno_cb_destroy(struct cc_var *ccv); >-static void newreno_ack_received(struct cc_var *ccv, uint16_t type); >+static void newreno_ack_received(struct cc_var *ccv, ccsignal_t type); > static void newreno_after_idle(struct cc_var *ccv); >-static void newreno_cong_signal(struct cc_var *ccv, uint32_t type); >+static void newreno_cong_signal(struct cc_var *ccv, ccsignal_t type); > static int newreno_ctl_output(struct cc_var *ccv, struct sockopt *sopt, = void *buf); > static void newreno_newround(struct cc_var *ccv, uint32_t round_cnt); > static void newreno_rttsample(struct cc_var *ccv, uint32_t usec_rtt, uin= t32_t rxtcnt, uint32_t fas); >@@ -212,7 +212,7 @@ newreno_cb_destroy(struct cc_var *ccv) > } >=20 > static void >-newreno_ack_received(struct cc_var *ccv, uint16_t type) >+newreno_ack_received(struct cc_var *ccv, ccsignal_t type) > { > struct newreno *nreno; >=20 >@@ -363,7 +363,7 @@ newreno_after_idle(struct cc_var *ccv) > * Perform any necessary tasks before we enter congestion recovery=2E > */ > static void >-newreno_cong_signal(struct cc_var *ccv, uint32_t type) >+newreno_cong_signal(struct cc_var *ccv, ccsignal_t type) > { > struct newreno *nreno; > uint32_t beta, beta_ecn, cwin, factor, mss, pipe; >@@ -442,6 +442,8 @@ newreno_cong_signal(struct cc_var *ccv, uint32_t type= ) > } > CCV(ccv, snd_cwnd) =3D mss; > break; >+ default: >+ break; > } > } >=20 >diff --git a/sys/netinet/cc/cc_vegas=2Ec b/sys/netinet/cc/cc_vegas=2Ec >index aac9c9ce77ff=2E=2Eecd42c1a0f53 100644 >--- a/sys/netinet/cc/cc_vegas=2Ec >+++ b/sys/netinet/cc/cc_vegas=2Ec >@@ -84,12 +84,12 @@ > * Private signal type for rate based congestion signal=2E > * See <netinet/cc=2Eh> for appropriate bit-range to use for private sig= nals=2E > */ >-#define CC_VEGAS_RATE 0x01000000 >+#define CC_VEGAS_RATE 0x04000000 >=20 >-static void vegas_ack_received(struct cc_var *ccv, uint16_t ack_type); >+static void vegas_ack_received(struct cc_var *ccv, ccsignal_t ack_type); > static void vegas_cb_destroy(struct cc_var *ccv); > static int vegas_cb_init(struct cc_var *ccv, void *ptr); >-static void vegas_cong_signal(struct cc_var *ccv, uint32_t signal_type); >+static void vegas_cong_signal(struct cc_var *ccv, ccsignal_t signal_type= ); > static void vegas_conn_init(struct cc_var *ccv); > static int vegas_mod_init(void); > static size_t vegas_data_sz(void); >@@ -124,7 +124,7 @@ struct cc_algo vegas_cc_algo =3D { > * has been used=2E > */ > static void >-vegas_ack_received(struct cc_var *ccv, uint16_t ack_type) >+vegas_ack_received(struct cc_var *ccv, ccsignal_t ack_type) > { > struct ertt *e_t; > struct vegas *vegas_data; >@@ -203,7 +203,7 @@ vegas_cb_init(struct cc_var *ccv, void *ptr) > * handled here, otherwise it falls back to newreno's congestion handlin= g=2E > */ > static void >-vegas_cong_signal(struct cc_var *ccv, uint32_t signal_type) >+vegas_cong_signal(struct cc_var *ccv, ccsignal_t signal_type) > { > struct vegas *vegas_data; > int presignalrecov; >@@ -215,7 +215,7 @@ vegas_cong_signal(struct cc_var *ccv, uint32_t signal= _type) > else > presignalrecov =3D 0; >=20 >- switch(signal_type) { >+ switch((int)signal_type) { > case CC_VEGAS_RATE: > if (!IN_RECOVERY(CCV(ccv, t_flags))) { > CCV(ccv, snd_cwnd) =3D max(2 * CCV(ccv, t_maxseg), >@@ -228,6 +228,7 @@ vegas_cong_signal(struct cc_var *ccv, uint32_t signal= _type) >=20 > default: > newreno_cc_cong_signal(ccv, signal_type); >+ break; > } >=20 > if (IN_RECOVERY(CCV(ccv, t_flags)) && !presignalrecov) Buildworld is now broken for all arches (at least incremental build) Among the errors /home/bapt/worktrees/main/lib/libstats/=2E=2E/=2E=2E/sys/netinet/tcp_stats= =2Ec:138:32: error: use of undeclared identifier 'CC_NDUPACK' ------T877TB56UDSFUDD4AKM6Z78MQX4HAZ Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <html><head></head><body><div class=3D"gmail_quote"><div dir=3D"auto">Le 24= f=C3=A9vrier 2024 17:15:38 GMT+01:00, Richard Scheffenegger <rscheff@Fr= eeBSD=2Eorg> a =C3=A9crit=C2=A0:</div><blockquote class=3D"gmail_quote" = style=3D"margin: 0pt 0pt 0pt 0=2E8ex; border-left: 1px solid rgb(204, 204, = 204); padding-left: 1ex;"> <pre class=3D"k9mail"><div dir=3D"auto">The branch main has been updated b= y rscheff:<br><br>URL: <a href=3D"https://cgit=2EFreeBSD=2Eorg/src/commit/?= id=3Df74352fbcf15341accaf5a92240871f98323215d">https://cgit=2EFreeBSD=2Eorg= /src/commit/?id=3Df74352fbcf15341accaf5a92240871f98323215d</a><br><br>commi= t f74352fbcf15341accaf5a92240871f98323215d<br>Author: Richard Scheffene= gger <rscheff@FreeBSD=2Eorg><br>AuthorDate: 2024-02-24 15:41:31 +0000= <br>Commit: Richard Scheffenegger <rscheff@FreeBSD=2Eorg><br>Comm= itDate: 2024-02-24 15:41:48 +0000<br><br> tcp: use enum for all congesti= on control signals<br> <br> Facilitate easier troubleshooting by enum= erating<br> all congestion control signals=2E Typecast the<br> enum t= o int, when a congestion control module uses<br> private signals=2E<br> = <br> No external change=2E<br> <br> Reviewed By: gle= bius, tuexen, #transport<br> Sponsored by: NetApp, Inc=2E<br> = Differential Revision: <a href=3D"https://reviews=2Efreebsd=2Eorg/D4383= 8">https://reviews=2Efreebsd=2Eorg/D43838</a><hr>; sys/netinet/cc/cc=2Ec = | 2 +-<br> sys/netinet/cc/cc=2Eh | 42 +++++++++++++++++++++--= -------------------<br> sys/netinet/cc/cc_cdg=2Ec | 10 +++++-----<br> s= ys/netinet/cc/cc_chd=2Ec | 11 ++++++-----<br> sys/netinet/cc/cc_cubic= =2Ec | 10 ++++++----<br> sys/netinet/cc/cc_dctcp=2Ec | 10 ++++++----<br= > sys/netinet/cc/cc_hd=2Ec | 4 ++--<br> sys/netinet/cc/cc_htcp=2Ec = | 10 ++++++----<br> sys/netinet/cc/cc_newreno=2Ec | 10 ++++++----<br> sys/= netinet/cc/cc_vegas=2Ec | 13 +++++++------<br> 10 files changed, 66 inser= tions(+), 56 deletions(-)<br><br>diff --git a/sys/netinet/cc/cc=2Ec b/sys/n= etinet/cc/cc=2Ec<br>index c2965b1e6a48=2E=2E9308b5f8d764 100644<br>--- a/sy= s/netinet/cc/cc=2Ec<br>+++ b/sys/netinet/cc/cc=2Ec<br>@@ -505,7 +505,7 @@ n= ewreno_cc_cong_signal(struct cc_var *ccv, uint32_t type)<br> }<br> <br> voi= d<br>-newreno_cc_ack_received(struct cc_var *ccv, uint16_t type)<br>+newren= o_cc_ack_received(struct cc_var *ccv, ccsignal_t type)<br> {<br> if (type = =3D=3D CC_ACK && !IN_RECOVERY(CCV(ccv, t_flags)) &&<br> = (ccv->flags & CCF_CWND_LIMITED)) {<br>diff --git a/sys/netinet/cc/= cc=2Eh b/sys/netinet/cc/cc=2Eh<br>index 9571da50b2c7=2E=2E5b2cb58a24a0 1006= 44<br>--- a/sys/netinet/cc/cc=2Eh<br>+++ b/sys/netinet/cc/cc=2Eh<br>@@ -121= ,25 +121,25 @@ struct cc_var {<br> #define CCF_HYSTART_CAN_SH_CWND 0x0800 = /* Can hystart when going CSS -> CA slam the cwnd */<br> #define CCF_HYS= TART_CONS_SSTH 0x1000 /* Should hystart use the more conservative ssthresh = */<br> <br>-/* ACK types passed to the ack_received() hook=2E */<br>-#defin= e CC_ACK 0x0001 /* Regular in sequence ACK=2E */<br>-#define CC_DUPACK 0x0= 002 /* Duplicate ACK=2E */<br>-#define CC_PARTIALACK 0x0004 /* Not yet=2E *= /<br>-#define CC_SACK 0x0008 /* Not yet=2E */<br>+typedef enum {<br>+ /* A= CK types passed to the ack_received() hook=2E */<br>+ CC_ACK =3D 0x0001, /*= Regular in sequence ACK=2E */<br>+ CC_DUPACK =3D 0x0002, /* Duplicate ACK= =2E */<br>+ CC_PARTIALACK =3D 0x0004, /* Not yet=2E */<br>+ CC_SACK =3D 0x0= 008, /* Not yet=2E */<br>+ /* Congestion signal types passed to the cong_si= gnal() hook=2E */<br>+ CC_ECN =3D 0x0100, /* ECN marked packet received=2E = */<br>+ CC_RTO =3D 0x0200, /* RTO fired=2E */<br>+ CC_RTO_ERR =3D 0x0400, /= * RTO fired in error=2E */<br>+ CC_NDUPACK =3D 0x0800, /* Threshold of dupa= ck's reached=2E */<br>+ /*<br>+ * The highest order 8 bits (0x01000000 - 0= x80000000) are reserved<br>+ * for CC algos to declare their own congestio= n signal types=2E<br>+ */<br>+ CC_SIGPRIVMASK =3D 0xFF000000 /* Mask to ch= eck if sig is private=2E */<br>+} ccsignal_t;<br> #endif /* defined(_KERNEL= ) || defined(_WANT_TCPCB) */<br> <br>-/*<br>- * Congestion signal types pas= sed to the cong_signal() hook=2E The highest order 8<br>- * bits (0x0100000= 0 - 0x80000000) are reserved for CC algos to declare their own<br>- * conge= stion signal types=2E<br>- */<br>-#define CC_ECN 0x00000001 /* ECN marked = packet received=2E */<br>-#define CC_RTO 0x00000002 /* RTO fired=2E */<br>= -#define CC_RTO_ERR 0x00000004 /* RTO fired in error=2E */<br>-#define CC_N= DUPACK 0x00000008 /* Threshold of dupack's reached=2E */<br>-<br>-#define C= C_SIGPRIVMASK 0xFF000000 /* Mask to check if sig is private=2E */<br>-<br> = #ifdef _KERNEL<br> /*<br> * Structure to hold data and function pointers t= hat together represent a<br>@@ -175,10 +175,10 @@ struct cc_algo {<br> voi= d (*conn_init)(struct cc_var *ccv);<br> <br> /* Called on receipt of an ac= k=2E */<br>- void (*ack_received)(struct cc_var *ccv, uint16_t type);<br>+ = void (*ack_received)(struct cc_var *ccv, ccsignal_t type);<br> <br> /* Cal= led on detection of a congestion signal=2E */<br>- void (*cong_signal)(stru= ct cc_var *ccv, uint32_t type);<br>+ void (*cong_signal)(struct cc_var *ccv= , ccsignal_t type);<br> <br> /* Called after exiting congestion recovery= =2E */<br> void (*post_recovery)(struct cc_var *ccv);<br>@@ -236,8 +236,8 = @@ extern struct rwlock cc_list_lock;<br> */<br> void newreno_cc_post_reco= very(struct cc_var *);<br> void newreno_cc_after_idle(struct cc_var *);<br>= -void newreno_cc_cong_signal(struct cc_var *, uint32_t );<br>-void newreno_= cc_ack_received(struct cc_var *, uint16_t);<br>+void newreno_cc_cong_signal= (struct cc_var *, ccsignal_t);<br>+void newreno_cc_ack_received(struct cc_v= ar *, ccsignal_t);<br> <br> /* Called to temporarily keep an algo from goin= g away during change */<br> void cc_refer(struct cc_algo *algo);<br>diff --= git a/sys/netinet/cc/cc_cdg=2Ec b/sys/netinet/cc/cc_cdg=2Ec<br>index 3f23c4= 091170=2E=2E1e9236f878d4 100644<br>--- a/sys/netinet/cc/cc_cdg=2Ec<br>+++ b= /sys/netinet/cc/cc_cdg=2Ec<br>@@ -221,8 +221,8 @@ static int cdg_mod_destro= y(void);<br> static void cdg_conn_init(struct cc_var *ccv);<br> static int = cdg_cb_init(struct cc_var *ccv, void *ptr);<br> static void cdg_cb_destroy(= struct cc_var *ccv);<br>-static void cdg_cong_signal(struct cc_var *ccv, ui= nt32_t signal_type);<br>-static void cdg_ack_received(struct cc_var *ccv, u= int16_t ack_type);<br>+static void cdg_cong_signal(struct cc_var *ccv, ccsi= gnal_t signal_type);<br>+static void cdg_ack_received(struct cc_var *ccv, c= csignal_t ack_type);<br> static size_t cdg_data_sz(void);<br> <br> struct c= c_algo cdg_cc_algo =3D {<br>@@ -450,11 +450,11 @@ cdg_window_increase(struc= t cc_var *ccv, int new_measurement)<br> }<br> <br> static void<br>-cdg_cong= _signal(struct cc_var *ccv, uint32_t signal_type)<br>+cdg_cong_signal(struc= t cc_var *ccv, ccsignal_t signal_type)<br> {<br> struct cdg *cdg_data =3D = ccv->cc_data;<br> <br>- switch(signal_type) {<br>+ switch((int)signal_ty= pe) {<br> case CC_CDG_DELAY:<br> CCV(ccv, snd_ssthresh) =3D cdg_window_d= ecrease(ccv,<br> CCV(ccv, snd_cwnd), V_cdg_beta_delay);<br>@@ -571,7 = +571,7 @@ calc_moving_average(struct cdg *cdg_data, long qdiff_max, long qd= iff_min)<br> }<br> <br> static void<br>-cdg_ack_received(struct cc_var *ccv= , uint16_t ack_type)<br>+cdg_ack_received(struct cc_var *ccv, ccsignal_t ac= k_type)<br> {<br> struct cdg *cdg_data;<br> struct ertt *e_t;<br>diff --g= it a/sys/netinet/cc/cc_chd=2Ec b/sys/netinet/cc/cc_chd=2Ec<br>index c644d9b= 2cdb8=2E=2E52048a7c05ae 100644<br>--- a/sys/netinet/cc/cc_chd=2Ec<br>+++ b/= sys/netinet/cc/cc_chd=2Ec<br>@@ -88,10 +88,10 @@<br> /* Largest possible nu= mber returned by random()=2E */<br> #define RANDOM_MAX INT_MAX<br> <br>-sta= tic void chd_ack_received(struct cc_var *ccv, uint16_t ack_type);<br>+stati= c void chd_ack_received(struct cc_var *ccv, ccsignal_t ack_type);<br> stati= c void chd_cb_destroy(struct cc_var *ccv);<br> static int chd_cb_init(struc= t cc_var *ccv, void *ptr);<br>-static void chd_cong_signal(struct cc_var *c= cv, uint32_t signal_type);<br>+static void chd_cong_signal(struct cc_var *c= cv, ccsignal_t signal_type);<br> static void chd_conn_init(struct cc_var *c= cv);<br> static int chd_mod_init(void);<br> static size_t chd_data_sz(void)= ;<br>@@ -235,7 +235,7 @@ chd_window_increase(struct cc_var *ccv, int new_me= asurement)<br> * ack_type =3D=3D CC_ACK=2E<br> */<br> static void<br>-chd= _ack_received(struct cc_var *ccv, uint16_t ack_type)<br>+chd_ack_received(s= truct cc_var *ccv, ccsignal_t ack_type)<br> {<br> struct chd *chd_data;<br= > struct ertt *e_t;<br>@@ -336,7 +336,7 @@ chd_cb_init(struct cc_var *ccv,= void *ptr)<br> }<br> <br> static void<br>-chd_cong_signal(struct cc_var *c= cv, uint32_t signal_type)<br>+chd_cong_signal(struct cc_var *ccv, ccsignal_= t signal_type)<br> {<br> struct ertt *e_t;<br> struct chd *chd_data;<br>@= @ -346,7 +346,7 @@ chd_cong_signal(struct cc_var *ccv, uint32_t signal_type= )<br> chd_data =3D ccv->cc_data;<br> qdly =3D imax(e_t->rtt, chd_da= ta->maxrtt_in_rtt) - e_t->minrtt;<br> <br>- switch(signal_type) {<br>= + switch((int)signal_type) {<br> case CC_CHD_DELAY:<br> chd_window_decre= ase(ccv); /* Set new ssthresh=2E */<br> CCV(ccv, snd_cwnd) =3D CCV(ccv, s= nd_ssthresh);<br>@@ -387,6 +387,7 @@ chd_cong_signal(struct cc_var *ccv, ui= nt32_t signal_type)<br> <br> default:<br> newreno_cc_cong_signal(ccv, si= gnal_type);<br>+ break;<br> }<br> }<br> <br>diff --git a/sys/netinet/cc/c= c_cubic=2Ec b/sys/netinet/cc/cc_cubic=2Ec<br>index eb1587d44427=2E=2Ea9c759= 2b80ca 100644<br>--- a/sys/netinet/cc/cc_cubic=2Ec<br>+++ b/sys/netinet/cc/= cc_cubic=2Ec<br>@@ -73,10 +73,10 @@<br> #include <netinet/cc/cc_cubic=2E= h><br> #include <netinet/cc/cc_module=2Eh><br> <br>-static void cu= bic_ack_received(struct cc_var *ccv, uint16_t type);<br>+static void cubic_= ack_received(struct cc_var *ccv, ccsignal_t type);<br> static void cubic_cb= _destroy(struct cc_var *ccv);<br> static int cubic_cb_init(struct cc_var *c= cv, void *ptr);<br>-static void cubic_cong_signal(struct cc_var *ccv, uint3= 2_t type);<br>+static void cubic_cong_signal(struct cc_var *ccv, ccsignal_t= type);<br> static void cubic_conn_init(struct cc_var *ccv);<br> static int= cubic_mod_init(void);<br> static void cubic_post_recovery(struct cc_var *c= cv);<br>@@ -233,7 +233,7 @@ cubic_does_slow_start(struct cc_var *ccv, struc= t cubic *cubicd)<br> }<br> <br> static void<br>-cubic_ack_received(struct c= c_var *ccv, uint16_t type)<br>+cubic_ack_received(struct cc_var *ccv, ccsig= nal_t type)<br> {<br> struct cubic *cubic_data;<br> unsigned long W_est, = W_cubic;<br>@@ -417,7 +417,7 @@ cubic_cb_init(struct cc_var *ccv, void *ptr= )<br> * Perform any necessary tasks before we enter congestion recovery=2E= <br> */<br> static void<br>-cubic_cong_signal(struct cc_var *ccv, uint32_t= type)<br>+cubic_cong_signal(struct cc_var *ccv, ccsignal_t type)<br> {<br>= struct cubic *cubic_data;<br> uint32_t mss, pipe;<br>@@ -503,6 +503,8 @@= cubic_cong_signal(struct cc_var *ccv, uint32_t type)<br> cubic_data->= cwnd_epoch =3D cubic_data->undo_cwnd_epoch;<br> cubic_data->t_epoch= =3D cubic_data->undo_t_epoch;<br> break;<br>+ default:<br>+ break;<b= r> }<br> }<br> <br>diff --git a/sys/netinet/cc/cc_dctcp=2Ec b/sys/netinet/= cc/cc_dctcp=2Ec<br>index ae0a56839449=2E=2E374db98c5e60 100644<br>--- a/sys= /netinet/cc/cc_dctcp=2Ec<br>+++ b/sys/netinet/cc/cc_dctcp=2Ec<br>@@ -79,11 = +79,11 @@ struct dctcp {<br> uint32_t num_cong_events; /* # of congestion = events */<br> };<br> <br>-static void dctcp_ack_received(struct cc_var *ccv= , uint16_t type);<br>+static void dctcp_ack_received(struct cc_var *ccv, cc= signal_t type);<br> static void dctcp_after_idle(struct cc_var *ccv);<br> s= tatic void dctcp_cb_destroy(struct cc_var *ccv);<br> static int dctcp_cb_in= it(struct cc_var *ccv, void *ptr);<br>-static void dctcp_cong_signal(struct= cc_var *ccv, uint32_t type);<br>+static void dctcp_cong_signal(struct cc_v= ar *ccv, ccsignal_t type);<br> static void dctcp_conn_init(struct cc_var *c= cv);<br> static void dctcp_post_recovery(struct cc_var *ccv);<br> static vo= id dctcp_ecnpkt_handler(struct cc_var *ccv);<br>@@ -104,7 +104,7 @@ struct = cc_algo dctcp_cc_algo =3D {<br> };<br> <br> static void<br>-dctcp_ack_recei= ved(struct cc_var *ccv, uint16_t type)<br>+dctcp_ack_received(struct cc_var= *ccv, ccsignal_t type)<br> {<br> struct dctcp *dctcp_data;<br> int bytes= _acked =3D 0;<br>@@ -237,7 +237,7 @@ dctcp_cb_init(struct cc_var *ccv, void= *ptr)<br> * Perform any necessary tasks before we enter congestion recove= ry=2E<br> */<br> static void<br>-dctcp_cong_signal(struct cc_var *ccv, uin= t32_t type)<br>+dctcp_cong_signal(struct cc_var *ccv, ccsignal_t type)<br> = {<br> struct dctcp *dctcp_data;<br> uint32_t cwin, mss, pipe;<br>@@ -308,= 6 +308,8 @@ dctcp_cong_signal(struct cc_var *ccv, uint32_t type)<br> dct= cp_data->save_sndnxt +=3D CCV(ccv, t_maxseg);<br> dctcp_data->num_= cong_events++;<br> break;<br>+ default:<br>+ break;<br> }<br> } el= se<br> newreno_cc_cong_signal(ccv, type);<br>diff --git a/sys/netinet/cc/= cc_hd=2Ec b/sys/netinet/cc/cc_hd=2Ec<br>index 1a8b62ccf426=2E=2E82486563f97= e 100644<br>--- a/sys/netinet/cc/cc_hd=2Ec<br>+++ b/sys/netinet/cc/cc_hd=2E= c<br>@@ -80,7 +80,7 @@<br> /* Largest possible number returned by random()= =2E */<br> #define RANDOM_MAX INT_MAX<br> <br>-static void hd_ack_received(= struct cc_var *ccv, uint16_t ack_type);<br>+static void hd_ack_received(str= uct cc_var *ccv, ccsignal_t ack_type);<br> static int hd_mod_init(void);<br= > static size_t hd_data_sz(void);<br> <br>@@ -138,7 +138,7 @@ should_backof= f(int qdly, int maxqdly)<br> * as NewReno in all other circumstances=2E<br= > */<br> static void<br>-hd_ack_received(struct cc_var *ccv, uint16_t ack_= type)<br>+hd_ack_received(struct cc_var *ccv, ccsignal_t ack_type)<br> {<br= > struct ertt *e_t;<br> int qdly;<br>diff --git a/sys/netinet/cc/cc_htcp= =2Ec b/sys/netinet/cc/cc_htcp=2Ec<br>index 43224446fd84=2E=2E41c552a3bfa0 1= 00644<br>--- a/sys/netinet/cc/cc_htcp=2Ec<br>+++ b/sys/netinet/cc/cc_htcp= =2Ec<br>@@ -136,10 +136,10 @@<br> (((diff) / hz) * (((diff) << HTCP_= ALPHA_INC_SHIFT) / (4 * hz))) \<br> ) >> HTCP_ALPHA_INC_SHIFT)<br> <b= r>-static void htcp_ack_received(struct cc_var *ccv, uint16_t type);<br>+st= atic void htcp_ack_received(struct cc_var *ccv, ccsignal_t type);<br> stati= c void htcp_cb_destroy(struct cc_var *ccv);<br> static int htcp_cb_init(str= uct cc_var *ccv, void *ptr);<br>-static void htcp_cong_signal(struct cc_var= *ccv, uint32_t type);<br>+static void htcp_cong_signal(struct cc_var *ccv,= ccsignal_t type);<br> static int htcp_mod_init(void);<br> static void htcp= _post_recovery(struct cc_var *ccv);<br> static void htcp_recalc_alpha(struc= t cc_var *ccv);<br>@@ -190,7 +190,7 @@ struct cc_algo htcp_cc_algo =3D {<br= > };<br> <br> static void<br>-htcp_ack_received(struct cc_var *ccv, uint16_= t type)<br>+htcp_ack_received(struct cc_var *ccv, ccsignal_t type)<br> {<br= > struct htcp *htcp_data;<br> <br>@@ -278,7 +278,7 @@ htcp_cb_init(struct = cc_var *ccv, void *ptr)<br> * Perform any necessary tasks before we enter = congestion recovery=2E<br> */<br> static void<br>-htcp_cong_signal(struct = cc_var *ccv, uint32_t type)<br>+htcp_cong_signal(struct cc_var *ccv, ccsign= al_t type)<br> {<br> struct htcp *htcp_data;<br> uint32_t mss, pipe;<br>@= @ -345,6 +345,8 @@ htcp_cong_signal(struct cc_var *ccv, uint32_t type)<br> = if (CCV(ccv, t_rxtshift) >=3D 2)<br> htcp_data->t_last_cong =3D = ticks;<br> break;<br>+ default:<br>+ break;<br> }<br> }<br> <br>diff --= git a/sys/netinet/cc/cc_newreno=2Ec b/sys/netinet/cc/cc_newreno=2Ec<br>inde= x 71f2764ef4bc=2E=2Eaa20e2c64f7d 100644<br>--- a/sys/netinet/cc/cc_newreno= =2Ec<br>+++ b/sys/netinet/cc/cc_newreno=2Ec<br>@@ -84,9 +84,9 @@<br> #inclu= de <netinet/cc/cc_newreno=2Eh><br> <br> static void newreno_cb_destro= y(struct cc_var *ccv);<br>-static void newreno_ack_received(struct cc_var *= ccv, uint16_t type);<br>+static void newreno_ack_received(struct cc_var *cc= v, ccsignal_t type);<br> static void newreno_after_idle(struct cc_var *ccv)= ;<br>-static void newreno_cong_signal(struct cc_var *ccv, uint32_t type);<b= r>+static void newreno_cong_signal(struct cc_var *ccv, ccsignal_t type);<br= > static int newreno_ctl_output(struct cc_var *ccv, struct sockopt *sopt, v= oid *buf);<br> static void newreno_newround(struct cc_var *ccv, uint32_t ro= und_cnt);<br> static void newreno_rttsample(struct cc_var *ccv, uint32_t us= ec_rtt, uint32_t rxtcnt, uint32_t fas);<br>@@ -212,7 +212,7 @@ newreno_cb_d= estroy(struct cc_var *ccv)<br> }<br> <br> static void<br>-newreno_ack_recei= ved(struct cc_var *ccv, uint16_t type)<br>+newreno_ack_received(struct cc_v= ar *ccv, ccsignal_t type)<br> {<br> struct newreno *nreno;<br> <br>@@ -363= ,7 +363,7 @@ newreno_after_idle(struct cc_var *ccv)<br> * Perform any nece= ssary tasks before we enter congestion recovery=2E<br> */<br> static void<= br>-newreno_cong_signal(struct cc_var *ccv, uint32_t type)<br>+newreno_cong= _signal(struct cc_var *ccv, ccsignal_t type)<br> {<br> struct newreno *nre= no;<br> uint32_t beta, beta_ecn, cwin, factor, mss, pipe;<br>@@ -442,6 +44= 2,8 @@ newreno_cong_signal(struct cc_var *ccv, uint32_t type)<br> }<br> = CCV(ccv, snd_cwnd) =3D mss;<br> break;<br>+ default:<br>+ break;<br> }= <br> }<br> <br>diff --git a/sys/netinet/cc/cc_vegas=2Ec b/sys/netinet/cc/cc= _vegas=2Ec<br>index aac9c9ce77ff=2E=2Eecd42c1a0f53 100644<br>--- a/sys/neti= net/cc/cc_vegas=2Ec<br>+++ b/sys/netinet/cc/cc_vegas=2Ec<br>@@ -84,12 +84,1= 2 @@<br> * Private signal type for rate based congestion signal=2E<br> * = See <netinet/cc=2Eh> for appropriate bit-range to use for private sig= nals=2E<br> */<br>-#define CC_VEGAS_RATE 0x01000000<br>+#define CC_VEGAS_R= ATE 0x04000000<br> <br>-static void vegas_ack_received(struct cc_var *ccv, = uint16_t ack_type);<br>+static void vegas_ack_received(struct cc_var *ccv, = ccsignal_t ack_type);<br> static void vegas_cb_destroy(struct cc_var *ccv);= <br> static int vegas_cb_init(struct cc_var *ccv, void *ptr);<br>-static vo= id vegas_cong_signal(struct cc_var *ccv, uint32_t signal_type);<br>+static = void vegas_cong_signal(struct cc_var *ccv, ccsignal_t signal_type);<br> sta= tic void vegas_conn_init(struct cc_var *ccv);<br> static int vegas_mod_init= (void);<br> static size_t vegas_data_sz(void);<br>@@ -124,7 +124,7 @@ struc= t cc_algo vegas_cc_algo =3D {<br> * has been used=2E<br> */<br> static vo= id<br>-vegas_ack_received(struct cc_var *ccv, uint16_t ack_type)<br>+vegas_= ack_received(struct cc_var *ccv, ccsignal_t ack_type)<br> {<br> struct ert= t *e_t;<br> struct vegas *vegas_data;<br>@@ -203,7 +203,7 @@ vegas_cb_init= (struct cc_var *ccv, void *ptr)<br> * handled here, otherwise it falls bac= k to newreno's congestion handling=2E<br> */<br> static void<br>-vegas_con= g_signal(struct cc_var *ccv, uint32_t signal_type)<br>+vegas_cong_signal(st= ruct cc_var *ccv, ccsignal_t signal_type)<br> {<br> struct vegas *vegas_da= ta;<br> int presignalrecov;<br>@@ -215,7 +215,7 @@ vegas_cong_signal(struc= t cc_var *ccv, uint32_t signal_type)<br> else<br> presignalrecov =3D 0;<= br> <br>- switch(signal_type) {<br>+ switch((int)signal_type) {<br> case C= C_VEGAS_RATE:<br> if (!IN_RECOVERY(CCV(ccv, t_flags))) {<br> CCV(ccv, = snd_cwnd) =3D max(2 * CCV(ccv, t_maxseg),<br>@@ -228,6 +228,7 @@ vegas_cong= _signal(struct cc_var *ccv, uint32_t signal_type)<br> <br> default:<br> = newreno_cc_cong_signal(ccv, signal_type);<br>+ break;<br> }<br> <br> if = (IN_RECOVERY(CCV(ccv, t_flags)) && !presignalrecov)<br></div></pre>= </blockquote></div><br clear=3D"all"><div dir=3D"auto">Buildworld is now br= oken for all arches (at least incremental build)<br><br>Among the errors<br= ><br>/home/bapt/worktrees/main/lib/libstats/=2E=2E/=2E=2E/sys/netinet/tcp_s= tats=2Ec:138:32: error: use of undeclared identifier 'CC_NDUPACK'<br><br></= div></body></html> ------T877TB56UDSFUDD4AKM6Z78MQX4HAZ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A1F250AD-27F6-459F-A8FA-29EF8CF8EE44>