Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve tcp_congestion_control frobbing
Previously it had to be "cubic" and we changed it to "reno". Now, we pick any other available alg. This actually uncovered yet another bug (in Linux v5.12-12733-g9f67672a817e): When /proc/sys/net/ipv4/tcp_congestion_control is written, proc_tcp_congestion_control() is called, which calls tcp_set_default_congestion_control() to handle the write. That function properly operates on &net->ipv4.tcp_congestion_control, but it *also* sets ca->flags |= TCP_CONG_NON_RESTRICTED which is global. This has the unintended side-effect of /proc/sys/net/ipv4/tcp_allowed_congestion_control changing, even though 97684f0970f6e made it read-only in the child netns. While we're in here... tcp_ca_find_autoload() will try to load a module, if capable(CAP_NET_ADMIN). But what if we're in a userns?
- Loading branch information