rxrpc: Don't store the rxrpc header in the Tx queue sk_buffs
Don't store the rxrpc protocol header in sk_buffs on the transmit queue, but rather generate it on the fly and pass it to kernel_sendmsg() as a separate iov. This reduces the amount of storage required. Note that the security header is still stored in the sk_buff as it may get encrypted along with the data (and doesn't change with each transmission). Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@@ -385,10 +385,9 @@ struct rxrpc_connection {
|
||||
int debug_id; /* debug ID for printks */
|
||||
atomic_t serial; /* packet serial number counter */
|
||||
unsigned int hi_serial; /* highest serial number received */
|
||||
u8 size_align; /* data size alignment (for security) */
|
||||
u8 header_size; /* rxrpc + security header size */
|
||||
u8 security_size; /* security header size */
|
||||
u32 security_nonce; /* response re-use preventer */
|
||||
u8 size_align; /* data size alignment (for security) */
|
||||
u8 security_size; /* security header size */
|
||||
u8 security_ix; /* security type */
|
||||
u8 out_clientflag; /* RXRPC_CLIENT_INITIATED if we are client */
|
||||
};
|
||||
@@ -946,7 +945,7 @@ extern const s8 rxrpc_ack_priority[];
|
||||
* output.c
|
||||
*/
|
||||
int rxrpc_send_call_packet(struct rxrpc_call *, u8);
|
||||
int rxrpc_send_data_packet(struct rxrpc_connection *, struct sk_buff *);
|
||||
int rxrpc_send_data_packet(struct rxrpc_call *, struct sk_buff *);
|
||||
void rxrpc_reject_packets(struct rxrpc_local *);
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user