Commit d7b26908 authored by Paolo Abeni's avatar Paolo Abeni Committed by David S. Miller

mptcp: shrink mptcp_out_options struct

After the previous patch we can alias with a union several
fields in mptcp_out_options. Such struct is stack allocated and
memset() for each plain TCP out packet. Every saved byted counts.

Before:
pahole -EC mptcp_out_options
 # ...
/* size: 136, cachelines: 3, members: 17 */

After:
pahole -EC mptcp_out_options
 # ...
/* size: 56, cachelines: 1, members: 9 */
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1bff1e43
...@@ -58,10 +58,6 @@ struct mptcp_addr_info { ...@@ -58,10 +58,6 @@ struct mptcp_addr_info {
struct mptcp_out_options { struct mptcp_out_options {
#if IS_ENABLED(CONFIG_MPTCP) #if IS_ENABLED(CONFIG_MPTCP)
u16 suboptions; u16 suboptions;
u64 sndr_key;
u64 rcvr_key;
u64 ahmac;
struct mptcp_addr_info addr;
struct mptcp_rm_list rm_list; struct mptcp_rm_list rm_list;
u8 join_id; u8 join_id;
u8 backup; u8 backup;
...@@ -69,11 +65,23 @@ struct mptcp_out_options { ...@@ -69,11 +65,23 @@ struct mptcp_out_options {
reset_transient:1, reset_transient:1,
csum_reqd:1, csum_reqd:1,
allow_join_id0:1; allow_join_id0:1;
u32 nonce; union {
u64 thmac; struct {
u32 token; u64 sndr_key;
u8 hmac[20]; u64 rcvr_key;
struct mptcp_ext ext_copy; };
struct {
struct mptcp_addr_info addr;
u64 ahmac;
};
struct mptcp_ext ext_copy;
struct {
u32 nonce;
u32 token;
u64 thmac;
u8 hmac[20];
};
};
#endif #endif
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment