aboutsummaryrefslogtreecommitdiff
path: root/sys/rpc/krpc.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/rpc/krpc.h')
-rw-r--r--sys/rpc/krpc.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/rpc/krpc.h b/sys/rpc/krpc.h
index 978edbe8ca48..53d46deddf65 100644
--- a/sys/rpc/krpc.h
+++ b/sys/rpc/krpc.h
@@ -42,6 +42,7 @@
void clnt_bck_svccall(void *, struct mbuf *, uint32_t);
enum clnt_stat clnt_bck_call(CLIENT *, struct rpc_callextra *, rpcproc_t,
struct mbuf *, struct mbuf **, struct timeval, SVCXPRT *);
+struct mbuf *_rpc_copym_into_ext_pgs(struct mbuf *, int);
/*
* A pending RPC request which awaits a reply. Requests which have
@@ -78,8 +79,18 @@ struct rc_data {
CLIENT* rc_client; /* underlying RPC client */
struct rpc_err rc_err;
void *rc_backchannel;
+ bool rc_tls; /* Enable TLS on connection */
};
+/* Bits for ct_rcvstate. */
+#define RPCRCVSTATE_NORMAL 0x01 /* Normal reception. */
+#define RPCRCVSTATE_NONAPPDATA 0x02 /* Reception of a non-application record. */
+#define RPCRCVSTATE_TLSHANDSHAKE 0x04 /* Reception blocked for TLS handshake. */
+#define RPCRCVSTATE_UPCALLNEEDED 0x08 /* Upcall to rpctlscd needed. */
+#define RPCRCVSTATE_UPCALLINPROG 0x10 /* Upcall to rpctlscd in progress. */
+#define RPCRCVSTATE_SOUPCALLNEEDED 0x20 /* Socket upcall needed. */
+#define RPCRCVSTATE_UPCALLTHREAD 0x40 /* Upcall kthread running. */
+
struct ct_data {
struct mtx ct_lock;
int ct_threads; /* number of threads in clnt_vc_call */
@@ -101,6 +112,10 @@ struct ct_data {
struct ct_request_list ct_pending;
int ct_upcallrefs; /* Ref cnt of upcalls in prog. */
SVCXPRT *ct_backchannelxprt; /* xprt for backchannel */
+ uint64_t ct_sslsec; /* RPC-over-TLS connection. */
+ uint64_t ct_sslusec;
+ uint64_t ct_sslrefno;
+ uint32_t ct_rcvstate; /* Handle receiving for TLS upcalls */
struct mbuf *ct_raw; /* Raw mbufs recv'd */
};