1/*-
2 * Copyright (c) 2007-2008
3 * Swinburne University of Technology, Melbourne, Australia.
4 * Copyright (c) 2009-2010 Lawrence Stewart <lstewart@freebsd.org>
5 * Copyright (c) 2010 The FreeBSD Foundation
6 * All rights reserved.
7 *
8 * This software was developed at the Centre for Advanced Internet
--- 21 unchanged lines hidden (view full) ---
30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * $FreeBSD: head/sys/netinet/cc.h 277054 2015-01-12 08:33:04Z hiren $
39 */
40
41/*
42 * This software was first released in 2007 by James Healy and Lawrence Stewart
43 * whilst working on the NewTCP research project at Swinburne University of
44 * Technology's Centre for Advanced Internet Architectures, Melbourne,
45 * Australia, which was made possible in part by a grant from the Cisco
46 * University Research Program Fund at Community Foundation Silicon Valley.
47 * More details are available at:
48 * http://caia.swin.edu.au/urp/newtcp/
49 */
50
51#ifndef _NETINET_CC_H_
52#define _NETINET_CC_H_
53
54/* XXX: TCP_CA_NAME_MAX define lives in tcp.h for compat reasons. */
55#include <netinet/tcp.h>
56
57/* Global CC vars. */
58extern STAILQ_HEAD(cc_head, cc_algo) cc_list;
59extern const int tcprexmtthresh;
60extern struct cc_algo newreno_cc_algo;
61
62/* Per-netstack bits. */
63VNET_DECLARE(struct cc_algo *, default_cc_ptr);
--- 102 unchanged lines hidden (view full) ---
166#define CC_LIST_LOCK_INIT() rw_init(&cc_list_lock, "cc_list")
167#define CC_LIST_LOCK_DESTROY() rw_destroy(&cc_list_lock)
168#define CC_LIST_RLOCK() rw_rlock(&cc_list_lock)
169#define CC_LIST_RUNLOCK() rw_runlock(&cc_list_lock)
170#define CC_LIST_WLOCK() rw_wlock(&cc_list_lock)
171#define CC_LIST_WUNLOCK() rw_wunlock(&cc_list_lock)
172#define CC_LIST_LOCK_ASSERT() rw_assert(&cc_list_lock, RA_LOCKED)
173
174#endif /* _NETINET_CC_H_ */
2 * Copyright (c) 2007-2008
3 * Swinburne University of Technology, Melbourne, Australia.
4 * Copyright (c) 2009-2010 Lawrence Stewart <lstewart@freebsd.org>
5 * Copyright (c) 2010 The FreeBSD Foundation
6 * All rights reserved.
7 *
8 * This software was developed at the Centre for Advanced Internet
--- 21 unchanged lines hidden (view full) ---
30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * $FreeBSD: head/sys/netinet/cc.h 277054 2015-01-12 08:33:04Z hiren $
39 */
40
41/*
42 * This software was first released in 2007 by James Healy and Lawrence Stewart
43 * whilst working on the NewTCP research project at Swinburne University of
44 * Technology's Centre for Advanced Internet Architectures, Melbourne,
45 * Australia, which was made possible in part by a grant from the Cisco
46 * University Research Program Fund at Community Foundation Silicon Valley.
47 * More details are available at:
48 * http://caia.swin.edu.au/urp/newtcp/
49 */
50
51#ifndef _NETINET_CC_H_
52#define _NETINET_CC_H_
53
54/* XXX: TCP_CA_NAME_MAX define lives in tcp.h for compat reasons. */
55#include <netinet/tcp.h>
56
57/* Global CC vars. */
58extern STAILQ_HEAD(cc_head, cc_algo) cc_list;
59extern const int tcprexmtthresh;
60extern struct cc_algo newreno_cc_algo;
61
62/* Per-netstack bits. */
63VNET_DECLARE(struct cc_algo *, default_cc_ptr);
--- 102 unchanged lines hidden (view full) ---
166#define CC_LIST_LOCK_INIT() rw_init(&cc_list_lock, "cc_list")
167#define CC_LIST_LOCK_DESTROY() rw_destroy(&cc_list_lock)
168#define CC_LIST_RLOCK() rw_rlock(&cc_list_lock)
169#define CC_LIST_RUNLOCK() rw_runlock(&cc_list_lock)
170#define CC_LIST_WLOCK() rw_wlock(&cc_list_lock)
171#define CC_LIST_WUNLOCK() rw_wunlock(&cc_list_lock)
172#define CC_LIST_LOCK_ASSERT() rw_assert(&cc_list_lock, RA_LOCKED)
173
174#endif /* _NETINET_CC_H_ */