ea9017fb25
In the transport call on 12/3 Gleb asked to move the CC modules towards using reference counting to prevent folks from unloading a module in use. It was also agreed that Michael would do a user space utility like tcp_drop that could be used to move all connections that are using a specific CC to some other CC. This is the half I committed to doing, making it so that we maintain a refcount on a cc module every time a pcb refers to it and decrementing that every time a pcb no longer uses a cc module. This also helps us simplify the whole unloading process by getting rid of tcp_ccunload() which munged through all the tcb's. Instead we mark a module as being removed and prevent further references to it. We also make sure that if a module is marked as being removed it cannot be made as the default and also the opposite of that, if its a default it fails and does not mark it as being removed. Reviewed by: Michael Tuexen, Gleb Smirnoff Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D33249 |
||
---|---|---|
.. | ||
cc_cdg.c | ||
cc_chd.c | ||
cc_cubic.c | ||
cc_cubic.h | ||
cc_dctcp.c | ||
cc_hd.c | ||
cc_htcp.c | ||
cc_module.h | ||
cc_newreno.c | ||
cc_newreno.h | ||
cc_vegas.c | ||
cc.c | ||
cc.h |