From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C28D1852 for ; Wed, 18 May 2022 06:11:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1652854273; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/kE5K3LJtvaSlHFEOPro+dyB/B6Kn+Xo7E97H/DNvy8=; b=RMSemGD6gs0c1ZAaCEXgXR0+AAmozzK9uM9N+qIUmXD96345oavT8ynfGz7uMkkSEmg1Yf KnZpc4eID/nmu1EbWoSpjtE2hZpf9jQn8QKpPT6hQ+SEX6CjiU7NC1f9BCKAbTqqu5JiR2 HIIZjwGqC04pO5ULGkpZopFrNvODNrY= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2057.outbound.protection.outlook.com [104.47.12.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-34-fgj1tlAXOKeDpojYAZCKtw-1; Wed, 18 May 2022 08:11:12 +0200 X-MC-Unique: fgj1tlAXOKeDpojYAZCKtw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I1TN2bUh+Wxr5d6NND/R9/0AUmtqaERkCkdiwbBivFnjrtBUep2B8fyWLlUFsjmxvUMvXtCDKdj4q7aTzZWs2LELtJkTAM/DNi4uMs7LB9UH2so0A8L/w6DWkTqbCr2CHnz+yOKS3+tc+RbT3rxibnMkW6MWCN5gbWVBsDiW6IQNv9d0LyYqU0x7UAI6qeBpcO+LypjeSK7U7hwMa249+NEymQH20e9vW3BEebU4fC3UJdvTHcABTz1b1VOYKDqSh69T6cGRjjIFriyZIl/x9k+LAVHYFnyGqEPnSQzlO5wTLcZfwmXe83ry1km6NRII2SSgV0aFFo/dL0JgLHa1gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pYBjAn9+yTK30ZvPUL3nzWT8LbwZdcShrO/YMsWLix0=; b=MFB/nrhu1okeJ1KDeJQwrOABOGfbpPjS4kd1RpctlvVhqYIv8rvtuC58EUETszB1/7lbepjhqlbBHAEVOCqjW9/ZEChF8v+4z4d8LdnrtSHUIl5e239kZ9zxjXfRY9SZ2IEaudyI/fL2+1tCAx7xX/Okk5hWyOHc8wE7NVBRJmQIEe49/7d2xICHNdzeNOEs/ToourD5b1pr3NVqxSAGjSRvXAH7pcVxm3+SyirkYaysljjP69WRQWb4nRJQ8wZBFqKT5kUpSRb5e6Z4sx+ZAmaHuinCZNMnQpxqZpHNlo/4A8izrrT7ng4mA+ot81hu/byyhBmQNFktI4v9bqJGpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by PAXPR04MB8256.eurprd04.prod.outlook.com (2603:10a6:102:1c6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Wed, 18 May 2022 06:11:11 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5250.018; Wed, 18 May 2022 06:11:11 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 02/17] mptcp: move mptcp_subflow_context in net/mptcp.h Date: Wed, 18 May 2022 14:10:40 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-ClientProxiedBy: HKAPR04CA0001.apcprd04.prod.outlook.com (2603:1096:203:d0::11) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fe227587-b583-4d61-08ce-08da38953492 X-MS-TrafficTypeDiagnostic: PAXPR04MB8256:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yg6zOb3KhXKo5SDsb6Mz8YLD9eprBOrsy6ctJV86E2WtMXH+EUmhGSGAmeXKOoyj76vnNxfTbkNzvc0YVSKIkaPtHXY6yUN9qLIOtG+87zURxEv1XW+E0KzsINUGlGNFVMMzpWZoCiHZh5FY0ye4k+/Y2ftsAiNUHup+lLApRhkiGMCgzGTtKoywXo/9OLc0cwXgGKoAnPIdC7l9R107tYvMWcMcyd8HaQYqBqqoDKglVHylR8s1sp3jTe25u/IS14Cz2vkK/Cq0JApHXI+giOriowla1ARXc7JA6oc/Z0jNmvbTYGERNpuZaSsT671PDla/20K557xwQIm6YNlVjnr9Ym/Em826q/dxrXyqvcTE9gfpKbZAseKYoLjjlfCBJ/tYVey+DFurqHMcllWyvb0KRh6oayV3JRtuJoQ9JABc25RzjbT6NTZmUwufAe+IJoTFog+KFFh/+FVlXeV3xtW3U3jGSyNUBd0FkaiETvliLuFber46PxVpfWQtnZwY0wLRtdpubFoRvoELVN9ejcfH7vNF7lLm/NbcU8QwUMaj+tCVm2ZZUK7Ko4m7i2wcusYOlD+Vs4KMA4DOOAI+YF5XVmCtMn+LoePuUGgqLGbPeP4M3RpHsLYr3PdeRnu+j0i1VHjclzGPUbkNl8yESOCdoEFT0iHIbhJ4nG25QXE/T4SPpWcMRjriww4L0QZKtK5pp23EOyECdAFwOJJtVQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6506007)(66556008)(6666004)(2906002)(66476007)(107886003)(8676002)(4326008)(36756003)(66946007)(316002)(6916009)(508600001)(8936002)(38100700002)(5660300002)(44832011)(86362001)(2616005)(83380400001)(26005)(6486002)(6512007)(186003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?v4BoToXAOmnECfoom/milefFovO415lMXrT/YksAMR7mtiAf+9Ag+bc/whKm?= =?us-ascii?Q?h8rznwQ5cqwj+dEiJ6UdSfFBnbuuXIlWMCPGcqCVHW3HTSX4QcImErHzbmlX?= =?us-ascii?Q?OLBz+PiyE+6OMvAzRDsdJoW22exOiCD3xo6G2CKMkUufzHH5tNDXmSkXKG4T?= =?us-ascii?Q?q6JFtt3kvbXaK8s6LOR1YVeyhU8b4dE2rQENMauh9Nlgl2U98/Y+Ac7FzeXs?= =?us-ascii?Q?wyveWKiB1gXQAaaAozffWzxlXlslZdnxe9iUMIo9umyNEkDWg/Jxm4XxMGBR?= =?us-ascii?Q?Hru0ruU9EkAFGR92g+qPnkrQz+zZmw9PTUv57aDAyUNRq0UT+UfVdDO6SxnU?= =?us-ascii?Q?m1SyUwIoaFdtBYx8nNmcoLUI1tEawEOA6/bUb5JjYAz8LwCxun2mmg6M/Zm7?= =?us-ascii?Q?oFJOCgEApVyniFzCYYLOkNVR+sYqciPP7gsFUAkeb7rsUxmLRqGWK+B9cwG9?= =?us-ascii?Q?5AXE7kY/CTWCmp8aGzbkbFkZMcybic3t3KYU3LdnSOXW/X1zBf1NwqxH8Rmn?= =?us-ascii?Q?AbuA2uq31h2PEVXexCKHWqncZBn24ZXTILtvbScxahpxUrlyI+hMRZ89cQdI?= =?us-ascii?Q?18YVuKBKo4nSrbhg4qnZJWe7bWoO6BwXE3H0e1u8RbuW8POcn1UWSbSGgDQE?= =?us-ascii?Q?N2qvVxX7y6P+rICJ03QDl06qh3gGwuv8uZQTTmSiS3kOVTyme1j48tFKR7RH?= =?us-ascii?Q?o2r21lxRFGb+79pK8jQdYrkq9daQmD1rriU4a3JBTr8QlwZ+lMw5u9KZEVqQ?= =?us-ascii?Q?+KBNcBe9F5ia9CMKEZchjivcxuRfdpoCI355axoA9A3VVkoUkw14gNfr1EQg?= =?us-ascii?Q?TfKIb5KpI/0F/cQaSyOTb4koPI+BAucNPGa2ETfEswCsxS2xOHVHUdir+0UO?= =?us-ascii?Q?U/B5W+dVk1WEqWQ4SON+Hclt0fOU/AZ85HES64+IaWHOnutlIhuSJ7yu8CRn?= =?us-ascii?Q?g4IWdRHpXSxSvMCTw9B2+aSc2Ig4b5TFUjQHeFJ55t6z4NOwT+DzyzubQBhG?= =?us-ascii?Q?aSEIz3IsQNMKsbpFXaADVhZiJDXAObEscqr2O442fJFOftrIDm73GWwn/nPU?= =?us-ascii?Q?YbRaMUdvha1YA9U+yUv1GtgzKF2v0DiJ6gAfXZlNeb8Qua4ySX5CLmVZnh4E?= =?us-ascii?Q?rYZul6l5zW99V0eVjXUT32MC0PNUgLb9YGN6KyDM9NtHEqk4iovLC2iBDjqv?= =?us-ascii?Q?eg5DMHBadoMCH3Hvz88hxwNq+1IAIGbMehTog3PPE+y+/3EfgIwJfH/5vzEg?= =?us-ascii?Q?7P9WSnUk822x1Fh3GbMbQF/USvEm3mMnY+CrQ861VvcBMcTDTl7Hi0SAFu4B?= =?us-ascii?Q?/PfFH6w54GoJQlklgsJVgBqwxvr6tpu9mWjM8YD/S3WYhHu71YhwJK7/uqKW?= =?us-ascii?Q?jexIYVTSF8YeVKc3PvFhomPBDLL5g2fOqskc+rF5SCIwFMp1gJSiRz5ZuL5+?= =?us-ascii?Q?tjhylZYPrf75O+5u3Xpbuur/P5Ud+JBkls8a22zklq+PYxMLszer5CxueX+n?= =?us-ascii?Q?NKYXkrgJDq764oTp41uSHS5EB2pJLojGV1Of6Jc+Lt0jSNB1dWkOk+oh8s0t?= =?us-ascii?Q?PoxHPxFFlh1NemnvBCW2NUmh8PCDxwbrbScAbAo799zEDu3N5lChjD5YxFdo?= =?us-ascii?Q?Xu/GcalxW9owR4TsZwR1kVBQVVu+2MIGZArKsTUsDSn92G08Q1z7zQdoBSb7?= =?us-ascii?Q?87mrjw5vR2bzGTHdhs0zVWJffeEt5hnTDS18JF3EH9nAlAVvny6QCtm43sKY?= =?us-ascii?Q?gJIJG5H32PZfMLSYc5RUqCCGQQFRaH0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe227587-b583-4d61-08ce-08da38953492 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2022 06:11:11.1958 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: A5bmHTsDSYYqz3ybNbN/E6C4ox+OMGgo8JRcmIO3YPGXac9xjtIhPxJd7B33Qza3LqkaAmm8PsG0iWi8KUOfIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8256 Move struct mptcp_subflow_context definition from net/mptcp/protocol.h to include/net/mptcp.h. And move the related struct mptcp_data_avail and function mptcp_subflow_ctx() too. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 91 ++++++++++++++++++++++++++++++++++++++++++++ net/mptcp/protocol.h | 88 ------------------------------------------ 2 files changed, 91 insertions(+), 88 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 4713757e36c1..9422b6d2a268 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -40,6 +40,86 @@ struct mptcp_ext { }; =20 #define MPTCPOPT_HMAC_LEN 20 + +enum mptcp_data_avail { + MPTCP_SUBFLOW_NODATA, + MPTCP_SUBFLOW_DATA_AVAIL, +}; + +/* MPTCP subflow context */ +struct mptcp_subflow_context { + struct list_head node;/* conn_list of subflows */ + + struct_group(reset, + + unsigned long avg_pacing_rate; /* protected by msk socket lock */ + u64 local_key; + u64 remote_key; + u64 idsn; + u64 map_seq; + u32 snd_isn; + u32 token; + u32 rel_write_seq; + u32 map_subflow_seq; + u32 ssn_offset; + u32 map_data_len; + __wsum map_data_csum; + u32 map_csum_len; + u32 request_mptcp : 1, /* send MP_CAPABLE */ + request_join : 1, /* send MP_JOIN */ + request_bkup : 1, + mp_capable : 1, /* remote is MPTCP capable */ + mp_join : 1, /* remote is JOINing */ + fully_established : 1, /* path validated */ + pm_notified : 1, /* PM hook called for established status */ + conn_finished : 1, + map_valid : 1, + map_csum_reqd : 1, + map_data_fin : 1, + mpc_map : 1, + backup : 1, + send_mp_prio : 1, + send_mp_fail : 1, + send_fastclose : 1, + send_infinite_map : 1, + rx_eof : 1, + can_ack : 1, /* only after processing the remote a key */ + disposable : 1, /* ctx can be free at ulp release time */ + stale : 1, /* unable to snd/rcv data, do not use for xmit */ + local_id_valid : 1, /* local_id is correctly initialized */ + valid_csum_seen : 1; /* at least one csum validated */ + enum mptcp_data_avail data_avail; + bool mp_fail_response_expect; + u32 remote_nonce; + u64 thmac; + u32 local_nonce; + u32 remote_token; + u8 hmac[MPTCPOPT_HMAC_LEN]; + u8 local_id; + u8 remote_id; + u8 reset_seen:1; + u8 reset_transient:1; + u8 reset_reason:4; + u8 stale_count; + + long delegated_status; + + ); + + struct list_head delegated_node; /* link into delegated_action, protect= ed by local BH */ + + u32 setsockopt_seq; + u32 stale_rcv_tstamp; + + struct sock *tcp_sock; /* tcp sk backpointer */ + struct sock *conn; /* parent mptcp_sock */ + const struct inet_connection_sock_af_ops *icsk_af_ops; + void (*tcp_state_change)(struct sock *sk); + void (*tcp_error_report)(struct sock *sk); + + struct rcu_head rcu; +}; + #define MPTCP_RM_IDS_MAX 8 =20 struct mptcp_rm_list { @@ -198,6 +278,15 @@ static inline __be32 mptcp_reset_option(const struct s= k_buff *skb) =20 return htonl(0u); } + +static inline struct mptcp_subflow_context * +mptcp_subflow_ctx(const struct sock *sk) +{ + struct inet_connection_sock *icsk =3D inet_csk(sk); + + /* Use RCU on icsk_ulp_data only for sock diag code */ + return (__force struct mptcp_subflow_context *)icsk->icsk_ulp_data; +} #else =20 static inline void mptcp_init(void) @@ -275,6 +364,8 @@ static inline int mptcp_subflow_init_cookie_req(struct = request_sock *req, } =20 static inline __be32 mptcp_reset_option(const struct sk_buff *skb) { retu= rn htonl(0u); } +static inline struct mptcp_subflow_context * +mptcp_subflow_ctx(const struct sock *sk) { return NULL; } #endif /* CONFIG_MPTCP */ =20 #if IS_ENABLED(CONFIG_MPTCP_IPV6) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 8f03775a2f22..cc24756cedfe 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -409,11 +409,6 @@ mptcp_subflow_rsk(const struct request_sock *rsk) return (struct mptcp_subflow_request_sock *)rsk; } =20 -enum mptcp_data_avail { - MPTCP_SUBFLOW_NODATA, - MPTCP_SUBFLOW_DATA_AVAIL, -}; - struct mptcp_delegated_action { struct napi_struct napi; struct list_head head; @@ -424,89 +419,6 @@ DECLARE_PER_CPU(struct mptcp_delegated_action, mptcp_d= elegated_actions); #define MPTCP_DELEGATE_SEND 0 #define MPTCP_DELEGATE_ACK 1 =20 -/* MPTCP subflow context */ -struct mptcp_subflow_context { - struct list_head node;/* conn_list of subflows */ - - struct_group(reset, - - unsigned long avg_pacing_rate; /* protected by msk socket lock */ - u64 local_key; - u64 remote_key; - u64 idsn; - u64 map_seq; - u32 snd_isn; - u32 token; - u32 rel_write_seq; - u32 map_subflow_seq; - u32 ssn_offset; - u32 map_data_len; - __wsum map_data_csum; - u32 map_csum_len; - u32 request_mptcp : 1, /* send MP_CAPABLE */ - request_join : 1, /* send MP_JOIN */ - request_bkup : 1, - mp_capable : 1, /* remote is MPTCP capable */ - mp_join : 1, /* remote is JOINing */ - fully_established : 1, /* path validated */ - pm_notified : 1, /* PM hook called for established status */ - conn_finished : 1, - map_valid : 1, - map_csum_reqd : 1, - map_data_fin : 1, - mpc_map : 1, - backup : 1, - send_mp_prio : 1, - send_mp_fail : 1, - send_fastclose : 1, - send_infinite_map : 1, - rx_eof : 1, - can_ack : 1, /* only after processing the remote a key */ - disposable : 1, /* ctx can be free at ulp release time */ - stale : 1, /* unable to snd/rcv data, do not use for xmit */ - local_id_valid : 1, /* local_id is correctly initialized */ - valid_csum_seen : 1; /* at least one csum validated */ - enum mptcp_data_avail data_avail; - bool mp_fail_response_expect; - u32 remote_nonce; - u64 thmac; - u32 local_nonce; - u32 remote_token; - u8 hmac[MPTCPOPT_HMAC_LEN]; - u8 local_id; - u8 remote_id; - u8 reset_seen:1; - u8 reset_transient:1; - u8 reset_reason:4; - u8 stale_count; - - long delegated_status; - - ); - - struct list_head delegated_node; /* link into delegated_action, protect= ed by local BH */ - - u32 setsockopt_seq; - u32 stale_rcv_tstamp; - - struct sock *tcp_sock; /* tcp sk backpointer */ - struct sock *conn; /* parent mptcp_sock */ - const struct inet_connection_sock_af_ops *icsk_af_ops; - void (*tcp_state_change)(struct sock *sk); - void (*tcp_error_report)(struct sock *sk); - - struct rcu_head rcu; -}; - -static inline struct mptcp_subflow_context * -mptcp_subflow_ctx(const struct sock *sk) -{ - struct inet_connection_sock *icsk =3D inet_csk(sk); - - /* Use RCU on icsk_ulp_data only for sock diag code */ - return (__force struct mptcp_subflow_context *)icsk->icsk_ulp_data; -} - static inline struct sock * mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) { --=20 2.34.1