diff --git a/libccp b/libccp index a8c7e2f..e40be98 160000 --- a/libccp +++ b/libccp @@ -1 +1 @@ -Subproject commit a8c7e2f8e0a133419cd21f7ab7eedd92f1d98961 +Subproject commit e40be98e2dd59f602e29c8b76fe9ec297e59b339 diff --git a/tcp_ccp.c b/tcp_ccp.c index 4924d10..0e9b03c 100644 --- a/tcp_ccp.c +++ b/tcp_ccp.c @@ -233,13 +233,22 @@ EXPORT_SYMBOL_GPL(tcp_ccp_set_state); void tcp_ccp_init(struct sock *sk) { struct ccp *cpl; struct tcp_sock *tp = tcp_sk(sk); + struct ccp_datapath_info dp = { + .init_cwnd = tp->snd_cwnd * tp->mss_cache, + .mss = tp->mss_cache, + .src_ip = tp->inet_conn.icsk_inet.inet_rcv_saddr, + .src_port = tp->inet_conn.icsk_inet.inet_num, + .dst_ip = tp->inet_conn.icsk_inet.inet_saddr, + .dst_port = tp->inet_conn.icsk_inet.inet_dport, + .congAlg = "reno", + }; cpl = inet_csk_ca(sk); cpl->last_snd_una = tp->snd_una; cpl->last_bytes_acked = tp->bytes_acked; cpl->last_sacked_out = tp->sacked_out; - cpl->dp = ccp_connection_start((void *) sk); + cpl->dp = ccp_connection_start((void *) sk, &dp); if (cpl->dp == NULL) { pr_info("ccp: start connection failed\n"); } else {