diff options
Diffstat (limited to 'include/linux/sunrpc/xprt.h')
-rw-r--r-- | include/linux/sunrpc/xprt.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 1175d58efc2e..6f9457a75b8f 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
@@ -38,10 +38,8 @@ enum rpc_display_format_t { | |||
38 | RPC_DISPLAY_ADDR = 0, | 38 | RPC_DISPLAY_ADDR = 0, |
39 | RPC_DISPLAY_PORT, | 39 | RPC_DISPLAY_PORT, |
40 | RPC_DISPLAY_PROTO, | 40 | RPC_DISPLAY_PROTO, |
41 | RPC_DISPLAY_ALL, | ||
42 | RPC_DISPLAY_HEX_ADDR, | 41 | RPC_DISPLAY_HEX_ADDR, |
43 | RPC_DISPLAY_HEX_PORT, | 42 | RPC_DISPLAY_HEX_PORT, |
44 | RPC_DISPLAY_UNIVERSAL_ADDR, | ||
45 | RPC_DISPLAY_NETID, | 43 | RPC_DISPLAY_NETID, |
46 | RPC_DISPLAY_MAX, | 44 | RPC_DISPLAY_MAX, |
47 | }; | 45 | }; |
@@ -126,6 +124,23 @@ struct rpc_xprt_ops { | |||
126 | void (*print_stats)(struct rpc_xprt *xprt, struct seq_file *seq); | 124 | void (*print_stats)(struct rpc_xprt *xprt, struct seq_file *seq); |
127 | }; | 125 | }; |
128 | 126 | ||
127 | /* | ||
128 | * RPC transport identifiers | ||
129 | * | ||
130 | * To preserve compatibility with the historical use of raw IP protocol | ||
131 | * id's for transport selection, UDP and TCP identifiers are specified | ||
132 | * with the previous values. No such restriction exists for new transports, | ||
133 | * except that they may not collide with these values (17 and 6, | ||
134 | * respectively). | ||
135 | */ | ||
136 | #define XPRT_TRANSPORT_BC (1 << 31) | ||
137 | enum xprt_transports { | ||
138 | XPRT_TRANSPORT_UDP = IPPROTO_UDP, | ||
139 | XPRT_TRANSPORT_TCP = IPPROTO_TCP, | ||
140 | XPRT_TRANSPORT_BC_TCP = IPPROTO_TCP | XPRT_TRANSPORT_BC, | ||
141 | XPRT_TRANSPORT_RDMA = 256 | ||
142 | }; | ||
143 | |||
129 | struct rpc_xprt { | 144 | struct rpc_xprt { |
130 | struct kref kref; /* Reference count */ | 145 | struct kref kref; /* Reference count */ |
131 | struct rpc_xprt_ops * ops; /* transport methods */ | 146 | struct rpc_xprt_ops * ops; /* transport methods */ |
@@ -181,6 +196,7 @@ struct rpc_xprt { | |||
181 | spinlock_t reserve_lock; /* lock slot table */ | 196 | spinlock_t reserve_lock; /* lock slot table */ |
182 | u32 xid; /* Next XID value to use */ | 197 | u32 xid; /* Next XID value to use */ |
183 | struct rpc_task * snd_task; /* Task blocked in send */ | 198 | struct rpc_task * snd_task; /* Task blocked in send */ |
199 | struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */ | ||
184 | #if defined(CONFIG_NFS_V4_1) | 200 | #if defined(CONFIG_NFS_V4_1) |
185 | struct svc_serv *bc_serv; /* The RPC service which will */ | 201 | struct svc_serv *bc_serv; /* The RPC service which will */ |
186 | /* process the callback */ | 202 | /* process the callback */ |
@@ -233,6 +249,7 @@ struct xprt_create { | |||
233 | struct sockaddr * srcaddr; /* optional local address */ | 249 | struct sockaddr * srcaddr; /* optional local address */ |
234 | struct sockaddr * dstaddr; /* remote peer address */ | 250 | struct sockaddr * dstaddr; /* remote peer address */ |
235 | size_t addrlen; | 251 | size_t addrlen; |
252 | struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */ | ||
236 | }; | 253 | }; |
237 | 254 | ||
238 | struct xprt_class { | 255 | struct xprt_class { |