svn commit: r195192 - projects/tcp_cc_8.x/sys/netinet

Lawrence Stewart lstewart at FreeBSD.org
Tue Jun 30 13:53:55 UTC 2009


Author: lstewart
Date: Tue Jun 30 13:53:54 2009
New Revision: 195192
URL: http://svn.freebsd.org/changeset/base/195192

Log:
  - conn_init/conn_destroy are misleadingly named in terms of where they are
  actually called from. Rename to cb_init/cb_destroy.
  
  - Don't require a module to implement cb_init as was the case previously.

Modified:
  projects/tcp_cc_8.x/sys/netinet/cc.c
  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_subr.c
  projects/tcp_cc_8.x/sys/netinet/tcp_usrreq.c

Modified: projects/tcp_cc_8.x/sys/netinet/cc.c
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/cc.c	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/cc.c	Tue Jun 30 13:53:54 2009	(r195192)
@@ -222,8 +222,8 @@ cc_deregister_algo(struct cc_algo *remov
 					tmpfuncs = CC_ALGO(tp);
 					/* Newreno does not require any init. */
 					CC_ALGO(tp) = &newreno_cc_algo;
-					if (tmpfuncs->conn_destroy != NULL)
-						tmpfuncs->conn_destroy(tp);
+					if (tmpfuncs->cb_destroy != NULL)
+						tmpfuncs->cb_destroy(tp);
 				}
 			}
 			INP_WUNLOCK(inp);

