From patchwork Wed Jun 1 06:45:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866383 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 2EAA9362 for ; Wed, 1 Jun 2022 06:46:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654065969; 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=Yb4iPGrUX9cts8HHtjVGVyh+GzCizSil68EXyz2+Sv8=; b=SH31nsPfxjXZNisSsBK2ztN9pN4AVHA3b7nfIwzrwoY5SSRUqyXQFfwiDCeGJ0J3vHbSoD 6rmkgVrkltlo88UQ8auJP7ml1Qvsu8ADDBlEwmcqY37OYtrKsl7c8j5tyTuUg8AYBf7ooK uptaj9Dhh00E6iJ8ZY2kXnOlGaqO28k= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2054.outbound.protection.outlook.com [104.47.2.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-18-as_7C6rGNu-FxWk1K0w0PA-1; Wed, 01 Jun 2022 08:46:08 +0200 X-MC-Unique: as_7C6rGNu-FxWk1K0w0PA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h3d9eLbPBa8sOwBGIB5R6p4lZioGbyuyTj3fZxY9TcUYzQfa14cfsey/WiufWhdx2Z3F24LXWo1uxWHml2Ngp6Xe2SYkH3zsz74tXz3cw3tYbCp7BhMNSSPBQvkfNuJOf2Q4BZXNx+ihHGR7EyYCymkhxYxqYRQfgXBm0VDSmI9tRyQ/kI/9JKhUeRs9aoc7P3Yt/fwU95c4Z/fnnmeTcQXvDqlM/kOaH2h2gEMZbBsqUSnc+24APK3Vn6yG3rlFpDqpfTQco4q4N+eupUR59hX/ih9NvU0Ny030lTtrQoxOkFTWxVyqyEbdQbPFVUc4PINAB3oYEvJxtVDTN7THvQ== 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=E1kX8/zRtbMNU6ObA5bAo4EHAJ9E2/txENrsCWcWHVI=; b=dmkDtqHO1CdfsKtyToV/pK564HC+Vuz8z1XPIj3oFX7PGnvIzYzuDeF43FUCu+VmO+r0PIzfvRO+eQysqpMx//B5Q209PTbsZ6Mz9fyVxbBo0zQYwtcc++OW/YB+S4gpscYd86fJ8C/nL3gWYzLW+7ySMemkvgcYdq9VNIi76lBtRIupb3P2yP5GSKcrMZ4HBmgt8LCt7i249bozGHI+8owapdR5KAU5k3fK/GrWTQ/ngurq4SkJkcypkjNWRWDqO+Drqsl3+RgUKJJs95Tr27mIZ/2SJkTeasdp0npXqcDJyQMilw8gb9WKkFuFhaQaQFqUCxcqJrHGLr+7c3iG9A== 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 AM5PR0401MB2434.eurprd04.prod.outlook.com (2603:10a6:203:35::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 06:46:07 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:07 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 01/11] Squash to "mptcp: add struct mptcp_sched_ops" Date: Wed, 1 Jun 2022 14:45:50 +0800 Message-ID: <6a61daefe1888661fa63a50c108b043bd20775a1.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR04CA0070.apcprd04.prod.outlook.com (2603:1096:202:15::14) 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: eabf3093-5554-402f-edea-08da439a67da X-MS-TrafficTypeDiagnostic: AM5PR0401MB2434: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: ki7SU7ci1BdXx9t3p5p+TBz38j7FcWTcLMyZjN2I4TKdfES0530KOK+6Jmd/g6BNv37sPbHLA6i3MlyzExdOPXj6Ugub/GHELgzgpysOAMeTe8eCUEpXpDq0fZYPNLBOsuit0mc2Z8kjwHHmhXWnhrCGxfMdNxQbvTik5Q08yNwHArMG+5nhrq0eV6vdZm0bC+ZDnmtyiuX+XZGDZUEqAr2XAIuINb1gEu2v7Xe9YQRgPf6SRMUH9L5Wrtkyklq8Jz/yIuhtjqlgJliMpigvKZ5l2EzEoeQ8/3458olBDGu/u0YmDFXqOke9/Vu+YaU6AusadMP8ecRBCM5JiWyFnKt+c0JWk4iPtS1qBuUyCwLWZyZTfAgEKaMTWDZedxcGvYNCz66yPIbSZ3r3jjAJdjAPSaEB6hczP4Y4MDn4WZRoC6NcitsbhPmRjhJcM9l8utUHzTeeUYsSg3wL3bHFwFk3aJ4338/leHKZ/Fa5bqvK1ANG0DK7Efe4z9Ukke2Vj7y3MIwNKde4s9SeGY0C8zEG+8JjLbB4Wxggzfem+/h0pg2OAPCXRrK6Sd9w4BLnrOCx6fbZVDmFYoLlzBEGC/hIXyW4pwtVwPn1/3ZzfSFpYCJN2NIHsHuXFO8h6S+NItN9g4FbHOT4G8CMB3fu6rtwMuT7OmzBZ41g9OCQ4S67oO2edBm70JuP5QJoaVPT6mQYlRHz0bazUlJJRs5GSg== 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)(86362001)(6506007)(44832011)(508600001)(6666004)(186003)(6512007)(2616005)(107886003)(26005)(38100700002)(2906002)(83380400001)(66476007)(66556008)(66946007)(36756003)(5660300002)(8676002)(4326008)(6916009)(316002)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GkSDiNnFT6rSZfyznbXptH3x6qLgJ1faTCQmqbIZKWNqJBGt1SUzQzeMR1NRgWz3nzvqB7Xs0yGfK1z9KhxjN5aewqbj4ylLhz1pGMYN5mmJTjxFCqPYkBCQ7DdIJC4ij/vjNaxyzE9rg9zY0rWhdLbLeVyWpvcMHh+aWALVLGNESmM+xk8Rm93ZRbZ9JTr6XrsjZYbwYlL6fdaaCsYihJcDyioWEYDzeKJZ96hfXTMkfQrFZ2xehspDu8uL2jshUlLyD7zyaohFL4BBLwJvxVVrYOAJuvTN0TYBWtkPkFPB4KDYTB6G75y/t96EEM+nNWKQa10g0od4xX8qdP0F9/JMpVW1yyaE/Va4PwNOxXwQ5ynPDFRkOlmZ0+qeC3OeaN5ovZIcBKIVzbUaDvZl3T84eL5FAE/rkwZkg5M4TxB5P3Mg1P68dzdLpi5xaLFOHWX95w/AOUGzJnLUXJHU2LU2Kl4wK8m+1TarnmRbuGEycZWVI3xGP4MXBB7n7pgJD+PqRmnB87JuKVyvFjee2Dksq/xcr0C07rdD9uMkF8mYOKu26e9VopWlN7bx3cY7mVA9VI9lPF/QatXyXWmI0V2cytJDA14L/vOMD5839HBdSU13kVo3q290SvrkSkB7JwEhHGy/qM+UnfHo3MH6dfMqLfw8bKilAcg0fEHambNwnpAMLZXUffayi0el8qccGEHjAv0QP6uaEPrz4I+Y4NrjUf+2DpMlzsSe4lU5SbI9ytuUr2XKP2Ya/KwuXgKAKpnisZBQr0PbGqE98c015+9MJixBF617+vhFdJMbwBmYcHMFx6mtxQ22gRN6xZ9Cj56PlrAylIqmr1vVvZCU+l4ocuaJNoan6dSoyq2k63IsQjVH8NZgvFy8teA8YSqg4uFfy2GV/RB9Vspcw5wpyJlIGMx2sso1XqmMfqJya5/RWUgug5ydngsKWv2YUD70IaPD1HMR+vSIvH3LX7V1FGWG98n/mUkKYv2H74U1Wxe8iRaG+5RynGx44rQYx2DloBNjC3Uuhdfw9D3uCn0qFRLYRRGeC/QGUEk+Z+1tIZfBB9wpfayGlwG5MoDVNKibYIV5VZt1m2U+PltkFskXtgG8YUvIFesrDDBjeiclK0hna7F2kjhFparGmUPqYEa88XkbdEHpYwa2Cd2XJwhlywdTWA8Iivc+dRfF/iRutbaESaNWld0dPxIOELO8hO2qZ3IpALLITdG+racXU6ITiEnQqgNT7UMMQgYO5cyKWPs3+FTUkGdazZozUrfj3gbvxp7B8x9d0sPTn9KuBhfpaBGWG0QgTMO/TaPKhS6iKYpR2HZGgh9fLFC9qV/XYqJDFqNidnr3VwJ4ZdMicaXeI/HqHNSCEyZkgXUlrUCI381HEyrl+dY8Hr3u5sPNNRtV6t56yKEgW6+1dlLxeL3XA0bPOEFERL72rBBzfBZ/STX1Ug0Mun20Ma+gG6zX4Puw0U6/KIwRb7vmJ5UMLgOeN602d2A/U0UyQA0nQAre+Tbn+FnXNSzjQiTNnDVC9qwzaA01uaqLAkzEwAmKC5XFJi/WBK6mOoMmb0C+G5EIG7TfPh08ZETAlglJeUFsVZNzSuXvvg7D56L5xiOAtFEtWIOnXZoZC+PeSLwfZtBPL/fo/PFV566H6ygCvafh8ghGaSeU+7E8LV9IAbSDclHGLErASM5DLkRh1LbXE5sQXbxr51W8YmDe+zQzfOjnl92D5fw+3vX2OJ78b2VHnZpqaNaNO/F2fKOj6hqiirqZuBg= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: eabf3093-5554-402f-edea-08da439a67da X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:07.5896 (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: mDH8ngJXEG8Y7vmV4Kuf4QYIL489zSsr3dEStZf3psT2jColy0WTAIfZ+WrjAeHi7fzRtpnZKaLusbjzVbCIfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2434 Use new BPF API. Please update the commit log: ''' This patch defines struct mptcp_sched_ops, which has three struct members, name, owner and list, and three function pointers, init(), release() and get_subflow(). The scheduler function get_subflow() has a struct mptcp_sched_data parameter, which contains a reinject flag and a mptcp_subflow_context array. Add the scheduler registering, unregistering and finding functions to add, delete and find a packet scheduler on the global list mptcp_sched_list. Add a new member scheduled in struct mptcp_subflow_context, which will be set in the MPTCP scheduler context when the scheduler picks this subflow to send data. ''' Signed-off-by: Geliang Tang --- include/net/mptcp.h | 7 ++++--- net/mptcp/protocol.h | 1 + tools/testing/selftests/bpf/bpf_tcp_helpers.h | 11 ++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 6456ea26e4c7..7af7fd48acc7 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -97,14 +97,15 @@ struct mptcp_out_options { }; #define MPTCP_SCHED_NAME_MAX 16 +#define MPTCP_SUBFLOWS_MAX 8 struct mptcp_sched_data { - struct sock *sock; - bool call_again; + bool reinject; + struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; struct mptcp_sched_ops { - void (*get_subflow)(const struct mptcp_sock *msk, bool reinject, + void (*get_subflow)(const struct mptcp_sock *msk, struct mptcp_sched_data *data); char name[MPTCP_SCHED_NAME_MAX]; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 8739794166d8..48c5261b7b15 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -469,6 +469,7 @@ struct mptcp_subflow_context { valid_csum_seen : 1; /* at least one csum validated */ enum mptcp_data_avail data_avail; bool mp_fail_response_expect; + bool scheduled; u32 remote_nonce; u64 thmac; u32 local_nonce; diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/selftests/bpf/bpf_tcp_helpers.h index aca4e3c6ac48..8338c7b31f87 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -231,10 +231,15 @@ extern __u32 tcp_slow_start(struct tcp_sock *tp, __u32 acked) __ksym; extern void tcp_cong_avoid_ai(struct tcp_sock *tp, __u32 w, __u32 acked) __ksym; #define MPTCP_SCHED_NAME_MAX 16 +#define MPTCP_SUBFLOWS_MAX 8 + +struct mptcp_subflow_context { + struct sock *tcp_sock; /* tcp sk backpointer */ +} __attribute__((preserve_access_index)); struct mptcp_sched_data { - struct sock *sock; - bool call_again; + bool reinject; + struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; struct mptcp_sched_ops { @@ -243,7 +248,7 @@ struct mptcp_sched_ops { void (*init)(const struct mptcp_sock *msk); void (*release)(const struct mptcp_sock *msk); - void (*get_subflow)(const struct mptcp_sock *msk, bool reinject, + void (*get_subflow)(const struct mptcp_sock *msk, struct mptcp_sched_data *data); void *owner; }; From patchwork Wed Jun 1 06:45:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866384 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.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 9CA3A362 for ; Wed, 1 Jun 2022 06:46:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654065976; 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=8XVEh+4oohQt0XUMdIgg5ktNgzeix+uZ6ytucP5wyv4=; b=fDHrm0qzTEl4kooqJ7rhf+1YY9V3DULv7tYtCZdabgidXTeKq3W38Xj8eukOGJz1WNVZU8 LquV0FkLXhNS16rXEq7lodnzReynaz8SXBgRGJ9iCZg5oMLIJ1ChScuD+qysV+M3wzUbfu x5qSGQvOEqm3szotH08IyGTeLk4FM28= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2056.outbound.protection.outlook.com [104.47.2.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-3-yl3cy-C1Mb6-KKRdK5vFeA-1; Wed, 01 Jun 2022 08:46:15 +0200 X-MC-Unique: yl3cy-C1Mb6-KKRdK5vFeA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h992yLCehjkSWBj4Tg1zPTImx547k4pU4RCOX32278VyDAQx81hxmcCBdQagPt+BWlRiXZaHNDzb233QcEdKijOCEmGk9JpivDnNo6V2mmLIv6CUm8bgihlOPEWPUZWbuUg3hyjqFT4M0cZ8Y3SJF1Udfam4Vjniy1oKNUQgUjQ9c04oc0PGixVCdXNtTXmzU/OGqn/5LN7s+64efVw6v6czbRNSDqjfLXqH2kg4iKV2NaclF47W3oYq5JGBu57XukxyRwPH/UPowIT0fu61NKZ7vbnHmc5TJ+2SUz0cFILQI/d/BP9BApr0XDSh9CK5VAanKlrA+XyCb+H44QBngA== 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=jTZx3ll2k3q1OqI0daXsEaVA8G+mDbxRVrj43jBmfsA=; b=fKc2AqHHPNOB25FufOsyqPK2D+SWDdIB4QNClkm8Mgsfz/k51wb0glttHB+KpHzvmijfvQ1wyJqxMteA3RASV0eHTQkCi9QwGc6y/tPXT5ZNawtw8gm1LZu89poZUO2HxHBgIesWMzcn2CZzUpses+QGQQCUvyr4RJ3E5udBvq4R/tDkmOX9OeMM3I+3j1pPkXhj9/TmwnJYdph5yIsJzJBdo93kq31B2trdx4qRF6vhgt8Sov1dZIj8vTGWX5nnjpw0HJmGVufvB3NMoxKpv/Llb3kf2pSF3kobFGcsFU+TepcorU0+Fo4GThrGG5kyVGajcJHV92EEUdePnt2Ahw== 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 AM5PR0401MB2434.eurprd04.prod.outlook.com (2603:10a6:203:35::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 06:46:14 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:14 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 02/11] Squash to "mptcp: add sched in mptcp_sock" Date: Wed, 1 Jun 2022 14:45:51 +0800 Message-ID: <4032935cf852a5ba37ccdbe925f063967cb30402.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR04CA0070.apcprd04.prod.outlook.com (2603:1096:202:15::14) 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: 18e6160b-e9fd-4ec7-1e1c-08da439a6c0e X-MS-TrafficTypeDiagnostic: AM5PR0401MB2434: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: VwZ3QxeWfVqLRYDfeD0Uhk/1KDiq5R9XhErO5QEmu/rXqnjg8tCPe5hhbEviROAEQ4Wff3pwyqEF6eCf5ylnRiHO2pMe4KFqflBTz4e1cpa8s40Ni+71QMz4e0tbHO9UrPTbH/LBCZ8SGS5rk0u1BRaG3rULcKL/AwjKWx84vCSc37Y0VntuIfYdLut6Ql8EzQsTtfZYwIlZQUQ86BovOQAKuK7dKoPKHZmVrg5dSnve/z5x0M9TyEvaOLJjk35298Z1Oq0CQJyPUPdWkRu20uFKY2QwE40kHfQRy1DY10L/tK/4gPIHtEkn2AqwcvedJQUVwQPeSAiaFkV7pI+Sf8EGRBDM/5Xd0JbKtoNySx8jlLhwIZFVKgu0E5FIKQlbZnUaPNkLUxcJDxUosE3O6F1WpqWB8UBdjlHTyCtgDA+Q5BXDwsZi3i58UDkYJzqOBBLNuIKjSuDW9uj9tQGd85U846/tJ/RN38aXlasPydZjATsUUYzle2QKV3xf98tNlSGsE3SxQkBpktWoKbt3bsG1nCWkMqidIYahXNSi890EFtMiEL2DGvNooBrfcruvwMdE+IjEtYYPB/ujPxtoIa7NVX1V7mkqkS2TD6RnK1QNvTBQr5NH4hVVKwp77gY6v8dU3hWckpp29TRH0m2jy/sJuYa7yzK8Q8w3htdnW8KjESJmboxXtEVEndppia3CQQYxgSX8HoZaK+auO7zIUw== 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)(86362001)(6506007)(44832011)(508600001)(6666004)(186003)(4744005)(6512007)(2616005)(107886003)(26005)(38100700002)(2906002)(83380400001)(66476007)(66556008)(66946007)(36756003)(5660300002)(8676002)(4326008)(6916009)(316002)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OsgMbqe0wokKAavJLUW4UYMey7iuEz6/Ghkb5Go2RKMq8MBX9C8G+o9X0fUa8KlJlnTF0SQTxmRYIVizoenpJ/KzFZJSqwPX0UFMGJgVrvcWaFTH/txIo/uEKSNM/ySs7Fdcc9I497f6txXFIgAeRSdXFB/4EsvjdgW/ZnWIQsfv/oMWjU+coSvCFySlhj0z3CmiEu2/I8S52NQNnDox/FTvntsIN07x5ecsxJvxeS9Qd9MKSSGJlCp3ekPZTxpoqNlllfMUpK2liW50NJYU00A8ViHvYUwCc6+fpsYGzyIveh4Xpck6cFBxpgnxfZLvSZnu/k9WPOSaxcKraynd9bf7HudlttfxSZPBK2TzubwPY3eLpvwJaP8wwjQLudK6Zvtc1xuWcgLJwGzbVSCd4o1VCyCVwfwYwdxX9uoqtYWsGYHopJYx56hcvCwO620DOBz49Y1o1WRY9k8QjJRIyVBdOmFvVrqO6/gNLqgasYFop2k98PPN8A01AuI/bjwnYNnnGTRtLelF+Y0Ma1R5w2dlQ38WU/W2P2/pNMUxJTA5qn1E1+pzyMPT9QJQ1ZXle5MnWQJhGpW8hydI3CYzNPjBq+dIONXXSrUJ82NeExLuLW3/262bmWU+PHwldc9tKbm5Fgx7hshlneE17uvKIbd4gYvaqxZkG8qnnlQ+DAbQm8qI7fZbFU6WO+lQMOX5ch4aUAv2EsFNNCqI+aZiyRDsjNLz3zt5YTNHknBMf8q7N3saao/vJsb8xg3jWmQ9rgnZfYcRYXqFpBV5WHahbNySXEsk0HgOpN25gDr9ATRP8VENEr6qbidjjSPYuQKBPySaCHe1sQS4tFC401qQzhhi4XMsRlmqB/LazaA9HGusipO7qobwkt6uq6rNofrgVKWBsJyFRD9ocv1pgv5+6SVt1Hp4g3Tx26pU1qtxel66uyHy/WEvs4jVg2Ur7cKqPQCmYt56g6W63s+u6jbKtZEghMh3scdDjafYsJcXhfrVVMTXSwpr/6CEwEez6/+XycAZ9FWmVS30SRAu3ljsqp7mzpoOl/mPgW4QmnRtjGbxcqJTYbCn/2zuziCSD26VO7y2WYCgjXT/1aAY1+X5v9kzXXs2+RYNjoYBKnSqzsRodW1IOn/BeLv0UXZhbVkTelGsrbEaYzEICDZoIznNXCaadKLRxlpa/pLUGBJqBrVx6Y2e04wjhKGoGTzO32ReM4Kter/CcfG+8q47pO9MFHS8W8oK+pPbwik6E6J0HMdz2paAaxU7wCPf3f9tDMiRRzN+K+RvvmLdb1Mbe529DNLwLQv9Igxg6j4M+HE+OD6sIMGFUSQh64dou5XvwBowmT3PXozX2aSnAe+HUgTcam/wZj1DAHvGUaxnqToL3hm8mj8BmMux0EhmDwpiy1+J1QTHypmy+kMY73ysEha72XVX+qB20pTjcmpaNbwi7Tb+zxoio4umJrkM75gPGSMzK0WMNDMPtkm+no+Z7CKwFCfS1DARGpD5ZUuP69sEA/i5/XogmQNxBBhC2EEGg37pyna7taqh0TEx44fFaBMgqBINm44NsuZaRzrueKP0Gx0uufweF4ILyneswyVeGQzvKDKEC13QmA9cXwvnqEx2u7mw5YNh8eiAIFeCG+zs2u+chsgCEpBQSSzYYH8+AFw4Qq/sU4dUL0qtjFGhml6eQ5IWTf4SsX4oE50w4ZyBYHLPMMVlTYsgwuP5P5KHtToP72pKo931d1/XGqoY+abOmuMV8ftCaw8k/5a2sVrPBbE= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18e6160b-e9fd-4ec7-1e1c-08da439a6c0e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:14.7141 (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: /NS6GFPai+6zEzf7s568kBa5ZwP7T1gdJWEdWqSh8GDQacrYoBgPeZ7afBzDgc7EJ83h+OAUVr5MBTZrvFHqoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2434 No need to export sched in bpf_tcp_helpers.h, drop it. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/selftests/bpf/bpf_tcp_helpers.h index 8338c7b31f87..5f6a7fa2269b 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -258,7 +258,6 @@ struct mptcp_sock { __u32 token; struct sock *first; - struct mptcp_sched_ops *sched; char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); From patchwork Wed Jun 1 06:45:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866385 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 2CE18362 for ; Wed, 1 Jun 2022 06:46:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654065984; 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=6qeaeLhCS49ag5oPQUlPBw/DfNU+X0en57Oj78sWy2U=; b=nfKAyhhN6awFi34Br6wEMd03oKHelTawBWh99/UpiyxtNDblbo/214G7npE3BGssvwtCNZ bKuQ87Xa0t3AROGlpNNLsswbPHabHN4yMOkOXTwPdHo13V2pusXbjgNB9eIio5xH2LSioo 3wbG+fi1VCP8GGBx5ymRxl3mprYwgzw= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-10-3jK8omHcNeim6fRGA4JMcA-1; Wed, 01 Jun 2022 08:46:23 +0200 X-MC-Unique: 3jK8omHcNeim6fRGA4JMcA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zz19COGGvtQA0S8/XLyM+3uT0RqaWQa+NGQzBwiTTSOFiesFp6nlvsZzanhSrq1fmW2T4n4OtRyQBQt0jLK8auBUXghr7EyLGjazmfoDXm61RTGsg9/Arl55mknsQxTv6MHaihnT13Vj6UNeqH1gDmRQlcanJShswuZLy4GkBTNEzeik1cvMeGfHqfrQ42YcGohLtdQ78W1xrmZe0HHK+QU4KfkuUvMH+w2ux7hwmO8aLsbcZk/B0gF2Dg1DIdTQOdJw+7jW8m5DuplBBGU/yxPtBgPJUDw1mxw2PEAbj4djsw/AIvNbW4ShPViLhhohy1baY62OqKL/BHCvVQNxiA== 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=4yO1a+YtcJ54XPUQMZ+djN76nbPAj4ZonspXA11NptY=; b=m9JxQEDLD8MRV9qf+QI7JT2N69mNY85duK8wUPCPBRkmbv6HA8YQ1R0tyJwODA6CogZedqe868dihnA97UMZKfvgch4wrP9TDTOk7IWs+Szz/YWrhpAg1YVxsKWJfntOfBn3E/8fZbcqCMoHgRRdQ4ku9YR+RX9bmemOgxdBIeBlcv9A9P+Dml1urgiksS832oy7UwnZNCYHlB611KZV2zxlolROGZ1dgPBDq51aGAo8/8Q6lose4xARNjsiJPrLDI4HKInxhvdW/kIpOa1DWxuFI4RfXeFpwSwkpkcKuIA3oJCzxQ1MWcQNsC40OHfp8En8PS6rgEcyE/kKgaG4tw== 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 AM5PR0401MB2434.eurprd04.prod.outlook.com (2603:10a6:203:35::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 06:46:22 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 03/11] Squash to "mptcp: add get_subflow wrappers" Date: Wed, 1 Jun 2022 14:45:52 +0800 Message-ID: <5ff48a0eef44e9ed917d62d1b1e3c309cea98c09.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR02CA0217.apcprd02.prod.outlook.com (2603:1096:201:20::29) 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: 339e3665-bcb7-4860-7f8f-08da439a70d7 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2434: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: 5w1drSTycobSKy9sMoi3aOE6hUyGcfU2EAUvabUOMkPQp4t1NZAT5WXXcJ3DdlVgn3bGOHOm6/jBDiPKPmkNrX+/EHLLu4O6Ya4aefvyVcNnpUCZ3gxL79898SywgLm36nhNskQ0gNlym0XhusG3mcjP3FYFGMQ0Shgo+AabHT0fDKl3l577eR/wU6vqd4Gh/Lcwel/W/TtZP52YIRp0BxY+SgVlHcSjaG1oDl8eUQezn5tLp1Fkjmf+4TrPb2YzgzsEQYLQkOs5CxGIsVuEly4fh8AKto+pmKgC0Q5HSiZ4rWtUtEBSHtKguLgTGfZLrMFe8OT1rTAWfS9WINYFLiPYV4Q1Rj+wsz9rNMnRHBj5gKCKGbpRHo/MfWI66Z0kDyqeuZH1vOUEH/sxvtA97nhXWkuhUVB7WEnvp4SfuwBsfg89Mfbcjmtodi3//Kbk89492rtXK4m0VQ8X4yj4Qt0fYZjwsxujSGKQh/Zh3b8BO/lLV4Obz7WOQQZJ3MiXx2SBXEaBbHH6wgUe9K4+852oNa0Ann7Ic3T3scLZq7mcURBu9YQF94UfEQiQLtLu8Do/T9pfnDQAUUzwGmjmCOdz4Gq5nywK7ehlFggk5E8MqEoucNlXoy12XXa/nX0JrTl5fArHCT4yUqtNgC77E7pp4WNgr2L7++f2ozrDIyB1teLtC7xNOievFF+aQWUj6QUsB+xnKX4ahOVJQlPJ+g== 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)(86362001)(6506007)(44832011)(508600001)(6666004)(186003)(6512007)(2616005)(107886003)(26005)(38100700002)(2906002)(83380400001)(66476007)(66556008)(66946007)(36756003)(5660300002)(8676002)(4326008)(6916009)(316002)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: r5YylKpdXD8VYHIvWBZAR+ro/6A3Roj8ofQdJaetAeSxu4Lk013jDBABjOBfqTkEmLAweumfMIFqy4AMOyvIhqqhhYXupqe5bOJWKo1O/epIYwHWb88thR/mwQsEvsUmWHMf1FTirxvRLErlpFXKfBJmak6+IwcKcBq5GusQ/SVnHVxsiEHT14ow6YnsJNFhzf/CW2CL3dPVd3luKamDFevvQJys7G7Y9sm1lrktUA6CrRKj1idCgOCqr2edonIcsNliZJEiLH9A9hK4dRqfY3CYwV3FrKAjwlNnja7kp4+LkJwuUgyyPf31T7LTxJW88bJsOnRZsa5rj3l3gTounGxiNLVhDCDmcdyGlDBHp0vztXkyMXJUfc3D5Ld5i2+gAII10533q+Dkg8ipGnUku8XBfR2975mFoBByN+Yu+qZ9x7HUQkBaTy2m4EgCfW9nRwUleAInr8JyMY5q0gwXApn5wumieK2lZ83q08zDJcqJkH29Ed3OiPiezpSqapjboPvyb1/kIuIBzhnxmE9z4As0UhN8N6ASuWeGeH7mhRtDidhlfa2xircDvqMwmRXlXm+cGD3a/Ra/4SvYJaON0ynqr0z5VhLnFm95tP23D7kBa0IcMsgTGeqCqezqn5jlPeocEaKkGcPy0uGe6DQn9II4z74yhiZGCs9AFBrJAD9DQMNEexDeEMmGAN4AlwLaf754IUZguv7TIoidRpwteJb36quK53uG+vBkMlrBlvn2g2hzbMutTtKECboayG6qmyte3nDI/0JAz39NeCGahhF2DElIavrnTANRG66pkp/XSkl/g1dm98Y7MQxIWknJx/F0QlKV/CFFFoBnX6yhJZJOuf6AzXgK0fDLYL1jpFui3Zox4mQckQf7lOkxmwBMXRRauKR23d9D7LlMukRsclH9YA3JTvxx91cPsssusVNB/0IL8+Dt0riHXUbzdxE82JPHiN3c2OaxkuZcMrOnTosL4VEW9vQ8FeJfK035fry6qrVytCDWkwL+0p/1rDJpi97rgHJB9SYub1nvhaTPoTuonmVSjueHYZxdW4jbL15A16Dxk4oppYo+mm4QmS/etJ4I1SLwPGxOwaJkwbBoCy5yxHc1aZiTz1rPQhW8gv3mLVd6P33vo1EKKJgWSzgzjKdew0c0SSxPS4UamAjkSuS7RTMSgulr/Z/aaIXJXMwxkDHkdLCkQljiP7xH9cyzPyFKfmM4Lgtx1c270KHcBnFTK96Aont/FDBj8fcO6sZ86qWWCFrUFYnPhhfnD+yrvhSM4Xo74f1rpF5bkuJOK+tD3G81FAnwMc6NaN3CGMjwMmwtcX7pKs6l1ydESNtVTu1YZaEIvFGqMydZmzEPvJFx4Hwy1MIz+yUcZEGTObmZeJ37fCpq9PIuVBiVVFAs0wRCKP1ZKC2hH4tll3zmjqldtenv35YSJ5b6FphTpAtmJfr3kVnjTqkkUHBHoTC7MVYZMk78bu62xFBD8aXvrBuHcJOqU4l58oYoo06qB0nbMfG4wzUGsrfO7hT3XPcWMeoS9/DUIq+4DbEB39ZGIN28GxUF7A4Y4hXPrb92WWeqt2niBbvx/T2ZYXtzzUAiWn/6jWarfRRs+FqQ/g4YJqtKU/t6N7Pbshz7YPTRu6whTktwrxpgLfkAMIUmRz5QaoUw1bjeDFMHbuESmvbEnhI27lp5537DyzDiNf5PzEUBxlKlculu1A8piB8zzCVO9avBF+NkBVuBAC2LsCeC1YZRbGCjFUHBuwWN8I/8Y28= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 339e3665-bcb7-4860-7f8f-08da439a70d7 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:22.5729 (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: pBifwINhH3HrgycR/OXYOXd/L5u+P/rdpvI/TENfTTzM+TjcxgOjO/zfDpLKIFYgUynrbe9gLDvxPHgkt35fjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2434 Please update the commit log: ''' This patch defines two new wrappers mptcp_sched_get_send() and mptcp_sched_get_retrans(), invoke get_subflow() of msk->sched in them. Use them instead of using mptcp_subflow_get_send() or mptcp_subflow_get_retrans() directly. Set the subflow pointers array in struct mptcp_sched_data before invoking get_subflow(), then it can be used in get_subflow() in the BPF contexts. Check the subflow scheduled flags to test which subflow or subflows are picked by the scheduler. ''' Signed-off-by: Geliang Tang --- net/mptcp/sched.c | 54 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 3ceb721e6489..613b7005938c 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -88,11 +88,25 @@ void mptcp_release_sched(struct mptcp_sock *msk) bpf_module_put(sched, sched->owner); } -static int mptcp_sched_data_init(struct mptcp_sock *msk, +static int mptcp_sched_data_init(struct mptcp_sock *msk, bool reinject, struct mptcp_sched_data *data) { - data->sock = NULL; - data->call_again = 0; + struct mptcp_subflow_context *subflow; + int i = 0; + + data->reinject = reinject; + + mptcp_for_each_subflow(msk, subflow) { + if (i == MPTCP_SUBFLOWS_MAX) { + pr_warn_once("too many subflows"); + break; + } + WRITE_ONCE(subflow->scheduled, false); + data->contexts[i++] = subflow; + } + + for (; i < MPTCP_SUBFLOWS_MAX; i++) + data->contexts[i] = NULL; return 0; } @@ -100,6 +114,8 @@ static int mptcp_sched_data_init(struct mptcp_sock *msk, struct sock *mptcp_sched_get_send(struct mptcp_sock *msk) { struct mptcp_sched_data data; + struct sock *ssk = NULL; + int i; sock_owned_by_me((struct sock *)msk); @@ -113,16 +129,25 @@ struct sock *mptcp_sched_get_send(struct mptcp_sock *msk) if (!msk->sched) return mptcp_subflow_get_send(msk); - mptcp_sched_data_init(msk, &data); - msk->sched->get_subflow(msk, false, &data); + mptcp_sched_data_init(msk, false, &data); + msk->sched->get_subflow(msk, &data); + + for (i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) { + ssk = data.contexts[i]->tcp_sock; + msk->last_snd = ssk; + break; + } + } - msk->last_snd = data.sock; - return data.sock; + return ssk; } struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk) { struct mptcp_sched_data data; + struct sock *ssk = NULL; + int i; sock_owned_by_me((const struct sock *)msk); @@ -133,9 +158,16 @@ struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk) if (!msk->sched) return mptcp_subflow_get_retrans(msk); - mptcp_sched_data_init(msk, &data); - msk->sched->get_subflow(msk, true, &data); + mptcp_sched_data_init(msk, true, &data); + msk->sched->get_subflow(msk, &data); + + for (i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) { + ssk = data.contexts[i]->tcp_sock; + msk->last_snd = ssk; + break; + } + } - msk->last_snd = data.sock; - return data.sock; + return ssk; } From patchwork Wed Jun 1 06:45:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866386 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 6FC39362 for ; Wed, 1 Jun 2022 06:46:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654065992; 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=mM3+XND7/C7tWp8dWVpcgU/hF1flnJ3n9SUIKtqoJ2A=; b=XgDpfKJJWi5a5Ab5XMI+VxNKdnDGxsq8o3ufpB6QpBqtSJNRkPksgLZ/9TUqJsmNXf/WGF TeC8ZarrX51PE8IpKfNvNiapklRbiAv49GtJm1amT8eQUGNRTWoYO6qhVeeTWDQsQdMcyI 1Hu2vB+4WDI32Yi/wv5sXGi1OfCqVSA= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2059.outbound.protection.outlook.com [104.47.2.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-32-bc4j85UHN5apuRQ_cEP1ng-1; Wed, 01 Jun 2022 08:46:32 +0200 X-MC-Unique: bc4j85UHN5apuRQ_cEP1ng-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FmNpVwep408fbcvJHuHJL/6unVWXmcXmJCgYYCw0wqvE92x3mz63SW0WUmx9km5Hd7Mh0zjbrtPzqr7QLPCwEjAjsxS6uEHnWlYeruZLN71I6AVqd8AmLCbV8cZ2bkBUnhhKzxP2JGxeDCaUyN+rqZF/8F5a2ol/6BK+BKnkhGQ9dzh+leze7H/QrqVON7vFavad53JiTGzN7Tw4z2Vkeghaxl9EgqCsMlbnyUcrNsHCgGqJA9242G/HjEmwCtxg5nWS2TscUDSfw80uVOliz1AgvhRF45eYv9oN3GsJQZqShY5+QoGwm3WmQW9aazIE5NlK436Z2zXoUdQ5pIJLFg== 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=hnB6QZnX3QjWi4Q6M3PhES5A94xjRZKIWP1wm4KUspo=; b=jKzSwwoU0XOAdjqxjnjRWm8qAzhE0h3AieofEroCPpD1sl9PJt4jk4b+yBHDTZdmF0YpObWVzB3YFiqpIppBvXM1Lx9gyUWNkBAoEAQluVPCnhzeWvrk//tKfNZuc/E1fTZiHpfB5MW2E8pGt/075uL2dHe9eGo90w3SRzdqwMo43tJuDBQG6gsSDVXjGKxRjAAb4vw+mERbiJosk4dEa6yz6AiUbaBKIM8fOqM1wN0nsmhry1NxLZ8CRNZWxOTbEGUpVaD7GlHBYYs/EHDyi8b95EmPVH+xURcNJF0475Yi9+oNzwUN+MB4Kr9ZhxoDYvrivEp+j3zxYFPUUgwg1g== 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 AM5PR0401MB2434.eurprd04.prod.outlook.com (2603:10a6:203:35::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 06:46:30 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:30 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 04/11] Squash to "mptcp: add bpf_mptcp_sched_ops" Date: Wed, 1 Jun 2022 14:45:53 +0800 Message-ID: <1f5a7207b53a8e27a99c5c037d6e7dea9668b04c.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR02CA0213.apcprd02.prod.outlook.com (2603:1096:201:20::25) 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: d207fc2a-9354-47a1-a085-08da439a7586 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2434: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: 2jaep5wKbxISU/nSjLtkZ7Ia4pT+Xwth0Qnb9UlFOn5YQW7+pVR1mxHSYQH4QWSi43YpEY/YULj0pE1FaFh0rpD9JLy8IHQMkLgtm6W+aTqXTzpykYCzNwQtAu/d+Gcl/uY3A+Gy3fpzltYAQs7vNV8RRxXhDX+1WJDHFDDxJmw8lfLMtFj8FL47vXMxKyPqFf7CsJ3eMlInNN/LgHE6d+EoFYq/HxdIUcx2uDYzge7Rm4k3GODFZMNKEgNE7PT92I8N8Lz4BVkaYCF2f7wkrhHzISpIhHU15RvCIr4xtQvxVzJVwSqDbHXw52J6gzGEW2xUecn3eScuO5bR8WMDzXoHamnKjcKINxka4+clVeqqwlU1GFnw4X8985vE2IRkv7CcWai0lShPKtROhwt2XKPceVAVGulcsND7nVZHPq8YEbo/bsO6HgOe90SDR0o7wIXlS8LgxYY26nJzXDw4r3eqyvUt06QEG83X8F3nZtW1EF9bdoxp/pZBRbwGpJfcTAHAuFY1rPCdTLQkpzSijE7WZvcY7hzlp23LyjcfjnPiwL1Nua3udqCSS6g4StJhKGUniu4IgdkekXu1h4Sksfep5SUuJAn7/aclmi7irviQI3p3Bv8VhZAhw9QysGN0PkoH7M/gCWp63EMXlm8OGVzp0JwVgEa+bY4lcEcUMG/MruEhy+HNGD8oGcH3sFbU 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)(86362001)(6506007)(44832011)(508600001)(6666004)(186003)(6512007)(2616005)(107886003)(26005)(38100700002)(2906002)(83380400001)(66476007)(66556008)(66946007)(36756003)(5660300002)(8676002)(4326008)(6916009)(316002)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kJt8KEWpxMp8XXCxehx0hzke4GFbXRrRFfQu3EUL5EZ8JTQeshKzX15/fJx4d5RPuSRrLx+4zH7UZrxp0n7yg+bfKBaTD3Ijgyh5s5RzLB4H1557O81kqpOqDKeWC+9bC1fGJOmiEWjsZWqKQXsAxwpmPSFYsKfPaZTZDl4SdFk13bTfy1Tty/FEfGWj99O0BF513Z3qGlEsFkUGZvXz7/CrgLhmX5lw7iMZwK5OHFKcQh5u4uqer48BlyqLgeq6YGibQbTsLs5CMhGedJFjCrxrLAyOJw6CJOcwwo1w6hvckJFsoBaooQvtOkOmda//ZYEAk1YVt2vVZq1BAhyGb8l8eo4/9qfPhWI1/lMoUSWLvJl63pbKEZMJohIOHtZT8O2DT4UpW0TdkeKyKpGoLYvrDcMFdh4Kh/p+ZBbLM/kAEGBgwPdO74W9WLu0QHmyP08dBTQ1hkvsIKDi1XrElhxWKByqdDe2XaJMURLrEYAZ1ubrmHMLUAdqMPjtmg/aQUrD6S+xdIbXG0G7AHMMhJOhoqUHhzwSxU+NzUnJh5+XAWWpHHn4gOMX91yxj2oDXSr0mTYLb+uk+NS/fd2J6SC8LGKEAwyeT2AQaMllBsWQ/Jo15WmDUzNC3M0v+cbyhp1tH2G7juLx2xM1IU7NLLxsTIW4oIemKWNMMU4dGMvAnp6uuhQHmQjkrJAjidk/StOmtrX2NAuFbj92Y10ZLFoc7zyAH0lMgrR4YFTuelxSkwjsnZbXS1uDDkP4gBQ9rdlZc9vNZtImoOHr+o8W7uBtYjnwZKn2ZipdOmXlulLJVfAx8Ee5TYw2B3JMRGQ8UQsn3rMQzIQhY+wqJjfemCMa1WlnmfA1ImK9KdZQvVIh5EutvU3DB2TOEMH1wAY1pw9KLMuQpavhagQf/bPlQdvclM65A+zIM28e0AmVITccu6SmvvVp5Qd4Hs8BYR8XBSCCwDpryHIkyR0BQgeFk5lhB6TPdUrf1eUWQzaeL/YBixQT+1nzTgVxnn6HjwNRarfm6aW5YrZdOt/iBvMlV+ds+o261EfYyZhPeDnGXkTdH56zAf8uIHQib8+aRr1pfEYnknXDRWiWND0LbHJbriaomMizFdDgH4LmSD+VpwUyhTCbDZ7rQPrVeoG3J/BkGBXxbSpFOK/2To1jOgqzRbYEbaLoOtekvmXia2IvICCVmQH7HqlScpOXcHPpFSE75c2Qc2wE5QlmfCUqknA8KeNrOkmvb0rMrIpAWQ2qsuiqUfMEqNe7KM3CtPHXG8Uige1J/74ouqA+4tTt/auN2DUUpjMOgWUEcEtcvRkUrnmy/VzK8ypbCoEg7/ea6ys/iRidLJH4Hr9ya7zfIHYFSXNgB39l5b7PCOZk0IXEUs1BQMbIkhsQCRYQzaExnjpJOGWM1LEDCzKEfCqW7y34ZgRIDYYDVRjMl6kx+eNAclbrTqHh5QPZkydiVr3Mpsn/pDl6rPfXvCRB7WG5Q5y6oUXpapSfaONAvC8DQdC0eSdBoc2pqZCZDs3KDfT9Kq4LBwg8YLI60QuOTQLG6CEd/vlxGd0kg6cL2RDrJe291bweYfA+OyPRZ1rzrxl22SYyQPtyu355g/41lKVhd3hji1f1eHCz8K3fJDr8mY4IoCJr09OCbmmNzffPP5RKl/nbSawjD+C4vvkKANgzmw9QbX6qGwcY5qPaVJ4l1aC1SJl5yo4z8svphkxsONrG6UXhPSAPQG6DPHRwsg1c5Nlcr81b4eW8f6mHQQ/Ro6MnEJo= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d207fc2a-9354-47a1-a085-08da439a7586 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:30.7908 (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: 3liZezbffV7x1+Q3TekaU0frTNKHnq7b1fOlEtGORnevKRdBec/hqhSdlY+qy3qnevMVLbCaRUqvbGSax06nVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2434 Change the access code from mptcp_sched_data to mptcp_subflow_context. Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 338146d173f4..0529e70d53b1 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -42,29 +42,27 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log, { size_t end; - if (atype == BPF_READ) + if (atype == BPF_READ) { return btf_struct_access(log, btf, t, off, size, atype, next_btf_id, flag); + } if (t != mptcp_sched_type) { - bpf_log(log, "only access to mptcp_sched_data is supported\n"); + bpf_log(log, "only access to mptcp_subflow_context is supported\n"); return -EACCES; } switch (off) { - case offsetof(struct mptcp_sched_data, sock): - end = offsetofend(struct mptcp_sched_data, sock); - break; - case offsetof(struct mptcp_sched_data, call_again): - end = offsetofend(struct mptcp_sched_data, call_again); + case offsetof(struct mptcp_subflow_context, scheduled): + end = offsetofend(struct mptcp_subflow_context, scheduled); break; default: - bpf_log(log, "no write support to mptcp_sched_data at off %d\n", off); + bpf_log(log, "no write support to mptcp_subflow_context at off %d\n", off); return -EACCES; } if (off + size > end) { - bpf_log(log, "access beyond mptcp_sched_data at off %u size %u ended at %zu", + bpf_log(log, "access beyond mptcp_subflow_context at off %u size %u ended at %zu", off, size, end); return -EACCES; } @@ -144,7 +142,7 @@ static int bpf_mptcp_sched_init(struct btf *btf) { s32 type_id; - type_id = btf_find_by_name_kind(btf, "mptcp_sched_data", + type_id = btf_find_by_name_kind(btf, "mptcp_subflow_context", BTF_KIND_STRUCT); if (type_id < 0) return -EINVAL; From patchwork Wed Jun 1 06:45:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866387 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.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 A7728362 for ; Wed, 1 Jun 2022 06:46:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654065999; 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=CKYwwAFuD/CZ5STa1JcvR/nAIsy72hPRxpox+rLu9oo=; b=EWrQRlfmVIDGiwFjurwP7bl2LFnGGUIuf2A4P2CwUVRhTSe6Arpi4KO+2LYewtZhXDWhbG Q2pGm8prcbg6nTg7ELyRG8ZW7ePUBU4aL/c88VyNZrWKVwD8nvJZWb3yAB+knXfGUdoJjN EjYPL49SEMqY/i5TRpy29jRe4D0DJCs= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2057.outbound.protection.outlook.com [104.47.2.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-15-JpoJ33jtPJW__afB9hOKVw-1; Wed, 01 Jun 2022 08:46:39 +0200 X-MC-Unique: JpoJ33jtPJW__afB9hOKVw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d0NNCw/k7BAkyy3YM+T0ZwSPI9p8m1zAYQwLVMtk9f2dG6Ha7hZ5AOXkIkJRQZ2CyUBQY06MMYO3R6iJiKn1WthzU6xSF7xFHmBGnrupTPbm8zs+PYSjY5sOqBh/DMXAI1b4BC4Hfmt5xr1dVqIUIwiGATWJ97N3N27iCauPqT1BXZg/lr6ylk3Nr+rSBK3ybLs0jesDlEVzWcFuZKllezepBL6S09OzRYZB0GnTX6AxOK79qs5PdMx9ZN1ohaM9DN399SBl9i4nQZLA9DPTjQmNlT9RJjeRWvZ+Oj9CWUmxFPej3YkIOc+k9vabRhzCGcSPulOd2TckoLNNZF67lw== 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=0NdWQrnUPkVITSPWjEtbwj7tBNbDQlN1Ogq4UP4bFDw=; b=ROFTLUqX/IHwNiEbtRCCcs/wEs6cvqYRINwTWIMNh6j5zvOIt0Pg83lzJ4D9HORqO0NbORtrVCcggmBVy0BZ1fZSehfjSWd+Ob6nQixrckMHgcpGsywzLPY/O5NiqhdZVaxiaddRJMvkuL2BVPpobXuOlvQgAbUoo2CQjyOqnCOl6IewKvDaH9191ZASIg3/UKxG7tYjyrDOSAmOiBnFs4N8hBd/PXEWag/C5rQCUctrz5zJn3gwkbtg3b50kndaHz2BJB3H+E4JlMBtuCTHr0c4kVUAv3iDGoX01CyaSRidMhVIFdhRb0g5N3HjOs3+MG9VeQXG9gb2pvdbQmyssA== 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 AM5PR0401MB2434.eurprd04.prod.outlook.com (2603:10a6:203:35::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 06:46:38 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:38 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 05/11] mptcp: add bpf set scheduled helper Date: Wed, 1 Jun 2022 14:45:54 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR06CA0012.apcprd06.prod.outlook.com (2603:1096:202:2e::24) 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: 2ada62ed-af6b-46ec-639d-08da439a79f5 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2434: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: 69Ke+1XMupESZUK5HDrvwe6BFUhfGAwee/5lZKk3fBUm+h0jRBdMfiv7bWhUCZE5CI5TnrKE1akmm1N5Kjhvt3WMJKIruz3pbLZcgE9fBO8EVRnnRW+L3o1GCfEeR8hMcptytluFgQW5wYXWm8E+jQL+gIu42O5c/ylVIalF3vT6gnaCOi1Qs2S96hKFJ55kkRPp81LHCx3Em6IQhDQCveNjW5+8hy3Av7h2Ls1kQz90qR93eEhy3/gwRtT2tqaWvymqt6IK+ZWDdPcNVZ8PQJEoydQcoK2e/MpGZkoutrik5Vro368WrkJbHdrDeYsrr8E2oTU0pyN0ymhdO1XiybYPNdEguLO5pn1zo5ovEkT/PHh4txjHgJggWrxOlVzHBYCUKBLnSBgUeIEEbk5rIkgeB3ZaqkIITL2z2dNi08FANRdPhU/MCIV1vQcIPTRSRJUMzn54DP/UBlSrBHXDCbQf6Hg7Bng7Gj+E/WS4oEs+J22EJGj4vo35HQlYF7sIQCvZenMZgzuH7EtHvVyBc1rD2D1uWYNP3JhiKuO8uH/umtxmyRfW/N5NBy/zsQ76zk0cnyV9Nsdq3i39W8AnCvXx5UH/Nmv4hqAdep2RU+5G7fsk7uDtM8vu/acXQtrPxSvg04uWEpzR20TJCdMnuVj057NYX1VpPm2jtf0dcCQDMmTRknFue6U9ly4Zt8gJL48DE56NiErA6Wu8PpPAzQ== 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)(86362001)(6506007)(44832011)(508600001)(6666004)(186003)(6512007)(2616005)(107886003)(26005)(38100700002)(2906002)(83380400001)(66476007)(66556008)(66946007)(36756003)(5660300002)(8676002)(4326008)(6916009)(316002)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nqyPd9/iqDKF8+uy9TJdB/yDDj7kqccJNgp6EVqWg3DO2Ycl38MQ8nIpSwSacze8d4dyESs39pUJ48bIxIz8KhyPPewmAYGuNzwW9ME+V3nIeDfd22I3b1AU50ScwsjJ8hJbPN80Y02oe4lROXMAD49ufaBV55077QZ7dLRqOUjGliLra+V/ttHrd4xhNLSOwm5VA9OOW3aI/3ZfGwr8yJol+xHbL6UtL76ok7pHQ0cOqbWyW6z1r5u7C73OsOTB2egBZIf4DDMyeMALHnZJuu+i24awTSoPyGyvN2uLj4o82i5njDivEVtM13QdgoV+PH0ZZZkmQni40x3tKHB1WMBDjCLYfNCRwIYQ9gZp8t9rMgbJFTTZ4lD+RkWwiELblYiAfo066ZtERmf2te0HHwwmIniNOqxu1nGt/jymurTwotYzw8nFWGQ48czitf7XeUTBV8Ih/xrGD235I7sTnOrud7iuLCgr2yxCqlz9Wx39e8NL5W05JGJgtwlVNJZi45/KI4Di6W09B3oWnk9NJ7C1JHbVaQbEfP8wZKgqkMPiCCvBUwg3utKkjydTfP8MWttCoSeFJ0PTQDgO+0wtbignbbSkKSpw5Vi12fsFDVtUZKflVK7BQ8tR81h+5ID074NklEuRTfN653TXa2kdSI4vR2xR6tHYzwq9Z82/WJUUcws6Wah3EaTGE+mAYhSvRsjG7revcrowotFnxeteXe9A26V8/ordQiUlqVHEWCk5HTLZDj6XnF0rnYP+hnTC6dXfWPItIXsWepUw4qPaMyMzgKGGoOy2CDrXtclZ0HzLamDaO+w/WJBk6tZXQNzI18pzwMc2ItAF2w0IzUShhIkmPsYDPsMrBvIEhilrmWxsWRe/lP3z2R23jWgs1rLm9ahPQ+BwwljEiS2Gl9izniI+dlAqD2LIZqawYphIruPzSjKLn1dcj9hKbAArzOP9mYTO/S9v4cc7BQXshA/eiELO3mEBUCAyACDDfm1CrYUH5gHj9g9AX6apOYl2GommTZGVKNdJza9Wow01ulkrYz19DJ7i16FI07nA/mHazO8eMSC8/SURVIXiJxdjJQ6hgCJHpoYxyyFzaVvdYqjp3I1wDJ1zH+deU0NL/kUyL2s3V4orwj9+Is1RWh1eAuiXcypOYI8D7Y5/oIc0pAe6gU8gG8a7OcxMlGzbD2TsyzfWLes1s4O8tGAAyXaorL7dpC6/Y9uVWjKm9S40+i7gpclv+WVsy7fUP9hJmuFsIUmeYnb9jj1EdFwfg465inTHFT7BdhozzDgUP4ApnwoYrT06cEiWFA8WGdd9ofH4y94vIzHMknxPRa53UKYGc+anqtCd1j2coyJmzydhBWTmUKmR6X3vA3zgBIkpU1buSncjEhMWfKCEauv/k0D/JLjbufLyPHqC5olG4sPh1zqsm/eoRrqfzKh9sWjgxdi29OblZBOdjov/+jYhovYGYMCSNWHbJ++XWTYEb/dT0fefgHh+JcthpkVXAAFpKq/w+5yZuUpDHCQnb3K9FNWwRvTUTztwFKXf1u5JcaINCuASa/D/4LbWapE6nq0cyk46yjr1SiEQQFBmV76FKvgrKomEMymgZf1XWrtZWjgMii2NIsEzYIQo8Me0LJM05zL9N1pqo9NcjpuZiuRu45idzH98waQptdtKq1h/SZB7XjoCMieoNNq0umoFGmMtOE1jqRxWBNVOu+iN/7XigPdhjA28dH3g/2A6BjwFGi3kPO/e7/jypcJEAFwAMkO5Ja9gJWg= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ada62ed-af6b-46ec-639d-08da439a79f5 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:37.9933 (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: Bs+NroMeT1cl3LY0GueBrgwZksRs2mo6bTSrMEGa/9Pj0sL2RQPF9qY2TOmMBUsPdIilwgsMKFcnR15DtGMu1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2434 This patch adds a new helper bpf_mptcp_subflow_set_scheduled() to set the scheduled flag of struct mptcp_subflow_context using WRITE_ONCE(). Register this helper in bpf_mptcp_sched_kfunc_init() to make sure it can be accessed from the BPF context. Signed-off-by: Geliang Tang Reported-by: kernel test robot --- net/mptcp/bpf.c | 22 +++++++++++++++++++ tools/testing/selftests/bpf/bpf_tcp_helpers.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 0529e70d53b1..23c2776bb989 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -161,6 +161,28 @@ struct bpf_struct_ops bpf_mptcp_sched_ops = { .init = bpf_mptcp_sched_init, .name = "mptcp_sched_ops", }; + +void bpf_mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow) +{ + WRITE_ONCE(subflow->scheduled, true); +} +EXPORT_SYMBOL(bpf_mptcp_subflow_set_scheduled); + +BTF_SET_START(bpf_mptcp_sched_kfunc_ids) +BTF_ID(func, bpf_mptcp_subflow_set_scheduled) +BTF_SET_END(bpf_mptcp_sched_kfunc_ids) + +static const struct btf_kfunc_id_set bpf_mptcp_sched_kfunc_set = { + .owner = THIS_MODULE, + .check_set = &bpf_mptcp_sched_kfunc_ids, +}; + +static int __init bpf_mptcp_sched_kfunc_init(void) +{ + return register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, + &bpf_mptcp_sched_kfunc_set); +} +late_initcall(bpf_mptcp_sched_kfunc_init); #endif /* CONFIG_BPF_JIT */ struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/selftests/bpf/bpf_tcp_helpers.h index 5f6a7fa2269b..488de4b920ef 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -261,4 +261,6 @@ struct mptcp_sock { char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); +extern void bpf_mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow) __ksym; + #endif From patchwork Wed Jun 1 06:45:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866388 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 8ED67362 for ; Wed, 1 Jun 2022 06:46:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654066007; 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=8f+4XaAKXCEVzNrHfOgZ3WGwRnp5QJcgFv5d2aSZSTI=; b=H6Zv3JhpCdv58lqLgIhKwQo2H7C97gV/oIdu7RAJz8UiK67WHWYNAn8VA82HjF757UeGJq qmwTcKnmfoKWNQXvncez1jdufD13uOOV/5jQ+nF80sxPDCK8AWRi7O5F57rgt4+qpoN7yS a4eS/ZgjZiALXFYDiA2wUgMxzxsPdIE= Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2051.outbound.protection.outlook.com [104.47.2.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-28-7GY6y4osPjyw9H2DT8-iWw-1; Wed, 01 Jun 2022 08:46:47 +0200 X-MC-Unique: 7GY6y4osPjyw9H2DT8-iWw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fvw3cysRH/uY6zqQyh5phcNdsfKfcvlfQGPPsjy+RwmdK+bbMDl1gZ3pTOvI25j7XJbJI4WEabIq4flMff+6lOzMqcHS5ifjbFwpr+I2xqU/g+iCKyaBz1FoQi+4fq74Lnmqgj/9KL5CXPxEA45OX5wK6DvMBXzifDBLJtaIEvjzvHOLCj4BGwCaf1yXJxodKHIakR6mx3wsM+53OcuTxvVEaaQpDtaUwd9d6ttOHkuFPUHE42ng6vEyp7qE6Q6Fa6crZvnLCl37iaRi0CZb2pyxvC/qkfQoZY6wZsGkdZ8qHnuPali3jTgQha+sAtonnqvdOidzmHR1SahQ/miMGw== 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=GWWBXfE9Oud3pGkvt5TJqbjmg/QtC82bQ+7zljHrWX8=; b=jOZFsYMVADBYqJUUWdE0Qdx/yGWcHO/la89r+XcqU9wdr9Y4txOokfWn+ZB3+7hDTjPhxi5kvmNfCop3OwKWZ/t9WfZuiXe7JF07W5ZkDDVodXln+1xcSUwZcvlL9e4iIVHqilwuARoEba/jP1BVKm25r5uIbza3qSyBavgQFSJoL4vWY5c9hYLbw2fUZlg0GLYsDHTYyicWeJRtZJD6Tqd0vbM62418+IfT0zE8z5wL79RYskqaKK6bjXv9C1llHJMExLIe1o3BFVlxYL+X4rDKzudeTx/UELBUCGZMkwQgn+KT3/fatMeBaPSMqnt+P2jrkxUi2OAbVQbmqjhHFQ== 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 AM5PR0401MB2434.eurprd04.prod.outlook.com (2603:10a6:203:35::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 06:46:45 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:45 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 06/11] Squash to "selftests/bpf: add bpf_first scheduler" Date: Wed, 1 Jun 2022 14:45:55 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR02CA0197.apcprd02.prod.outlook.com (2603:1096:201:21::33) 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: c144f7f1-343a-4d33-3b7c-08da439a7e58 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2434: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: S1Ol1PeBmdXsF37Pc5MeAHdvBhoSOBidl/9pwuT/ItXYj3ejSoU8me6Whxxdne8BT2GH7ddJp7jEAlUCFEPg5mn6Hop82nb1dfVKZjiZ0eHM8QPf7hinvUs2WNAI/ebD4aupKulaH5GpfDWvHpA/Wu3pkiVFg/YPaFdZWQ/O2I5Co1EGGbA2srBGyi0RQC7SjJ8h+dskSmVEx2VG+nc6x8uIfvYU1Vk5lpyoI6H7tI471K+7WoydFmCO0hA/t2zu5EhnQBfg+NGRQb4lq8qiGl3pVjO+ihwZ3mfwyM+kMa2BVaCs1J5qEpLCNe9/YTQQZ16tQegNmIHMzOoNe32iv/c7pDnAaojTyp5aALxx8D1QpiTiLnkOVoHxZmOG9dmrg/4suRv/3udMRj69VlOa15KGy+Moay52ygmTs5gB8A4QE6zyKyBTTJPiWO1VQhP+tiaah4nPp9oeI4ZAH+6AdAhpDC1jHN02AeyC4VNRlKImVvjzzGvIr7YxFOkFep7RdeFpaEM0yJsbsSMuwu62FjrixP4Bql++rLxD6uojL4VZTYnQVEiTucTj+gobeqQ2TCs6BODMP0QaMTnC/HggC0KrK2KZTNz/ycuewlXzBQfNIqGvI86vAVhR+grAnjlvoVwn7928UKa053WSeyiOZVhrcoD4QuesKnYMoIHjRCpjOuumLMvV538Lk3qgFaKJvm3+npxqxYFSxVOR7J00Ng== 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)(86362001)(6506007)(44832011)(508600001)(6666004)(186003)(4744005)(6512007)(2616005)(107886003)(26005)(38100700002)(2906002)(83380400001)(66476007)(66556008)(66946007)(36756003)(5660300002)(8676002)(4326008)(6916009)(316002)(8936002)(6486002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7DpL/Wp3L7+9QH2ScOAzWyb7K0peRW+/3vRXs12lqTyfdQC4KTrxdJRqbSR+8ZEVNLvI5oXLFcjuD47k0HdC3E5zlu8+BHRqOnuSuJjaK4hgQOj6FlLLtnNrfM30cZBy0gG690rCviiiA2uJWvGlHTh2riIkrfdq+50nsEpxZCS01yWguUYcanmP5NGxP/dEeGFSnI+zKcAZcKahYcsq8ewmLp5WDR8NzdJ6nClwG/PHliRqrC/1Q7WckugZBUlcYQKdZsKAgNFQGDENSXdUnMo1pCSXBRHSbT1br0PNkdO8HvgHboNnOvqx5tQCpaDCDzcLJ4+qHfP3gzzGm7fjkREgFeRlv3e70zET/Cr1YMVUWkhHtBEguyFaDDXR3pyOfX1ie9vHWydeIIX8vb01tqFeixjYnKX5b7/NlTPsVF+NI2wI00n798sEYSSuwNIvnnL40zM3nZBOZUjzuGU6ajCDPDHsjQ5qm00SYsqU/tLnuMKDM4t9PDkniMpPNNQR1ULp/29f/E22OrtQneN19OxnQ0ffsqaZ0tUJ2q8biXFRN3kGxzL7aeekM6iJl0rZYuiP4vtw0pSyQMLHt04uotZNtBW+LntvXGxvilNKY6McBdyLvfSVl033xgdO+pdVaCZcNWIQNYvZ8H5GOMuMz7/coO5yZEIhQF8XIykTS8vVCauCl5bjF94WD2BIC9pTOKJtY0WG/xxQFjDmCYtYzAd1bVz8SnDG3X85VkJFjTjVPIzCqIRWLLE9B5czOzZemBY5JaD5QSEJGNLDdXisNqP2BnW+QMzKUCo6ywidwcz+Lp0PB5WaOcQrKiACYR7oMHJByM47uVnJ3bXmr4DuF6KltwqHXuAnvVhAXFVuSLbKXKjQWfe3TaxBJzkZvO2EF5Obpiv58yeULiArVkEvbI3//oAe+JYcKJI6+lFrhacoamUQv2IwDxJabaEa/v2MBiALUK00EzR4FHMGUfkSaOPYna+2/bwDQfqiaHnVs4nyWzdiKOQgWZYh2KZv96bzW4JD84LRk35/P/YWQuYAgsfmFdkSxGOYQtw9cmO2X5veyKFNOZ53XFNQ8/UYhSTz2GaTZ8LGweyFJtjJX9slgFc3cdY+/IvtzIhUeoT1JND0zKSOh+1vtI7jUvv1QKwL21kSbnbOR4G47RyM8IMrC1Tse+fBP0RbeSL3XA+Vfhc7e16hp70kAwTW7nApc+fMcBdBVBTqzeuDkXDZwH4WVAByURGaRPnBVdpGUwWHMpqvFaM8Q9rcHzzt6UNFsMT33hUw6q/LvHcJ8QSitieN3nYPf4gLO7ImxcUFa4B5KmmKw7d4YGi9cqMAP/FQxji6GWa1Ks9qAi0Ag1THW1jlsvHU7YE9OVmr/vaIWiX3Dl/BVU7wenDpTwwooHThIHKgKm/Lza0FzZRAuoNxOg3CNgb7MmPWaOZwSmgNhsLh97aN/akhC9Lca/8msPO+jj5e3oWawx0SxUGFbBNHl9zI6m+LjRLpj5Jbxw8bnSTHeAw0j4EX0GCmXbF1ksaMxFDviOn110YzdO268zGNYxxIj/e8Wmv6Cj8j3CVoD9xlzHL+Gv7Y/Wrt+Zj8n31dPV9p1MvrCH68GCutcMNUuQqWASunERz2NjKhWFAENWNOQfR8+y1y/dyXKeSSXEQkzjDVD8Pl98t/hk7mlZwi+GX2+h8Qt+rWNA4uF4iEivShEdgGTa67mQ3u/5rrcOi+tzq37U7RPMpXAVE3HAMQhK48NnlgTRR8WHCbIFAMPxvw564= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c144f7f1-343a-4d33-3b7c-08da439a7e58 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:45.7581 (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: qFHILwZ1hWALpj5ucoZhBlczWT4yIaU6wb26ekLL5o6xRe6WymfiQ9hs4Er+5ib4/6Jk7l7kGON+3ePqUWZ9ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2434 Use new get_subflow API. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/progs/mptcp_bpf_first.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c index fd67b5f42964..4217d0e6445b 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -17,10 +17,9 @@ void BPF_PROG(mptcp_sched_first_release, const struct mptcp_sock *msk) } void BPF_STRUCT_OPS(bpf_first_get_subflow, const struct mptcp_sock *msk, - bool reinject, struct mptcp_sched_data *data) + struct mptcp_sched_data *data) { - data->sock = msk->first; - data->call_again = 0; + bpf_mptcp_subflow_set_scheduled(data->contexts[0]); } SEC(".struct_ops") From patchwork Wed Jun 1 06:45:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866389 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 4FB81362 for ; Wed, 1 Jun 2022 06:46:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654066015; 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=58WBS+HBnxE6l/SctnekWuFU/3nS2PtBjy+z6uzcPf8=; b=ixduMih2uRLx3zzMdcQZfRpZCFtH7n7Cox3nbgyNYylRE9rWJnWrpxsokkOKe6YjbjuUyI w9GYsBGUzIvjeQOxJ9xUBhmWBnZxIUyMOhKE7mseetPfsfaNFLQ7a55s25s/w3y2vxG6dQ lErDCgBm1Ar5U3cdzxoXov6U4m/KcAs= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2107.outbound.protection.outlook.com [104.47.18.107]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-46-HyE6DJPNNL-ujQ6rsCU4kA-1; Wed, 01 Jun 2022 08:46:54 +0200 X-MC-Unique: HyE6DJPNNL-ujQ6rsCU4kA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cYkqyUkaHCy8/A0iqFyKOcyW9+pKjy8ZkSbxDcXJbx2v/3CADg78XCX2pGt99aqbLtjMd+L5JYeoMdKM8/6pwGJBsXDklxqzEo3xgJewc0NDXkJpaU3i2fCWPAAu4vlYqfRFePsK6A2TwaonpNjxzMOZu6YD6fbpXVUJz6vgc7ixgPPP3tQxelKPDLt11ub+1sw/Kf5vXSHWr22LAzX9WgNkMWVoZxdoLehSKNIhCuHgjE9t74HLK/j3Dwf5jmlo6EX5oPFXITmb847iJGTd/3OPzKflnTjI8CRlRe31cFlw1XMY9z6aWrlWlusqXZFJejr3/BBr1HY2UH/I4gGf8A== 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=ijzT0lpNpuoNGZANhRHgkAx3g+9T2m9yp3NXix5KUnU=; b=i9E3MQJRDScXC4MgleRJx0nMli2T7ajUH76RwccmvURICls/3Je8GwMbFkJ9rhYe9yPbKv1/IGWq6/5axaVkxcHqoscGjEGKb9uHPdZspeQp7WDp3K2O1nzd8aOEzqnfr0USk/lD/MGHGm5aNgv6um5f9f+6OyNc3D/oXnb4VnEK1Q9bmyC13VMluHyEJQiXDx6c605PpRlwjJ/D7h6wfDDmteX5Zl0mPheOk1a/ZiFiQWqucrqKiAn7BRqTN1mlJ0JJbkRDmkNYw+Kr+lAu5uWgFTViN1qfsiESWqA0cDUqJPq1kJl6zFfh8lrBzrLhExaKfFS9P8KbuygYX605Iw== 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 AM7PR04MB6904.eurprd04.prod.outlook.com (2603:10a6:20b:106::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Wed, 1 Jun 2022 06:46:53 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:46:53 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 07/11] Squash to "selftests/bpf: add bpf_first test" Date: Wed, 1 Jun 2022 14:45:56 +0800 Message-ID: <23261484873eb112ab8bcaa7defbf146248e6c72.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR02CA0195.apcprd02.prod.outlook.com (2603:1096:201:21::31) 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: 7b93ed16-d771-4c3a-4a97-08da439a82f4 X-MS-TrafficTypeDiagnostic: AM7PR04MB6904: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: zSte3MpuAR4D7Tiy1yOgJ6E0eKZCXeRDIcNa58Bm4WZGets3wqyFDZHtQ57yVR2e0dCoOhqdhvnGZ6lcfp5ndtHISQupvOEjKcn+PlZoJGTyEnmLCs3T2pjQXagPpUPaHKd4P8iNGxwojmKHL0E3YdEf7j/fyiUvcBqVYbPHfzg25gDiUpFsxaJsSqDDKs0FrpkhnNld3RhvC8pPiSEP5D7VXo67dKO2GPlGsLxua7CY6KCgKGLdss8aJrzI8GJo02s74VE9pcbxIGcM91HweRE1NK18SvdXktYVvTEC7/OCq8SQ0ruN519AVqbIDCffA+3M3PczujRiBgfmo0VuNFENcUXBoAuWs3XD95QmYvSQFfA86C30Fgs7d6snkc1O9+tkDzz9k+4ryPgqwsZ5e13ZbpHAIGl3vZEg1XG584m2mLdjUmm2VC0XRF/9uBzP0veEQOHV56wwKg11swzPARuQfEfUACXppq3QHvTF3ZKtR7riT+q8uR22R8dP6pAlW3JYPy0C0PkWivX4zWV0TAKllNqqm9kzFdg+8cfb7TsWQHavJnb/YKAboXRYZPwEpi+Odcn5Vwam/j9EViPEYTzhyP692DuJ+EcGVK1p/oQCPskYHPNADihrUynJOzSnEKapC+A9qoKfvPqUqbc5p7LPMagP68McMxOdYvLxyCAm8vq5+muEna3mILiV+mYh 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)(2906002)(107886003)(86362001)(8936002)(186003)(38100700002)(508600001)(5660300002)(44832011)(6486002)(2616005)(6506007)(6512007)(26005)(66946007)(66556008)(66476007)(4326008)(8676002)(36756003)(316002)(6916009)(83380400001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: owG9BsvTQPrCqN2KdrFOq+6YFLoIGafpkzSELn+GQOPdLBsIzpaS8T//CIVSdgDh7h1ikVTQtQuHLsh5bmZEFZzdnnBcQNxRJzsDJBRqE6XfTWW9nNtyXIefnLdxjFKNIpCqOF7HkmOKMAXq0kBfn/l9NR6rRqBqsn1VKJIuhTrixUUMRBFlIAzDTtWgscv2jioEv+ON82i9KxoubGX3DKjB8eW9/ap5dsKNgBhMTJEQE3KdLmZ7prGAi/neLWSGhibyXRSYeRyANie7mUr7ZnqSZJ/EGLQKrl7Vrj9XjobqwTM0rL+r5ivPAehbl9/JQiOtXjCis1PViMkhHWZfpsXM5T86JhSmDqLOT6k0vG3hiw6IX4g/Jv3dR8avKPvB7WlIEze7h9+iocQKewfNxQ3vzHKCjE3CAZZFs99p9c4AljvuGfc/WqDNQrMtt2GpBqZ71XGUk6q8E4VgX/nSJ3DWoXIqdX4dB8zCUOyfw+t/Bf9V3WQ+MXnl/Jceay7iemddRsQBmcirqYxCEeILZOQ5yjlm7OZvIIbV+NFqUuxInNoxqgUwN3nYCt2lYv250wVVz9eQFh42Z2ZbLyQr6HZUmljAVA5ndY6Upr8pWw8DotzyN8LFAR6Am6Jy8LBQlJMY+fB6wAqS6sLoToXsQol4Reoso118Nt+r1UtodIHr4KNV5GgftRmwx9IPnaEzTkGHZAyDY9QpowRVpwqDD6p1uw+X+QBDmf8dTCoozTFSGeSVD89Rs4+pjBLoiX/O2bCbVSha8Kot1bQm538kllwPG0DuK0S+FDw0c0cxPQNAFgWgXfmwxo16tJck6Z5H0FqEDXgYk8nTt90pMYxUjffTRhXUsEKOXfMt9i55gTkqF8IOafNQ2G15ZS858gRrt06hrIERj+4veUSGpW2y4SjRajaVOgDDGFqXkzQCgXXbN4dIEAbWlqJp8k8sEAsq9d/YieUo1DKiU+8S5/m949fr5FcVzbGBrp9Gh2/H4/AEeqqaoc6O+5ovewh/u5/BXs5vxC1QyrThugyQYYibevbwQcmt5BZ8DqIA3D4erdsq04Q+lJ4DK239AOendlzQ5w9Ct8BNmfEREHmMf+t7svvJhki5hiSLbnJGt0+z76AFkDyLwZL0nHqfuPqWdyMKbqycIw6oE5VhppdC1R7zRfnfhfB/g3WvVzSEezjtP//jr2xPaX/QEIy13d2N0tKE4mJjKTELhdzG2/85MqKAlLcZODN5qrH3LWzW5uuzzDK3VQiCtysAysmpqXts6Sq4DpMJ8YvmgI2MzE9ei8A7qf2n3idxxAAYnqEpi6G8uQ/Cw0jhnY81ALU5P+67N+BS0R5JwO0hrTl4/hiZ8BL21ogYrf5slvzz3yl0Kzqc8pvkxc4SvvKZuk0QdxsOOznpwi8tm07ihUy1d9KbFa4Ca2bYsLDuyH4As5gDIettP/xCvvXcpUzdHn/3baXCe9gOe5kM02jEIvoqnsP/TIlsu9wXO4SaCsbdfiHuPu9vRfEZS6/IPYwS9Eot4USlvMJ7aiaBdPiJk1EvakT0zBE0F6ind0f03uvPo+mpE2S11TNofjynKkBp+mC757uJPxEKFQYi+hP6o6WmT8WtYRcvf3d5TrONl6vutE5+1zOIxd2i72pfS+YdcCgF5T7u6rGhQ/6HYzoCm5yKXDe906sCQjm054zCPsodO2iKUvsPnd6T8ov4Le7y+rF0h/kdIJ4fYMioCgTuPBAODtHJeGLv6fyKrBgpfvUsQAXYt9QhNm0= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b93ed16-d771-4c3a-4a97-08da439a82f4 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:46:53.1012 (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: UWloRGF/ZXPEa2vfvDFyHg8+sa6xtCKZc20TPbYaRFmhM3Wk93ZCW2RuPKOCH2MUbHwW7a3LuaGf8xFVKNJ2iQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6904 Add two helpers, add_veth() and cleanup(). Please update the commit log: ''' This patch expends the MPTCP test base to support MPTCP packet scheduler tests. Add the bpf_first scheduler test in it. Use sysctl to set net.mptcp.scheduler to use this sched. The new helper add_veth() adds a veth net device to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add this new endpoint to PM netlink. Some code in send_data() is from prog_tests/bpf_tcp_ca.c. Check bytes_sent of 'ss' output after send_data() to make sure no data has been sent on the new veth net device. All data has been sent on the first subflow. Invoke the new helper cleanup() to set back net.mptcp.scheduler to default, flush all mptcp endpoints, and delete the veth net device. ''' Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index 8e9764275b07..eaea4105728d 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -250,6 +250,20 @@ static void send_data(int lfd, int fd) PTR_ERR(thread_ret)); } +static void add_veth(void) +{ + system("ip link add veth1 type veth"); + system("ip addr add 10.0.1.1/24 dev veth1"); + system("ip link set veth1 up"); +} + +static void cleanup(void) +{ + system("sysctl -qw net.mptcp.scheduler=default"); + system("ip mptcp endpoint flush"); + system("ip link del veth1"); +} + static void test_first(void) { struct mptcp_bpf_first *first_skel; @@ -266,15 +280,18 @@ static void test_first(void) return; } + add_veth(); + system("ip mptcp endpoint add 10.0.1.1 subflow"); system("sysctl -qw net.mptcp.scheduler=bpf_first"); server_fd = start_mptcp_server(AF_INET, NULL, 0, 0); client_fd = connect_to_fd(server_fd, 0); send_data(server_fd, client_fd); + ASSERT_GT(system("ss -MOenita | grep '10.0.1.1' | grep 'bytes_sent:'"), 0, "ss"); close(client_fd); close(server_fd); - system("sysctl -qw net.mptcp.scheduler=default"); + cleanup(); bpf_link__destroy(link); mptcp_bpf_first__destroy(first_skel); } From patchwork Wed Jun 1 06:45:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866390 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.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 72089362 for ; Wed, 1 Jun 2022 06:47:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654066021; 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=H8pWsLhLRkMcloUowRbjzt+7hdZXzoh4CmO0chWZObc=; b=Dl0U92gm4hb72IfG7gmWomrtH0rKQtmIYMzvT3xHe17W8CZ6+NKi+AN579/j47n7Gh5M80 pRj1cVaT0yoiv08D6Mo8oTOjxj7oTXKQbfooXEQN/8cuhnZYjKIPX253ylmzqKupPkg3a7 mHGzWIpm5Cxl+l1m2n8cmksSgOS2G+c= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2110.outbound.protection.outlook.com [104.47.18.110]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-29-0cY0DzV-OduibSO6XK03-A-1; Wed, 01 Jun 2022 08:47:01 +0200 X-MC-Unique: 0cY0DzV-OduibSO6XK03-A-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g9DjNosvTPKVi/SnrRw4g2mWy3aWaVD9PqrvFUklc1sZ3G8SblLnU7X2+GVYqdi0iVMN7Kx7ujRwCBEg1Hs5Rzhh/5iatH92iMkb6pgB89gLPAOegKtCTROTbS1UcHEFvNbF7M6EHm5tCfbabarANwa7kHgXPLjGlsTOjib97suZi6z+CPuJ1oQ4hVQStCUoZOl7dqyxjUWjjm+uMvHOWDa/tDooK6/lm2UUImeM24mgUmHHALP2AaEU6qSdGNQWm+oqqGIUsdkDu/4CR8mat2/DYY1f312weU7LVCdhXAMNTgxLowIb7m2dWA38i87NMDtk++u/Hd7pib7SUeBsqg== 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=PrNrzeKQuG1cd4mbS3RRqBZ2rxIdyIm5L24Rj4PGrkE=; b=Ui56u3cBow0LDO9EXHjMVwmS6pKh/iYdxBF8oqkMfo2ehZlN85RoGjzh8vC7uACq/8ZQReGKT8E3jvR4hem5lTikUG7lcVgvgpg5AufF+Velylxy2uL6bLvvkbNCtYOd+UPPOvPcM+BVz5ap4lLNAbHRxZA8SJ0HcQrM5WpmbvMQDxiLpJTtiCHlbd0jvCoV135xd9VYE22g/qQR2JpD47JWeazgiXpBMVj9uOMHfqttz3hypSVGxpWXLa8+8X7UFtOCC9kdMyenYRJZLZYmLVnqEwf+HuHTalZ7uV4NwexbSDOSz4xkjiq/Gr+cbRUnK2F3YmuLhCyk8Y1oQS2+0g== 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 AM7PR04MB6904.eurprd04.prod.outlook.com (2603:10a6:20b:106::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Wed, 1 Jun 2022 06:47:00 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:47:00 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 08/11] selftests/bpf: add bpf_bkup scheduler Date: Wed, 1 Jun 2022 14:45:57 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR02CA0182.apcprd02.prod.outlook.com (2603:1096:201:21::18) 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: 6c8e7b6d-b4a7-4ac9-d95a-08da439a8748 X-MS-TrafficTypeDiagnostic: AM7PR04MB6904: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: RB0FTlDO49mtzcXPWhGqtpn9yNiBpKE+2itHU+RWsWveyAqUH/MHhmMJ1TOt/crw7c8J8J2fTQ4Gx7p2nqhg4zWEHReUvl4HYQaXZ1DkVzBzqB/tLaRCC2ymteWX66GnIiv9yw5nPGW0udRT50rvE4/dFKzAZvAmSNjK9j3f3nSt+Q2S5Dw65k7X0cvD7jg8X/rWmN+c7R559hE5kGk7SXZrbdxa8keN+9sbLQDaIKHEaF84C0UTScRMPCl2p5J6tbsM2NTe2pC8PXVRwfB+iRRNO+g8E3OM9Bz91jcY/teGRPnYiSLeozqAls5ZIV/8XzqSAcifBOvtB2bMEO35d2+kZdYYW9e1x+3ikpHMj7Og40aFOQ0Yege/ZS32zOh0ItiEYbWb4yy+ArI6kkJnyYCLVApiyrvM5kRndM6viSp7yidsDGzmm7W5TZjt9mjpPaFrby4dupHvjYjpxQRFXNUqhIsF9jHers9y7ame3pasA5kXAezhmjmFgy1By968en+KZ+AA8HgOwKFMVW4j4b9kxlv7f7uhP47I1a5RexFgm7S6BpNHsggBPZ9+zlMm25t25L7/msMQn2hC0souA5u+jobC+j70dOpe/RfhFHeQx6otgE2s3vy6Xr49eQeLGC6fVH0xzSZ4WMZdyxQ/RDgNmc68F9dBfhGwloPnlVKQ5q1OhIVFB2fODXdpjh6h0SsN9lDPx00v0jIVLwCcTg== 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)(2906002)(107886003)(86362001)(6666004)(8936002)(186003)(38100700002)(508600001)(5660300002)(44832011)(6486002)(2616005)(6506007)(6512007)(26005)(66946007)(66556008)(66476007)(4326008)(8676002)(36756003)(316002)(6916009)(83380400001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SpukuwQ3SU03DFG0TcI3ROymU5WozaLWfsp+09YmKlCduM6C/hwfonjO4jebKHV0uvsUq3RomIuHyQUli5tKDY+ehc6IGtA+MH/nxaoVNwIGoOTJRt5pYYjsx2eKeFC4rnJXk3zdhnmPEWXKDO9c8m2hcoJMp/dNOD5xWV6eggiwIGF+qkyDJoqR1VbjJmEorMQdoEPXWtarx/lOWlF6Kf5zDUYH28IM3Ys47oDHeaSBgkGqkd5lDXAG7WocycBHEED3xtkZ9QRjwedEKSG9hNM90ZiukvSjcM3MEBuRltozUui8+SXEVwDTi2ylRed5uTmzUdXSDkIPUlCA8O3nzH6Tv4lKKodgNLtHE+Oq4CSnPZoil3fTBMI3iaeMLAkG47ZyrvbFZ/pQxgwzotTtuN+gRoYacpiL8bCrGhDd3y/BznC4YfyuVZfBPgf9O/Rfsk9FtrFDUgCNTxc5P5XHkwHI0gQ2YiOD+QisEHphFI3mrjRbx+c0dt7a8nYYXysRa+kO6dLlmuja1imipqQjRKTzVmu+0yKBAk45sZk+KCinUT8UjL23UsT59pzgdNW1RSKC+4IfuKlaxXb0Y1ta5XfNMkZ21hCH5ZpnnEVH0PM3A3yyrow7uwebjI4DTI4Dy0MuEH87H+KLujlO/posXzhXp/ima6tWlOwthbFpnMMuxvvp640wCiNEuXlq+NXnl1xqFj61gKwdKljJwBCQ/xcNgd3CUCui7KenKECDVmTiF4IUCHam4r0kNSYRnCxaR2pBhkamGpWSA2Z7CnNq1xK4KTqjAYjix71mIHeam2Fj06+ip49U8D+r+zg7ayqtDh17SHjheEifZponDOr1xkNOY5hd83nULEP62L9Vmvvq2tGgczz7gdTGXhq7iHAch9SHjAYpXKfTkuX4M7upphZDbZcTBgYmyf1EqeZlXEW6gxpxGzRyfwb+hdcOMrDnKLRV2qadwcrl52QTqJVsEwStMjTjgK7isotBgtwRE46hTpujgmhafBGFvfkCXy+RerShq6JXIIgntHoAnCkBKFpTey91bsvqM7bRcYvGIkxM0E2RAkDkIzev7lJdDrZTMiZ3Vy7LjIIrE+Y1ispJmBwyDIsiqsVfEzmOiB5N/sR/Q2XI7LXDScYor0E0vt9J+eO1VBEMd1mekOqydPVgGozDY8SOJWIcUOYRKEdTEhzJqdCtQmH6K+Xgy4N1qGya2IpPjSdkAWf4iaGpH5mcGgNhawW/TLlxm0CGsxqeJWz4qwgVdLDWWdiN7rRBzKkn7FBzuqGZidi/H+/viMefHrdj7tn8lRV2tbfkvpFvEdjg/0GtJ8r1CNPnZvlXgIj9JPCUMzIEZEJtmvwt9UIuOTFcBoGhkb4JWZkILSX0yMr8H54wQCzobTo4A8zajOypysC7IjwCnxtlMfMRi9otjCVYFYCpxPSpg7yePXVb6wTo9/JQ3GoQpwJzq3PQr7t6CsCjQxUS7HXYDC0wMEuHK9L7uxTJYSEDGsNmT4h78fxNbIm1uD4Rf9Ytm7Uar+/JSUo2OPS1Ph5WI3b/vDJNpOC+H/bv3Sx8RtBUk+HwS5FUNvbmhgSmNozfTzWeTFsQUKO9Z7zFZ9c4juny8ddX8Fmaao/X5vVwwrz2NF9cA9pSqCII8ntsPZUyXkFDeRa0Njae4WVfJtc3UOUAWj3i6tms4jUmEAu0E0uNRVdWBBAr+M20paiaWO5U4+Q4ohCZrdwPzE/I3Rteu8WGGI5ovtQ8Wu75yk/p0T79Ies5Gew= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c8e7b6d-b4a7-4ac9-d95a-08da439a8748 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:47:00.3349 (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: LH1GxCfj0IdRtGhyIQ2D5npzRsb3TO+UHe0SuNrVin3Ss+4YiFVw9gXrjuGoBW8IvYcvDsQdyzK+b0z2ZotZow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6904 This patch implements the backup flag test scheduler, named bpf_bkup, which picks the first non-backup subflow to send data. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 + .../selftests/bpf/progs/mptcp_bpf_bkup.c | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/selftests/bpf/bpf_tcp_helpers.h index 488de4b920ef..1f8addd61f14 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -234,6 +234,7 @@ extern void tcp_cong_avoid_ai(struct tcp_sock *tp, __u32 w, __u32 acked) __ksym; #define MPTCP_SUBFLOWS_MAX 8 struct mptcp_subflow_context { + __u32 backup : 1; struct sock *tcp_sock; /* tcp sk backpointer */ } __attribute__((preserve_access_index)); diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c new file mode 100644 index 000000000000..2431d5f89150 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") = "GPL"; + +SEC("struct_ops/mptcp_sched_bkup_init") +void BPF_PROG(mptcp_sched_bkup_init, const struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_bkup_release") +void BPF_PROG(mptcp_sched_bkup_release, const struct mptcp_sock *msk) +{ +} + +void BPF_STRUCT_OPS(bpf_bkup_get_subflow, const struct mptcp_sock *msk, + struct mptcp_sched_data *data) +{ + int nr = 0; + + for (int i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!data->contexts[i]) + break; + + if (!BPF_CORE_READ_BITFIELD_PROBED(data->contexts[i], backup)) { + nr = i; + break; + } + } + + bpf_mptcp_subflow_set_scheduled(data->contexts[nr]); +} + +SEC(".struct_ops") +struct mptcp_sched_ops bkup = { + .init = (void *)mptcp_sched_bkup_init, + .release = (void *)mptcp_sched_bkup_release, + .get_subflow = (void *)bpf_bkup_get_subflow, + .name = "bpf_bkup", +}; From patchwork Wed Jun 1 06:45:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866398 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 B5029362 for ; Wed, 1 Jun 2022 06:47:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654066029; 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=FpG6ENw/8D3PwJ90m30Sg3WYwAOt5cFlzsOTeYTz8Ck=; b=hR8taHoDUijeIkYkTb/ZZmwnweV531+qgL80kUrO3snMqjUlTFePtFOaGps3L0yuNmchE6 bynQRSCi2invwb11B1DGiU0VuSR50fjys+eZN4bcRzqQlvMzxXAH0GnAQjOoQINtqq7nQr cfHzP7R4IAmkpdOiDroj1atrQijUeCM= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2106.outbound.protection.outlook.com [104.47.18.106]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-36-Gq-T7M9mN5OyZueXUKpUCw-1; Wed, 01 Jun 2022 08:47:08 +0200 X-MC-Unique: Gq-T7M9mN5OyZueXUKpUCw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T06FUc58ba6FytmwhpTLthRwdSlQIo235ySN4tjiqWVGeuff0TXCHWuTWUzUJtpvzz0FOdzM2LsCrmlcHWBjLFeZ91g0HBqqMq4Li+ajhcFdZrpzcwHunmjouSoDjBy2bbSauMEZd9Tg/xJU0FCWTUooQC+MbG9TdJKQKmPeDpLushs2VCZjKcOA1peVHU4FFtp3VhfSNThN1iR35htJhSw+siHaynmwMuF3qDgJ1ne0BZXcnM1lsJphkOluEbuRPmsuhLRoBiYSku711FhOUzVe2G/kB2h5kYz7gTyF1K+96QeTWrzLx1zqRO1GtTU1AAOR++yR3w+OAssokwY6lA== 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=3GcfFui1g5oBNt3wRa0fwp161zlANUD9TuVQAshuDjk=; b=GtdEqvy+c6Qt4FLwTxr1MSDKrPVSB87LG+ZXqBdSMtwufo0dK9nLFoTQ/Vh5NPYIBTTXXtb/5dqXJihf9adhIkuohQgRwPNUQW+n0bV3vSJdo1EmUAm2Qs4ZUMh0BqLrnL+LfmMF0uwtaTuoAEYnjiOLscXfHf87Glf4+7Lp5llU2lCUTJ4GywRyVU+5IyaB6pX2gZkgPINCdH4Zlo1/4FGZsDnYJdt8MsAhmXEJowIp3cnSWIR0tNMGQ7GCujreYH4ehALq7aBfEJlTyRrzTpYOaFv99HrLSXr3xKU5LvWl3ZmwyTCi8wJ0vco561Pcqvc9ZMvEUwfTEDIwaiqtBw== 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 AM7PR04MB6904.eurprd04.prod.outlook.com (2603:10a6:20b:106::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Wed, 1 Jun 2022 06:47:07 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:47:07 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 09/11] selftests/bpf: add bpf_bkup test Date: Wed, 1 Jun 2022 14:45:58 +0800 Message-ID: <43ea815b853c218ce7dfa629a92b70ca3828e37c.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR03CA0051.apcprd03.prod.outlook.com (2603:1096:202:17::21) 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: 3feb09ae-212a-46ef-9b28-08da439a8b98 X-MS-TrafficTypeDiagnostic: AM7PR04MB6904: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: oGPaJTPLEa4eIGdSpZ0DKtru9t/j85JoEYGcnKFUlgvmpAHO+KETGzIijirVLYcC0kU5niXRcmCZ/6ywSuNu/cu6HbHM6GJcTdAar2OpL4q7UxwyxjXQCAgyRqQtuoDCZ7ARGaAznvc1HxZA/7KBcaD/VJj5bcjJeFi5wgmK1yzW84wEKdgqY4ewvCjsMwuvUOIvLJ11uQ4Jw1bC2dM+gGDVzKXObdhALT4yAJW0t1NJ19iVjJCZajNJCx2ERjpBY3qg6XDBw/D9ldEStQ467uKA/wZVmNYFbtSG/5HMm4xBuaMyOJ9qJzt/JOm1wuFbLiEA09ADne6D0M8w/KRnPkaCDLCYh3Xr+OhksTCsh0YSijGWbiRBFCN6Or56BN6cluYkXy9B+O+Yx+4Tkfg4u6cq9IH0sIFMgTjzpuKFz6yOlDmfLAevkxA4MqpfsmL6RIlG54ytTdGw90WOKKbebPc3ZcnG3fExfE+ZbXjqoDjqeQfksc/dvPvjgNynRE/8r6GLEU4s4pcKd+r7NcnAHWlfIhRI6wOzRBzSXS7o5hPs/pkJtwA1SXFIrH4K/fIPLlAcSJuiKc+IMkQML2a5Kp19gsJkqoQ4J8QxWDZQJdoq60/hPzeBs7szy1GgK46cuVjzZpcHeDJNBCm0oQLb8rVxY++/St0ElHj2CpSbz2wmLPhlcJ7JJ56fkASm6bwJ 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)(2906002)(107886003)(86362001)(6666004)(8936002)(186003)(38100700002)(508600001)(5660300002)(44832011)(6486002)(2616005)(6506007)(6512007)(26005)(66946007)(66556008)(66476007)(4326008)(8676002)(36756003)(316002)(6916009)(83380400001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TtL2B6gNPimtwHWEJ3okglmAJByN+tqQ2fe0nr5kg2XMbE2XfZBa6Y3AEgvLmXrvD5P/trfDVleZALGq8GiOo6Fj2ji3EDBYYmd6Iez9/H+n387881FgW0VLLyEv9ZU6KFgY19ASVESrvVJm9t9Bl2iC+B+1oYTGyQTLR6Q0y/DIac7P28/2XL0EmPG9ftlCrRz5/RQ7XCmNr/Oz1UDgOolQg8yhYx4A/sweWZCkalFHbgRgK0dHXCO5CwGSNm4qWhExKo8jgrHYRHh8BFU0/06WdcgCNTf37G688BKgOb4L2zaLyZZ95zRTQnm/mEcA6Aa29i9AmI1KHhllhz0oVUJCyyoWPAUlKvskCsVMU/+/hlgVHyQsHGSiHYiwBnxU84VdnwV7yUwbM7j8ZxffIKWjVAYQfBCT5QPKqQMxwhznkJzcmrDJJtpcGYMKNsZp1OzGHZMbG4a227F7ai3YjM3YmNUtf0/EUbyQj6Oagp2+cDhaSKtvJXy6oey4AettjqXzjDh77QFDk+n+MAfw+zZgYLMl7FvKpHy7OzjcPy9fp+8GIIweSKrUfHQLF+yaOSnADyrfn7uoUPYOXeEv//EHPf8nxrRaZc0iGcIUWDFd6nkjpL6nbGnMr5OIABtzt9ztxqCHShpXaNHPXQBY4b9ORTetDaXDH8sGMEwhy1ilUzqsYmZ1qfqZ4mAPc3l2OQ3DMkXHvvdOni2lPskH/QGhieom+fMbeiJ/141irzgK7YFSrVriPlBMzBXxb3ToiJ9aLbbRPavlECPKsi+vA0h3hTACnW8OpOOEMTWMOOpfcaQfK6sy2pVMHocJML1ep+MbcZe1W11xaQkIgK28SbQ2utgIjXaKkdDbS9DlS4TfSm4TfCLlgYXmYklBsw5Do8dNMhm2vvJ+HVvpkBjoQJ9gvgJ4hS6mya6PjY6X+kKIw+FsmR7uE2bhAA4gpkELNAFmoK0hJFTtr7yjkzb8Fa02vHPkXP08Hs5eBWu0Hzpm8u8+7K1LMU0WnfreQanX3YVsEIwag3H+ThxJbPWcFrDDYfwg6GhLy6V3dadJXfa494as/VT9olrf4yM8rjB7VIPtjk71etv1Xj8lLCZP9VUsYl22JXhViSIQDPHoLj1B0ii/2Vy0YvqBMyJkXI+NroK8sqBU0mSrf0Y/Qn8gbx+LFvzZcAyDIvNXL3cGvOsfqGspdxFZKZXYnEKpI4Z1F2eptBCAB8oFGUX4u7aVj8fzc8H8xxvAKiE6ALyDxxIWQ2L1dxnT0IXuFoCqDHSVbWoCvokq08YTxlDxsn/Wsrh1KRXQVNi7bfrbx+RYf4av6cjIJxOVYHjyto6UuRvxeya7WlXZ435MWKJ7Pfq4B7sv6uMDp70TCpRdKAOa09qBGgFBdJc7kI+XNqN7lvy1MzDzfjdlk+CE1XA4IOjKNZFKnQ4+EaycUB5zAhLiBmaC9Elw+qVThIhJ5xcM6ZzXIkQrF72Ha3paUra6Guhy0mJXe6pH6KnOf4GVXrMfUWUiuF5Qhub5hKI3xsNgO/obdU42UVqCsPvyzem4u4zKo8Sy5wM62ODTu2dvS7YF9c/4ikteo8EtZUVPYdbTzhXHt6JpCR2PcEQTeNdXF6CKC/q7iODyoxatkeG4rVRf/JBiAhL5obqgbN6vxs8u7ByP1PBaFoAn667yhyTt0qdQgVhb3djsF1OZ1DqTWucBh7ZjxYDBemg0WGya2/yqivWdpcbcYzBGxp8ugqqAZIpnadHwq+WTjUOUaxOanLZc69I= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3feb09ae-212a-46ef-9b28-08da439a8b98 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:47:07.5373 (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: IvnyZcRXpHndXRzF824tV5sx2ivS1tRQSIMV3hJXMR5aTybIYLcstzDZauCKloHZU3hiSJe9EFFz2MW9lZLoCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6904 This patch adds the backup BPF MPTCP scheduler test. Use sysctl to set net.mptcp.scheduler to use this sched. Add a veth net device to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add this new endpoint to PM netlink with backup flag. Send data, check bytes_sent of 'ss' output, and do some cleanups. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index eaea4105728d..f3c73cd2c786 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -7,6 +7,7 @@ #include "network_helpers.h" #include "mptcp_sock.skel.h" #include "mptcp_bpf_first.skel.h" +#include "mptcp_bpf_bkup.skel.h" #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -296,10 +297,44 @@ static void test_first(void) mptcp_bpf_first__destroy(first_skel); } +static void test_bkup(void) +{ + struct mptcp_bpf_bkup *bkup_skel; + int server_fd, client_fd; + struct bpf_link *link; + + bkup_skel = mptcp_bpf_bkup__open_and_load(); + if (!ASSERT_OK_PTR(bkup_skel, "bpf_bkup__open_and_load")) + return; + + link = bpf_map__attach_struct_ops(bkup_skel->maps.bkup); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_bkup__destroy(bkup_skel); + return; + } + + add_veth(); + system("ip mptcp endpoint add 10.0.1.1 subflow backup"); + system("sysctl -qw net.mptcp.scheduler=bpf_bkup"); + server_fd = start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd = connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + ASSERT_GT(system("ss -MOenita | grep '10.0.1.1' | grep 'bytes_sent:'"), 0, "ss"); + + close(client_fd); + close(server_fd); + cleanup(); + bpf_link__destroy(link); + mptcp_bpf_bkup__destroy(bkup_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); if (test__start_subtest("first")) test_first(); + if (test__start_subtest("bkup")) + test_bkup(); } From patchwork Wed Jun 1 06:45:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866399 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 DD4CF362 for ; Wed, 1 Jun 2022 06:47:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654066037; 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=1SXoPWKRO4BRSq0k59Z6b+g7NFC9HuCQ3a4BYMVPSoE=; b=Y8gVE/ouWpwJDRZ7u4HGJJMXvSTEHED9Z6cVPCro3FieAAyxuXJSmZQ6vzrhbbsgs1c0Bz JOUtpVwHbUu3WfRy/6hqqoS+iCpozxdPIIv7Flnvps6Xb4yB32NiIxi9iHm//D0YK+s0nw 8W62RTUC/E/sGnTWyWrUdl91tqjPrTU= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2107.outbound.protection.outlook.com [104.47.18.107]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-12-rwomZzfFPXOOjdQ5I-MHTg-1; Wed, 01 Jun 2022 08:47:16 +0200 X-MC-Unique: rwomZzfFPXOOjdQ5I-MHTg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iz0NFn57mrcHDKazN1IxSk8xaKqeLiqC/55crWztoKtLByLxZjUdlhDOtbbN1y/EojlxCf5tGaxVvpkllLP+vnh8ghta9noFrK+WuWDpwQFEi0GfHtxtYEgVRsOk93z8Xpxn+otOp6s2mAnSgmVZ2iM4OVWMew1dIgWiDTGuM7qeSzWqfZMIYrVR2KnwTt2uDoF/RT1J5nCeqHJ0kDBbcyPgGhcLGTMcwZ3OG7HRak7VynK1bjvepf9nPXIa5ADGUOd8DLfg3NWY+q36upVwZEyb77D5Gy82fL45WuVzswvGrmUkqZjnxhRs3rujeU/owi70y5iRg3qrRE9sSc9Qyw== 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=eqibEQ/TbMetM/fzNMrN4bdtnCavo7ZkoF4SDeW3tgI=; b=CPbd9Lwx0eXDYs6XoLoytAOJjvh2ak7FnDZYuuEjTsCaHle1t9qPzwsR0hSWMGPiVHIDzjEZJ9pNAaxS67my1ncRdX53HxFrYZTgVjmibT651uDsgLarYX8CnM16GFlPMtM4ZBMSui0Mz4+OBiAlHvZYLtt0nLEKVF5YnGGYXn8lq4JQWEF9r5gzhOCU5ysdu2dbVZ61l/nxjFEAXLIxyhBtQqcJ+MKOVXlIjkQeN40nQpBqTKlaHY6zfYTGxG56jMg0mDfaoDGWEOFBsfJG1oxMnhgyQ/yrRNOj5i/iILJWBXDFaJxve7gt5/n2xTIxt/Uqz9egkuAMbpAObJQ7yw== 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 AM7PR04MB6904.eurprd04.prod.outlook.com (2603:10a6:20b:106::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Wed, 1 Jun 2022 06:47:15 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:47:15 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 10/11] selftests/bpf: add bpf_rr scheduler Date: Wed, 1 Jun 2022 14:45:59 +0800 Message-ID: <18816df87d7d36fd8a832b191b28ab34201084a5.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK2PR03CA0049.apcprd03.prod.outlook.com (2603:1096:202:17::19) 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: c84107a1-bf96-4f09-cf83-08da439a905a X-MS-TrafficTypeDiagnostic: AM7PR04MB6904: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: ZXNXLYFTbxSL73LTbc4SyFCgzwYS7Mx4CaEBKOLrfRZqwPvjWdG6QrZb9sm/p7bcfKkDkjbcTr3XhY0NFvm4JqXgOFUuX6cy3fUj3YglmXY5unBBA/u6B8l/fjeZ6b/EkmMEtL1/KtohUP5VtRZGvFEhXsppt4xZuZrQ5EIYZgrYzxoCqEaoJIW6N3OLCoBJ+ndwcQrwTt9FSeP5LnCiVI+vOGhs9jZEZ+OSaiTCZ0WtR4s68sVnVJtl4f1S8e/GhV6jeJ/4HpWUqRabyU/mzYKP0iQJ3OMWLEUqxGJoUm3FvPzbG+J5Yq2hY1x5Ve/tFdNfvukfNuG/YenGB3mJVSvqtWG/V084Ivz6hzrD86R9nBijKsKeVR143GQiLV5+1/oeA1ALy/Nj/NJewhsj9OLuTfz/bNf8+pzjWxWhxkXd9Pa5801w8NVZLWMXpj8oWEf/AbZ8DVrB0V8NWouSZ49lfYDP0UgAexMOL14uYb9OoKLDcIFXZZWEioUQ9jUu83GmXjX24ccTO1+pYSYclN+eYEqEuEZa628yDllwC+r2Pjqb6IhVxQVrIdezjqDNVnIMtcduPwWnpUwuwMBAUNAvoBdQF4peMAv6C/g2Z9T0DcTCarU2EkGWtp78XuxckbL13i/Xp/xlfD6A1HS5S4i8WSwn9guRR9KfVc0lYRjolgSwignaBZrwLPp6HN2GQWSPZ9aYgEJ5mnq0QzQAtg== 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)(2906002)(107886003)(86362001)(6666004)(8936002)(186003)(38100700002)(508600001)(5660300002)(44832011)(6486002)(2616005)(6506007)(6512007)(26005)(66946007)(66556008)(66476007)(4326008)(8676002)(36756003)(316002)(6916009)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dwfIJzdaaQOpjd1ydfXUe6OcB23nTc6Wu7wqC/tWUzp7W2LhfXuylwr0HoX0Gxlt+wmTjGJsyJ1j2uhBeXNZH7uhNs2fFo7M5hDCuI8HAuVp/hEKEpGi1f+1drtoJKKz4BxiiIYXtGCzbtzQMMQk025959W9HLr13z2LohNlmfqFYPpFVLCRjCNkFoufmuPjdY48ReGo5jUPya6iZHDA9QSAMTVqAA9dbhoykMiFsz4xIjZ+Gr/259QbO8RSwzkOmyrjKp3AjOo+uuZhMh58cMbBD8f55ugeC6iaKIh0X1Vi4NYWucoAzmyd/a0ZtnIyvDuWi2vXJ3PwBbif+Eioy3iTNcmrInbcWx0cQqvRrqWvFjnWpOumOxOjR5ZJsOsf1C+2sO0p5Hhw0VD0aG54MOrhJh17+QnRbmP2S9q5CArHLz6bRAZxYO3ws8/tLezBZU+sk9dkc53NkXNnlaJ+Sq1wPT495mBvbbMLeiEHaY4QdoZUPp9PCuUZ1HKA0qwHDYc3I80UIUa2XHW6v4+Rl4mnAUW0RXD/iUAMwMB3yUGXfYaGtVgcdHyAKL3v3MOJ473Xqt3zYfc17eJOSMk6q80aJHJihZYvWTHyN9O5k81YUCAuyX82GgSLrxeqfLsKQVzv0xZfuODQGwObqJy4Qc1phR8QC40QlPxILEdXvrIBgCjhOAKgTWlvSHWCE5nI4YQan9Jq1S07Y+gn3QGAgsXAunw3gi7xoU+DK2l+twjL4BdLGRV2cP+QHhLI3hqyPWyMTVHiWdBYy52kUJcIK73SHkD8Ph3+24SDby/N4HGEBzb7p66lQpqY8Jzfw4/z5A7bl3uAhTXkdCOSDa11d8g1wvtct2B29Yw6MKjAnL+Gx/c/EvY9kyo5Ptilh8+j4nVutxpNa464snPFtKkIAt/vsfsDFiAN/9Xv16llVc1pvizqQjRoN/MC9c1Yne3uc4JI8w9wyqP+aosxVCDFDAlOOy8llvomZObF5u9fQbTICkZJ3ujk1pMbVnEzMKAPsZ32vDd4K0TQmORGfqs9p0YKV+yK7qVZp4VhridDhIFWsvoNdmDbe24kpa0HJHkGrApkFCVhDprfgIQRf1ek4wx4JCSKEMm+fnol3crVyXYKFfPVwS5sjdOZD8kl4BKK/rUiJsZmJwcEW0xZh3Jm9Fqlg6gDRRmTxKfzLS07MO5ELCYszfMxzDU1YwCn5E2YcXmhW6taLbF/jGhywt/4sbuqR9xV+oWJnrEU4CFW4MW3yKqMihMuFApfiVYmbRzOb0R3Lxx8/8tGoI65vuy/HsEPwnasanut/tsWWpQJ2fXXNAa73RlNbehcf9Z8+luzMoTJ4QrR1QUUcN3nfPTBX8IKlxNLI6JsEr7Xh7lny4lvJ1nq2r+LtBTk4enWSGobCWAuR6ytWOlrnfzV6BCOpAfkBefj7e3niU57/dmj7EcgfdGDUyS1W0fy9nFC41mA/VOYTGnTpgd5xShGuWDxO1jd1XXAwLkXPLfnxfAO7lh2cgunJiaqgbgT1Hm3RNTkCgTPCewmsgzolzu2Gfng9s3xgi+f7wLYYSOB6LsY8EN2Yp8lEOI5W7Q84u/bMh7qIGl6rv4KU5jID7ZrKlxUcsqksVz3+3leV7dk3Sh8KhQ27biIToGh5nbgtkj5HsSCTBzRnplnVc7y8ZIlVqWoa0+PzBS5wERcyUB1IBUWwaFA71F6jl/hDFY28wlBpWdcWgWjYrPu8/K0gyXMFHZEiKJWGO3FFtB/I1x9FIwUuUU= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c84107a1-bf96-4f09-cf83-08da439a905a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:47:15.6772 (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: /C1GXknIv8hvXa4dsfn1lZ9WTfJCeWF4yp9M/wuV+xJFgcwJXBWt4ivehxtM8uz8OQKPIL6fwp3f4GxpYowSfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6904 This patch implements the round-robin BPF MPTCP scheduler, named bpf_rr, which always picks the next available subflow to send data. If no such next subflow available, picks the first one. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 + .../selftests/bpf/progs/mptcp_bpf_rr.c | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/selftests/bpf/bpf_tcp_helpers.h index 1f8addd61f14..928f34cce4ce 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -257,6 +257,7 @@ struct mptcp_sched_ops { struct mptcp_sock { struct inet_connection_sock sk; + struct sock *last_snd; __u32 token; struct sock *first; char ca_name[TCP_CA_NAME_MAX]; diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c new file mode 100644 index 000000000000..c59fe2eff420 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") = "GPL"; + +SEC("struct_ops/mptcp_sched_rr_init") +void BPF_PROG(mptcp_sched_rr_init, const struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_rr_release") +void BPF_PROG(mptcp_sched_rr_release, const struct mptcp_sock *msk) +{ +} + +void BPF_STRUCT_OPS(bpf_rr_get_subflow, const struct mptcp_sock *msk, + struct mptcp_sched_data *data) +{ + int nr = 0; + + for (int i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!msk->last_snd || !data->contexts[i]) + break; + + if (data->contexts[i]->tcp_sock == msk->last_snd) { + if (i + 1 == MPTCP_SUBFLOWS_MAX || !data->contexts[i + 1]) + break; + + nr = i + 1; + break; + } + } + + bpf_mptcp_subflow_set_scheduled(data->contexts[nr]); +} + +SEC(".struct_ops") +struct mptcp_sched_ops rr = { + .init = (void *)mptcp_sched_rr_init, + .release = (void *)mptcp_sched_rr_release, + .get_subflow = (void *)bpf_rr_get_subflow, + .name = "bpf_rr", +}; From patchwork Wed Jun 1 06:46:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12866400 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.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 E8E39362 for ; Wed, 1 Jun 2022 06:47:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1654066044; 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=F/1D37CrJPvZzbxiZMvJq3yVCCtd/NboQN/xO+EiniM=; b=NfEGU6BlSHs5rk+ON2i98ry65ObcGiQnQoC/vlnugEjlf04DthB2k+dhr0acT7DC2xI1MH sRjIjZqtSmIN1i6n6yaIoiNmLfG29NP9Ck3dopLtM5A79bWKD8oxvBmzYKWkdjQkrheOwE IASByPI9jA09bbYVBHGD7+8KHH1QRKI= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2106.outbound.protection.outlook.com [104.47.18.106]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-39-CkYcJQYPME-VNARcsuDbow-1; Wed, 01 Jun 2022 08:47:23 +0200 X-MC-Unique: CkYcJQYPME-VNARcsuDbow-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e8Ql2Fh5X9n8MMiPHV3vuAeXoinvje44t4KU0ZLezfT1HcC+nYDkxdGO5Gh7HCXmsRvHW4+D8WAgtjKFxWrqky/k27FXEHoPe6/edPfQbAGMqqbYxfc40zPnt24yPip4MYYPovQEdW3Bf22epcuTJ85t8PvmiaWWEhtB0SK0ss0hzjmNsfQV9VRHMgWgOgZ1UTsQfdsbswf43gYnGmGD3eJxy002DWkODJ9ssJQAp6hVlIlXBKLUTW5WRkBSadM+eD3hc35YtIDlUJIUhlEHMoZRytW+XDRdlqMq0Ib9HGdBbdrueyJ2CYv88ksPJzgvkMW/jFbeVrfPVc8oPMHr+g== 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=QdN0/NTSngD34hg/2mAz8TcUJyKmvrSSKr9bbGv39HE=; b=MrsFJvFSh87voTJZyfvIUItMH8/eaJtAbi5qmzj91H9ARkEuJTnc6XUF87J/5o4hs7+8N5jbZ6DVM6wDKwJLOC/4BFVZHwf3bEGc4MfRErRVIUB2K0XM2f9tV5MoHs4o1ZYGwUdvhHolj7O3MryL/Nv0Thpiq3HTzbaihpU3e8Z6WdiS/WK56zBXiixhJxXFRySGOydfkf80BtZz/NWZwarjE/buXCQ9kqV5QN5K5Jb5TOZz3vDZ0wjT7bxUf7cln0ULOJlw8eUwvS59lBu0BXCl6D9NF8aXfTHXkKEn4gSG/q042RUELJtV2cmEwgmPEEY9qqMkqkxukz3GydOceg== 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 AM7PR04MB6904.eurprd04.prod.outlook.com (2603:10a6:20b:106::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Wed, 1 Jun 2022 06:47:22 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5314.013; Wed, 1 Jun 2022 06:47:22 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 11/11] selftests/bpf: add bpf_rr test Date: Wed, 1 Jun 2022 14:46:00 +0800 Message-ID: <076285ed7f05ec809cfb5866c6ff2d6b8cd04e95.1654065674.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-ClientProxiedBy: HK0PR01CA0069.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::33) 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: a56608cc-622f-4f2b-981e-08da439a948b X-MS-TrafficTypeDiagnostic: AM7PR04MB6904: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: qtr7k/nlC/7ipxjLVAtyO6MzEZChX5ZKi3wpTLyRaZlg1ERpSPvLxeg13J4q24YVrslH+3tKi3oUKacTLIAEHkLRBb08AWDjU+5/UO1ln2f1atOolVS8GVvINjysRqRzcHIarx65kmtNUNvU2jKGYt8AzwTY+jC/UFqYGcZKacPl3rGqyh4hBCid8vcaQyOlaNn6vMNRekQa0wgNd2Eapf/xvQ9VZG7Q3iGTI3m12k+xsGZ6nHEdRVzlQpNuixZvP0Z/QIQnfIGao1uNF4+TrLGfxha89+cguiwX3B5KYi7p8kUdHEJREVFF9x8+GlWdJZ5YEg37uo9PWpCISQE4+52N+Hym4Sw+rKZNF3IGkGGekFmPu/TeOMQMSXjddDxiNKJ/1Us/BbS3Eyu0aenEXJFsev3gRlZoifqrHhDQ2gLoO2rgLN0Da29ERCPKX92OkfXASFzRspjrAQ5y/bCrcC3ikqUf8qHVzDxTHwoR7fwU9qEazgGT5xVvr33ZPp+HxnfiQYG2Pn6t1bqX+U+i3uGo1a4F/xYnhveCgn668UmdmotL5GI35JmilPIsNady4tRNwhjQHOjum6xLLHTWSGD/eYfdDzWghvJCSE8wVEe5mCKvtV9nYSRUdLUIQ5hhzgFHnxYFFSc9X//05XNMu6axE5En1A5w3+LaY2BCZblCX54ng5M9yArLo0HGJMm4 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)(2906002)(107886003)(86362001)(6666004)(8936002)(186003)(38100700002)(508600001)(5660300002)(44832011)(6486002)(2616005)(6506007)(6512007)(26005)(66946007)(66556008)(66476007)(4326008)(8676002)(36756003)(316002)(6916009)(83380400001)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0vubwzqWGoL4y77eO+0SfV9oFTdCPjO6I1ftjcb5ug3C3sD/SD531io2Xv7VmEbfT9Mwa6PaA55wyb1Z65MgMUE0fqmI/Jf6z4XavQtuP8d++3qU1XnGAK7ZfW7bNpcN7D1ywctpa5NAQwC4HRjndGxDU7cxaX2+Z4HdGxj7rEkCwwK6vnh0SYJS0XALPRPQV0myAgbUeFTvujLHTcTeEYRqKv45hS2bUGSEwK+RWh91DLQahafBwMhFlwhApK/o3tXSSGXlFnkb+w19kxT+vGrIXMIV7B4FlS54pC+r4XjDXgfQuMLT3XKkjd2j8jsJsnAKbpiq1mzy2BBdEAybhkoS+PuwhnB7PFGK+lT4Bi68aISl6RwFSPq71a3UfL/hTKsZNxly9lEIdTBSahSeC6IRyLnnB0tHFxjJvdiKPC0SBhONkRvOWSQBaIu78HUZ1W0fMRaEnn8tk9TbGEbrXlXi5mmUNyKzwhUnB1iuEzRAOQqSricznbwWxcuwyBGCjVo+/9SWAqiXCKNQPaqMYYNOf0U09eeQmiLuBlHqOevaewSoISvmRSn4CQCrjU9Stk7ABGdpqBvEHDuCCKL7jITjH9gqKOME2dKa31yIXi3YdITkZ9bFWhLu+pboQFxdPwU9levUhxE4YFLRDADCODSo56nonTQhtV4oz9182oNbPasuXMepWFRGAF7zG4AcrXLMm02ZoXSidE/O3oNsTXkCiPo5bnDM640DNifv3mHBVNZC5uSfipBlbmiJrNil63zvjQjU3BdOSdHKiCu7/MkbWa9O1ZHPQdkBR47pvX2a5UTQnZEq8PBU+BAvoQTqkbjEk3lYVCVzO3n6CfOHdCNmkdrUTBOAttWZ+qcLw5DrnbbHQQ4aklFAtF2c4KR7dakVFEnOiqDmOrQwnaGLQB5SjoM6Wc2QVLksBUQFyUtfezY00J4LK+JsYLywFb5VeWLS+2nporyKA0IdmWJutcMzp0U6gil9MMSo1qywr1UQxh/VfW1aHrtEIZjWoob8ksT8dpjex49Wiu/fOaBS0ZoMxUKL1JY4F6FlLnNjzeG1N7Nl6ZvgsD+g+DKKRxw1yeuKToDQ6eMtEHxUOiS+c5y56jKmRxu+ehBQU2Km+a/T8/QpzJtM2A0fYYDYYU1tMt2LFyt4soFAfARYZMEpSpv00cMH5kV55DQ/bJRsd+KLkEQxwltYBtsVsyp3wtzpEXiUHt25fOYQc5Ub81phHrkcF5l3B63bIOv6xHv7EpIM3Xg+bzYD87GN4j25gk+LKRe5FUFff15ey7oxNEPpmo6y+QazEnrGWHVm1flVJToNlSUJEWylb+BZUopH5JaCUp1DoDbWUQ3S5t6fUALTkRkyQnF/F8YsfhnPN4hsvPLinhRRgCEg+xW9CL/6IA8MVevycerDpifYvRla8nnyCdiXUk9hsXTTZekqEhUZz/y6zBWfzBMTMN468y2sO+LslebYb52PV/y4+B0rgQBnbgIS2FD6sntueGyVfbKKI2pGEH2nP/4o2CBVCOIy/6FGw1+aPCfcWCVtoVycLbdo1rRdPFzJFlNUFMn+4wOTn6LnbcSJYLtVPZH0LIRmhcvzsaps4oAzJzR/mNO6BxPZxb1LyXFgKBvnoFg2hPZI1VTW0gkOkUzj7asvZDtB9UYAwWmDb0JM+TD+Qlfaz2XPPM6SzvEPA4K1VNtMEclk5IlOEXVJurCMvsJ/gMM8lCWKleREwPUojTQcs9BEKjvgWhSbwAWHnwuE4/vzJwbBpj4= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a56608cc-622f-4f2b-981e-08da439a948b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 06:47:22.5984 (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: lspLpqVM5XEzyDWpnowWoY8J1R+XRSRs08x0blQHE5ieq/DG697ifeeOoTEDvvXCkyHBmagxEF4iTF/VP6tS+g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6904 This patch adds the round-robin BPF MPTCP scheduler test. Use sysctl to set net.mptcp.scheduler to use this sched. Add a veth net device to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add this new endpoint to PM netlink. Send data and check bytes_sent of 'ss' output after it to make sure the data has been sent on the new veth net device. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c index f3c73cd2c786..1ecc8a2b76b6 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -8,6 +8,7 @@ #include "mptcp_sock.skel.h" #include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" +#include "mptcp_bpf_rr.skel.h" #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -329,6 +330,38 @@ static void test_bkup(void) mptcp_bpf_bkup__destroy(bkup_skel); } +static void test_rr(void) +{ + struct mptcp_bpf_rr *rr_skel; + int server_fd, client_fd; + struct bpf_link *link; + + rr_skel = mptcp_bpf_rr__open_and_load(); + if (!ASSERT_OK_PTR(rr_skel, "bpf_rr__open_and_load")) + return; + + link = bpf_map__attach_struct_ops(rr_skel->maps.rr); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_rr__destroy(rr_skel); + return; + } + + add_veth(); + system("ip mptcp endpoint add 10.0.1.1 subflow"); + system("sysctl -qw net.mptcp.scheduler=bpf_rr"); + server_fd = start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd = connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + ASSERT_OK(system("ss -MOenita | grep '10.0.1.1' | grep -q 'bytes_sent:'"), "ss"); + + close(client_fd); + close(server_fd); + cleanup(); + bpf_link__destroy(link); + mptcp_bpf_rr__destroy(rr_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) @@ -337,4 +370,6 @@ void test_mptcp(void) test_first(); if (test__start_subtest("bkup")) test_bkup(); + if (test__start_subtest("rr")) + test_rr(); }