cc_algo
STAILQ_ENTRY(cc_algo) entries;
typedef int cc_walk_func_t(void *, struct cc_algo *);
extern struct cc_algo *cc_load_algo(const char *name);
extern int cc_register_algo(struct cc_algo *add_cc);
extern int cc_deregister_algo(struct cc_algo *remove_cc);
struct cc_algo *algo;
struct cc_algo *
struct cc_algo *algo;
cc_deregister_algo(struct cc_algo *remove_cc)
struct cc_algo *funcs, *tmpfuncs;
STAILQ_REMOVE(&cc_list, funcs, cc_algo, entries);
cc_register_algo(struct cc_algo *add_cc)
struct cc_algo *funcs;
static STAILQ_HEAD(cc_head, cc_algo) cc_list = STAILQ_HEAD_INITIALIZER(cc_list);
struct cc_algo cubic_cc_algo = {
static struct cc_algo *newreno_cc_algo;
struct cc_algo newreno_cc_algo = {
struct cc_algo sunreno_cc_algo = {
struct cc_algo *tcp_cc_algo; /* congestion control algorithm */
struct cc_algo *algo;
struct cc_algo *algo = cc_load_algo(name);
tcp_copy_ccname(void *data, struct cc_algo *algo)
struct cc_algo *tcps_default_cc_algo;