From owner-svn-src-projects@FreeBSD.ORG Wed Jul 1 15:11:24 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 123EB106568F; Wed, 1 Jul 2009 15:11:24 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF3C18FC14; Wed, 1 Jul 2009 15:11:23 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n61FBNI8016189; Wed, 1 Jul 2009 15:11:23 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n61FBNVF016182; Wed, 1 Jul 2009 15:11:23 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <200907011511.n61FBNVF016182@svn.freebsd.org> From: Lawrence Stewart Date: Wed, 1 Jul 2009 15:11:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r195241 - projects/tcp_cc_8.x/sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Jul 2009 15:11:28 -0000 Author: lstewart Date: Wed Jul 1 15:11:23 2009 New Revision: 195241 URL: http://svn.freebsd.org/changeset/base/195241 Log: Checkpoint commit part way through rename of cwnd_init hook to conn_init, which will now cover cwnd initialisation along with other bits and pieces. I think the newly named newreno_conn_init function can now be removed and all the code that's in it placed in the cc_conn_init() wrapper function. Modified: projects/tcp_cc_8.x/sys/netinet/cc.h projects/tcp_cc_8.x/sys/netinet/cc_cubic.c projects/tcp_cc_8.x/sys/netinet/cc_htcp.c projects/tcp_cc_8.x/sys/netinet/cc_module.h projects/tcp_cc_8.x/sys/netinet/cc_newreno.c projects/tcp_cc_8.x/sys/netinet/tcp_input.c Modified: projects/tcp_cc_8.x/sys/netinet/cc.h ============================================================================== --- projects/tcp_cc_8.x/sys/netinet/cc.h Wed Jul 1 14:43:06 2009 (r195240) +++ projects/tcp_cc_8.x/sys/netinet/cc.h Wed Jul 1 15:11:23 2009 (r195241) @@ -78,9 +78,8 @@ struct cc_algo { /* Cleanup CC state for a terminating control block. */ void (*cb_destroy) (struct tcpcb *tp); - /* Init cwnd for a new connection. */ - /* XXXLS: could this be renamed conn_init or conn_established? */ - void (*cwnd_init) (struct tcpcb *tp); + /* Init variables for a newly established connection. */ + void (*conn_init) (struct tcpcb *tp); /* Called on receipt of a regular, valid ack. */ void (*ack_received) (struct tcpcb *tp, struct tcphdr *th); Modified: projects/tcp_cc_8.x/sys/netinet/cc_cubic.c ============================================================================== --- projects/tcp_cc_8.x/sys/netinet/cc_cubic.c Wed Jul 1 14:43:06 2009 (r195240) +++ projects/tcp_cc_8.x/sys/netinet/cc_cubic.c Wed Jul 1 15:11:23 2009 (r195241) @@ -70,7 +70,7 @@ void cubic_ack_received(struct tcpcb *tp void cubic_after_timeout(struct tcpcb *tp); void cubic_after_idle(struct tcpcb *tp); void cubic_ssthresh_update(struct tcpcb *tp); -void cubic_cwnd_init(struct tcpcb *tp); +void cubic_conn_init(struct tcpcb *tp); void cubic_record_rtt(struct tcpcb *tp); struct cubic { @@ -93,11 +93,9 @@ MALLOC_DEFINE(M_CUBIC, "cubic data", /* function pointers for various hooks into the TCP stack */ struct cc_algo cubic_cc_algo = { .name = "cubic", - .mod_init = NULL, - .mod_destroy = NULL, .cb_init = cubic_cb_init, .cb_destroy = cubic_cb_destroy, - .cwnd_init = cubic_cwnd_init, + .conn_init = cubic_conn_init, .ack_received = cubic_ack_received, .pre_fr = cubic_pre_fr, .post_fr = cubic_post_fr, @@ -106,11 +104,11 @@ struct cc_algo cubic_cc_algo = { }; void -cubic_cwnd_init(struct tcpcb *tp) +cubic_conn_init(struct tcpcb *tp) { struct cubic *cubic_data = CC_DATA(tp); - newreno_cwnd_init(tp); + newreno_conn_init(tp); /* * Ensure we have a sane initial value for max_cwnd recorded. Modified: projects/tcp_cc_8.x/sys/netinet/cc_htcp.c ============================================================================== --- projects/tcp_cc_8.x/sys/netinet/cc_htcp.c Wed Jul 1 14:43:06 2009 (r195240) +++ projects/tcp_cc_8.x/sys/netinet/cc_htcp.c Wed Jul 1 15:11:23 2009 (r195241) @@ -172,7 +172,7 @@ struct cc_algo htcp_cc_algo = { .mod_init = htcp_mod_init, .cb_init = htcp_cb_init, .cb_destroy = htcp_cb_destroy, - .cwnd_init = newreno_cwnd_init, + .conn_init = newreno_conn_init, .ack_received = htcp_ack_received, .pre_fr = htcp_pre_fr, .post_fr = htcp_post_fr, Modified: projects/tcp_cc_8.x/sys/netinet/cc_module.h ============================================================================== --- projects/tcp_cc_8.x/sys/netinet/cc_module.h Wed Jul 1 14:43:06 2009 (r195240) +++ projects/tcp_cc_8.x/sys/netinet/cc_module.h Wed Jul 1 15:11:23 2009 (r195241) @@ -40,7 +40,7 @@ * NewReno CC functions */ int newreno_cb_init(struct tcpcb *tp); -void newreno_cwnd_init(struct tcpcb *tp); +void newreno_conn_init(struct tcpcb *tp); void newreno_ack_received(struct tcpcb *tp, struct tcphdr *th); void newreno_pre_fr(struct tcpcb *tp, struct tcphdr *th); void newreno_post_fr(struct tcpcb *tp, struct tcphdr *th); Modified: projects/tcp_cc_8.x/sys/netinet/cc_newreno.c ============================================================================== --- projects/tcp_cc_8.x/sys/netinet/cc_newreno.c Wed Jul 1 14:43:06 2009 (r195240) +++ projects/tcp_cc_8.x/sys/netinet/cc_newreno.c Wed Jul 1 15:11:23 2009 (r195241) @@ -51,7 +51,7 @@ __FBSDID("$FreeBSD$"); struct cc_algo newreno_cc_algo = { .name = "newreno", .cb_init = newreno_cb_init, - .cwnd_init = newreno_cwnd_init, + .conn_init = newreno_conn_init, .ack_received = newreno_ack_received, .pre_fr = newreno_pre_fr, .post_fr = newreno_post_fr, @@ -89,7 +89,7 @@ newreno_ssthresh_update(struct tcpcb *tp * otherwise use the sysctl variables configured by the administrator */ void -newreno_cwnd_init(struct tcpcb *tp) +newreno_conn_init(struct tcpcb *tp) { struct hc_metrics_lite metrics; struct inpcb *inp = tp->t_inpcb; Modified: projects/tcp_cc_8.x/sys/netinet/tcp_input.c ============================================================================== --- projects/tcp_cc_8.x/sys/netinet/tcp_input.c Wed Jul 1 14:43:06 2009 (r195240) +++ projects/tcp_cc_8.x/sys/netinet/tcp_input.c Wed Jul 1 15:11:23 2009 (r195241) @@ -215,7 +215,7 @@ static void tcp_pulloutofband(struct so static void tcp_xmit_timer(struct tcpcb *, int); static void tcp_newreno_partial_ack(struct tcpcb *, struct tcphdr *); static void inline cc_ack_received(struct tcpcb *tp, struct tcphdr *th); -static void inline cc_cwnd_init(struct tcpcb *tp); +static void inline cc_conn_init(struct tcpcb *tp); static void inline cc_pre_fr(struct tcpcb *tp, struct tcphdr *th); static void inline cc_post_fr(struct tcpcb *tp, struct tcphdr *th); @@ -232,17 +232,16 @@ cc_ack_received(struct tcpcb *tp, struct } static void inline -cc_cwnd_init(struct tcpcb *tp) +cc_conn_init(struct tcpcb *tp) { INP_WLOCK_ASSERT(tp->t_inpcb); /* - * XXXLS: Should rename this hook and do - * ssthresh init in there as well + * XXXLS: Should do ssthresh init in there as well */ - if (CC_ALGO(tp)->cwnd_init != NULL) - CC_ALGO(tp)->cwnd_init(tp); + if (CC_ALGO(tp)->conn_init != NULL) + CC_ALGO(tp)->conn_init(tp); } static void inline @@ -1632,6 +1631,7 @@ tcp_do_segment(struct mbuf *m, struct tc thflags &= ~TH_SYN; } else { tp->t_state = TCPS_ESTABLISHED; + cc_conn_init(tp); tcp_timer_activate(tp, TT_KEEP, tcp_keepidle); } } else { @@ -2035,6 +2035,7 @@ tcp_do_segment(struct mbuf *m, struct tc tp->t_flags &= ~TF_NEEDFIN; } else { tp->t_state = TCPS_ESTABLISHED; + cc_conn_init(tp); tcp_timer_activate(tp, TT_KEEP, tcp_keepidle); } /* @@ -3303,8 +3304,6 @@ tcp_mss(struct tcpcb *tp, int offer) if (metrics.rmx_bandwidth) tp->snd_bandwidth = metrics.rmx_bandwidth; - cc_cwnd_init(tp); - /* Check the interface for TSO capabilities. */ if (mtuflags & CSUM_TSO) tp->t_flags |= TF_TSO;