]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet/tcp_cc.h
xnu-4570.51.1.tar.gz
[apple/xnu.git] / bsd / netinet / tcp_cc.h
index 6ee5567a6d99ef7b71ed0f5ba01827fa67ba4f5d..7c83900d175dcba2b2d6deb0525b69a92a4ff8f5 100644 (file)
@@ -74,6 +74,8 @@
 
 #define TCP_CA_NAME_MAX 16             /* Maximum characters in the name of a CC algorithm */
 
+extern int tcp_recv_bg;
+
 /*
  * Structure to hold definition various actions defined by a congestion 
  * control algorithm for TCP. This can be used to change the congestion
@@ -132,6 +134,11 @@ extern struct tcp_cc_algo* tcp_cc_algo_list[TCP_CC_ALGO_COUNT];
 
 #define CC_ALGO(tp) (tcp_cc_algo_list[tp->tcp_cc_index])
 #define        TCP_CC_CWND_INIT_BYTES  4380
+/*
+ * The congestion window will have to be reset after a
+ * non-validated period -- currently set to 3 minutes
+ */
+#define        TCP_CC_CWND_NONVALIDATED_PERIOD (3 * 60 * TCP_RETRANSHZ)
 
 extern void    tcp_cc_init(void);
 extern void tcp_cc_resize_sndbuf(struct tcpcb *tp);
@@ -142,6 +149,10 @@ extern void tcp_ccdbg_trace(struct tcpcb *tp, struct tcphdr *th,
        int32_t event);
 extern void tcp_cc_allocate_state(struct tcpcb *tp);
 extern void tcp_cc_after_idle_stretchack(struct tcpcb *tp);
+extern uint32_t tcp_cc_is_cwnd_nonvalidated(struct tcpcb *tp);
+extern void tcp_cc_adjust_nonvalidated_cwnd(struct tcpcb *tp);
+extern u_int32_t tcp_get_max_pipeack(struct tcpcb *tp);
+extern void tcp_clear_pipeack_state(struct tcpcb *tp);
 
 #endif /* KERNEL */
 #endif /* _NETINET_CC_H_ */