No functional change intended.
Improves each individual cc's responsibility for congestion control.
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 76381 Build 73264: arc lint + arc unit
Event Timeline
| sys/netinet/cc/cc.c | ||
|---|---|---|
| 392 | Many other cc modules' post_recovery() actually calls this newreno_cc_post_recovery(), except for cubic and htcp. | |
| sys/netinet/cc/cc_htcp.c | ||
|---|---|---|
| 393 | Could you double check the indentation? It looks strange in this tool. | |
| sys/netinet/cc/cc_htcp.c | ||
|---|---|---|
| 393 | Thanks for catching this. fixed | |
They don't seem to be impacted or relevant.
static void rack_post_recovery(struct tcpcb *tp, uint32_t th_ack); static void bbr_post_recovery(struct tcpcb *tp);
I guess BBR is fine, but rack_post_recovery() calls CC_ALGO(tp)->post_recovery(), which you are changing. Doesn't it needs the corresponding changes?
I think rack_post_recovery() also calls rack_exit_recovery() at the end, which is a dup after this patch. The only concern, in rack_post_recovery(), will be can snd_cwnd be larger than snd_ssthresh after calling CC_ALGO(tp)->post_recovery() before this patch? If so, then it seems like a bug introduced by commit 506e3e30a43cc04a21aa65a423bbd1cc4e0543f8. Or as commit 506e3e30a43cc04a21aa65a423bbd1cc4e0543f8 indicates, "Set cwnd to ssthresh post recovery. (RFC 9937 4)" is more necessary. Then, "cwnd shall be set to ssthresh post recovery" for all seems like a simple ruling.