[PATCH] RPC: parametrize various transport connect timeouts

Each transport implementation can now set unique bind, connect,
 reestablishment, and idle timeout values.  These are variables,
 allowing the values to be modified dynamically.  This permits
 exponential backoff of any of these values, for instance.

 As an example, we implement exponential backoff for the connection
 reestablishment timeout.

 Test-plan:
 Destructive testing (unplugging the network temporarily).  Connectathon
 with UDP and TCP.

 Signed-off-by: Chuck Lever <cel@netapp.com>
 Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Chuck Lever
2005-08-25 16:25:55 -07:00
committed by Trond Myklebust
parent 3167e12c0c
commit 03bf4b707e
6 changed files with 84 additions and 34 deletions

View File

@ -740,7 +740,7 @@ call_bind(struct rpc_task *task)
task->tk_action = call_connect;
if (!clnt->cl_port) {
task->tk_action = call_bind_status;
task->tk_timeout = RPC_CONNECT_TIMEOUT;
task->tk_timeout = task->tk_xprt->bind_timeout;
rpc_getport(task, clnt);
}
}