Modified: projects/tcp_cc_8.x/sys/netinet/cc.h
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/cc.h	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/cc.h	Tue Jun 30 13:53:54 2009	(r195192)
@@ -72,14 +72,14 @@ struct cc_algo {
 	/* Cleanup global module state on kldunload. */
 	int (*mod_destroy) (void);
 
-	/* Init CC state for a new connection. */
-	int (*conn_init) (struct tcpcb *tp);
+	/* Init CC state for a new control block. */
+	int (*cb_init) (struct tcpcb *tp);
 
-	/* Cleanup CC state for a terminating connection. */
-	void (*conn_destroy) (struct tcpcb *tp);
+	/* Cleanup CC state for a terminating control block. */
+	void (*cb_destroy) (struct tcpcb *tp);
 
 	/* Init cwnd for a new connection. */
-	/* XXXLS: could this be folded into conn_init? */
+	/* XXXLS: could this be renamed conn_init or conn_established? */
 	void (*cwnd_init) (struct tcpcb *tp);
 
 	/* Called on receipt of a regular, valid ack. */

Modified: projects/tcp_cc_8.x/sys/netinet/cc_cubic.c
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/cc_cubic.c	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/cc_cubic.c	Tue Jun 30 13:53:54 2009	(r195192)
@@ -62,8 +62,8 @@ __FBSDID("$FreeBSD$");
 #include <netinet/vinet.h>
 
 /* function prototypes */
-int cubic_conn_init(struct tcpcb *tp);
-void cubic_conn_destroy(struct tcpcb *tp);
+int cubic_cb_init(struct tcpcb *tp);
+void cubic_cb_destroy(struct tcpcb *tp);
 void cubic_pre_fr(struct tcpcb *tp, struct tcphdr *th);
 void cubic_post_fr(struct tcpcb *tp, struct tcphdr *th);
 void cubic_ack_received(struct tcpcb *tp, struct tcphdr *th);
@@ -95,8 +95,8 @@ struct cc_algo cubic_cc_algo = {
 	.name = "cubic",
 	.mod_init = NULL,
 	.mod_destroy = NULL,
-	.conn_init = cubic_conn_init,
-	.conn_destroy = cubic_conn_destroy,
+	.cb_init = cubic_cb_init,
+	.cb_destroy = cubic_cb_destroy,
 	.cwnd_init = cubic_cwnd_init,
 	.ack_received = cubic_ack_received,
 	.pre_fr = cubic_pre_fr,
@@ -126,7 +126,7 @@ cubic_cwnd_init(struct tcpcb *tp)
  * in the control block
  */
 int
-cubic_conn_init(struct tcpcb *tp)
+cubic_cb_init(struct tcpcb *tp)
 {
 	struct cubic *cubic_data;
 	
@@ -152,7 +152,7 @@ cubic_conn_init(struct tcpcb *tp)
  * TCP control block.
  */
 void
-cubic_conn_destroy(struct tcpcb *tp)
+cubic_cb_destroy(struct tcpcb *tp)
 {
 	if (CC_DATA(tp) != NULL)
 		free(CC_DATA(tp), M_CUBIC);

Modified: projects/tcp_cc_8.x/sys/netinet/cc_htcp.c
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/cc_htcp.c	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/cc_htcp.c	Tue Jun 30 13:53:54 2009	(r195192)
@@ -132,8 +132,8 @@ __FBSDID("$FreeBSD$");
 
 /* function prototypes */
 int htcp_mod_init(void);
-int htcp_conn_init(struct tcpcb *tp);
-void htcp_conn_destroy(struct tcpcb *tp);
+int htcp_cb_init(struct tcpcb *tp);
+void htcp_cb_destroy(struct tcpcb *tp);
 void htcp_recalc_alpha(struct tcpcb *tp);
 void htcp_recalc_beta(struct tcpcb *tp);
 void htcp_pre_fr(struct tcpcb *tp, struct tcphdr *th);
@@ -170,9 +170,8 @@ MALLOC_DEFINE(M_HTCP, "htcp data", "Per 
 struct cc_algo htcp_cc_algo = {
 	.name = "htcp",
 	.mod_init = htcp_mod_init,
-	.mod_destroy = NULL,
-	.conn_init = htcp_conn_init,
-	.conn_destroy = htcp_conn_destroy,
+	.cb_init = htcp_cb_init,
+	.cb_destroy = htcp_cb_destroy,
 	.cwnd_init = newreno_cwnd_init,
 	.ack_received = htcp_ack_received,
 	.pre_fr = htcp_pre_fr,
@@ -187,7 +186,7 @@ struct cc_algo htcp_cc_algo = {
  * in the control block
  */
 int
-htcp_conn_init(struct tcpcb *tp)
+htcp_cb_init(struct tcpcb *tp)
 {
 	struct htcp *htcp_data;
 	
@@ -218,7 +217,7 @@ htcp_conn_init(struct tcpcb *tp)
  * TCP control block.
  */
 void
-htcp_conn_destroy(struct tcpcb *tp)
+htcp_cb_destroy(struct tcpcb *tp)
 {
 #ifdef HTCP_DEBUG
 	printf("deinitialising tcp connection with htcp congestion control\n");

Modified: projects/tcp_cc_8.x/sys/netinet/cc_module.h
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/cc_module.h	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/cc_module.h	Tue Jun 30 13:53:54 2009	(r195192)
@@ -39,7 +39,7 @@
 /*
  * NewReno CC functions
  */
-int	newreno_conn_init(struct tcpcb *tp);
+int	newreno_cb_init(struct tcpcb *tp);
 void	newreno_cwnd_init(struct tcpcb *tp);
 void	newreno_ack_received(struct tcpcb *tp, struct tcphdr *th);
 void	newreno_pre_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	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/cc_newreno.c	Tue Jun 30 13:53:54 2009	(r195192)
@@ -50,10 +50,7 @@ __FBSDID("$FreeBSD$");
 /* newreno cc function pointers */
 struct cc_algo newreno_cc_algo = {
 	.name = "newreno",
-	.mod_init = NULL,
-	.mod_destroy = NULL,
-	.conn_init = newreno_conn_init,
-	.conn_destroy = NULL,
+	.cb_init = newreno_cb_init,
 	.cwnd_init = newreno_cwnd_init,
 	.ack_received = newreno_ack_received,
 	.pre_fr = newreno_pre_fr,
@@ -63,7 +60,7 @@ struct cc_algo newreno_cc_algo = {
 };
 
 int
-newreno_conn_init(struct tcpcb *tp)
+newreno_cb_init(struct tcpcb *tp)
 {
 	return 0;
 }

Modified: projects/tcp_cc_8.x/sys/netinet/tcp_subr.c
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/tcp_subr.c	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/tcp_subr.c	Tue Jun 30 13:53:54 2009	(r195192)
@@ -737,11 +737,11 @@ tcp_newtcpcb(struct inpcb *inp)
 	CC_ALGO(tp) = CC_DEFAULT();
 	CC_LIST_RUNLOCK();
 
-	/* If the CC module fails to init, stop building the control block. */
-	if (CC_ALGO(tp)->conn_init(tp) > 0) {
-		uma_zfree(V_tcpcb_zone, tp);
-		return NULL;
-	}
+	if (CC_ALGO(tp)->cb_init != NULL)
+		if (CC_ALGO(tp)->cb_init(tp) > 0) {
+			uma_zfree(V_tcpcb_zone, tp);
+			return NULL;
+		}
 
 #ifdef VIMAGE
 	tp->t_vnet = inp->inp_vnet;
@@ -911,8 +911,8 @@ tcp_discardcb(struct tcpcb *tp)
 	tcp_free_sackholes(tp);
 
 	/* Allow the CC algorithm to clean up after itself. */
-	if (CC_ALGO(tp)->conn_destroy != NULL)
-		CC_ALGO(tp)->conn_destroy(tp);
+	if (CC_ALGO(tp)->cb_destroy != NULL)
+		CC_ALGO(tp)->cb_destroy(tp);
 
 	CC_ALGO(tp) = NULL;
 	inp->inp_ppcb = NULL;

Modified: projects/tcp_cc_8.x/sys/netinet/tcp_usrreq.c
==============================================================================
--- projects/tcp_cc_8.x/sys/netinet/tcp_usrreq.c	Tue Jun 30 13:38:49 2009	(r195191)
+++ projects/tcp_cc_8.x/sys/netinet/tcp_usrreq.c	Tue Jun 30 13:53:54 2009	(r195192)
@@ -1396,8 +1396,8 @@ tcp_ctloutput(struct socket *so, struct 
 					 * so it's safe to do these things
 					 * without ordering concerns.
 					 */
-					if (CC_ALGO(tp)->conn_destroy != NULL)
-						CC_ALGO(tp)->conn_destroy(tp);
+					if (CC_ALGO(tp)->cb_destroy != NULL)
+						CC_ALGO(tp)->cb_destroy(tp);
 					CC_ALGO(tp) = algo;
 					/*
 					 * If something goes pear shaped
@@ -1405,14 +1405,16 @@ tcp_ctloutput(struct socket *so, struct 
 					 * fall back to newreno (which
 					 * does not require initialisation).
 					 */
-					if (algo->conn_init(tp) > 0) {
-						CC_ALGO(tp) = &newreno_cc_algo;
-						/*
-						 * The only reason init should
-						 * fail is because of malloc.
-						 */
-						error = ENOMEM;
-					}
+					if (algo->cb_init != NULL)
+						if (algo->cb_init(tp) > 0) {
+							CC_ALGO(tp) = &newreno_cc_algo;
+							/*
+							 * The only reason init
+							 * should fail is
+							 * because of malloc.
+							 */
+							error = ENOMEM;
+						}
 					break; /* Break the STAILQ_FOREACH. */
 				}
 			}


More information about the svn-src-projects mailing list