@@ -382,8 +382,8 @@ static int bbr_init(struct quic_cc *cc)
382382 return 0 ;
383383
384384 quic_cc_drs_init (bbr -> drs );
385- wf_init (& bbr -> max_bw_filter , BBR_MAX_BW_FILTERLEN );
386- wf_init (& bbr -> extra_acked_filter , BBR_EXTRA_ACKED_FILTERLEN );
385+ wf_init (& bbr -> max_bw_filter , BBR_MAX_BW_FILTERLEN , 0 , ~ 0U );
386+ wf_init (& bbr -> extra_acked_filter , BBR_EXTRA_ACKED_FILTERLEN , 0 , ~ 0U );
387387 /* InitWindowedMaxFilter() */
388388 bbr -> min_rtt = UINT32_MAX ;
389389 bbr -> min_rtt_stamp = now_ms ;
@@ -829,10 +829,9 @@ static void bbr_update_max_bw(struct bbr *bbr, struct quic_cc_path *p,
829829 struct quic_cc_rs * rs = & bbr -> drs -> rs ;
830830
831831 bbr_update_round (bbr , delivered );
832- if (p -> delivery_rate >= bbr -> max_bw || !rs -> is_app_limited ) {
833- wf_update (& bbr -> max_bw_filter , p -> delivery_rate , bbr -> cycle_count );
834- bbr -> max_bw = wf_get_best (& bbr -> max_bw_filter );
835- }
832+ if (p -> delivery_rate >= bbr -> max_bw || !rs -> is_app_limited )
833+ bbr -> max_bw = wf_max_update (& bbr -> max_bw_filter ,
834+ p -> delivery_rate , bbr -> cycle_count );
836835}
837836
838837static void bbr_init_lower_bounds (struct bbr * bbr , struct quic_cc_path * p )
@@ -900,11 +899,7 @@ static void bbr_update_ack_aggregation(struct bbr *bbr,
900899 extra = bbr -> extra_acked_delivered - expected_delivered ;
901900 extra = MIN (extra , p -> cwnd );
902901
903- /* XXX CHECK THIS XXX: the RFC make use of a <window_length> parameter
904- * to be passed to wf_update().
905- */
906- wf_update (& bbr -> extra_acked_filter , extra , bbr -> round_count );
907- bbr -> extra_acked = wf_get_best (& bbr -> extra_acked_filter );
902+ bbr -> extra_acked = wf_max_update (& bbr -> extra_acked_filter , extra , bbr -> round_count );
908903}
909904
910905static void bbr_advance_latest_delivery_signals (struct bbr * bbr ,
0 commit comments