cc.h (b8d60729deefa0bd13e6a395fcab4928e6e10445) cc.h (a9696510f5caef4a7c525fcf4359597798829350)
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

--- 58 unchanged lines hidden (view full) ---

67#define V_cc_do_abe VNET(cc_do_abe)
68
69VNET_DECLARE(int, cc_abe_frlossreduce);
70#define V_cc_abe_frlossreduce VNET(cc_abe_frlossreduce)
71
72/* Define the new net.inet.tcp.cc sysctl tree. */
73SYSCTL_DECL(_net_inet_tcp_cc);
74
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

--- 58 unchanged lines hidden (view full) ---

67#define V_cc_do_abe VNET(cc_do_abe)
68
69VNET_DECLARE(int, cc_abe_frlossreduce);
70#define V_cc_abe_frlossreduce VNET(cc_abe_frlossreduce)
71
72/* Define the new net.inet.tcp.cc sysctl tree. */
73SYSCTL_DECL(_net_inet_tcp_cc);
74
75/* For CC modules that use hystart++ */
76extern uint32_t hystart_lowcwnd;
77extern uint32_t hystart_minrtt_thresh;
78extern uint32_t hystart_maxrtt_thresh;
79extern uint32_t hystart_n_rttsamples;
80extern uint32_t hystart_css_growth_div;
81extern uint32_t hystart_css_rounds;
82extern uint32_t hystart_bblogs;
83
75/* CC housekeeping functions. */
76int cc_register_algo(struct cc_algo *add_cc);
77int cc_deregister_algo(struct cc_algo *remove_cc);
78
79/*
80 * Wrapper around transport structs that contain same-named congestion
81 * control variables. Allows algos to be shared amongst multiple CC aware
82 * transprots.

--- 18 unchanged lines hidden (view full) ---

101#define CCF_USE_LOCAL_ABC 0x0004 /* Dont use the system l_abc val */
102#define CCF_ACKNOW 0x0008 /* Will this ack be sent now? */
103#define CCF_IPHDR_CE 0x0010 /* Does this packet set CE bit? */
104#define CCF_TCPHDR_CWR 0x0020 /* Does this packet set CWR bit? */
105#define CCF_MAX_CWND 0x0040 /* Have we reached maximum cwnd? */
106#define CCF_CHG_MAX_CWND 0x0080 /* Cubic max_cwnd changed, for K */
107#define CCF_USR_IWND 0x0100 /* User specified initial window */
108#define CCF_USR_IWND_INIT_NSEG 0x0200 /* Convert segs to bytes on conn init */
84/* CC housekeeping functions. */
85int cc_register_algo(struct cc_algo *add_cc);
86int cc_deregister_algo(struct cc_algo *remove_cc);
87
88/*
89 * Wrapper around transport structs that contain same-named congestion
90 * control variables. Allows algos to be shared amongst multiple CC aware
91 * transprots.

--- 18 unchanged lines hidden (view full) ---

110#define CCF_USE_LOCAL_ABC 0x0004 /* Dont use the system l_abc val */
111#define CCF_ACKNOW 0x0008 /* Will this ack be sent now? */
112#define CCF_IPHDR_CE 0x0010 /* Does this packet set CE bit? */
113#define CCF_TCPHDR_CWR 0x0020 /* Does this packet set CWR bit? */
114#define CCF_MAX_CWND 0x0040 /* Have we reached maximum cwnd? */
115#define CCF_CHG_MAX_CWND 0x0080 /* Cubic max_cwnd changed, for K */
116#define CCF_USR_IWND 0x0100 /* User specified initial window */
117#define CCF_USR_IWND_INIT_NSEG 0x0200 /* Convert segs to bytes on conn init */
118#define CCF_HYSTART_ALLOWED 0x0400 /* If the CC supports it Hystart is allowed */
119#define CCF_HYSTART_CAN_SH_CWND 0x0800 /* Can hystart when going CSS -> CA slam the cwnd */
120#define CCF_HYSTART_CONS_SSTH 0x1000 /* Should hystart use the more conservative ssthresh */
109
110/* ACK types passed to the ack_received() hook. */
111#define CC_ACK 0x0001 /* Regular in sequence ACK. */
112#define CC_DUPACK 0x0002 /* Duplicate ACK. */
113#define CC_PARTIALACK 0x0004 /* Not yet. */
114#define CC_SACK 0x0008 /* Not yet. */
115#endif /* _KERNEL */
116

--- 112 unchanged lines hidden ---
121
122/* ACK types passed to the ack_received() hook. */
123#define CC_ACK 0x0001 /* Regular in sequence ACK. */
124#define CC_DUPACK 0x0002 /* Duplicate ACK. */
125#define CC_PARTIALACK 0x0004 /* Not yet. */
126#define CC_SACK 0x0008 /* Not yet. */
127#endif /* _KERNEL */
128

--- 112 unchanged lines hidden ---