From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562459pih; Fri, 20 May 2022 01:05:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxhLaXPvv42bp6wgtA+Iv9Hzh/IlW4onRwm98fCy5rrU2BTLqIG3HpiP579+gaTXMMtSjbF X-Received: by 2002:a05:6808:d54:b0:326:d355:69c0 with SMTP id w20-20020a0568080d5400b00326d35569c0mr4794534oik.121.1653033912181; Fri, 20 May 2022 01:05:12 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id 38-20020a9d0da9000000b00605f2219291si1324705ots.6.2022.05.20.01.05.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:05:12 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5412-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=b8epHf+R; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5412-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5412-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id EA90F2E09CA for ; Fri, 20 May 2022 08:05:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E59B815DC; Fri, 20 May 2022 08:05:10 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 230817E for ; Fri, 20 May 2022 08:05:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033907; 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=HgiCgcLUzNbnopS6Lre4ScGyu6JrybWxTQv2w7B/QWk=; b=b8epHf+Rd8JIf7XWqfa+cNYWvYvlDY5cfrYeXj3MptTEHOnjC4dqMr3RQcwEAvls1AQyj/ 7qrzwEIZKdQx9EA0CTal8PO274JgRiGC8cJUdaJB7FG5/+d3eiEjdHraELnJAAtQZcqkD5 6EHHZg2Q3JnPZy2BViOKAdcsVqynueo= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2050.outbound.protection.outlook.com [104.47.12.50]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-CBTEhm7yN9aG0zVi1BDoAw-1; Fri, 20 May 2022 10:05:06 +0200 X-MC-Unique: CBTEhm7yN9aG0zVi1BDoAw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B28zIxLrZsB2gu0LnLZGARlzvm93bzMpCP/7tNaGHAtPXGsZAlUZ3hryjothOf1YUVHfIDuEXl3BmcWPeE29xuS++/YE5Yt/Zh3HZ/aey/VCEXIqYW3xKXpBQd1lk/jM9M1Ukpo9xkE0g1zedctsB4fuaP8YoR1gM7r20VUOl4ALNWIUzFnesHaZMf9rZR6qoHsuOGEjtggRL1VV9mZNRTKjNUChk7+klEWWQjRxcxsu/yy4I1Yqmzd6kAvlTklHVlhne01eqbjC9KkxSoKT4IZrVuZt41BYkfpslzJoPydRxKv3KVHfik38h8nSKyhTodbJ4uHFKd+the5p61lCKg== 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=abFsfmjpY9aNd8jqUMNQ2Y2EoA0F7dw6k7Hk61+OqKk=; b=BHxXlXy8qnTEr2SQJzAUjgJ3Kbo8c0UWYWJRzpTQ3o3NLI2VcIbpR+6FHcV2Uhv4JodFvyaHzh2NQwLQcZ9Hbkhu4sFdqETXU+As34NevtegjkwX9Eamsgp5crpV2Nn/c9FFICPdGCKPHFEtcv9ymgEoO0QxRfWhd9RLAsGy7IKSANHcmorY84ySrJlANcUFIopXXj6SpL2Mz0Q74XJ9fgnXL0WVnLPHrG6HW1SUWgNa+iBQMMLzvhjGLIpQ/URxzkp98kdeilN5Vx+cReSXUKzYAe9ew7tXgzSRlffsksrt5BATWNhlxJBukkzO8CygNEruxO+kzy1EmgwPEBEHVA== 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 GV1PR04MB9149.eurprd04.prod.outlook.com (2603:10a6:150:24::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Fri, 20 May 2022 08:05:05 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:05 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 01/10] Squash to "mptcp: add struct mptcp_sched_ops" Date: Fri, 20 May 2022 16:04:46 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2P15301CA0001.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::11) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f240623-f374-4750-92f1-08da3a3772d5 X-MS-TrafficTypeDiagnostic: GV1PR04MB9149: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: q2EHSVFDsh/3W8ML0imxInqiCTKZlxMt7r4FBtfsiVOsYILaGlpbYUpiWeGd0Q1EP/QbGPV2YczPGFVZSt/OEUWjKtyRF6VpYrY4pt+Ua0kjVJlO4f9Xo3qd3iGVFVkFMRLSuqmJKew93bkkwmu//O7oGheLEtlT2xvetakdcEyUxpvjZv21gm5zzUAA0aMwKavvvRdR51aTa7oUZCm04DlZR9pfh5y/OGMnnPe8bMUtXhTrAQLIRYqd8nENitCxZahx4S29q94eHS7j94egwP8CJVKywtmjhjewGYhJRhHyL9GNplaG56ucZvX3tAiPzvl7MTjgObvCSjomKUApctHVhEfPAD8CZLmNwOKzgyM/c8qAedS9QEjlaNyVLBZUjh4bZeBL0YNsh/r2Cm5zkUo2pCCh/GNOVIXDyNiEQwOEeq1LDHfdhc9jiAIp/MXGY3GDBcTosfr5Hoc3BuZZhFI1bp42Mmf6AyDIEBew5W62kW/91n1ASeGjnYYCo8ngZJ5HcbcumiVCVDv5+6orVCfUSDCm1ZYeA2wp0OB/10ZdAL4NeKExEiaXF5oYWL3qXL3imFCKAmQ7svIq4eio0LKMbNxiz4+BtM+CAQoLvDEYxUy572P6Tg94IG4qWZIoAoxTaqXuYg68E2g5+UO+e5yD2Hx2lllqtlvAgfFmf1BqeT2PkA1dUI4C2ld1fiXGtO5Nq2NIsQDY7uxHYGpmlA== 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)(44832011)(107886003)(2616005)(26005)(5660300002)(83380400001)(86362001)(6512007)(316002)(186003)(66476007)(4326008)(508600001)(36756003)(8676002)(66556008)(38100700002)(6666004)(66946007)(2906002)(6916009)(6506007)(6486002)(8936002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ixzP+H+sBlQet9jUdwZkV7SB18kfUed2784rdLqpE76WQpVZZEqeQnokON3w?= =?us-ascii?Q?pXHmh7E7xpFOBIrQ13LAaO5s7OHOYl2+4d52SouDvbv+oOiOPYsXzW1E03xX?= =?us-ascii?Q?ZwHuM9SYXalx3GiIopxwSvvzTnpnd6XqeE/cDj2e06rf+xx1nzoR1Sq1VISX?= =?us-ascii?Q?oEOJYR7kWWv2d3AP/tzM6R9iqvw8/LAbbSu+iNOILn3FMf3nNKouM4UJZ+NS?= =?us-ascii?Q?Pg8aEIItWO2AJPHc2fcXcKD5xmSLPLvmCsTpb5Sg17baXKDRkY8QwwPfL+Gp?= =?us-ascii?Q?mria1OdUdDpxGG+Hjuu/Qmvhz2bCA43Ff1vhXIfrK2kjcpBWdTnVxEvDbMA3?= =?us-ascii?Q?0vewFgrVmnDeyCcVHg+jBLZIt+CXVqacnQvI6Bnml2D5XJUssJUwAbBi1zPX?= =?us-ascii?Q?nGHjVixlJUfN73gH0D02UQDDScfAgqrcS/jKL/KADHOjAxMbP5+mXBJpbzay?= =?us-ascii?Q?fC4tiLqvKH4anPUxIUwEdNwSUBKgx0FI6mkwmB0AyO0oxa2+4CBheXWVHrZ/?= =?us-ascii?Q?NHBbsEoYfkYTF4LKuhJPQXZd96rLtlXtoehm9EFje3JUhxH3N6BIGR1Nd4W1?= =?us-ascii?Q?5yQqbsJ8+PhGWyP94Zq1Z7EIkncB+/NOsdoJXm/mEPpkkHIaGV8b0jnuTTmO?= =?us-ascii?Q?j+w9klykjaYIe2EIX+NHHyX84R3jiY/lke//iTRg8putEeH16i3OTf9Skatv?= =?us-ascii?Q?HOWssA/oENFYmiyzkQY5RehYR1T8sYFnfW56cJhF0ZrZB3sVQtdxSjLz4xNS?= =?us-ascii?Q?7EI+H8xmcau9DJPjmnG2chieoo/DOeyguCu0/enff1DHKCV8G9nQLomFOnyX?= =?us-ascii?Q?e3i1v1bNxybAAlheCtmlj/sQ2GlH8iZMpFLpVxHqEpUfwF4/t7KFkMYj4qgH?= =?us-ascii?Q?i8hGIpO8nN6cqG7JdSgnzryml3wdU7vP6pdCv0nTZv5DwGs+h9MHQs9bDJDv?= =?us-ascii?Q?bjdf7vs9USBC+OYHcdvEM/6/dnUhza6+Ad6/UeHoZWkMarw+Jg9edCExv6di?= =?us-ascii?Q?I1lisHU3TCwlDfPtrxTlwzlAKVdE07IkG2obA0Rdv4GdPlbvPAUPTTYI0o63?= =?us-ascii?Q?lfSeb+FO/LRHm99NhPfSTURmIDIIv6NN9uoL0XZ4SwVjtKrjby1+Okn16wk9?= =?us-ascii?Q?ReAn3xboVAvrVv4I71r/ttRZbcPyFW9zxoWeW5+Pw9T9498M16r9kw8p019p?= =?us-ascii?Q?5u8jCtqhqjgEPcBzFJOQ4BOquwHLvdXSrjezaYRuX+CQzH6hGU5n13tOUAtS?= =?us-ascii?Q?qiRy5Pvi0pyi2LVPxuUQ2YYF3aFDBPGDU2l1PjB7Mo194wLTJytZtXBxgoFO?= =?us-ascii?Q?viVFC5NuPgOpP9iK2mrTPrJ2JCwZupLfJkaZrNyyngMj2VbqC47Y8ERg1tt0?= =?us-ascii?Q?NtQSL74rQ5xOVc9p5vJJA4YwpxjG5bTokoIu+OH5gXru7BOqL5PZ6E4FWkAJ?= =?us-ascii?Q?yK0Hxx4pV1Do245KyV16EO2wxI4knTyrBkiKsvxM1o8hOzgIlRjNu4gzjdGZ?= =?us-ascii?Q?pihXFnwp4UkUogZKD+QhkM7D+VdvfDW0vONCnF5A0VGIGblDrBGJ/1ZYchKl?= =?us-ascii?Q?Ml7XxRpQWXQ/szJLXtCNd8gH0M7YAtPhVQMsGtSppH8uLjdSDl2vOdYrk4e3?= =?us-ascii?Q?B6F3nC+FHbgNvTuc2IyeNUkeRU9BOyF9d2I+qnpxeIjYXYCi/RMnXzTOZGGz?= =?us-ascii?Q?sHNoCFKfg8SEk/yDMDgEGf+j+UlOlDD2LZo/dXOw/wDwB608LhlmLx5lKBL2?= =?us-ascii?Q?aVURdOEzBK2RGF8TC0a13+vXGDamFlY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f240623-f374-4750-92f1-08da3a3772d5 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:05.2120 (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: ggCAqidbfZMa/Cd1wAgxDTWhfBgX1MbCIGzYhEdcbr/orrkS5UjX7X5DShyGim/XJoyM/6jPWX04HyiaZj/2nA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9149 Content-Type: text/plain; charset="utf-8" Use bitmap instead of sock in struct mptcp_sched_data. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 3 +-- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 6456ea26e4c7..33a44ec21701 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -99,8 +99,7 @@ struct mptcp_out_options { #define MPTCP_SCHED_NAME_MAX 16 =20 struct mptcp_sched_data { - struct sock *sock; - bool call_again; + unsigned long bitmap; }; =20 struct mptcp_sched_ops { diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index aca4e3c6ac48..60c8239f95ff 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -233,8 +233,7 @@ extern void tcp_cong_avoid_ai(struct tcp_sock *tp, __u3= 2 w, __u32 acked) __ksym; #define MPTCP_SCHED_NAME_MAX 16 =20 struct mptcp_sched_data { - struct sock *sock; - bool call_again; + unsigned long bitmap; }; =20 struct mptcp_sched_ops { --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562541pih; Fri, 20 May 2022 01:05:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzVk46l/ozUJdcGlJ3Ga18JYlp4U1wRZ7GM5vi4vPMXFNn1b76/QlzRW3DVXWhuyXilyyCJ X-Received: by 2002:a17:90a:dd46:b0:1b8:8:7303 with SMTP id u6-20020a17090add4600b001b800087303mr10167487pjv.197.1653033920197; Fri, 20 May 2022 01:05:20 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id u15-20020a63234f000000b003f5d8756675si9738645pgm.371.2022.05.20.01.05.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:05:20 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5413-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b="X/ae1mfV"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5413-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5413-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id AF7C028096B for ; Fri, 20 May 2022 08:05:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A997815DC; Fri, 20 May 2022 08:05:18 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 8CD097E for ; Fri, 20 May 2022 08:05:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033914; 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=OOLz9qxRWj+w4vtXRV5qNR6qndClNH0P9Q5geqlAt+A=; b=X/ae1mfVCVZ/MBsVDUFnGE8W1R4yyWU6wOxKDC8IkxJstki3KhMV9W4XcjoPub+yRrG1Oq C3+isUzgTpg+yT9mUs3m4r6YQoP7kJDOoKLi8eX1DAqwnORGjzIoWlYnRZ/hRtUHcszH0p HjyFKywcYUXZusvLgaAlNihWJItMS3I= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2053.outbound.protection.outlook.com [104.47.5.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-37-QvenGo2hPGqRYKwjTohzDQ-2; Fri, 20 May 2022 10:05:13 +0200 X-MC-Unique: QvenGo2hPGqRYKwjTohzDQ-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I9LymA2aLsK/8L+fqSE9BthwdabzHws/Bpy7AO8LMEPYFi+PVOXftEbNx8pS9zkk95j3srmMdm5HpKJswrjtOyWGCJlyluyEx0pD+Butabh3OV0Qu9P8St1k/V4A2AqK+NJW8f8ypQBlIFj4zwZAoLyjZC7x+gEKHkihEwS7Xppbw2L4zB7BLkCW5Bmhp6n3CVmni+HVqSTU1UomaTmoyzCpEc9NsibZNU9vSkWKnHnuYWazzZ6EKYcO4BVk4WZKvpFSIDTjHcRR8tT1lev+gpe49n577zYTjzDmxV1y/lwV9er90xledwhp2WICix9Q4PmLWDzxy1YerRYBgRUe0A== 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=xL1hypKQ2SDKz5u2hfz2a9/Qcx4V4t18rJaOOb7KE90=; b=DOgqBfZbyy3Sq+Qp+CDrnxKZfrVc3l+/99jANQNcr1Z1RpvDNnxC34CO5ZEgwKZCKfqhzdbOiS6uIfB+pTpiY0SjpZvAfOJJ5EjRjT3ZH8zuYJNnb0NSG1l1ffX/7Nnh4MmtNivvFKRH661G1ghgQ1J30wPgB2KnozbekC+D/GX50Y4kxFCCWyjWfgj2QsJWoKPa+n8hG+KhfxJIW6wFtYgUU0kLPQ+D/OdTCGnwzUWLSRxQz61j/e3wENoc3HAEeRJqkLCISzQ7jTEPxYZKvkDXCTxMrwwxiDgBU9TOqYFxQ15Y8Utw4lYXaAriymy+KaJICeeUk3v3umQwCy08ug== 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 GV1PR04MB9149.eurprd04.prod.outlook.com (2603:10a6:150:24::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Fri, 20 May 2022 08:05:12 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:12 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 02/10] mptcp: reflect first flag in subflow_push_pending Date: Fri, 20 May 2022 16:04:47 +0800 Message-ID: <0cc3ee67ddd49c3f6973a8c417b5551b8416fc47.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2P15301CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::15) 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: 0e01ffa8-1dc9-461f-bf56-08da3a377727 X-MS-TrafficTypeDiagnostic: GV1PR04MB9149: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: eOYuBvy65tf2Mphq0sgsRjtJIGHhzDn6cUQCllR1W93uJz/PH4M70kj4PIFJjEtPE1Sq9Aj3I8Pi3FdDeddIscE1//t8EJJlG+vT++JKWNUYV7SQ9DYZNd0IPlTZ7XXvKVdJqIl+4YPR/LRfC5PvLDa90j4tGOH48vbCejmAFX2Xn9Aco3+EoZVeYeIpKYEZ9or7FQKRNMlnZC3Q5TaKd3yAkrEkZT/bLhSbn04fH6Mjjs2y4R4msrtOEwgQM456zjZcwuF6wzTK6kynkiKNHmabVKomg9odDoyTeAQifTO6edYvzTHYQY2BKxocwwV1TSXK5Cdp+Ztus57BsXjNauscJB7hZLFL6aayicvTZeA7FNWOKeizrX8BgzKkwjOZrtCO+kxY+bivDWIS1h2qnTwT1mddat1Qxjj6qz17xG7cMl4+mMGVbmeUCURY0zbM7oJwKHNjfwm27qF1NyAgFXP01rCaSuqouQGYgO2tYI0zMt2cQ00pMjzK7LGqXYtENQdumhlMfsrOzxRA9wIPxZ9cqHksQashifTxVjFKRxD2mta/Jzdn5WsBk0JOdBclqMRGloZP83ra+5Ky4IJkpKAXE8jvqsUVIN3ktVsz67/TijFP+BdBCn3kFHSgGGscfSFx10VMnILTZKSaYcHZCQQoWwdeZua8Y3GlbQntkSRCa4nUBRO2CD2QjRudHHr82ySNFU6udcq5LgCWRBu4Pw== 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)(44832011)(107886003)(2616005)(26005)(5660300002)(83380400001)(86362001)(6512007)(316002)(186003)(66476007)(4326008)(508600001)(36756003)(8676002)(66556008)(38100700002)(6666004)(66946007)(2906002)(6916009)(6506007)(6486002)(8936002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NzkLqew1/onpbqgXGPrK9eOL8FVQxGLdf6hw4h1GzgXf4zP6rIjh5L4QWKzQ?= =?us-ascii?Q?06jwqxx3RUeM0yw2dc0dAsjdeGhJjPvwFHO8y6hNBuqYi0bDmp6kjbm2bWdF?= =?us-ascii?Q?L39GNVgknB84VFSd41reK1mvq8FGPpbX4XZDtSxtkGbb2dkKdi0VtI4rvBNn?= =?us-ascii?Q?bMUX8wN0URgjzworDZdS9RZw7gIwwN1W7HUaoO+3G+DQTv4GbQPJqyla62u/?= =?us-ascii?Q?RnjN06aiSsaByir5DSeLYEwE0G6zkSxOheIq5hnT2hxsdVNHm225dXAbnGPK?= =?us-ascii?Q?Kcha0k5CPovTzQrCk+BiTXwgMY4wFU3LZyLnN16u37t8CwDxDGuSNhFds5Zd?= =?us-ascii?Q?rbB44BTUVfH4A+J2+UOny9vmcaEX2B256ssqSRdzDyBq4w91YWtIwkac0KWG?= =?us-ascii?Q?zSpW10pB6LEAqqhyc4DDwQbp/6cxBIqBRdqk5oKjATfE0HJp8nU+RL2nSYn+?= =?us-ascii?Q?W4rsCdUehaHg6wQCDZ146DILIAALHPKl3eVadXRvtgeSYxZ+MZcxEA2Vc3T0?= =?us-ascii?Q?zqPOv2mFQwLT/A2lvMAFAntASPYpjs4K3k70MK6A6O+KTmfAQ8ANZtSl4e/2?= =?us-ascii?Q?PFG6a46/acswgwjABTF2BY4o8JyCcmFINCfjr5vD2T0oJQ5GLhauoGlmAS6P?= =?us-ascii?Q?eoGApsPqxUk4EQTm2YwEo6Sfzrt/mHcorvigOpmA/0GzOzEi3nZZGYOvi/ox?= =?us-ascii?Q?a2C9V1mvek7/c5UA+Jaa50C81FGMlxpgfxruGCVFjy6V+w9PislN3yEDZDwT?= =?us-ascii?Q?2PJN9hGyI17+o/28a6IhmsX/WP57AtL/jjknI8F2lyeVuJg6cGMS1rSCQUjz?= =?us-ascii?Q?H/G0GbzZ8W0zKLi0mF6rF/Nw7jkXOK1s8xWeonSfJS/jxORslbl9wwKyQDoL?= =?us-ascii?Q?S6w7ex297zyEYxaQ8J5jZAcZSKvtGek/K8o32vOTtioVUyNIFmYXMkXqwI9t?= =?us-ascii?Q?rnweZo3llEiJxYGjxXtrEl/Rkrxr3QF6szdYSH+7GnNXLZZQUNJOOIuop1xO?= =?us-ascii?Q?QbbKTfACSnlstCporvHSjAYJjiKbiNeL/gAhl22l4VbjToXgLEg2fo2r0b6Z?= =?us-ascii?Q?w7Q49vhlQCFf/nSqFgost1Bxq5YSs1rW358YvOhHb6a3b4HggugAnFcZ1nYe?= =?us-ascii?Q?AVnNiOikfqoXpDnPfLbBlZ4VWv01Gqd0HVRFIEJsRiZZMcBFKB/AtMviM95S?= =?us-ascii?Q?UUCxU9Aq+CJaC2IgzY9NA8kSjrnRyQLyS9+dbi3w5alHXraKalzrtWsJjxkN?= =?us-ascii?Q?IjlQ1D5JpPFVUUYEvPYA8N3D1Fpjw5hQ9kvEl/R6HqHrlntPFvnBs1tTbnBS?= =?us-ascii?Q?dsZpf1/vCg57Z3lSz7Vx+GFLGtHPvAykddmXT8rRasBAZp71eJgrm8cnuhsc?= =?us-ascii?Q?wNVr9Uu0GNjqndTomWWZnGGMRitgAZwJwa5l29OAaXCOm8Sqpow8iSYBYquv?= =?us-ascii?Q?ncX5MypZUJ8MWK63JghTw6AYBpBzQ2aUjEA+qT9pBs6Evg61ul9Ahtfg7tNn?= =?us-ascii?Q?xAlwmgOaPmoc0VwjdSbYNiGnExzikZQNDOxnkG0zAkhMEhBLDeY0oVg7t/9Y?= =?us-ascii?Q?9NP+LjhxZ2VOsFexTwSjQ85nXk4Cenxp5mgOU4fEKfEk0Q+4iIrMiDK5wD9o?= =?us-ascii?Q?GaNmZHwu+3ey4q+qkgsYtVCN2NeKcvgpTJfU25+mgdY2uU52j+aI0Va9BvMc?= =?us-ascii?Q?Fe2/QKywN0v++KhaF+ZImUUGUUaMeWAdryOh7LIHHEV4IkhNP3rEMlEP2+uk?= =?us-ascii?Q?9geU0jhTS4P599ElA9hk07Svx2ssUSs=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e01ffa8-1dc9-461f-bf56-08da3a377727 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:12.6177 (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: YISOtv4zoBDsi6ItrHAMXhofCnj01cST1hw+Af/nxZIrfQ/0Cf2m8a6Ml6yZv0owRygtupysz8f1SIHun5vAVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9149 Content-Type: text/plain; charset="utf-8" This patch reflects the first flag in __mptcp_subflow_push_pending. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index d6aef4b13b8a..96cf1620348b 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1634,23 +1634,34 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_sched_get_send(mptcp_sk(sk)); - if (!xmit_ssk) - goto out; - if (xmit_ssk !=3D ssk) { - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), - MPTCP_DELEGATE_SEND); - goto out; + if (first) { + xmit_ssk =3D ssk; + + if (!xmit_ssk) + goto out; + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + goto out; + first =3D false; + } else { + xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); + + if (!xmit_ssk) + goto out; + if (xmit_ssk !=3D ssk) { + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), + MPTCP_DELEGATE_SEND); + goto out; + } + + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + goto out; } =20 - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - goto out; - info.sent +=3D ret; copied +=3D ret; len -=3D ret; - first =3D false; =20 mptcp_update_post_push(msk, dfrag, ret); } --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562634pih; Fri, 20 May 2022 01:05:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxNN7/hZCs+ExDreQzVrNvkdukAllx6+PBxV2jTCaU5/dKB813oGPLRYl7GPmajkExcgDJ3 X-Received: by 2002:a17:902:8501:b0:15f:173:40e1 with SMTP id bj1-20020a170902850100b0015f017340e1mr8645366plb.74.1653033930695; Fri, 20 May 2022 01:05:30 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id i7-20020a635847000000b003aa6731b2c4si9243931pgm.581.2022.05.20.01.05.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:05:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5414-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=kGZr71Qy; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5414-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5414-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 43C8C280940 for ; Fri, 20 May 2022 08:05:30 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4477F15DC; Fri, 20 May 2022 08:05:29 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 1E0F87E for ; Fri, 20 May 2022 08:05:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033925; 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=GCwn3UG3LDI8fytH7NumMuuX9pwU5w9E8/hto5cI6vk=; b=kGZr71Qyz5pIxf5qV774PyOyF2dyTOsg2FcoAphvL5jzcQrpj259+Y0JLGpex8GSLFUEHq a9GCjhdwzXOaG19hMOTjGWEb7SeDX6ReD0eF0rlE6y5sV03pGuj853y47e/D53U/EyAgqv PvD0jNbNmis9RwfPJaOV3gcC3uS+UQ8= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2053.outbound.protection.outlook.com [104.47.5.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-R3hQSR90OCaW_rvR-4wa8g-1; Fri, 20 May 2022 10:05:22 +0200 X-MC-Unique: R3hQSR90OCaW_rvR-4wa8g-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d9zxnLgo9AUO4yWzl81q+f3EE94Kc84022IiBJ733/w5xvRxNNWA4EgJDF0cx/soLR5WBJY/f3DPA6pZnWwUz78/Q0/Pkcb5N/JvnVPQ0Nm5BfAxQ6krYOYCvWz8wInzQIhcmQxxBZv+c5zssS+8nM26tzOt8yWMMD5THaP6Zd4TrE3uZtEN/jTP6Wjfy3MFK/qXGhXXGehqBy+xJqtyZ+hhdVVG4j4GxhqsRL8gkhFi0LBgnbdMr8YaoiGnQqz474/zSBNBmJcFS9Nl0TcClVQU5ZxpfBr0NoGvvQBgAeIQAlQAcw8areV5dRhMAYTC9f5A+XOn0GWD5vAI4LEcug== 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=cj6HEouHYnpd1KdfG8zt76H+J8qzFGGukUEdyX1m50k=; b=TgmUV1Djz8kpY1kuim1N9HXNK+UjBkIvmb520irSk/np2MDQJKNhA29c99GEhwZOaApcJhxILp3+0R+pA+YQdewmwHBpgeK3gShxEehoYfMruoUA5ew5OCEYPSmVEi0zrVYMAqVJuVpa6U3nzID4x4VdmJbETU2043zG9S8gy0lzSN7/5IDMRjGnRGrj3Y0hdovs/PNEHMdqzO0fDxQJs7UMIJdrtSX9df+Z4voI83dRdkh3jfjoxX8E9xInhZnZAJoo+LuoAGdnyd2Dx4JnWA7J0xi8uVx7kgRW5XJEEuOM4tbgv5g58ltzNYXX+L28SB/vURUBgNz/wtqVm18oRA== 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 GV1PR04MB9149.eurprd04.prod.outlook.com (2603:10a6:150:24::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Fri, 20 May 2022 08:05:20 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:20 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 03/10] Squash to "mptcp: add get_subflow wrappers" Date: Fri, 20 May 2022 16:04:48 +0800 Message-ID: <727a87da10932296150becc361b48b60b43531f4.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR03CA0057.apcprd03.prod.outlook.com (2603:1096:202:17::27) 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: 8ad17a64-b9f3-498a-7f22-08da3a377c12 X-MS-TrafficTypeDiagnostic: GV1PR04MB9149: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: eHWoOkiSCge6bfmRA2dAEyZzzVzgVvybclYcXoKFNN9zyFaq3hp3x5ZmNXHkgn+xiLypV1KrCpLqwXdRhUBbk6q4yLwCCetoL2RO4ZNUJNiSMflKxD+BMGOnIxfSfslBjX/qFQYBqFnUFhUdAWsuGCH+ayRE8DmWV+mAA5Cq+UTy1I7zWjqtYsMbZwM++nuhiABwVFqCvBNXyxCNoxjjh5iqDtIrcMqMlhhZ7OKC47pEuW0KEJooqVyt5Z7B6t/Wd1eV5z01QDgmV01OkBEEQ+y0xXo2KO3f8kFJ/aXou3dxdln49Vh+/MxC2W+OXA33SgedKwJ9cy94tXP+L4uFhNZihHDDHhhP361MhdcU+SdT2Giq/UNcb33h9iegqO57DDsi7/iudWz6vvs9NbwtfJuf/Ho6wYSbDPWBQ/tNTxKTyg17fRZY6yNN/Uu9oqHTCHxmHekaXASK9w7hRyLDSmZOYddfXC58rWnqop1Kd5NTHzdJKybE8kVnZ89xVhfuCbA/Q2UMr+w1knp9kkmLJSlaMLXn8ESzhZOyfQTxVxq3gsJnGCQF6F/mpAP5YzKJBvyumpL2RkzBbocux9xzygJlgQbWjS9m39Z7UgBWLvuJg17sNxDnczqV4Rk8Dj4IGyYAT9XfrB+4Dwhv11E/7/6pqS8ctLhMylyMiJu/h0Kn4TypgFtG0yfjp3ynE9eF/LKazcXTL6ajeVAOEDZWew== 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)(44832011)(107886003)(2616005)(26005)(5660300002)(83380400001)(86362001)(6512007)(316002)(186003)(66476007)(4326008)(508600001)(36756003)(8676002)(66556008)(38100700002)(6666004)(66946007)(2906002)(6916009)(6506007)(6486002)(8936002)(30864003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aRB5hH9wq5xhRrTvCZYKYA4wwi/SXCK9hw84hEpyEjfoejsFHX6vziD7V9Jx?= =?us-ascii?Q?ZFkqdRPh5FMCcyuXlMzZBxN/8BXpmBvQV562vBK5tkxJjdXpYSb52UH3PFIJ?= =?us-ascii?Q?iTOW6FHXW9p91trKRbrJWxa+FdRsvA3mFqeyKYm0kl3jzqjwaBxrKfp6zl+A?= =?us-ascii?Q?ZzLB+RiSJhoys9QyiAMQA5AO7AF5L3EKkkKk8ys8kFrHQ3y3HPbVC9zoOxS8?= =?us-ascii?Q?+k3E8N3F7/Ba+/tnz5TxlcJ0GwM9WD7nLLfKa2Z8Nbzm6itBJ1VaFuJjXSbz?= =?us-ascii?Q?jSssNMCXsZfdauECdIRJFONKGorcVw3DzOTBkWtdUm2etLEMULrsjRNNiwJL?= =?us-ascii?Q?1gGqLSg6GmzcsV/aGDHDzPlTSvgJtQidUldrl4WOJQeS39b2Q8yLOVgzNv9e?= =?us-ascii?Q?oscefSjG8d0O0PnArFL6Wa6i2VBdpA0q7utVJJycDtUeny6hDZXiP6mA73mF?= =?us-ascii?Q?2TTxaNqhpnnF8XKqSOFqhK03/tWo5mRLgQsjNBHRX1PaLA0dOIviYmwvarmE?= =?us-ascii?Q?ViyXx24wfGkidJdOF+KfXlwj5vrfMRJMQFcKchGMF7w+qisBDaWD+UXUWpkK?= =?us-ascii?Q?6cqhL2WHHFkTR6RurgQGbA681XYXbtgCUm9DkbP6t6k2p3EyGbMkihAQxJGL?= =?us-ascii?Q?n/Qhj5PQzw2gzX/32+ZK8C8kiLRKhON401Ai1qbG1+mNTVm8OWTGqwSj3zzT?= =?us-ascii?Q?VHTlgGPqaVmaU+sgyE4W/LRtqupnDkJ7H6oW+msTtBQmPy0u9MX4Vrpf8pgO?= =?us-ascii?Q?YpKGnO7XEUMEcbAl61EXtliDVl9uPXRON9Rqz/DnRoA63J90phEK9nnENb4q?= =?us-ascii?Q?UnZFnniKcvMHT3BhT4idLil3iobyx0M/UqZNtWbQ978jNsC7CCDP9RQYtvpf?= =?us-ascii?Q?jR3IpjsE19llebo9S+NXucvi9npWSh3ZN+efQe1WdA3DInsl9GMC07nWczzp?= =?us-ascii?Q?kKVhtyUmjGhgfbvBHTup09Isnopwecw+gh8qYKiHE75yPWfDkmem6+VOLJ/c?= =?us-ascii?Q?L/oCa4Si/MYhOxopXigOnSz8+/aoe5se9MNJk1h8sCFhCPnPEhruuSzxOwzh?= =?us-ascii?Q?4ZiWwfpHMa+uhbQGM46Hl65s4gEvFe18pPu2YJxPtoYVJI1dB/5cigd3uaAI?= =?us-ascii?Q?0UgqH4OPrOQs4PpvWCKsJPoI+Tw3xa3+YmUissg2uxIt494op/McjtSP7xZb?= =?us-ascii?Q?Qv5BOmcTfF+Ds5o2VLBDFGrvdkuSpekZuMDgKE3XV7ZbUE4ZxFaOl8FyGnIe?= =?us-ascii?Q?1UC3zBQgrgJDizovLIlTPpX4Rk3GGRHjHYUKWbDFGYqixCO1a2TBqvpGhQWI?= =?us-ascii?Q?hOkdNTwa+RnK1jjoS4A4x1EssFGPoBepLQnfSirODGIBPyMT0dK06j4XOwRL?= =?us-ascii?Q?yYIINkLZhtESjeQ5+p7eRW8RkZohnsyX2MPnlELg96FYYfFk7aeIY2y27BM+?= =?us-ascii?Q?bZNDOKIGNZXkV88OBMfDfj/sP3JeIQCzL9HUcu+lHWz5cNQ02d2JOr/AT9UY?= =?us-ascii?Q?whxw222x/BJH7cnNSbLlVAXsQ6Ivhv0TRZoYuPq07RS23Sk8jkvKXL5vXQpJ?= =?us-ascii?Q?ol2BMy01X7ZK/GBo/fmBKK8nbliWvRQDRhb/uaKnK6YPrcnPZQ7xujmss7ws?= =?us-ascii?Q?WnE35Tocn2QdAlyTClCigDC+WFV+kBkvhOe+6orOXvRx51sI8CjT/33Md5aK?= =?us-ascii?Q?aP6z8nq6Rt6CqHcOD6pj3pW9Mw8gUTrgmYFRPQ0s9EFZVEdNWFnQ/kH2yAth?= =?us-ascii?Q?hr6N+M5WleA9YcPl3Q2B8aCVxEeJMss=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ad17a64-b9f3-498a-7f22-08da3a377c12 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:20.8045 (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: hnGgZIo9As99IjJ/6uTZOii0tW9JptjEOYflmQQIj3IifI5p2iBiPKF2hliGwre2eUZ8jRiw8o4R49tc0GoHtQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9149 Content-Type: text/plain; charset="utf-8" This patch adds the redundant subflows support, sending all packets redundantly on all available subflows. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 192 +++++++++++++++++++++++++++---------------- net/mptcp/protocol.h | 5 +- net/mptcp/sched.c | 78 ++++++++++++++---- 3 files changed, 188 insertions(+), 87 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 96cf1620348b..274818480a36 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1564,37 +1564,50 @@ void __mptcp_push_pending(struct sock *sk, unsigned= int flags) info.limit =3D dfrag->data_len; len =3D dfrag->data_len - dfrag->already_sent; while (len > 0) { + struct mptcp_subflow_context *subflow; int ret =3D 0; + int max =3D 0; + int err; =20 - prev_ssk =3D ssk; - ssk =3D mptcp_sched_get_send(msk); - - /* First check. If the ssk has changed since - * the last round, release prev_ssk - */ - if (ssk !=3D prev_ssk && prev_ssk) - mptcp_push_release(prev_ssk, &info); - if (!ssk) - goto out; - - /* Need to lock the new subflow only if different - * from the previous one, otherwise we are still - * helding the relevant lock - */ - if (ssk !=3D prev_ssk) - lock_sock(ssk); - - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) { - mptcp_push_release(ssk, &info); + err =3D mptcp_sched_get_send(msk); + if (err) goto out; + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + prev_ssk =3D ssk; + ssk =3D mptcp_subflow_tcp_sock(subflow); + + /* First check. If the ssk has changed since + * the last round, release prev_ssk + */ + if (ssk !=3D prev_ssk && prev_ssk) + mptcp_push_release(prev_ssk, &info); + if (!ssk) + goto out; + + /* Need to lock the new subflow only if different + * from the previous one, otherwise we are still + * helding the relevant lock + */ + if (ssk !=3D prev_ssk) + lock_sock(ssk); + + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) { + mptcp_push_release(ssk, &info); + goto out; + } + + if (ret > max) + max =3D ret; + } } =20 - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; + info.sent +=3D max; + copied +=3D max; + len -=3D max; =20 - mptcp_update_post_push(msk, dfrag, ret); + mptcp_update_post_push(msk, dfrag, max); } WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } @@ -1628,7 +1641,10 @@ static void __mptcp_subflow_push_pending(struct sock= *sk, struct sock *ssk) info.limit =3D dfrag->data_len; len =3D dfrag->data_len - dfrag->already_sent; while (len > 0) { + struct mptcp_subflow_context *subflow; int ret =3D 0; + int max =3D 0; + int err; =20 /* the caller already invoked the packet scheduler, * check for a different subflow usage only after @@ -1639,31 +1655,41 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk) =20 if (!xmit_ssk) goto out; - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) + max =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (max <=3D 0) goto out; first =3D false; } else { - xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); - - if (!xmit_ssk) - goto out; - if (xmit_ssk !=3D ssk) { - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), - MPTCP_DELEGATE_SEND); + err =3D mptcp_sched_get_send(mptcp_sk(sk)); + if (err) goto out; + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + xmit_ssk =3D mptcp_subflow_tcp_sock(subflow); + + if (!xmit_ssk) + goto out; + if (xmit_ssk !=3D ssk) { + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), + MPTCP_DELEGATE_SEND); + goto out; + } + + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + goto out; + + if (ret > max) + max =3D ret; + } } - - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - goto out; } =20 - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; + info.sent +=3D max; + copied +=3D max; + len -=3D max; =20 - mptcp_update_post_push(msk, dfrag, ret); + mptcp_update_post_push(msk, dfrag, max); } WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } @@ -2455,16 +2481,17 @@ static void mptcp_check_fastclose(struct mptcp_sock= *msk) static void __mptcp_retrans(struct sock *sk) { struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_subflow_context *subflow; struct mptcp_sendmsg_info info =3D {}; struct mptcp_data_frag *dfrag; size_t copied =3D 0; struct sock *ssk; - int ret; + int err; =20 mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_sched_get_retrans(msk); + err =3D mptcp_sched_get_retrans(msk); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { @@ -2483,31 +2510,45 @@ static void __mptcp_retrans(struct sock *sk) goto reset_timer; } =20 - if (!ssk) + if (err) goto reset_timer; =20 - lock_sock(ssk); + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + int ret =3D 0; + int max =3D 0; =20 - /* limit retransmission to the bytes already sent on some subflows */ - info.sent =3D 0; - info.limit =3D READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->al= ready_sent; - while (info.sent < info.limit) { - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - break; + ssk =3D mptcp_subflow_tcp_sock(subflow); + if (!ssk) + goto reset_timer; =20 - MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); - copied +=3D ret; - info.sent +=3D ret; - } - if (copied) { - dfrag->already_sent =3D max(dfrag->already_sent, info.sent); - tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, - info.size_goal); - WRITE_ONCE(msk->allow_infinite_fallback, false); - } + lock_sock(ssk); =20 - release_sock(ssk); + /* limit retransmission to the bytes already sent on some subflows */ + info.sent =3D 0; + info.limit =3D READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->= already_sent; + while (info.sent < info.limit) { + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + break; + + if (ret > max) + max =3D ret; + + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); + copied +=3D max; + info.sent +=3D max; + } + if (copied) { + dfrag->already_sent =3D max(dfrag->already_sent, info.sent); + tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, + info.size_goal); + WRITE_ONCE(msk->allow_infinite_fallback, false); + } + + release_sock(ssk); + } + } =20 reset_timer: mptcp_check_and_set_pending(sk); @@ -3118,12 +3159,25 @@ void __mptcp_check_push(struct sock *sk, struct soc= k *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_subflow_context *subflow; + struct sock *xmit_ssk; + int err; =20 - if (xmit_ssk =3D=3D ssk) - __mptcp_subflow_push_pending(sk, ssk); - else if (xmit_ssk) - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), MPTCP_DELEGATE_SEND= ); + pr_debug("%s", __func__); + err =3D mptcp_sched_get_send(msk); + if (err) + return; + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + xmit_ssk =3D mptcp_subflow_tcp_sock(subflow); + + if (xmit_ssk =3D=3D ssk) + __mptcp_subflow_push_pending(sk, ssk); + else if (xmit_ssk) + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), MPTCP_DELEGATE_SE= ND); + } + } } else { __set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->cb_flags); } diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 8739794166d8..1ce01db60b7e 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -461,6 +461,7 @@ struct mptcp_subflow_context { send_mp_fail : 1, send_fastclose : 1, send_infinite_map : 1, + scheduled : 1, rx_eof : 1, can_ack : 1, /* only after processing the remote a key */ disposable : 1, /* ctx can be free at ulp release time */ @@ -630,8 +631,8 @@ int mptcp_init_sched(struct mptcp_sock *msk, void mptcp_release_sched(struct mptcp_sock *msk); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk); -struct sock *mptcp_sched_get_send(struct mptcp_sock *msk); -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk); +int mptcp_sched_get_send(struct mptcp_sock *msk); +int mptcp_sched_get_retrans(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 3ceb721e6489..207ab422ac5d 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -91,51 +91,97 @@ void mptcp_release_sched(struct mptcp_sock *msk) static int mptcp_sched_data_init(struct mptcp_sock *msk, struct mptcp_sched_data *data) { - data->sock =3D NULL; - data->call_again =3D 0; + data->bitmap =3D 0; =20 return 0; } =20 -struct sock *mptcp_sched_get_send(struct mptcp_sock *msk) +int mptcp_sched_get_send(struct mptcp_sock *msk) { + struct mptcp_subflow_context *subflow; struct mptcp_sched_data data; + struct sock *ssk; =20 sock_owned_by_me((struct sock *)msk); =20 + mptcp_for_each_subflow(msk, subflow) + subflow->scheduled =3D 0; + /* the following check is moved out of mptcp_subflow_get_send */ if (__mptcp_check_fallback(msk)) { - if (!msk->first) - return NULL; - return sk_stream_memory_free(msk->first) ? msk->first : NULL; + if (msk->first && sk_stream_memory_free(msk->first)) { + subflow =3D mptcp_subflow_ctx(msk->first); + subflow->scheduled =3D 1; + return 0; + } + return -EINVAL; } =20 - if (!msk->sched) - return mptcp_subflow_get_send(msk); + if (!msk->sched) { + ssk =3D mptcp_subflow_get_send(msk); + if (!ssk) + goto err; + + subflow =3D mptcp_subflow_ctx(ssk); + if (!subflow) + goto err; + + subflow->scheduled =3D 1; + return 0; + } =20 mptcp_sched_data_init(msk, &data); msk->sched->get_subflow(msk, false, &data); =20 - msk->last_snd =3D data.sock; - return data.sock; + return 0; + +err: + if (msk->first) { + subflow =3D mptcp_subflow_ctx(msk->first); + subflow->scheduled =3D 1; + return 0; + } + return -EINVAL; } =20 -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk) +int mptcp_sched_get_retrans(struct mptcp_sock *msk) { + struct mptcp_subflow_context *subflow; struct mptcp_sched_data data; + struct sock *ssk; =20 sock_owned_by_me((const struct sock *)msk); =20 + mptcp_for_each_subflow(msk, subflow) + subflow->scheduled =3D 0; + /* the following check is moved out of mptcp_subflow_get_retrans */ if (__mptcp_check_fallback(msk)) - return NULL; + goto err; + + if (!msk->sched) { + ssk =3D mptcp_subflow_get_retrans(msk); + if (!ssk) + goto err; + + subflow =3D mptcp_subflow_ctx(ssk); + if (!subflow) + goto err; =20 - if (!msk->sched) - return mptcp_subflow_get_retrans(msk); + subflow->scheduled =3D 1; + return 0; + } =20 mptcp_sched_data_init(msk, &data); msk->sched->get_subflow(msk, true, &data); =20 - msk->last_snd =3D data.sock; - return data.sock; + return 0; + +err: + if (msk->first) { + subflow =3D mptcp_subflow_ctx(msk->first); + subflow->scheduled =3D 1; + return 0; + } + return -EINVAL; } --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562669pih; Fri, 20 May 2022 01:05:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx48FEpxU1CR06wYJxVM2bsIk7XninOlMWGoUTiiR/FSadoHXoTfm9Vt4F5umkC1S6e/p4U X-Received: by 2002:a05:6870:c14b:b0:e9:7ac2:230a with SMTP id g11-20020a056870c14b00b000e97ac2230amr5177607oad.264.1653033935412; Fri, 20 May 2022 01:05:35 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id x24-20020a056870a79800b000f1fe5f6ed2si1739455oao.264.2022.05.20.01.05.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:05:35 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5415-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=jZHnXLzi; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5415-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5415-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 359FF2E09D8 for ; Fri, 20 May 2022 08:05:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E851015DC; Fri, 20 May 2022 08:05:33 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 037A77E for ; Fri, 20 May 2022 08:05:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033930; 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=ZpTxnqAxr2DMfU5jMx7UoxMmvokrc3T6UrAPXTKE9wY=; b=jZHnXLzikWi6dTSPtFtz+cCj+YbIzbtuBAOyu/KxQxLCd+Blypw/o9pEFXRjnIh/DWeeSC TOHOGm9fBdkAazNXj0VId81Ns75ma/nOusipnUTWz++yeJzldnu9hX6wiVaMU2FPEGzjWg +K/FehQZjDABrcyeEQ1ZBxBR0kCQZtM= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2051.outbound.protection.outlook.com [104.47.5.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-7-JAFNSzWLNbqHBOrSJkP2Bw-1; Fri, 20 May 2022 10:05:29 +0200 X-MC-Unique: JAFNSzWLNbqHBOrSJkP2Bw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jQyZ7WkowE8YZFFL50T2b5DJ7qggDBzbW/E53iiIchdCczQo76dKhIl9OYDgMDxajpmSWQS/WD5fkqyG7PNuOEgf2m5jHnEDuzYR4el1TZ00IQ+udK6r95XQpAO/7rYEiTnulmExCKuC3uOFN642XIPPn5eqcinQ8H/ICzfNTlLdHac2UActPR2F0V4detyvlnZvnGtwvi/tz5SEYmIlw8VLm6Qs2CphSXO+mQbKwVJd5bB2yNeJ80GQbg1GJcycbAWygxRLbtnEqxFnaoyFG8Ta11Tym2VZj1MRv3W/Tx4ZdX4zpbFKgVKw7wxaTCLl/YmNu7ofcH6L8BO0RzQtMA== 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=3tXnxEUZalbpXTV5jrzSrWL1fHrELnu91R8zabAc/+k=; b=k9qLXbz+9S4tYmtvBO+iv1HltL0azWpE1qpP9Z0Jjqr9LozuZn8mLHXI935+f4DBM7wmR4r/L8vFn1oQeCLEubUGAO2uukEKiGl1Pzw5Sris6t055uIe+oG5bCQMnCoPGjMBW75xul7q91wpxTWqSe9bSjye1UzgZ+IGYQrQk1TG1kjGnpfZFlrx9NUuRnnbzdkjXCHx7Nt9FlEbdyFMz57M5PmSDVaknyrPbq315uyohax13tbTGeWTrkjfcUXgsXZSeP+pQRb9eBTV4Vb0/gu3vfXBdmlBadfl6A0KXF8rJPa3eafXaWIfyXNFYKUsSyLOsdAZ8ToKEGRFtkzy7A== 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 GV1PR04MB9149.eurprd04.prod.outlook.com (2603:10a6:150:24::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Fri, 20 May 2022 08:05:28 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:28 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 04/10] Squash to "mptcp: add bpf_mptcp_sched_ops" Date: Fri, 20 May 2022 16:04:49 +0800 Message-ID: <6fd9a8cd42485823f673d6dbae701dad45fb4dfa.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR06CA0023.apcprd06.prod.outlook.com (2603:1096:202:2e::35) 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: b7c5be29-6fea-493b-92e9-08da3a3780ae X-MS-TrafficTypeDiagnostic: GV1PR04MB9149: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: SQJzF1grYueZrI9NKmdzYOuFjULKoPVSasqjiMMGubchy5b6lAxTNiux1GVJujYbwH4lbSSXlQb4RmhVBHbqQWnAudX3PqxO02Sju3fDm5ckd5PfLpv8tJOH7KAfM7aWSN0HGJHg3hrCbiNdxUZcnKgmSxCvO65YE4Os4b4tyqJlbHynRavMXLyRWrL8CTTNShXud/6+kUVg+dMBw6OHwcYOYKjYbBKKvcwWGMAIf1+QtOuPwMUvMeGKhj1EWtI564+/rGLabbFHqbCI8a+DRcmw1z7LVR6luBJHFA7cKxxR8KpAL6iCX7wbybHiWDP535NiOqO8Hh9VToG8Ayu3UVraD7ddh0uOaQmuaxyUdWKtKc39gAM8VJ0nn6v/57HirWl0fm1ml7jhlXAlthwRHYWmpbEZYSqyvrcSjIyofPyXnU3sYmTBM38R/GgUOSBIr8ML109lkWIYKw2Elduxxb5cLdE3s+Yk4L6kwp2SKuYYLrtAlifzuMAVwwDO6JEWWJCuTE+q2jMgB/vpjcnJ/Mb8KjebVTiwN+ZI3gAaG2yxcYwDApecIOaN8rWhVnFudAk2LoTFIqi0s/0eimW0cybhJCktwJloP2Fy4GDTLOtlL2uUs6/+5f7DigzTspN5Q/G+uLzmNx8wovcQrifH0Yu2+oMU0SymU3RCsFZCD0DUMbkgHbPS/Q6e4dnEm6raAIbA7gjbZHzk3JH/tTW/0A== 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)(44832011)(107886003)(2616005)(26005)(5660300002)(83380400001)(86362001)(6512007)(316002)(186003)(4744005)(66476007)(4326008)(508600001)(36756003)(8676002)(66556008)(38100700002)(6666004)(66946007)(2906002)(6916009)(6506007)(6486002)(8936002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OP5sXBXWCsQWVTB0evdVjGxTcVEN5pto26E7V9kD2Ps/Gq/HkpjoPXNiasSE?= =?us-ascii?Q?UC39VoeSL+l9Mo4rMwJPNJuR75eWIjMwewqSSYEMNXTCJwKpWtK4ybAAueG/?= =?us-ascii?Q?1+s8RwHK+5Yv+d/i5AyM49y+Kmw/CjOw0bTZ7k+P8YhxOi0RMgMAB0/+UqjQ?= =?us-ascii?Q?vlzx0qOzgVxZ7SHiiL+kggfwB2O+wRDeRPynBTXXCWTx2+LELEL/H+fy79m0?= =?us-ascii?Q?SPYPUYljKN7mSjfImivoR2clhzVampAELthJMkiCDQJ20ht/qgUoulcymGhD?= =?us-ascii?Q?4JZuVC/S4KjoxkwXgaM4l/8sY1doB7UV7Hlt9lzTN7veugyaVFEznrhxlI0i?= =?us-ascii?Q?hh+gOIv56MIQw61mLRTvOL2K2vIjWdjovDLhAvXoI/ymdvsqIngAqeT4n09j?= =?us-ascii?Q?c0jnYigVnDVT+7T/d0hra9zxj71n279N+70xub3q2bHswNgdD99MBkhS7C+l?= =?us-ascii?Q?LHmlzjo6EbkUexOis/FdLuz8H3gnWyzuRtc0bCf+ddHwpU3gliN4bz9eH1NG?= =?us-ascii?Q?Rp06S6pXC+5SC8/kZTahYRl8hNpFR+UFhmou+csqyyikGhNwp7joc4tJYobe?= =?us-ascii?Q?mcwWSqwuf6eJrSqMZBsuSqlGqyKIans0nuMloXflM1EJ6Khg8kgEk3rHh/GK?= =?us-ascii?Q?KlDGqv61GgE3QHti1EsgoveZ2r701HlWvH7r/4PdQiK3rM+7lQ3JJVfWb/dE?= =?us-ascii?Q?a/FNjkvPdFS7j3yEIl/ZCwiqaMCGpJIUMPTvFEoFdy5WFuYzcNfIhfjL85cf?= =?us-ascii?Q?I44QmaxTI/5oVW+s5IdS6ImuiulUtK+eqI4VBclHbiReCLKr2g6pqMjzc6mf?= =?us-ascii?Q?+atM4lIn66j+NHq01hT9+FC3QsLeMiebYReFPU14wfxg4NI73vfjNMkkOCWS?= =?us-ascii?Q?AxwnxQCreWYwsIK9uu6ogLB/Rfr914cVSs8dW5AAtytxtJHvS2oBijF49g8E?= =?us-ascii?Q?iQTr31oIYaJd/EUeSkjpnrX8i0GX3C4/8OZlqL9tGFIbZaRIFf4M8vkqq/w2?= =?us-ascii?Q?R0i3x6X0n7exTEUTaXZn5LgzBQ55gBs5aNPl4vmdxgYzJcsML/7wf8yK8BnB?= =?us-ascii?Q?UDm0co9eccjfIEcV4xRSJDCj4Zz1Oh/omyC8tvThDIoZ9yfpR1BPX/mShJh8?= =?us-ascii?Q?NcZ/f1xcVGeWDnkNif3tvCjy+JDs7siQEHd5WcZadxABVkW8yoNmx++Ssyqo?= =?us-ascii?Q?YBQ1yclxWXmcYLm7+/ipFSrPQl+e2qFe52E9+C7uJVCAzzNkHQ9opFzgC6Jo?= =?us-ascii?Q?cScmhea0r+bYnpCwjLRdPWer5BffNOv3BFBu0uVL3QI9kBVPEDQ30L2AzcKM?= =?us-ascii?Q?7qlRCwcp1mqhBklqtuQQkgFzSFS0PRAMHlnpCtEfiecbcTA9EG7QhR6lZ6OG?= =?us-ascii?Q?ztZ8Kfw1rkHyy/BlmKnthL1mSzwNLFq8XXbXcx0JO4sfukdtJmWqeP7tNSH7?= =?us-ascii?Q?NYvt8MngjStCfaIbdIabtZ07qd9+EuOq1TBC+Oho0O3R9BQUxuDgvJDM5Ulg?= =?us-ascii?Q?NpgzaH3fDq4ls4v9bH/kGl7+My+PcVeuGcQEzkabHhUsd+BOdov4kXprxQrj?= =?us-ascii?Q?/BHQ3k1iv+gxeF0vnA3kAdUbG5QFUIu9dMOc/kRVS/wyppLDL4nX6b+ldGw5?= =?us-ascii?Q?UwcYVp4jNWtS/+aGxZb94ByIa6PN9rQw0aje5Io5awidq+7PZiyuYG2SR0js?= =?us-ascii?Q?JfxHUus/gnVirRw4RnQWBLXp97RxYgQ3XB3msahLLOEFPGMFVkNFO3IR6jzn?= =?us-ascii?Q?mkas2Rbt8O9rw51CWOE0wMVNrhH2MtA=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7c5be29-6fea-493b-92e9-08da3a3780ae X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:28.4445 (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: 23BZHxSZdIO9tOsOR/0DwArOUk1YfO5ubPrRKI5MqwlhYOSr4F0A1L2AQc3xfywqURHY8O2/u9oxf2t37rBctQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9149 Content-Type: text/plain; charset="utf-8" Use bitmap instead of sock in struct mptcp_sched_data. Signed-off-by: Geliang Tang --- net/mptcp/bpf.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c index 338146d173f4..8a19ee98c3ad 100644 --- a/net/mptcp/bpf.c +++ b/net/mptcp/bpf.c @@ -52,11 +52,8 @@ static int bpf_mptcp_sched_btf_struct_access(struct bpf_= verifier_log *log, } =20 switch (off) { - case offsetof(struct mptcp_sched_data, sock): - end =3D offsetofend(struct mptcp_sched_data, sock); - break; - case offsetof(struct mptcp_sched_data, call_again): - end =3D offsetofend(struct mptcp_sched_data, call_again); + case offsetof(struct mptcp_sched_data, bitmap): + end =3D offsetofend(struct mptcp_sched_data, bitmap); break; default: bpf_log(log, "no write support to mptcp_sched_data at off %d\n", off); --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562715pih; Fri, 20 May 2022 01:05:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOXIL1pkRY+KUH04jXOs8v+9Ee8Vrns8p2dRKtvtTtR9nBm3SWJQtr966qsh0eW3ZqoelN X-Received: by 2002:a02:b693:0:b0:32d:adc7:ad17 with SMTP id i19-20020a02b693000000b0032dadc7ad17mr4833175jam.266.1653033942844; Fri, 20 May 2022 01:05:42 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id b126-20020a021984000000b003268361ba8bsi1295982jab.138.2022.05.20.01.05.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:05:42 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5416-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=E6VduBIs; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5416-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5416-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 4F4CB280A75 for ; Fri, 20 May 2022 08:05:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6E83915DC; Fri, 20 May 2022 08:05:41 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 D0E3D7E for ; Fri, 20 May 2022 08:05:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033937; 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=DOP4NYQRPLir+GWOgn/hkiysQruerMXq6vYcmXcEkwM=; b=E6VduBIsB4i91pMlbdRYYphEZZCaNFeDagasDq+wcujVa79lwKzTwNPRbQ1QfEpMBew7oS dktjXGda8y45oR2+MYT5IURXavqmOI09DjS0SYq4lF9eHl8BhihTcbqzauGm2+AVm1+0xv UtlIeBJqFUZvxcm3XlGzWZa38cQT3oM= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-29-gX927ETjO6qa1gXpJr9T6w-1; Fri, 20 May 2022 10:05:36 +0200 X-MC-Unique: gX927ETjO6qa1gXpJr9T6w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gJJaYpJjVb3hHHs4sEUD16eWwDACOfe902bRIJSpHDadmbapJL0CgFE0GSgpVoNxHW4HGW8QVZa5yxe16gPAoKUbBsBmHeClw2+c7QcDCBv3QHP5oLbka1VgYZaCK5LdEKxXstSrVRAFiSUFv4DRZinrW+6zTWvjUsnKwmjhnRI4O7GYz5xwe9vLrZhSOnoxQFbj6sQYhe8B/6RNtfzj9Q9GBfbLxXxdHjXbztfx+lDfcQQ5LBv1kY7Gzw4rbQij8ZPyt+QPPiWZZWk0F98iMNC7ikOdqzXbcA2vMswLm218RWXdLubuXk8CwfH/c6TScwvI9MXEGgItXBphU6+MqQ== 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=2uq57ek975SCwqAuQMdO6ag9bVwyxxhqKKeBl0hA774=; b=MEBsIT/oLXM2EeVH+405EKhemo+X0Xlg8xKBDtU2TH0yGZwF/YWUk3K5lTWZUhu8BuuH9tJ9mgeSV0Yn7MGS2QdDkfTEHpup36HUMrDQTgg7aHwg90oopOiEkl+i2kEPjSrv2Ctmt6y1lN87mOE1mJCHF7BTDC4yyNtnX8RNLEO3TwOHUD55goLgvgB7M0dqkeHs9EZozi4IcyjuXzCEGaZnkA8JpUPOTHaLZSvLoHxropAlpPvbLnQKcn/9H80N+wLy8mgYAF3coFGOQyx/DU6woTDoKzvAkr2JbcJXQKx1y0oowX7pZdibR/nhzuTGQX72WfrkCUDC/lnTHmtZhA== 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 GV1PR04MB9149.eurprd04.prod.outlook.com (2603:10a6:150:24::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Fri, 20 May 2022 08:05:35 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:35 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 05/10] mptcp: add subflows array in sched data Date: Fri, 20 May 2022 16:04:50 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR06CA0007.apcprd06.prod.outlook.com (2603:1096:202:2e::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: 4224c479-7b2c-4494-ec69-08da3a3784aa X-MS-TrafficTypeDiagnostic: GV1PR04MB9149: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: fdf4ERXpg3DtDT1r5Btk318iAosEYmZlR1c4hhrtk6HQnLnpgYviHo43AYtYzzC5gQg1KFZ/dMH4MI7WUYtROELW2Vy5Yn3vdYk20IBis4VXD2TDZmqZgQfXCCYKvdwUNbAEKF07KqQP97bNyaH5YE10TlfG8E/Zy+avpS/64ntER4zcpjohkBWnG6n965Oyye0irO1WKuyEXtCcBq67rsdeEM1vA93E0t4cGb/Gvjarb+aEtCSFF9xREOlleDuROATiPNtMrDq4R1qeaUj5mpGBrDJZvbzgwD2s1KcdaXJgZk5erYk4YdFWu2m2sK0RW1RJb/YFPrA0G0H4DU2WblUCP+i3EdKT5c1OWnELBUbCRAMhCDFRbUMLkOaJQT3SJGXV9nVTSveRfb/M2wd6xaF4izeiciiTUdAXQKPaNPquOove2jutG20b3sUNnE1fuaz5gtoV0q/g5Sl4S+B7ADEWpWfDdNEd8ToIIb7KaXT83Z6UnWodYVN2L2vagpSyjl+2Gnb5S7cb05AAuEUJC5s3pEkPHodTX4bnPHhXzh5aVlZ9nFwZv5SbkjkQSFyl9cCc/9T5NOTqC3kPD4lJFP4mYAv2iTHtvOdwocexVzn3zTvS1THWKFdZG+BtdP3g8wkRqh3/qxE9CVIpYP6SCndV7PiFpq4Hz1DU6sludVlnaWps2PI6fKh4GkoBXXx47EU8wWq8ptoqn1Gd4q+81Q== 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)(66946007)(2906002)(6666004)(6916009)(36756003)(508600001)(38100700002)(8676002)(66556008)(6486002)(6506007)(8936002)(316002)(44832011)(26005)(5660300002)(107886003)(2616005)(4326008)(66476007)(86362001)(83380400001)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?S1+JW7Yo4VhFAUZ9gvKGrLoDlss328RbXGbbzaJ/av0ljYZN2TI4CMVKvOKZ?= =?us-ascii?Q?yOxa22kIhH1TUTK1DtZYxOFyxNwtYojb19GFEvagl6TJtt57V6m3Tbka8SMy?= =?us-ascii?Q?OM3r0xis3LpvObfGswes2wNrSbsnX9EdQnHZxccOl8Vp/nP92/41xAAMbmlZ?= =?us-ascii?Q?4EBcKjuEfbpEpmdfIZGgHmfjT1tLH7xvAlYOfm3Jvu/nmLB3UnHH6q2PMLAl?= =?us-ascii?Q?a0Ykbct4QXNsdAyC1R3yzFAOA/Wiaj+DCCu7/FB5Huj8/BfXRMNTpZH+FrTH?= =?us-ascii?Q?gbOnQfDK7TACiHb5as37DYEw3TzYfoRr2LF+7NU/++fcwkhVABL4/DPI2v3l?= =?us-ascii?Q?CXmlLsuKpSUAk+LcJdqHenRS23/RWjuyqlPZp3+gPQ9deJEd73ifjpCg0Jx8?= =?us-ascii?Q?/s1Zk8G0wmY/QGY/9J+HhjtiN19jpHMCZbCrDJjcURGAPXA5e29r8ya6KnTu?= =?us-ascii?Q?rt0rX7ra7TDOyzTGXHfVtLmTJN4GCVTGGXQfGujgKmVSvPmQj0skVmoNsLcz?= =?us-ascii?Q?hvJ9WIfUQTxlnYFS87l1loc6cnadgfLfIxAbOmILSblOpWiG8A3Zv5XBr4uf?= =?us-ascii?Q?85r8KltBIBpUHLLMTOT3o8vBUocEpnYje8/dr9HXITqtTUDLGwyAm6gCepj2?= =?us-ascii?Q?ElMRRtOnNrde69FMh/pf9G07qsA7ZlzsPCfKxfS0cfOUZfUgaAaosNI2YF/l?= =?us-ascii?Q?9MyPcPRCpVVpSZ2zSHU71y9XDMvz5t/6EeolVc5FD+eEy2Qv4j2QPA6274KF?= =?us-ascii?Q?gOXt0F8fzuvICiOu0eYzMl7+VVfLbPAJXSqUnatD76XRh1SA3oXghCygulVu?= =?us-ascii?Q?hjaOOIz2VLmFMn1VcRSwpw0ooyOtrK7CDD9YJSTiBrnWlHbz7qiMpkP1SROm?= =?us-ascii?Q?QuqtTI5d5f2KMz+8JaMwkpiYMk1LiOoz5y7sFq27aT6n3dHAAjR6iJiKDOSd?= =?us-ascii?Q?W2FkYwgD/CXuoeax9XVkzSgkG1NmigMaDPwZgb7ajtzbHfxLPq/2vNfU/XKU?= =?us-ascii?Q?ry+8epPj+C2WJTpqkj6YM8RTqJ8Iq39FMSWoDAeyWW0vxOqFH8/lk+tZjzWc?= =?us-ascii?Q?ljq9Lg2QB0dcn1VQoimDuSjxRVoQcHestPpolcLyB+MoX3jNsYe6g8pA85C4?= =?us-ascii?Q?hbzBT1+KTrx29rGQEzyNX8s+ielvrZ5duhwGoMSZaEn8+EF2YYST2lqeqQPP?= =?us-ascii?Q?/7yRnCmRhPF2X3u/sx/BE6LvtyP9h9CNmmuZGMJB31iWjTNFWZq82sVUFoE2?= =?us-ascii?Q?BXMeEgNcpudWMtFLIwCQwX833vQmJqIwKX+zGjnlX+juzKhtUe4hGpsRE1sp?= =?us-ascii?Q?nNSZsUYbi7GTiM7qD3/olhXCxqr1nuoB6IJa1dp3sheBdeNGlUWdFG3tyrw6?= =?us-ascii?Q?ti6q0LKfviJ3On5Ndd52jARN+2qM4DzkJZOAgeScqYxnhqbU8JV7sQ3acvQf?= =?us-ascii?Q?WoevIBMHqduZIxQGkjUtkDwwVTIbVw6nzJRDWGz+9sZQm8JIXrPVfmk37oNV?= =?us-ascii?Q?s5MBwVHbkGktsoi3G68cDi+Cb795EqE+PDnCcq7QBKZmJhADjA1plxeMlt0r?= =?us-ascii?Q?UijdFMxt49ZQr0c2end095IwT+qWikRqchhFoubyZwZM3uFpgSquMnLXsueW?= =?us-ascii?Q?WHmPdw/wgFQ1DlGlgOxbuXxMLd+1MHb+Bs1we3NqkgO/KoHoMAqCW2X9VzEL?= =?us-ascii?Q?XpceAqceXzLjZAVDfMhlyGc1DjNzFzJIFsV/7xHIcm8wQOAp4DYz26TEYHlb?= =?us-ascii?Q?bYqMBZRlv8OcZeP5fucXBkM+h9tQ4gQ=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4224c479-7b2c-4494-ec69-08da3a3784aa X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:35.3190 (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: bpxOF2l4i3dOY9xRx/l0QsCeFKW/pwBZZDz83MyKCeQzbicGWw7jD4uGdBATZLg94FftNKAtGbVeZx0fKTqK3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9149 Content-Type: text/plain; charset="utf-8" This patch adds a subflow pointers array in struct mptcp_sched_data. Set the array before invoking get_subflow(), then get it in get_subflow() in the BPF contexts. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 2 ++ net/mptcp/sched.c | 29 +++++++++++++++++++ tools/testing/selftests/bpf/bpf_tcp_helpers.h | 7 +++++ 3 files changed, 38 insertions(+) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 33a44ec21701..10eb96ed2ecc 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -97,9 +97,11 @@ struct mptcp_out_options { }; =20 #define MPTCP_SCHED_NAME_MAX 16 +#define MPTCP_SUBFLOWS_MAX 8 =20 struct mptcp_sched_data { unsigned long bitmap; + struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; =20 struct mptcp_sched_ops { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 207ab422ac5d..5e224e3a17e8 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -91,8 +91,22 @@ void mptcp_release_sched(struct mptcp_sock *msk) static int mptcp_sched_data_init(struct mptcp_sock *msk, struct mptcp_sched_data *data) { + struct mptcp_subflow_context *subflow; + int i =3D 0; + data->bitmap =3D 0; =20 + mptcp_for_each_subflow(msk, subflow) { + if (i =3D=3D MPTCP_SUBFLOWS_MAX) { + pr_warn_once("too many subflows"); + break; + } + data->contexts[i++] =3D subflow; + } + + for (; i < MPTCP_SUBFLOWS_MAX; i++) + data->contexts[i++] =3D NULL; + return 0; } =20 @@ -101,6 +115,7 @@ int mptcp_sched_get_send(struct mptcp_sock *msk) struct mptcp_subflow_context *subflow; struct mptcp_sched_data data; struct sock *ssk; + int i; =20 sock_owned_by_me((struct sock *)msk); =20 @@ -133,6 +148,12 @@ int mptcp_sched_get_send(struct mptcp_sock *msk) mptcp_sched_data_init(msk, &data); msk->sched->get_subflow(msk, false, &data); =20 + for (i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (test_bit(i, &data.bitmap) && data.contexts[i]) { + data.contexts[i]->scheduled =3D 1; + msk->last_snd =3D data.contexts[i]->tcp_sock; + } + } return 0; =20 err: @@ -149,6 +170,7 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk) struct mptcp_subflow_context *subflow; struct mptcp_sched_data data; struct sock *ssk; + int i; =20 sock_owned_by_me((const struct sock *)msk); =20 @@ -175,6 +197,13 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk) mptcp_sched_data_init(msk, &data); msk->sched->get_subflow(msk, true, &data); =20 + for (i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (test_bit(i, &data.bitmap) && data.contexts[i]) { + data.contexts[i]->scheduled =3D 1; + msk->last_snd =3D data.contexts[i]->tcp_sock; + } + } + return 0; =20 err: diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index 60c8239f95ff..4c7192cb6134 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -231,9 +231,16 @@ 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; =20 #define MPTCP_SCHED_NAME_MAX 16 +#define MPTCP_SUBFLOWS_MAX 8 + +struct mptcp_subflow_context { + __u32 token; + struct sock *tcp_sock; /* tcp sk backpointer */ +} __attribute__((preserve_access_index)); =20 struct mptcp_sched_data { unsigned long bitmap; + struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; =20 struct mptcp_sched_ops { --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562762pih; Fri, 20 May 2022 01:05:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwKbyCXe2RlxLOfl8iWGeYU4NAlcn3am8F86/NWE385PE52Iq0Arh9o6eCiNbl+28GG17e X-Received: by 2002:a65:5b0e:0:b0:3f5:d7c2:b3b3 with SMTP id y14-20020a655b0e000000b003f5d7c2b3b3mr7508860pgq.256.1653033949435; Fri, 20 May 2022 01:05:49 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id g16-20020a056a000b9000b00518418d73ddsi2302040pfj.333.2022.05.20.01.05.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:05:49 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5417-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b="d5Z1yy+/"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5417-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5417-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 0EAB7280A75 for ; Fri, 20 May 2022 08:05:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F0ECC15DC; Fri, 20 May 2022 08:05:47 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 4E0457E for ; Fri, 20 May 2022 08:05:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033944; 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=C7Zp5XiahT2IIX4KKy411lOUGph3lY9ODy5GSWTeI28=; b=d5Z1yy+/lORmJ0BSTIMR3UbnG469XXF5js6EC+0hHdrsvBqdXawQtA5kmdGn0oQxHq7Kdq 83ImEG08ar5uSB1YZVSvSXzvc+9A3uHugVcjyz/DV8xK+ZjD8RRldYdv2Gk3IqyOMZ2W3E rxkazcEp9a/p26SW7VtqW6yvf2wG9Jo= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2056.outbound.protection.outlook.com [104.47.12.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-12-D6t83HBJMIWFCMcCgKjVzA-1; Fri, 20 May 2022 10:05:43 +0200 X-MC-Unique: D6t83HBJMIWFCMcCgKjVzA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RzCGXFrQ+jAS98ZMbxy4TaG2IMtCC1ftRxhb5Vb/Iyym33+wiR6Q0Df+2U7fALnIpMC21SNXP51e5OWqiCrbRDA/Pv2WtrrmMWZFdkQIl0oazC+DY5R3l+dsAQHQlRhrgUhg82A55Bd0zwFgr9MhpFpeQGzubFnF9a0lCQr0H+PWHku52jdqOR7oGHWPlQVXDlCrd6/Ru+bwcqdItwKtv1As5BZU0LWyMvbVCzrbWITZDE0s5xSCo6AJjc9eq4p98sGfwmALZ0VUZu56rIKaQBbu7NIgmAZ4N3f2+SZHFSoUcFpn1OshOrb8KortRFGAunMosoLNx+88FHa7bkzusA== 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=U+W2PmkoiLIgVsCdWtj3EccX/I63gpI4tu4C2IwsV/8=; b=I0MB5jHuHI1MlCfA87SqvxMgJ7GyXvQ1NDu6MIBX0xFOtHeIyFTTUo79L/kwFAJQtgBoCXmYZmU76vVGKSiQKmVjplcfi9b1/cXjvutimZjlxNLZ2fhkeldOO5GaEfNL6XPvnvYP4M0DeKwT+g3pPfLTvyMt09UGyCLM/acLIhctA8ZUKCgRblmXL0WjpdD9TzYPDrlWw7hhrgPa+HPsoi1zCI6APO/3wbMFjPJ4117xt/8tsxbZzMUouSN2NDBbOLmtVHPOIG/IJZt7DF/SZK8HDqrpUpDpG5vk2Bce5VQr1tTiAsYvi2JYr70w1wPLNGj2ry+BlZFmHtUs/CSBAw== 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 GV1PR04MB9149.eurprd04.prod.outlook.com (2603:10a6:150:24::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Fri, 20 May 2022 08:05:42 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:42 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 06/10] Squash to "selftests/bpf: add bpf_first scheduler" Date: Fri, 20 May 2022 16:04:51 +0800 Message-ID: <0e823b492d7c6d4cbb736a88e0c72333d13ccfd2.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR06CA0008.apcprd06.prod.outlook.com (2603:1096:202:2e::20) 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: b2dbe485-c11b-4d75-7d2a-08da3a3788e0 X-MS-TrafficTypeDiagnostic: GV1PR04MB9149: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: fdpcJ4OU8EkbZGA3nDH8fcqxkL/Su5fuHtJfyVUft5G2zcS5tfTJODQ9+B/n3NSRXHQxjOHenTBzpdz3LKGVfePGnIfqwgqsvMkkWzFBiML2rGy/oqXdfXS0H8fbx6+bhOKpgsk1YCI1grlk9eB1Jeb94dL7EGM/7DRT1ehtQW4fhCO/5EsBTrDqXYbVrztcOpJSNzVvzWjT5HwKCUz32aMduuyhF6i/f3sFX96oP5odN3vavnNV8ME1aOwoGuuNtBvpWWF21pqjNxRS/LtvR2YMfVaK+yUG88h/sjub5gyMTo552OF5TBeI8ciYwlWxK74SbJxoqmqEmursbYm7bmSZex+0L7l7uJ+9SpTP7wOsRLfrDBb0Kk2h4JVw0wXh3KKE+AD94oAHn/hQJl808k8VWThGGTGWKoIGKhuipINquDkyRHOU9p5Hr/EB4PC9Hvw3U8iKFJlp3JzMUdyEXIAw5HsWxoUit4KdN9MuKHBoQWsqGZ0y3qmeIj1l6a9EThrYosE7srH4nf1/aMdmiKg71v4QHghowmI4OVySOnAjAgonbpwKairzfokBcw7kg5E3i5Dp18aII+PNvfmG+x3Gst2w301R4ns46Dlb8nEejv43Z3XCahmlJ1BMkOXNMD9GOF+5aaBnb4HON9ikBoJHjh9kVFgLldxVU6Zb5gowUFMELK4TWvdKc+TgawxzndVfmqe4Nr0A90Nzf8bubQ== 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)(66946007)(2906002)(6666004)(6916009)(36756003)(508600001)(38100700002)(8676002)(66556008)(6486002)(6506007)(8936002)(316002)(44832011)(26005)(5660300002)(107886003)(2616005)(4326008)(66476007)(86362001)(83380400001)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YgcxpDvMLqO/sYQz6Xp9QW65X1b+3nteenU9dIUtQxVvFw6Lufq3IxbGuKmR?= =?us-ascii?Q?X3ag6IFsMPGM1wDa1qSSv1I3Yb9zb3kiDGHoVyEIj4uAGh48MflnfOwcqlvm?= =?us-ascii?Q?vUkBV4TfBjcD6Oc0SFPkczMXr85flYxj4jWXmwS7GCCd9rBcXSiDQsh75dwL?= =?us-ascii?Q?aTNSFQmE8eoZV7jEPZ6l6RhJiE8SN5fq3TcUZLfh50QXUH2AFW4jW+idgjNl?= =?us-ascii?Q?r2HYcafIJ0T6xsS1OzmoVlCG2uUKn5ZgWmAbvk5doi9gPXv4HLyVQDuLPpRp?= =?us-ascii?Q?2REg4kquFQlGXQlGlJnNJW7oFGtBxZ/T2MlBS65/hwm0MBgLrPE+6OJoLz8B?= =?us-ascii?Q?8D/zDQpy3GgSHM3jfBTz/SI86UVVf4AfCu/rBK/kUr5zcBmgf4541ODcrBGI?= =?us-ascii?Q?fjmwccBpRFx4ALYXwiI7m6ACX9LnfqUsavrrde3qfmDc47T+qLtezN2CU+4U?= =?us-ascii?Q?lyKb7aZK4Oj7Q8bpFQd2d7EwZPKdNxXllzJdvsknacvj0gqGqXTIjUloLdDY?= =?us-ascii?Q?sLarPBP1WFEY92+ceXbaI26FNLfxvyoQQaLDWq9fBumrNCsEB2S2wXqOjkya?= =?us-ascii?Q?QYoG0XHLC36ekAxtdXxjDMGgrqBebYimRuP/z/iKJscEaz9vzrAQHHHKCs3R?= =?us-ascii?Q?XH2MHRfO+CAUA5T9sTTUWd4BRfNPuXWF2MdMK9aAT9sbu/ykVDbcAnFgqwQ8?= =?us-ascii?Q?hDYipeQpkl1vOet7y50OfTPOSrdpXuwkPFH+w3JmKIgV/ckcvrC0bU0n6equ?= =?us-ascii?Q?YCmNDNtHgp59+JWwQcpRohrwmQEhefXOu0PH6zxwD7rldP5m5cwGX0tq/TGs?= =?us-ascii?Q?oQ9BmD+sGmLaBido2AS8rYp4HlVXad2qjn/6X2pbxBe4wIi21R/tYOjXoG82?= =?us-ascii?Q?Na0XX25AIn3wIjamjHS3euseJPVDwn9MeCKPecnk6ogqfIvZrfY2iKh53YvB?= =?us-ascii?Q?fVE4FSAP95McBDwi5cfhzJK2S7s52RTLQJiPWf92nDlp86AXO7F9uHqtZkcj?= =?us-ascii?Q?tLpdZf4t36O+gB7rQB1hgXAwrjtI5u9AO2CfRM8fEA8P9c7GqhF637CWr61Y?= =?us-ascii?Q?cn+LLeyuAAerOzMIQdUl8BGmH9p1RT3tYTvqRLmgguw8AVPvS6RMziH+081R?= =?us-ascii?Q?Kh9NNC/l7HGJmJokFwRbpwhyu7hlA3nyOP+dhJRzKx6MZR7m2CKqZxR2tC5s?= =?us-ascii?Q?+GGAW3+Gh4eiG8/fba1jdJe6umC7o6uhEd/vp1vyh5VQiODgCkxQ32ec88Z/?= =?us-ascii?Q?PZZReG72tYsyx4EdXyvwFolLGFmUD+GElmCRmt/rPArkoW+TesDJpcxsRMzx?= =?us-ascii?Q?wpDRpsV7EkiSiBim1FB0ouAzEz0XFbINhYtESY6ZK6U28PwK+oCArLYVNoso?= =?us-ascii?Q?IBRsJci27zBvKrLhLexfTSL164JNl+ZlBVjOaBPqpb2g/UP3uhQ4aiD5cAs+?= =?us-ascii?Q?TCvrT+h/lQ+2VktunR8UeJKYt9Iqdb6kPr7m0aFMlQAIb+C5mpD/Wr9vEL3o?= =?us-ascii?Q?TXKpRwdAGfy2YjkcAU/b25mL/5EW07F+NvXhzK8QT6bxG9Txpkt3k5PGbhfp?= =?us-ascii?Q?8HtsabsNxPW0hDeRkFyLdr6IeiX8orQDSShvzYWQUyx0eaqsTUnmWLR/F0Kr?= =?us-ascii?Q?TPAip6fUpZmw69ATLvp6WbknTB4LRC3FDArGTM0DHpe8ltDGWLmpmP5yMQV5?= =?us-ascii?Q?beeVkGYw4mVk0MOFE286XMtEfnKr1flmBpwgtzi6BoJf3AbimsyDRggDignj?= =?us-ascii?Q?GeKXSFmwv3emgvvZ4uGW1KH72Oc89Q0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2dbe485-c11b-4d75-7d2a-08da3a3788e0 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:42.4121 (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: 9LpPpor4plYFr92+Wx9A9vnO+RubFBXqu0sVRbEltUOvm/lFNFZtDzK2eT8A3QUrkiUoSS86SldIuNxlQRv2Vg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9149 Content-Type: text/plain; charset="utf-8" Add set_bit(). Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 11 +++++++++++ tools/testing/selftests/bpf/progs/mptcp_bpf_first.c | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index 4c7192cb6134..97407c02dc48 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -263,4 +263,15 @@ struct mptcp_sock { char ca_name[TCP_CA_NAME_MAX]; } __attribute__((preserve_access_index)); =20 +#define _AC(X,Y) (X##Y) +#define UL(x) (_AC(x, UL)) + +static inline void set_bit(unsigned int nr, volatile unsigned long *addr) +{ + unsigned long *p =3D ((unsigned long *)addr) + (nr / sizeof(unsign= ed long)); + unsigned long mask =3D UL(1) << (nr % sizeof(unsigned long)); + + *p |=3D mask; +} + #endif diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/te= sting/selftests/bpf/progs/mptcp_bpf_first.c index fd67b5f42964..5a938249dfdd 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c @@ -19,8 +19,10 @@ void BPF_PROG(mptcp_sched_first_release, const struct mp= tcp_sock *msk) void BPF_STRUCT_OPS(bpf_first_get_subflow, const struct mptcp_sock *msk, bool reinject, struct mptcp_sched_data *data) { - data->sock =3D msk->first; - data->call_again =3D 0; + unsigned long bitmap =3D 0; + + set_bit(0, &bitmap); + data->bitmap =3D bitmap; } =20 SEC(".struct_ops") --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562855pih; Fri, 20 May 2022 01:06:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxl8KX0kvUEToY/EaJo/yRWUtXYu/mmWi1Jd1afxk1qAwWyWIEjINMjDNWGBrKDHZN++kJq X-Received: by 2002:a92:602:0:b0:2d1:1497:7235 with SMTP id x2-20020a920602000000b002d114977235mr4685729ilg.242.1653033962902; Fri, 20 May 2022 01:06:02 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id m12-20020a026d0c000000b0032dc340dd2fsi1398518jac.40.2022.05.20.01.06.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:06:02 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5418-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=DVbN8eEl; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5418-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5418-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 34650280A8D for ; Fri, 20 May 2022 08:06:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 423A915DC; Fri, 20 May 2022 08:06:01 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 D03C47E for ; Fri, 20 May 2022 08:05:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033954; 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=7d8NvmdKCiiH/RRJIW3gvKPGOIsA2nNqV4LQUx8UVj0=; b=DVbN8eElmifSi4K+CZtQg2JaJn+gmzjYPKljcytUHV/tqffwFdLco2DupvRwjJ/kdAX5CE wjQ/Eq2s61fskoghXaNx7/tnBFLT3RE2dq5i++XBTAVPkdjYbKoD6butHgY8WrsWG5ZfGd Ak6RX2Zpxo+VChEO8DCtrhqs1LtD2u0= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-t6t9qQ2APya93uTDG-SMcw-1; Fri, 20 May 2022 10:05:52 +0200 X-MC-Unique: t6t9qQ2APya93uTDG-SMcw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KDKk6wWkz/S4PLaDUBMo2euWZ9xDeqjYpzGWGpiUy/Tcqb24w+kszmhiwtvEzusJMuZnK7TSQ5IK3C8YBJgJyTprQ6kzvjnEMLvKzV8+lg6N8GRIWTvOS7Y6OvJZaqolt8DUI8YxmWCiIAFXSNTINZqgqV/6yq2Q2sPm3hugRNWnEU2pxWkq2aB8TFEZygH9p5llm0Oow0YQbcLUgC87Wqh1R4epETzV7vPmO7cqWbqM1NHd8pbWglqXRl/6A61zX3Bk7uediYd6f3zk3yKRVzGMLfgr+VxnhmrJLHWscQKKWhxObCDIKHIxqTPRYFFf6h8GsoRyONXiUgadLflM7w== 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=2NV4vZRspBC07KPqjA81BhSi5G3a10XdPpisiE3wq0E=; b=INYD0CGOAaJQ0jc4oM0PxwGmrmK/QmezwJ4xVme8M0Yhs/VYManH6jEDHaV4vsGXYs0dbgjLtFmRGnzxd5C66qbSPIq40DDFpuV89Xu8kCnu2JEx2YK/da9woMiv8JcRQo92yHORHFtk8QVZn2LzEYNFpe1/oip7o/jBDYOPGxEC9CVpluktIzrnQyrmLlXmaUDgbSLBOT01/sfDDlWjPpvhMLjZYM5IRi3XubcYhpnmtTAEKU0YOOpYYsJiQqnijIldPo3Xcz3LoRQ4EjwCbgVGiwdzldb+m0t9r1dGOpW6ZQTYrZ0uPcZ39b/10Sk0iSClwRbncN04MN+NaH0wKw== 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 DB6PR0402MB2757.eurprd04.prod.outlook.com (2603:10a6:4:94::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.17; Fri, 20 May 2022 08:05:51 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:51 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 07/10] selftests/bpf: add bpf_rr scheduler Date: Fri, 20 May 2022 16:04:52 +0800 Message-ID: <6362a518b317124f75ed0c938e7b4b0dfb5d7c1c.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable 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: 0ba09c01-5bf7-4d90-36bb-08da3a378e28 X-MS-TrafficTypeDiagnostic: DB6PR0402MB2757: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: 3ceQnio13p7N6dDpGkcFaVYZWmJ50/97Pe3FEIocvfIzcwbt4R6UV2ZxTnzUxG7JKiMuMDiPqgbvJ6VB/PCw2D+kqt05XBAcmkTiLI67z5BS537POeo23bV40omp+n2zf18+qkvGVIW4rxLoMlQhWdex9HR1nvuon0WG5U1+8T/hYpy2iAwOzC5CLF2ade8aj7pPLJWjI0glkUd9ZPv1u/7IdqM3gY6kuEdXJiPMhtb7+FiU7pxB4VleXoSoOtLA8fOL+Vkm+IHYDT3LQl5UMW1DOwyPuUlJZtvHZFgwxTcy/fYzZbP+lIaazuNAfdDNMa1/8TkJmBF6+CyGGHHcKLZ1QyxT8p9gmM4TcpZ/G4b8p2k+YUBRMpUdCVjsVJxfprEYxualjZFv1/7XEqLXSL3aLiAu+27S60Mnrvcba5k3WIHhEYq4/mL4jH3kFL0JuJMNHtXfOsm2BHjqQspBldubJbkhxqYo3ienVylYrQfndm2bb/yQ4pxqTuIsoRjGDFMYAKkGPHDzycPF+3PGq2Kli61+iooZWlv2Mc88+64fjSS7k6whBKsHQOkk2fkTlHUv5+UXxXUtR8iysI7bSxam2AJTzdfdNcI4eCtdUskahPP4/d7/5H14YHJ+u9vyZU85jaPvMuIAEGU7Cyvy4Jg+IS18/UcWemKyqVdpK1RTPlhQ8cCzrt5eQWAxSLlvyIe+4ovdI2NBgscmfNc/gw== 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)(8936002)(508600001)(6486002)(316002)(2906002)(6916009)(5660300002)(38100700002)(8676002)(107886003)(4326008)(44832011)(36756003)(66556008)(66476007)(66946007)(2616005)(6506007)(186003)(6512007)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IlmCneQl/dYso90QNYBhIt/vEf3rEg+x/2zujKPUiOWGbi3/TnLRmMVKjpiS?= =?us-ascii?Q?Eci2D4j4G6WL+c8tfJ9b/9Uuft5SY71w9TKPmk+f933EtZ65vsqAXlEOLxwX?= =?us-ascii?Q?Ax2Yjkw3tLsvddGjFUA92xkXCmOslDU5t6sAT6oUuRRoMnLKFXElezmkaJD4?= =?us-ascii?Q?jabRDfXq4QFJVbAQYsvaVgv1wmvQzE9kYydXI3vLv//rGwUPFdO+bmvRlq6O?= =?us-ascii?Q?uxjYbIQ4op27DzdBz5v5DRjU01rMYxQVh5sGFGes4cBd8yBhGZ6KYDtzXx3e?= =?us-ascii?Q?CwjRHAiQeLC1fFUd6cdjgI9v2k9Nyd+9hOR4ApsO5DWufsnWmuYND9/oj6y0?= =?us-ascii?Q?EjNwFK3euPsnN7vAaXs7SeCGKS6JoXeu0LnsNdsor/E8XLJVrcrgcN5mupZk?= =?us-ascii?Q?pUIvlkvw/B5Gnwlceiu2s6DAISWdoSGdhPr6Mf6utwZ406eTZIvPTmzES3CF?= =?us-ascii?Q?e/qgqBq1x3hVDabVUf6lg1T1zMok/XvgKaPg9dCtc541gAXRudmV46ePTWM9?= =?us-ascii?Q?ByAsBJCzWgHbscC0ospogJwHPHne3GA9Ub4oH+gRVodpt7VOSZTGA9L1DaMo?= =?us-ascii?Q?XuEHMxazPfKVJWUe+HfhoAC/V2aBlhk6FKhp6fhlQABhtzItTVLduwuRTvCF?= =?us-ascii?Q?YlmBtPsM298RplS9lElSTcbMByKA9am8bcCPw1RvtU/9dUcVGxSo7kCcES3f?= =?us-ascii?Q?Q2Ql4P4LSdKZBoG2cNWGfkzx5HuvZIBrB22j981wfZugvTZFiK6sG/ncaGsY?= =?us-ascii?Q?B2I0Cfqjx1dyle2f0K4Bd+5UfQDSmaYi8E4WJOgVRwXY2u191irKqkZi9aCR?= =?us-ascii?Q?7kpESudOidqe6/lXBsVFH+IHj9NOn/hzsGQchMbDQ5dFBqfQGPwN6LJ6PC8K?= =?us-ascii?Q?KBxapnQO3O8R9yY+lL7VWzigumqjtU6Xc23m62KQVohoSZBmjCCDnZkgFe+g?= =?us-ascii?Q?kQJBaghpbFW9wZPiT9uRirSMWAC91cKtPSf6qkzHsf3dYVlFM3nrQlLhwmXr?= =?us-ascii?Q?MMeYFQ0ETGTYsZSTTp/VN6s8qxXWn5jYPNtL+jvGzPJVlgwcJGDovJ4sJOwC?= =?us-ascii?Q?1y7flhnltiwvLJeyVd3CS1MP5evQsldGKWhM9qVxzNi9zAz4OzLfptOTHYUh?= =?us-ascii?Q?7HCN0C/iUZb5Z39ht6NtAFAVuM7JsqJcs/LRaH8J8i3jwJRnhGTRZgwFqxQO?= =?us-ascii?Q?zX8zRc44AvhthTmrB4cfwGKklb7MFtfS8oESMosxVhSdZiz1YPvDCR5O5oO6?= =?us-ascii?Q?WPV1s43PK2GlCTgBdQI6iL1de6oTrp6ee6wQdJTNsuBPtqFb3GvEyJ5uMH2m?= =?us-ascii?Q?GeqXJgozGpmNgSrDxfprR6IVJmnybNcLKjClq2C2DYThzDyrk4TbSId+8cJu?= =?us-ascii?Q?vkwcqizfCpstNU+KxZYFA/TO88VT2Uy+HSIaG4Yz1l8YVwsiZBqqH4czESqq?= =?us-ascii?Q?ytOBqVWo0cIdiyRL/esbLEUaxZOvESz0d8XALA126db5YG5Ntxs0n6VlcU7s?= =?us-ascii?Q?THCxqcErKxQKxLVpGjHRf39MiXIEcst8nlQulsyYCQF3S+SBQzVdGnAe5w/H?= =?us-ascii?Q?VqEvRyUGtv+dPYD7taaQHFhW9rvAuWa+uPYiv9C1dN4M4OqJYQYStx2gv3tz?= =?us-ascii?Q?15x/63xPzEMSoN01aN/M61m5ksfbwvilFozjz5pE7nS8/acdnTvH31pzliFP?= =?us-ascii?Q?AdAKTjjHI6u33rtmWrd107KJA6h0R8auEON3A2vd7liN4x9AvbKQuj9zfUCR?= =?us-ascii?Q?VyyaUrnb4djBB2nVaz42VEhjqLiHfPs=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ba09c01-5bf7-4d90-36bb-08da3a378e28 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:51.2552 (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: SQ5lP0WU80Jri4idGm3bv9wJJLzyrC7NvvM2KrccFfS743RyyGdVoyTu6fbFOs4psKxxx7c/hNPYXe7Xgt9OBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0402MB2757 Content-Type: text/plain; charset="utf-8" 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 | 48 +++++++++++++++++++ 2 files changed, 49 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 97407c02dc48..a95eda06fe7f 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; =20 + struct sock *last_snd; __u32 token; struct sock *first; struct mptcp_sched_ops *sched; diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testi= ng/selftests/bpf/progs/mptcp_bpf_rr.c new file mode 100644 index 000000000000..74a98f5bb06a --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "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, + bool reinject, struct mptcp_sched_data *data) +{ + unsigned long bitmap =3D 0; + int nr =3D 0; + + for (int i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!msk->last_snd || !data->contexts[i]) + break; + + if (data->contexts[i]->tcp_sock =3D=3D msk->last_snd) { + if (i + 1 =3D=3D MPTCP_SUBFLOWS_MAX || !data->contexts[i + 1]) + break; + + nr =3D i + 1; + break; + } + } + + set_bit(nr, &bitmap); + data->bitmap =3D bitmap; +} + +SEC(".struct_ops") +struct mptcp_sched_ops rr =3D { + .init =3D (void *)mptcp_sched_rr_init, + .release =3D (void *)mptcp_sched_rr_release, + .get_subflow =3D (void *)bpf_rr_get_subflow, + .name =3D "bpf_rr", +}; --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562887pih; Fri, 20 May 2022 01:06:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqbDfOdv+czlBN7b6vBKd/qT3ORbbRGufhgvAtH2Df9mQPIY0wiXS+bXxIdSzUzNwqbnN3 X-Received: by 2002:a05:6808:1b13:b0:326:8545:bc60 with SMTP id bx19-20020a0568081b1300b003268545bc60mr4895976oib.286.1653033968273; Fri, 20 May 2022 01:06:08 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id 49-20020a9d0134000000b00605460b0ec6si1544946otu.57.2022.05.20.01.06.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:06:08 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5419-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=QqPLZI4s; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5419-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5419-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 12CF62E09DA for ; Fri, 20 May 2022 08:06:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A964915DC; Fri, 20 May 2022 08:06:06 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 9B9807E for ; Fri, 20 May 2022 08:06:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033962; 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=Ujtn/ir3BywRu/XHoPKmF0e293RIdjOqxbfk+lBpL3Y=; b=QqPLZI4sZrwiw6Q4PcFGaPrX6krxVuqJkmkTuoOd9KSo1nW8anfANq6TJ/DUvAvvGlUXMT AiJdNEQJoLzTMeSU35SUs9SH9JRqINHPwK/NPwro7ug+OsxQveA9xnlZSTN+JbyU3I3gpU cI/zDuOhIVo9ZdmI8WSVmwiBe3Svn+o= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2053.outbound.protection.outlook.com [104.47.12.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-RICDJ_u5PMWRTHhVwfpRAg-1; Fri, 20 May 2022 10:06:00 +0200 X-MC-Unique: RICDJ_u5PMWRTHhVwfpRAg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jzNEKU7BCqWyCrVyRYeWNv8fj3SRar2lFEFSZyFhTkcPHqijsIbF6ADLg0hDqWYnjUq+KsD9Oc+yYl2u7KF8qDcV2fd9vCGRoM9TI3SHtv9loDdMAvU08xoYiwXjlqdC0zznPcZ+TysTfBO+SV8LhFznwcjlT5GG3EG5yT4cPliQjR32CaQ+bXSnobfAMUSGu+I4upzHY7hQ/EBS2FRtEJK70kyqtTLX8B1X916Fttr+vpTkdGv5ENdpL5qFf5HFs8pKRbwPaeCGTzjNbqVX2UYPo1vwLyEkyKgH5jzbrCX3blvkNeuh/7jkbL069X39Chu3cbm418wdvJA+xMeK+w== 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=hY5mqVlKkpk3VxqBmZbxPRfQ/sWMgY9XAo3CyhjoFeo=; b=PONQZLHiG6iEOV7GSeKT9KSoEAdJY/YmeegzylGoG/CPpSPEVVtwqDeyFpz59F2JKEbbE6FreOicW4MQP1CPMrXgLbyl0AJoUcSSjZP0eosvc+FBLE4F2XuKZSYOtA6vGKCrWfS0JMsMZOD+DSZkK+Ej7CJRzHLNehoI6FbfJw97aHoJg1O/4Y9963bDSyxbArvK9kEsLUtShMKDIoUn/MFrEjUcw0KR8BtcgdTNVN3KGh2oFXZDW6BTGqV9yXgW37MjeRP9w9lkDiflx5adO0HqpHgXyXDDP7fu7UsFVibltpPezPfCAJvPyc45wI/7LFDSKzEECEAwcS4BFD1h1g== 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 DB6PR0402MB2757.eurprd04.prod.outlook.com (2603:10a6:4:94::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.17; Fri, 20 May 2022 08:05:59 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:05:59 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 08/10] selftests/bpf: add bpf_rr test Date: Fri, 20 May 2022 16:04:53 +0800 Message-ID: <643692d09a7a68a384ff33ce6be2646c510f9cd1.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR0302CA0015.apcprd03.prod.outlook.com (2603:1096:202::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: aee1f68e-03bb-46fd-08f2-08da3a379326 X-MS-TrafficTypeDiagnostic: DB6PR0402MB2757: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: fp/fGaMbYpt1PejoIIEjLD7KmF1IGMGJvCV7mtbWkKHIVwWR3eOeM8chRlmHZuFUJYgGTti+vXhw8eSk4Kq6WnRKUnByjc/K/y9ueddraBYEC6S1TwtaZswIYOFT2Q2hpiRgCYnv2Vt6p333AjNrroTznHNpHkfle0k8N9S1av2zChcCZguyQrDHkeO3x/jp7Eltvx/I5BVtKTuYXtkmEl3iYH8BC1aI+oakzoBlokh26SvUiizdbI4v91V63Dd89rxIKz94ZGGw/GFqU8/ycHz3y8mYnLN20FZgZWY9sd1DU4ML564Cqp7Zziu+fXQq8IrmAHxUh+1X1J1h1wrNSxu/upQ1K13WEeTR64QcGxRw8ig8l9gz551i8oxQsxcbvs/FTp0XEqdGnMocGj0U/wCo08jmq8yxueUNBgmcTDqlkbBUXpAVv6ELPVgZQn0fmQ5Y9dXADZrGpiomSyAgJuzJ54rx+5JZIyllfZm92tVW3G2ZY/G233XPfbMIXmKKqV9BljP9vKb4joRONhw3otqq/oVhuy0tYcjWzh6t8BxiNsiZl9/jY9gV0mixKrXYtx0QuswO97jqiXW8hxNUkPKlEF3l0KUal7SrLiLxPoOgMxDb/vv9k83pCOb79aWBH7bDKzCgceIgcsjl9DCmh3mdekzsfBVdvO0MIVvkCgRiW5DfK1MyLP/XrQpPKLxy 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)(8936002)(508600001)(6666004)(6486002)(316002)(2906002)(6916009)(5660300002)(38100700002)(8676002)(107886003)(4326008)(44832011)(83380400001)(36756003)(66556008)(66476007)(66946007)(2616005)(6506007)(186003)(6512007)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dDXLVwXUejPP7zGO8syDan9JKldwdJkwrtWkXUAi+6sauopt/Qp00BVyp/KA?= =?us-ascii?Q?b7DIQfEU6ciTvDnj0AXAjJ9xZ/Mz+ClGm+DS8MyXsGfbh6MZ1+4zrm9+cGwj?= =?us-ascii?Q?I7Sldu7lzgK5zM9435pD2GShrD3o2PkN1Yp8LpCEaCW7yMoerB2F1yruD8Mo?= =?us-ascii?Q?A8I38jFwMIID7lrhA6nMVr2MgpuVkO1dJab2aQT431FVQeSZKdB/G1kM39c8?= =?us-ascii?Q?ILvkOu4elaXwlFZ9RzvjD7sMLIEYUoXgN35DaWnwMhPKuXq6N0UzTho+ovev?= =?us-ascii?Q?+FIaXDpmKDla2JQE7b0Aw1zlfYhoHBnKUpL+7iVDYVTis+POGBfQanq80OCR?= =?us-ascii?Q?RpXfLQ9STE6YbI6a5q3LeY5YQRopRsjzRr6QY+pcOeudK2/I5oF1wGEQJXjd?= =?us-ascii?Q?wd96eCgcKf8VI0xePIQQUl5U8Kdu6jvDOu14lWx4iGVj8HRFi8C8RiOXFiSB?= =?us-ascii?Q?1mF7jtg7BudFxiTEyGFD4Lksxauf9YJphMqnvZC4hABlBmlE1G5awXtmPmuf?= =?us-ascii?Q?k972NI0wesRdy21PzcJw5chpMT14RDZW06S2sJgpkoair5F95oe80LFHEXB5?= =?us-ascii?Q?kB9YJwk1A8GjtlH923tRtdtOTsi9OtY00Z0WOiXuOahu5cFJhD8M8dLplaKh?= =?us-ascii?Q?/5I+/+AWUvDCJb8YNukW59F2ih8ek2seUCxHWAeOISSPFOoxa80fQINmpXwg?= =?us-ascii?Q?39OQsu6Baw7aRjb0ZOdXyTWKK5qf7zt9Tn9uGDEb6GOMKj32luzQoV182RH4?= =?us-ascii?Q?8jwwTik+XDq5NbIzrzRKDmLXDZm5+X+DbHyjDzAcf1ZdveYRm0iYKglFblDx?= =?us-ascii?Q?O8OGb2EMFtMn8V4rfi3GqQsDFixXYJmpwExJCOxmnPW/Koykx4PxoRa+bs7o?= =?us-ascii?Q?sI59FiMEOuPPQQZw7SrJWRD1BmzmdYwu3R+5/B2RQadgAl8xXF19GLIxtKEE?= =?us-ascii?Q?Nxgg+VM85KvE7OmihKWgW1n3sHmSDihCUpzx7eu/xRzztBamnGU16Z4r2WGU?= =?us-ascii?Q?1u14Ynpy8MjX2kRMZ7Gzsy1XFmLF6hKFEb8USUuF29mL798mUAITRKdZ3pxv?= =?us-ascii?Q?KCOF3jMrmjt2hAxgrn2LhrzRqM539KtyHHE0Up7wtyquJB14vxmg2M0U0VM4?= =?us-ascii?Q?pIwYF4jYD6VuTUCyrqdLR02hHjgWGpzu8xQzBXnPqvinTu3wnAUG2F2PEzWv?= =?us-ascii?Q?0d/rMi3Q53rmTZxtU55zYdPlpAxkXVHhQIb++xUlgWG9IBYxTGeiW1gAp/hc?= =?us-ascii?Q?VQ2YNo3JXJqE77J57Oj3jTexI9g4jeip62oEQLGol9RenIiexpSmYCtwj8Sn?= =?us-ascii?Q?8RrAhfWvkZhvpGRbS6rSos22s/bVRKRjduktwC+3ksVit+xgdSHGzFd1jJ35?= =?us-ascii?Q?4W67UqirOTmq2F5EPUB8f/aJ6KRknAiaw0LYHhaztlUPOamyyvnl6erdXNU3?= =?us-ascii?Q?0VtrwZSOXCWLo1INK3gj0TTJN5kBWPSXZWz0ZqNxVPYpA0OaWKPC49VOidEX?= =?us-ascii?Q?vbzBsFtKWU58C535u2ljVWhX9pn/1qqyLhqIdMBvsMg3mhQT3DPnqKjS8tsG?= =?us-ascii?Q?Dnz+1yy0THNtpk8+rCCrPvWLHHd29dGDgVscP/D5d9/L5K8vcpOxkGloRwIC?= =?us-ascii?Q?3OCpHQByy7/iN9apj5WHFvm86unHlKCSBBorL0QpIDE5Hm5s3qerv7de/z7m?= =?us-ascii?Q?rv9GHJwTW09dHIrt0QlZlGAQahpqkvW6WnnEh2MCrKO5TGt8fadXBUfR7PuA?= =?us-ascii?Q?cDH8UZgU3tkImuUI0lv+f7ir5S13kn4=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: aee1f68e-03bb-46fd-08f2-08da3a379326 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:05:59.3639 (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: hq4uRQ5TnY9zKviq40yRtMclegJD057uUgLbbrqJcz4bSXEJerDGIwbZTh0ALWSv50wCzojBzn96Zy6VI5NZCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0402MB2757 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 9d37c509d3ce..afa4de991f1e 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_rr.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -279,10 +280,47 @@ static void test_first(void) mptcp_bpf_first__destroy(first_skel); } =20 +static void test_rr(void) +{ + struct mptcp_bpf_rr *rr_skel; + int server_fd, client_fd; + struct bpf_link *link; + + rr_skel =3D mptcp_bpf_rr__open_and_load(); + if (!ASSERT_OK_PTR(rr_skel, "bpf_rr__open_and_load")) + return; + + link =3D 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; + } + + system("ip link add veth1 type veth"); + system("ip addr add 10.0.1.1/24 dev veth1"); + system("ip link set veth1 up"); + system("ip mptcp endpoint add 10.0.1.1 subflow"); + system("sysctl -qw net.mptcp.scheduler=3Dbpf_rr"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + system("sysctl -qw net.mptcp.scheduler=3Ddefault"); + system("ip mptcp endpoint flush"); + system("ip link del veth1"); + bpf_link__destroy(link); + mptcp_bpf_rr__destroy(rr_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) test_base(); if (test__start_subtest("first")) test_first(); + if (test__start_subtest("rr")) + test_rr(); } --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562929pih; Fri, 20 May 2022 01:06:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJySkzaEM+au4fQhuK4UGETfyKotg5wD/sPA0U5B1KhN2mjb77dFesW5v7JC5d9w7TATccWT X-Received: by 2002:a05:6808:2082:b0:326:9857:840b with SMTP id s2-20020a056808208200b003269857840bmr4733656oiw.182.1653033976249; Fri, 20 May 2022 01:06:16 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id i10-20020acab80a000000b002ef0c347635si1268516oif.181.2022.05.20.01.06.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:06:16 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5420-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=ToWvdQP5; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5420-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5420-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 6B3C72E09D6 for ; Fri, 20 May 2022 08:06:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 093A115DC; Fri, 20 May 2022 08:06:14 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 A9CE37E for ; Fri, 20 May 2022 08:06:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033969; 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=MWaSsYeBT/crz+QpmWIwDUJ16Bhkca6PspThY4dUU4s=; b=ToWvdQP5sHyyADwPW/b/yaNQ20SPx+pe94kGEYUXS6TTUJxBSMRi9/KBMil4SK07eJVIOV DZpY1oVbL0UnpgO2BuA597KbvJfNqiR+uJqhzSDIKirTwREKBEh2S7iZEdvKulcLgEAmKX miUJOPSjzLP7IILUYL7n1xBkIJw31fk= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-11-k_Z0IOBCOf-d1ipZqfAILQ-1; Fri, 20 May 2022 10:06:08 +0200 X-MC-Unique: k_Z0IOBCOf-d1ipZqfAILQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YbChXS7V2FOK2G0RdAKkUph//rMciAdbmZI5Bj42Wi3nyfjCmB2xz7EpAHHGQFJp5nJUjVv0cV6Bs6XX//LS+hMnty9S0hh8L89glG1ryPdPfvS8Xl/XpRsEgDehWzbwcMo6N4V6M+Ox3u9FM1ck5Skm6WAvNXNEDUy2bViZ6UD57An+Dw/aE8SSz6EuRXKZju6IcIION4Oj8QiPwGM6CXI9yVuLrZdVeyymAUIHBmdtjQod23GAobi3t4VUG+42R3xLkf7lk/h11H15GiFaci9g9Xhrilozf+dlTYccJYuFv+hIUp4+jhdBFm3KzzMmFvTdyocPHOTiy+5s+ZPwIw== 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=i9Qtenbl/uIUIftsrou1rcIFnTD4vUeHayUYrbW6Owo=; b=erFjIqXGMA3+lbg1GJKUAUOcJwZI5k7cLLT06dIFLXwcqXqmkrAn3/qzBnbPNtuOVJzmbJ70nlMQnwebse9uJQncw+gQI+C2gC6ALEri6RZvWjLOgn4hD8y7dGLjbtkojNYtcO2YcHX8fPi6SQ3E/7H3CobtZNkYqsBFHxhV94VY9OvRidZJd3FKED91RL3afB/OWQmGoRQba6yDc25vFLQluL0rhcPwiobMFCbrmLlefMmpYUVH66KfmL3zVAOvjgQO/qRBFxNXfeghICQpOL1qWCouq8yzwAyVgFrL9xLvqZz6hbe56YxkgBVM/G/jCNFzCPld/EBlIEDFComaqw== 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 DB6PR0402MB2757.eurprd04.prod.outlook.com (2603:10a6:4:94::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.17; Fri, 20 May 2022 08:06:07 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:06:07 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 09/10] selftests/bpf: add bpf_red scheduler Date: Fri, 20 May 2022 16:04:54 +0800 Message-ID: <628bf12ff15197c6e77d3fc3aea5d7ddb9dd591c.1653033459.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR0302CA0009.apcprd03.prod.outlook.com (2603:1096:202::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: c18183f4-3bde-45ee-f1de-08da3a3797f8 X-MS-TrafficTypeDiagnostic: DB6PR0402MB2757: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: 9Yxrd9IPCq5ngWSMcg3PYg4vkCKGXSeDwZbMnfnJScexmxEFhnN/dJZ63JWrQ/dIiyh25gMQaGwg2qUz+PytwwvqvLu9FwysYmqg4i0vpkXKkcIQE307yyl6eMczR5zx64F/mpAdlrReFcjPNoY1xuHZwr0uZh84byzMcUXqUMRLvUzmsC/bPjCvbKfb92xE3CCZD2x+JPsWgBsb1gKxESPllV2ihk8zx7oJdhEgnzBalyIPXcVEHeTCwproiV+f/rZodhtQmq7JTRllOeNMcEW8r41n2p3PBoSfIxtuMdn9809dxZkKxMR19JnqpHwUkwEBvUsAD686egeIuMIAnFclP9dPmFJ2nniTwi16alSY74KEiryDrwbtdjNGfhpF6oeFMHAED1+s2ZrCvVDLgVijIOPFwCTUSNQlTTPrzHlFRg+45e/EMpUpjTQZXkvXrDGjuCK9EAwv3eMZBk+MWJ+CErBZGjSA9DNLd5dqx05DHlFAqntshjtwW7bowHkaZJK3tTu/Yg1Pvflru1Nb9qL01HePcmKO1NX2nWnu5cvNvpg1W2vuM6IFFh4ThSsNoJDuonLVwcWJlvpRbM4yh9LWfqHpvSN4XuBLlsV/ki6uQHFtoXmnc7azgvKO61mKsG5q/lrdNu70pwkBKaVF+6RNuqWmmgj6bxpStF8eVO2g57P78YUG7QXpcDq2Dki9QhzXp5qSEUAN7/pceWl3qQ== 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)(8936002)(508600001)(6666004)(6486002)(316002)(2906002)(6916009)(5660300002)(38100700002)(8676002)(107886003)(4326008)(44832011)(36756003)(66556008)(66476007)(66946007)(2616005)(6506007)(186003)(6512007)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uWrNjRoZWF325iUnzHJ+30qjnkpTLl/qTyWveXdV2fsyvLqLAT+xHf+LCw5n?= =?us-ascii?Q?u1Ifv4xp4i1SkROVGv3iznWwaN1VQlXMWSDSvSvKEOXbefVaXyc6VfOCoRMl?= =?us-ascii?Q?ugeBrbvFJdRZrNWVG0sYBLNamxXb3HSp56WawuNyzJC0vV1/L+5oWpPT8gH5?= =?us-ascii?Q?zdyfyzUogjFcOVlvSw/11GxnG3zQugjKlqN/XwN8PkF2TyvcPcQICf0p+5+E?= =?us-ascii?Q?SAiDl4GanLvAqcM/ZJ1bDFDoYtboWITevCdIdnqoWB2dHrrZ/oJvwkO4Ejr1?= =?us-ascii?Q?qofpdjp/2nqQLngSnbqFVUgPCb2eYaiSaVLTAdwuiwNeLt0UYwyD20ZXgNZP?= =?us-ascii?Q?gBKYVOxOjB2QZxjEu9s2O3YSrdsUUHMz0SCKouFa75aaDLNBRavx1mQ2po6a?= =?us-ascii?Q?l4vO2rAlPvrVyFnJuZbgFEDk5m4DKoXjP7dOfvfZjSWSGGoqjrFcDQ/0mGMk?= =?us-ascii?Q?h6hIB5g2LdPBMernXeTXmozgyqhKSQHStlLa+Bc0x4w2av2zmIRqcEXJ6L0o?= =?us-ascii?Q?iX3QDx01gRxGahXbrX8WSHTENLiUDP1Tp6Fe8z919bpSDw8diG2ZvccZVx0W?= =?us-ascii?Q?DcFnq4lJiCl90Bhpf1mV/EwZ31WngiSM24wQV872nYbB32/nMsjaRfByWIOJ?= =?us-ascii?Q?P2fQW3jNsXr0cvhnalYyzB+CkxgaEYcT4O6txVxFA0VN8SvandMo5VkHb17c?= =?us-ascii?Q?+5eED7KSshrjIlO9OYSFfZgwyeEoEv9qRIBZDsI1jz5eRh5Qayx+K4j84Fu+?= =?us-ascii?Q?3+V9fm0FlUD1Cx82SoptKoKEdoqh43KFkx4Y7q4KflWHJwdKS9+iuDUAx/9S?= =?us-ascii?Q?qcmMG9SF1TygvvgZCpbYrTVju0YHMnWjvrYK5dPBNkbSDwHrGYiWU1/mD3/e?= =?us-ascii?Q?y2zqW/9TDoowcQmj2FmBibi+qaIm57I41xp8jO0JWXHqSJEofJS2UdIZ7tdM?= =?us-ascii?Q?0si1lMYjIqhvb6i21CohxXro0FThCwjRgUq9+BAOjbw3kbN1cyD1jiIVQ3Mf?= =?us-ascii?Q?o1fgfH8Yf8iQCb1+vq2A4/WWM/HltaLomlb0xlgJK9djWzd2ifqgNY970Xis?= =?us-ascii?Q?Lp7csw8sBAt/991jbZ7kqrkUevXDsf+UTwHostr8CP2fU3QGHND7rdGg3keq?= =?us-ascii?Q?Xz/BSIxG6cGlCFb49pX6w5HzSlELMvnAynni0Np9ubwyp9tMsh6hi9IDJCRM?= =?us-ascii?Q?Z6uAUZFgzmdJK5GxAzCTXfeeiXBMXP6UdzM/N45W+uxHqZfMjyJTkT3gdgyL?= =?us-ascii?Q?Yt7qyjkfUR9trmJpslsCzZLeiWm5hd8AIfqrQmvNlMK2H7xuCp8eY1RQAtLH?= =?us-ascii?Q?Ib1JXARZsPi9Ee6e3zH9/f0zMgkOuSkjPKy1YFEaxAUsObQ8//woZUl5p1xb?= =?us-ascii?Q?0cUPmHlgP9Lo8Qyn/TG5t6HgRPKXKdiIoZF9JVAr4xiho2UP3RmA+xVVgdyx?= =?us-ascii?Q?CkFU8OpBKEQQs8JU0csvoP06XBZIGBnxVWIx4HrKLJlMQDenIHQsRG3TnLZQ?= =?us-ascii?Q?IpKK6eW5m/jIhPr/GMRnFfWMMO9vjWD+pzJB+v7LDK/JfA3mKWUesKkYTTgv?= =?us-ascii?Q?hzfFaBmPpgio7a58Lqo4FU6oZCfah24JaK3DAKCAfxJ4s1uqz4xV8eSJKJOd?= =?us-ascii?Q?bNkB+12G7TMaBPmABRbIyTUMJ/vCFM1iEJXQNhdsBe5YsvEo9E+VgWI+bIi6?= =?us-ascii?Q?oH1QJzQclsgiewYV9/5uYIH8Xj589Nx/PZdzDORVvAkKg78c0uIUPCzg5IMe?= =?us-ascii?Q?9aKNY41RB0vh2IcJBeTXF+DVAI4x7mI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c18183f4-3bde-45ee-f1de-08da3a3797f8 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:06:07.6758 (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: LO9rngBjxydTRdxkuaqNQgDt5ny0j/a/sP7IFpnwEacCtcwHCLCKxnQFikYrl7IvC0A3UO5DbSZbSc+MnTESrg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0402MB2757 Content-Type: text/plain; charset="utf-8" This patch implements the redundant BPF MPTCP scheduler, named bpf_red, which sends all packets redundantly on all available subflows. Signed-off-by: Geliang Tang --- .../selftests/bpf/progs/mptcp_bpf_red.c | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c b/tools/test= ing/selftests/bpf/progs/mptcp_bpf_red.c new file mode 100644 index 000000000000..e82181d23931 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_red_init") +void BPF_PROG(mptcp_sched_red_init, const struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_red_release") +void BPF_PROG(mptcp_sched_red_release, const struct mptcp_sock *msk) +{ +} + +void BPF_STRUCT_OPS(bpf_red_get_subflow, const struct mptcp_sock *msk, + bool reinject, struct mptcp_sched_data *data) +{ + unsigned long bitmap =3D 0; + + for (int i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!data->contexts[i]) + break; + + set_bit(i, &bitmap); + } + data->bitmap =3D bitmap; +} + +SEC(".struct_ops") +struct mptcp_sched_ops red =3D { + .init =3D (void *)mptcp_sched_red_init, + .release =3D (void *)mptcp_sched_red_release, + .get_subflow =3D (void *)bpf_red_get_subflow, + .name =3D "bpf_red", +}; --=20 2.34.1 From nobody Thu Sep 18 06:54:17 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:ad0f:0:b0:4cb:58ce:be2f with SMTP id s15csp562972pih; Fri, 20 May 2022 01:06:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyoRF+2PCYNGzebYU0A6ULBbzFBst73RiCoSgiCcx9jco6VDnvkmYW09thxr5f6CDm6vd2f X-Received: by 2002:a54:4d02:0:b0:32b:558:b593 with SMTP id v2-20020a544d02000000b0032b0558b593mr318595oix.82.1653033983540; Fri, 20 May 2022 01:06:23 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id hm6-20020a0568701b8600b000f1af1514casi1428903oab.39.2022.05.20.01.06.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 01:06:23 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5421-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=jFzuRnBH; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5421-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5421-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 561372E09E0 for ; Fri, 20 May 2022 08:06:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 20CA215DC; Fri, 20 May 2022 08:06:22 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev 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 970747E for ; Fri, 20 May 2022 08:06:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1653033978; 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=AXWL2ZNZmKT6oCDoY4/UsV5a442NXKPnv7wN0F484IU=; b=jFzuRnBH8M+e6ayqrhGdLdOJBp9hvyWaqhoHcxePHtLR58G3YnYOSdpnrzXHNY5DxajnSM IGhUYH47BAIiRefpci8pDvCiX9NzZU6WgEHx3RL1OCDmeFrOk05SmG7h10PMg6ygY+uGet nm1pO97IAkjIWuPuA0HR6ciAPZbILc0= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2105.outbound.protection.outlook.com [104.47.18.105]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-PXZ5WOCYMXWLyNbm8JBb8Q-1; Fri, 20 May 2022 10:06:17 +0200 X-MC-Unique: PXZ5WOCYMXWLyNbm8JBb8Q-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jTn4aVGzQsgBsaQHUKpL+WezuOKStBSeYT7LEZdq3/xr2tqmN/QDRwRZv5e+n9OoLbtJ2tGXJvz7TAlK12s0afbf2HXaIqUVZGrtHn1qraoJ75Bi+dY11nrGIKBwx0AEjQZJN2GerjESGWaae+3pLh6whs3dFN0tB+jj+PBl/JMrR0/CcrzPdN6MjEho7jPWJ+HvC9QsMMLqCHz1YmxxQRJuc6diLSQoStlolymAnsugIsQfWTq6wjNM5XYEzQLYIHPGS/OcYsaT/hcpvENsudxPjfcZAbo1b2Qnu0x0KbCUmUdolS2lzgww+ihj83Eus3Aald2fOvs0x/xZRb62wg== 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=Hnqi0yp8pF8K7QJ5868TyQ8pxlByiRBptdcHn1UtMeg=; b=QqyfgbRF0n4wA+tQSl8o2fakOKPzGquhbRTr/hPtJcyYEjI7OUvUcgRmO/OVgrYkr8FGeXIOJ3ikfrcNUkHX8zZXsJLok2OZvsGUncKfVGw5SPNVP1n+1kVA2LIoJklE6GvTPAN8LI/LVSlOpf396t5ZtWLBLQ3hIdF9oYXHVBzNB7BZAsRHNr6u7XUW5+f1+JxHpG81fb4pbDk/q+4PpVmMUVolrsLQLFFonDSAMr8KCYB+FJ9HOQHe/DBQNzWiSTQj33pk7Q88jnNfHVLingrjTziqwjJ1/49P+o+O1B460S7W8IjmllfgQGS1+fytq8oPH9i/DOIWaFujJejnHw== 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 DB6PR0402MB2757.eurprd04.prod.outlook.com (2603:10a6:4:94::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.17; Fri, 20 May 2022 08:06:16 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::5557:2d1:efed:96a6%7]) with mapi id 15.20.5273.017; Fri, 20 May 2022 08:06:16 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 10/10] selftests/bpf: add bpf_red test Date: Fri, 20 May 2022 16:04:55 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0139.apcprd02.prod.outlook.com (2603:1096:202:16::23) 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: 2506b2e6-f48c-4f8f-893f-08da3a379cfb X-MS-TrafficTypeDiagnostic: DB6PR0402MB2757: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: cCalEzPGAM/yeRavVHnwzcA5dlARAfSMeMJziAa0+G/KZSkS8HdPn9fi6nKkIxDJulQ677xJhEWMWg6tXfbAC1gbA6yrMGRz1HS+6mt0rOuYRp3CtOTfPB3f4SvdpZu5GqDIiDfL1GkLdepa7oNwlFJmwnjZEjqSC5Xc9IROXVM+deGj7u6wxJpv/CnxO68P7iz9KDfUh5prvnSlNrfsF2HDDBunH0ZVi49T59kyCZz0qHiSFP41dRGwEDuEuMFs4+GVEMhA2ZNfh0/0T7inoRgntRT+ckn44Q87i9IlZN4yfRj1u69vDduNbfqt6jyTeVInQSZa05B0QKjoRAcZEINYtyVyt84o08UaTzkVhZaZwfYzj/jOgPlkIpVtCVXOMPyXMVUApw0BP9NvODvkMJDK1LUJfdWcLHM1G/7X0vfOaXNpD4ZFtS+HXR14bQu5H5OQhBDcUQk9pVGk95zV3SStifEQjEal+rTV/rK/lWjn2SNecQydjYGASnaPX3L26lk9tdOcmo4X8/NAbRyPZQBVkQfOpuuATwTpmED2Wo1/XKRxUZ2pHrIf21qw4+ENxGg1yG74WM0mfj0UbXljeHSGWeLX4WIPc4TECzAVYcL0rH/7mW6WwJ+vUJvCTGVE3ZLFuemD5jHFbkb9BwMyNWxRriVGPr9GEkk6x21t5/Uh0BoJplYIsaCZXTm0WRmH 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)(8936002)(508600001)(6666004)(6486002)(316002)(2906002)(6916009)(5660300002)(38100700002)(8676002)(107886003)(4326008)(44832011)(83380400001)(36756003)(66556008)(66476007)(66946007)(2616005)(6506007)(186003)(6512007)(26005)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?APWZx1Usx34tDvFNzk1idSILOa6NZDs8CthjewDxmW6o+MpgTYETkkOTzxb4?= =?us-ascii?Q?Fzlfo80r9DnvNatD7HTiS1W/rpxvCUz6NnwUogBNz6LbncBlMse9j1rNpDLV?= =?us-ascii?Q?McWjdTUCuNqCY0uSftsVCQOvD8go4wJI8srHXKH9bptqofB7WuCkBAWM6/zg?= =?us-ascii?Q?yUxuFCP6ZZXgMOicad1xVnydsY1RA3GUPGwBMEz2hbhFjt4m0IxItlxmAgCo?= =?us-ascii?Q?KSYhfwcT6fBClZWmTUWbRG6H/a58qpFNuUwpm9siiU7sPvufKzH8abyoumGc?= =?us-ascii?Q?uQk0Xl2PmzpYp2wpgKwVlZzIxnj2mm9tam9gVSUxGXEpaCYJFHCv6gr8Uqis?= =?us-ascii?Q?uji7V3KkDIG0A7hb7/Ia2lEhKiONXcbnfmTsY1jqBbpxqp1q6+Dh9wn9CuKx?= =?us-ascii?Q?SI502gyRMsr+C9GQWMCVd3TPEWLwlDX3jDehnMhkzOUb6Bnskatz5CerYKj9?= =?us-ascii?Q?couUc9Ndt52GBUQlM6Cd/OIPlnw3fRPL2qsa08GX0TVEHtJYvV5fF4+MJGGm?= =?us-ascii?Q?uhL4hR9Y+yN4O+/veL3WpzTvZINMpdE3gaVlImgrSDqLd7tPU1cOPHgQmo7e?= =?us-ascii?Q?z8XbXTOyR783iVzjIgHKux05bWdIqmKeimowfm30+1tJLQ7LU+zbR1Uj/rHx?= =?us-ascii?Q?1hjQAQQGleXrqDIqNf8bmdrc3EYqUUWJMpsk/2pe+u3rNRZVksY1eE5iw3eX?= =?us-ascii?Q?idwCLP/NOJNgX0Cwuzb0pclGJRYqRjyeF5vjVBOqjHUwj4ARjoYCmRO+3Azr?= =?us-ascii?Q?YJubluK+u33sVR/RPI8eAScrubMSnWQqz9C/TLNIMlxcKMwVmA7tJTKvbh3J?= =?us-ascii?Q?P0+mr74bB/LBNUESGcs4ug63W87VFbBRoYD2ovWA71K4/5c3le82nHz2FKkF?= =?us-ascii?Q?6XgHdd2N3d+L19gJSap/HB7zCkAXzGYs7LRGkbGugXCj25Dg9q2WSDLl10X3?= =?us-ascii?Q?gS0rP1LauYYT8A5Ft3GG4WblZxKvYFpNrJxVVDWAX44Q7/ahX1RI95Y+jbL5?= =?us-ascii?Q?aoeNjj6XbdjrP20uExHlHKki+Faqt4YuknQ5tzrr7XZvv05xQwfG61HNLmGu?= =?us-ascii?Q?1b/IPS7nBO7mZrPdT3qtDWrArmyj5dNvyirqeuH3BV9AbWQnA0MkQgWPq1RA?= =?us-ascii?Q?A7Fbs3qhYujqwxiyZtBy1fvYnpPOO8qw8emRKHTul2qSmWr7/Xf2idz3SBT7?= =?us-ascii?Q?WN69sbMlWRgPd3TWaPzLg6ST4AYgiF57h+8UyhpAYsXSRl2v9yiepIos27Mj?= =?us-ascii?Q?xw3Ilfq3b8vRS0zzCDPlyZ9AtGJG0Dcy8Lh+1VL7h6we8npQmmrSIkwN13hZ?= =?us-ascii?Q?zlig9fDSXMQSvkcGj7pC3SYjSsx3bBDjSJd7AaMXceLhycSkYVjJ5+wPZ6QY?= =?us-ascii?Q?93p/P/dsHG+Eh1nj8qkX73FtRSeJBIxx1tmUFiUSxruy9mh6C7JPkp3n7fEx?= =?us-ascii?Q?wH+f9+MSxotqgTNkjtjWctYk1GOEfd6syaUSa6g0I7Z2u0OpuRCxVMlKClOP?= =?us-ascii?Q?j0BcqVCB66iHnQKWufQOzhR+4V8mN1coZi3UEtEluO+Ve/f6KQkARAxK8wMA?= =?us-ascii?Q?ruWufcg+IUaM0hiqFSC7FDNqhO41LD3SSziLY+y9ERcvl3r1WedARhOSBLuh?= =?us-ascii?Q?tRcVw6p0P12ibs3iNlRTZqK9pvS3rqh6TPgolLDD4zBx7cEKaZij65ASSah/?= =?us-ascii?Q?DsoeRmHz7DDY953rTzYDEtaSxvRMU4Z8Bbu6R8y8fPKZ6mpuT1Dlq0zcWNfN?= =?us-ascii?Q?a+qfwUq672VYDPyLS6XHAEuHObma8Kk=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2506b2e6-f48c-4f8f-893f-08da3a379cfb X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 08:06:16.0813 (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: U6NsQ46cDj7Z6w7skfd6QTIDff8hJmUeM7SnG2yfBGfIGoH2Dw7ETUjxPDcWJ3LCS6W9iwScR3cNLH674K53cA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0402MB2757 Content-Type: text/plain; charset="utf-8" This patch adds the redundant BPF MPTCP scheduler test. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index afa4de991f1e..f9feddace825 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_rr.skel.h" +#include "mptcp_bpf_red.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -315,6 +316,41 @@ static void test_rr(void) mptcp_bpf_rr__destroy(rr_skel); } =20 +static void test_red(void) +{ + struct mptcp_bpf_red *red_skel; + int server_fd, client_fd; + struct bpf_link *link; + + red_skel =3D mptcp_bpf_red__open_and_load(); + if (!ASSERT_OK_PTR(red_skel, "bpf_red__open_and_load")) + return; + + link =3D bpf_map__attach_struct_ops(red_skel->maps.red); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_red__destroy(red_skel); + return; + } + + system("ip link add veth1 type veth"); + system("ip addr add 10.0.1.1/24 dev veth1"); + system("ip link set veth1 up"); + system("ip mptcp endpoint add 10.0.1.1 subflow"); + system("sysctl -qw net.mptcp.scheduler=3Dbpf_red"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + system("sysctl -qw net.mptcp.scheduler=3Ddefault"); + system("ip mptcp endpoint flush"); + system("ip link del veth1"); + bpf_link__destroy(link); + mptcp_bpf_red__destroy(red_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) @@ -323,4 +359,6 @@ void test_mptcp(void) test_first(); if (test__start_subtest("rr")) test_rr(); + if (test__start_subtest("red")) + test_red(); } --=20 2.34.1