summaryrefslogtreecommitdiffstats
path: root/sys/netinet/cc.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/cc.h')
-rw-r--r--sys/netinet/cc.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/netinet/cc.h b/sys/netinet/cc.h
index 6f24f11..aaa1d67 100644
--- a/sys/netinet/cc.h
+++ b/sys/netinet/cc.h
@@ -58,11 +58,14 @@ extern STAILQ_HEAD(cc_head, cc_algo) cc_list;
extern const int tcprexmtthresh;
extern struct cc_algo newreno_cc_algo;
+/* Per-netstack bits. */
+VNET_DECLARE(struct cc_algo *, default_cc_ptr);
+#define V_default_cc_ptr VNET(default_cc_ptr)
+
/* Define the new net.inet.tcp.cc sysctl tree. */
SYSCTL_DECL(_net_inet_tcp_cc);
/* CC housekeeping functions. */
-void cc_init(void);
int cc_register_algo(struct cc_algo *add_cc);
int cc_deregister_algo(struct cc_algo *remove_cc);
@@ -147,7 +150,7 @@ struct cc_algo {
#define CC_DATA(tp) ((tp)->ccv->cc_data)
/* Macro to obtain the system default CC algo's struct ptr. */
-#define CC_DEFAULT() STAILQ_FIRST(&cc_list)
+#define CC_DEFAULT() V_default_cc_ptr
extern struct rwlock cc_list_lock;
#define CC_LIST_LOCK_INIT() rw_init(&cc_list_lock, "cc_list")
@@ -156,6 +159,6 @@ extern struct rwlock cc_list_lock;
#define CC_LIST_RUNLOCK() rw_runlock(&cc_list_lock)
#define CC_LIST_WLOCK() rw_wlock(&cc_list_lock)
#define CC_LIST_WUNLOCK() rw_wunlock(&cc_list_lock)
-#define CC_LIST_WLOCK_ASSERT() rw_assert(&cc_list_lock, RA_WLOCKED)
+#define CC_LIST_LOCK_ASSERT() rw_assert(&cc_list_lock, RA_LOCKED)
#endif /* _NETINET_CC_H_ */
OpenPOWER on IntegriCloud