mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
SUNRPC: Plumb an API for setting transport layer security
Add an initial set of policies along with fields for upper layers to pass the requested policy down to the transport layer. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
committed by
Trond Myklebust
parent
9e8ab85a7e
commit
5000531912
@@ -129,6 +129,21 @@ struct rpc_rqst {
|
||||
#define rq_svec rq_snd_buf.head
|
||||
#define rq_slen rq_snd_buf.len
|
||||
|
||||
/* RPC transport layer security policies */
|
||||
enum xprtsec_policies {
|
||||
RPC_XPRTSEC_NONE = 0,
|
||||
RPC_XPRTSEC_TLS_ANON,
|
||||
RPC_XPRTSEC_TLS_X509,
|
||||
};
|
||||
|
||||
struct xprtsec_parms {
|
||||
enum xprtsec_policies policy;
|
||||
|
||||
/* authentication material */
|
||||
key_serial_t cert_serial;
|
||||
key_serial_t privkey_serial;
|
||||
};
|
||||
|
||||
struct rpc_xprt_ops {
|
||||
void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize);
|
||||
int (*reserve_xprt)(struct rpc_xprt *xprt, struct rpc_task *task);
|
||||
@@ -229,6 +244,7 @@ struct rpc_xprt {
|
||||
*/
|
||||
unsigned long bind_timeout,
|
||||
reestablish_timeout;
|
||||
struct xprtsec_parms xprtsec;
|
||||
unsigned int connect_cookie; /* A cookie that gets bumped
|
||||
every time the transport
|
||||
is reconnected */
|
||||
@@ -333,6 +349,7 @@ struct xprt_create {
|
||||
struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */
|
||||
struct rpc_xprt_switch *bc_xps;
|
||||
unsigned int flags;
|
||||
struct xprtsec_parms xprtsec;
|
||||
};
|
||||
|
||||
struct xprt_class {
|
||||
|
||||
Reference in New Issue
Block a user