aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/net/af_rxrpc.h
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2017-06-07 12:40:03 +0100
committerDavid Howells <dhowells@redhat.com>2017-06-07 17:15:46 +0100
commite754eba685aac2a9b5538176fa2d254ad25f464d (patch)
treec8e650d72b8451f7d4ab93cd92eaed6549e84ae5 /include/net/af_rxrpc.h
parentrxrpc: Consolidate sendmsg parameters (diff)
downloadwireguard-linux-e754eba685aac2a9b5538176fa2d254ad25f464d.tar.xz
wireguard-linux-e754eba685aac2a9b5538176fa2d254ad25f464d.zip
rxrpc: Provide a cmsg to specify the amount of Tx data for a call
Provide a control message that can be specified on the first sendmsg() of a client call or the first sendmsg() of a service response to indicate the total length of the data to be transmitted for that call. Currently, because the length of the payload of an encrypted DATA packet is encrypted in front of the data, the packet cannot be encrypted until we know how much data it will hold. By specifying the length at the beginning of the transmit phase, each DATA packet length can be set before we start loading data from userspace (where several sendmsg() calls may contribute to a particular packet). An error will be returned if too little or too much data is presented in the Tx phase. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'include/net/af_rxrpc.h')
-rw-r--r--include/net/af_rxrpc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/af_rxrpc.h b/include/net/af_rxrpc.h
index b5f5187f488c..c172709787af 100644
--- a/include/net/af_rxrpc.h
+++ b/include/net/af_rxrpc.h
@@ -33,6 +33,7 @@ struct rxrpc_call *rxrpc_kernel_begin_call(struct socket *,
struct sockaddr_rxrpc *,
struct key *,
unsigned long,
+ s64,
gfp_t,
rxrpc_notify_rx_t);
int rxrpc_kernel_send_data(struct socket *, struct rxrpc_call *,
@@ -46,5 +47,6 @@ void rxrpc_kernel_get_peer(struct socket *, struct rxrpc_call *,
struct sockaddr_rxrpc *);
int rxrpc_kernel_charge_accept(struct socket *, rxrpc_notify_rx_t,
rxrpc_user_attach_call_t, unsigned long, gfp_t);
+void rxrpc_kernel_set_tx_length(struct socket *, struct rxrpc_call *, s64);
#endif /* _NET_RXRPC_H */