diff options
| author | Chuck Lever <cel@netapp.com> | 2005-08-25 19:25:54 -0400 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-09-23 12:38:50 -0400 | 
| commit | 529b33c6db0120126b1381faa51406dc463acdc9 (patch) | |
| tree | 4856a23687aa891f6a5d1c45db80190b90b0fc68 /include | |
| parent | 555ee3af161b037865793bd4bebc06b58daafde6 (diff) | |
[PATCH] RPC: allow RPC client's port range to be adjustable
 Select an RPC client source port between 650 and 1023 instead of between
 1 and 800.  The old range conflicts with a number of network services.
 Provide sysctls to allow admins to select a different port range.
 Note that this doesn't affect user-level RPC library behavior, which
 still uses 1 to 800.
 Based on a suggestion by Olaf Kirch <okir@suse.de>.
 Test-plan:
 Repeated mount and unmount.  Destructive testing.  Idle timeouts.
 Signed-off-by: Chuck Lever <cel@netapp.com>
 Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/sunrpc/debug.h | 2 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprt.h | 17 | 
2 files changed, 16 insertions, 3 deletions
diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h index 42d299747956..1a42d902bc11 100644 --- a/include/linux/sunrpc/debug.h +++ b/include/linux/sunrpc/debug.h  | |||
| @@ -95,6 +95,8 @@ enum { | |||
| 95 | CTL_NLMDEBUG, | 95 | CTL_NLMDEBUG, | 
| 96 | CTL_SLOTTABLE_UDP, | 96 | CTL_SLOTTABLE_UDP, | 
| 97 | CTL_SLOTTABLE_TCP, | 97 | CTL_SLOTTABLE_TCP, | 
| 98 | CTL_MIN_RESVPORT, | ||
| 99 | CTL_MAX_RESVPORT, | ||
| 98 | }; | 100 | }; | 
| 99 | 101 | ||
| 100 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ | 102 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ | 
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index dcf0326bda01..9d9266cf8a36 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h  | |||
| @@ -52,6 +52,17 @@ extern unsigned int xprt_tcp_slot_table_entries; | |||
| 52 | #define RPC_REPHDRSIZE 4 | 52 | #define RPC_REPHDRSIZE 4 | 
| 53 | 53 | ||
| 54 | /* | 54 | /* | 
| 55 | * Parameters for choosing a free port | ||
| 56 | */ | ||
| 57 | extern unsigned int xprt_min_resvport; | ||
| 58 | extern unsigned int xprt_max_resvport; | ||
| 59 | |||
| 60 | #define RPC_MIN_RESVPORT (1U) | ||
| 61 | #define RPC_MAX_RESVPORT (65535U) | ||
| 62 | #define RPC_DEF_MIN_RESVPORT (650U) | ||
| 63 | #define RPC_DEF_MAX_RESVPORT (1023U) | ||
| 64 | |||
| 65 | /* | ||
| 55 | * This describes a timeout strategy | 66 | * This describes a timeout strategy | 
| 56 | */ | 67 | */ | 
| 57 | struct rpc_timeout { | 68 | struct rpc_timeout { | 
| @@ -62,6 +73,9 @@ struct rpc_timeout { | |||
| 62 | unsigned char to_exponential; | 73 | unsigned char to_exponential; | 
| 63 | }; | 74 | }; | 
| 64 | 75 | ||
| 76 | struct rpc_task; | ||
| 77 | struct rpc_xprt; | ||
| 78 | |||
| 65 | /* | 79 | /* | 
| 66 | * This describes a complete RPC request | 80 | * This describes a complete RPC request | 
| 67 | */ | 81 | */ | 
| @@ -107,9 +121,6 @@ struct rpc_rqst { | |||
| 107 | #define rq_svec rq_snd_buf.head | 121 | #define rq_svec rq_snd_buf.head | 
| 108 | #define rq_slen rq_snd_buf.len | 122 | #define rq_slen rq_snd_buf.len | 
| 109 | 123 | ||
| 110 | struct rpc_task; | ||
| 111 | struct rpc_xprt; | ||
| 112 | |||
| 113 | struct rpc_xprt_ops { | 124 | struct rpc_xprt_ops { | 
| 114 | void (*set_buffer_size)(struct rpc_xprt *xprt); | 125 | void (*set_buffer_size)(struct rpc_xprt *xprt); | 
| 115 | int (*reserve_xprt)(struct rpc_task *task); | 126 | int (*reserve_xprt)(struct rpc_task *task); | 
