From patchwork Fri May 20 08:04:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856452 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: 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: ixzP+H+sBlQet9jUdwZkV7SB18kfUed2784rdLqpE76WQpVZZEqeQnokON3wpXHmh7E7xpFOBIrQ13LAaO5s7OHOYl2+4d52SouDvbv+oOiOPYsXzW1E03xXZwHuM9SYXalx3GiIopxwSvvzTnpnd6XqeE/cDj2e06rf+xx1nzoR1Sq1VISXoEOJYR7kWWv2d3AP/tzM6R9iqvw8/LAbbSu+iNOILn3FMf3nNKouM4UJZ+NSPg8aEIItWO2AJPHc2fcXcKD5xmSLPLvmCsTpb5Sg17baXKDRkY8QwwPfL+Gpmria1OdUdDpxGG+Hjuu/Qmvhz2bCA43Ff1vhXIfrK2kjcpBWdTnVxEvDbMA30vewFgrVmnDeyCcVHg+jBLZIt+CXVqacnQvI6Bnml2D5XJUssJUwAbBi1zPXnGHjVixlJUfN73gH0D02UQDDScfAgqrcS/jKL/KADHOjAxMbP5+mXBJpbzayfC4tiLqvKH4anPUxIUwEdNwSUBKgx0FI6mkwmB0AyO0oxa2+4CBheXWVHrZ/NHBbsEoYfkYTF4LKuhJPQXZd96rLtlXtoehm9EFje3JUhxH3N6BIGR1Nd4W15yQqbsJ8+PhGWyP94Zq1Z7EIkncB+/NOsdoJXm/mEPpkkHIaGV8b0jnuTTmOj+w9klykjaYIe2EIX+NHHyX84R3jiY/lke//iTRg8putEeH16i3OTf9SkatvHOWssA/oENFYmiyzkQY5RehYR1T8sYFnfW56cJhF0ZrZB3sVQtdxSjLz4xNS7EI+H8xmcau9DJPjmnG2chieoo/DOeyguCu0/enff1DHKCV8G9nQLomFOnyXe3i1v1bNxybAAlheCtmlj/sQ2GlH8iZMpFLpVxHqEpUfwF4/t7KFkMYj4qgHi8hGIpO8nN6cqG7JdSgnzryml3wdU7vP6pdCv0nTZv5DwGs+h9MHQs9bDJDvbjdf7vs9USBC+OYHcdvEM/6/dnUhza6+Ad6/UeHoZWkMarw+Jg9edCExv6diI1lisHU3TCwlDfPtrxTlwzlAKVdE07IkG2obA0Rdv4GdPlbvPAUPTTYI0o63lfSeb+FO/LRHm99NhPfSTURmIDIIv6NN9uoL0XZ4SwVjtKrjby1+Okn16wk9ReAn3xboVAvrVv4I71r/ttRZbcPyFW9zxoWeW5+Pw9T9498M16r9kw8p019p5u8jCtqhqjgEPcBzFJOQ4BOquwHLvdXSrjezaYRuX+CQzH6hGU5n13tOUAtSqiRy5Pvi0pyi2LVPxuUQ2YYF3aFDBPGDU2l1PjB7Mo194wLTJytZtXBxgoFOviVFC5NuPgOpP9iK2mrTPrJ2JCwZupLfJkaZrNyyngMj2VbqC47Y8ERg1tt0NtQSL74rQ5xOVc9p5vJJA4YwpxjG5bTokoIu+OH5gXru7BOqL5PZ6E4FWkAJyK0Hxx4pV1Do245KyV16EO2wxI4knTyrBkiKsvxM1o8hOzgIlRjNu4gzjdGZpihXFnwp4UkUogZKD+QhkM7D+VdvfDW0vONCnF5A0VGIGblDrBGJ/1ZYchKlMl7XxRpQWXQ/szJLXtCNd8gH0M7YAtPhVQMsGtSppH8uLjdSDl2vOdYrk4e3B6F3nC+FHbgNvTuc2IyeNUkeRU9BOyF9d2I+qnpxeIjYXYCi/RMnXzTOZGGzsHNoCFKfg8SEk/yDMDgEGf+j+UlOlDD2LZo/dXOw/wDwB608LhlmLx5lKBL2aVURdOEzBK2RGF8TC0a13+vXGDamFlY= 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 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 struct mptcp_sched_data { - struct sock *sock; - bool call_again; + unsigned long bitmap; }; 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, __u32 w, __u32 acked) __ksym; #define MPTCP_SCHED_NAME_MAX 16 struct mptcp_sched_data { - struct sock *sock; - bool call_again; + unsigned long bitmap; }; struct mptcp_sched_ops { From patchwork Fri May 20 08:04:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856453 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: 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: NzkLqew1/onpbqgXGPrK9eOL8FVQxGLdf6hw4h1GzgXf4zP6rIjh5L4QWKzQ06jwqxx3RUeM0yw2dc0dAsjdeGhJjPvwFHO8y6hNBuqYi0bDmp6kjbm2bWdFL39GNVgknB84VFSd41reK1mvq8FGPpbX4XZDtSxtkGbb2dkKdi0VtI4rvBNnbMUX8wN0URgjzworDZdS9RZw7gIwwN1W7HUaoO+3G+DQTv4GbQPJqyla62u/RnjN06aiSsaByir5DSeLYEwE0G6zkSxOheIq5hnT2hxsdVNHm225dXAbnGPKKcha0k5CPovTzQrCk+BiTXwgMY4wFU3LZyLnN16u37t8CwDxDGuSNhFds5ZdrbB44BTUVfH4A+J2+UOny9vmcaEX2B256ssqSRdzDyBq4w91YWtIwkac0KWGzSpW10pB6LEAqqhyc4DDwQbp/6cxBIqBRdqk5oKjATfE0HJp8nU+RL2nSYn+W4rsCdUehaHg6wQCDZ146DILIAALHPKl3eVadXRvtgeSYxZ+MZcxEA2Vc3T0zqPOv2mFQwLT/A2lvMAFAntASPYpjs4K3k70MK6A6O+KTmfAQ8ANZtSl4e/2PFG6a46/acswgwjABTF2BY4o8JyCcmFINCfjr5vD2T0oJQ5GLhauoGlmAS6PeoGApsPqxUk4EQTm2YwEo6Sfzrt/mHcorvigOpmA/0GzOzEi3nZZGYOvi/oxa2C9V1mvek7/c5UA+Jaa50C81FGMlxpgfxruGCVFjy6V+w9PislN3yEDZDwT2PJN9hGyI17+o/28a6IhmsX/WP57AtL/jjknI8F2lyeVuJg6cGMS1rSCQUjzH/G0GbzZ8W0zKLi0mF6rF/Nw7jkXOK1s8xWeonSfJS/jxORslbl9wwKyQDoLS6w7ex297zyEYxaQ8J5jZAcZSKvtGek/K8o32vOTtioVUyNIFmYXMkXqwI9trnweZo3llEiJxYGjxXtrEl/Rkrxr3QF6szdYSH+7GnNXLZZQUNJOOIuop1xOQbbKTfACSnlstCporvHSjAYJjiKbiNeL/gAhl22l4VbjToXgLEg2fo2r0b6Zw7Q49vhlQCFf/nSqFgost1Bxq5YSs1rW358YvOhHb6a3b4HggugAnFcZ1nYeAVnNiOikfqoXpDnPfLbBlZ4VWv01Gqd0HVRFIEJsRiZZMcBFKB/AtMviM95SUUCxU9Aq+CJaC2IgzY9NA8kSjrnRyQLyS9+dbi3w5alHXraKalzrtWsJjxkNIjlQ1D5JpPFVUUYEvPYA8N3D1Fpjw5hQ9kvEl/R6HqHrlntPFvnBs1tTbnBSdsZpf1/vCg57Z3lSz7Vx+GFLGtHPvAykddmXT8rRasBAZp71eJgrm8cnuhscwNVr9Uu0GNjqndTomWWZnGGMRitgAZwJwa5l29OAaXCOm8Sqpow8iSYBYquvncX5MypZUJ8MWK63JghTw6AYBpBzQ2aUjEA+qT9pBs6Evg61ul9Ahtfg7tNnxAlwmgOaPmoc0VwjdSbYNiGnExzikZQNDOxnkG0zAkhMEhBLDeY0oVg7t/9Y9NP+LjhxZ2VOsFexTwSjQ85nXk4Cenxp5mgOU4fEKfEk0Q+4iIrMiDK5wD9oGaNmZHwu+3ey4q+qkgsYtVCN2NeKcvgpTJfU25+mgdY2uU52j+aI0Va9BvMcFe2/QKywN0v++KhaF+ZImUUGUUaMeWAdryOh7LIHHEV4IkhNP3rEMlEP2+uk9geU0jhTS4P599ElA9hk07Svx2ssUSs= 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 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 sock *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk = first ? ssk : mptcp_sched_get_send(mptcp_sk(sk)); - if (!xmit_ssk) - goto out; - if (xmit_ssk != ssk) { - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), - MPTCP_DELEGATE_SEND); - goto out; + if (first) { + xmit_ssk = ssk; + + if (!xmit_ssk) + goto out; + ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <= 0) + goto out; + first = false; + } else { + xmit_ssk = mptcp_sched_get_send(mptcp_sk(sk)); + + if (!xmit_ssk) + goto out; + if (xmit_ssk != ssk) { + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), + MPTCP_DELEGATE_SEND); + goto out; + } + + ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <= 0) + goto out; } - ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <= 0) - goto out; - info.sent += ret; copied += ret; len -= ret; - first = false; mptcp_update_post_push(msk, dfrag, ret); } From patchwork Fri May 20 08:04:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856454 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: 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: aRB5hH9wq5xhRrTvCZYKYA4wwi/SXCK9hw84hEpyEjfoejsFHX6vziD7V9JxZFkqdRPh5FMCcyuXlMzZBxN/8BXpmBvQV562vBK5tkxJjdXpYSb52UH3PFIJiTOW6FHXW9p91trKRbrJWxa+FdRsvA3mFqeyKYm0kl3jzqjwaBxrKfp6zl+AZzLB+RiSJhoys9QyiAMQA5AO7AF5L3EKkkKk8ys8kFrHQ3y3HPbVC9zoOxS8+k3E8N3F7/Ba+/tnz5TxlcJ0GwM9WD7nLLfKa2Z8Nbzm6itBJ1VaFuJjXSbzjSssNMCXsZfdauECdIRJFONKGorcVw3DzOTBkWtdUm2etLEMULrsjRNNiwJL1gGqLSg6GmzcsV/aGDHDzPlTSvgJtQidUldrl4WOJQeS39b2Q8yLOVgzNv9eoscefSjG8d0O0PnArFL6Wa6i2VBdpA0q7utVJJycDtUeny6hDZXiP6mA73mF2TTxaNqhpnnF8XKqSOFqhK03/tWo5mRLgQsjNBHRX1PaLA0dOIviYmwvarmEViyXx24wfGkidJdOF+KfXlwj5vrfMRJMQFcKchGMF7w+qisBDaWD+UXUWpkK6cqhL2WHHFkTR6RurgQGbA681XYXbtgCUm9DkbP6t6k2p3EyGbMkihAQxJGLn/Qhj5PQzw2gzX/32+ZK8C8kiLRKhON401Ai1qbG1+mNTVm8OWTGqwSj3zzTVHTlgGPqaVmaU+sgyE4W/LRtqupnDkJ7H6oW+msTtBQmPy0u9MX4Vrpf8pgOYpKGnO7XEUMEcbAl61EXtliDVl9uPXRON9Rqz/DnRoA63J90phEK9nnENb4qUnZFnniKcvMHT3BhT4idLil3iobyx0M/UqZNtWbQ978jNsC7CCDP9RQYtvpfjR3IpjsE19llebo9S+NXucvi9npWSh3ZN+efQe1WdA3DInsl9GMC07nWczzpkKVhtyUmjGhgfbvBHTup09Isnopwecw+gh8qYKiHE75yPWfDkmem6+VOLJ/cL/oCa4Si/MYhOxopXigOnSz8+/aoe5se9MNJk1h8sCFhCPnPEhruuSzxOwzh4ZiWwfpHMa+uhbQGM46Hl65s4gEvFe18pPu2YJxPtoYVJI1dB/5cigd3uaAI0UgqH4OPrOQs4PpvWCKsJPoI+Tw3xa3+YmUissg2uxIt494op/McjtSP7xZbQv5BOmcTfF+Ds5o2VLBDFGrvdkuSpekZuMDgKE3XV7ZbUE4ZxFaOl8FyGnIe1UC3zBQgrgJDizovLIlTPpX4Rk3GGRHjHYUKWbDFGYqixCO1a2TBqvpGhQWIhOkdNTwa+RnK1jjoS4A4x1EssFGPoBepLQnfSirODGIBPyMT0dK06j4XOwRLyYIINkLZhtESjeQ5+p7eRW8RkZohnsyX2MPnlELg96FYYfFk7aeIY2y27BM+bZNDOKIGNZXkV88OBMfDfj/sP3JeIQCzL9HUcu+lHWz5cNQ02d2JOr/AT9UYwhxw222x/BJH7cnNSbLlVAXsQ6Ivhv0TRZoYuPq07RS23Sk8jkvKXL5vXQpJol2BMy01X7ZK/GBo/fmBKK8nbliWvRQDRhb/uaKnK6YPrcnPZQ7xujmss7wsWnE35Tocn2QdAlyTClCigDC+WFV+kBkvhOe+6orOXvRx51sI8CjT/33Md5aKaP6z8nq6Rt6CqHcOD6pj3pW9Mw8gUTrgmYFRPQ0s9EFZVEdNWFnQ/kH2yAthhr6N+M5WleA9YcPl3Q2B8aCVxEeJMss= 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 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 = dfrag->data_len; len = dfrag->data_len - dfrag->already_sent; while (len > 0) { + struct mptcp_subflow_context *subflow; int ret = 0; + int max = 0; + int err; - prev_ssk = ssk; - ssk = mptcp_sched_get_send(msk); - - /* First check. If the ssk has changed since - * the last round, release prev_ssk - */ - if (ssk != 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 != prev_ssk) - lock_sock(ssk); - - ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <= 0) { - mptcp_push_release(ssk, &info); + err = mptcp_sched_get_send(msk); + if (err) goto out; + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + prev_ssk = ssk; + ssk = mptcp_subflow_tcp_sock(subflow); + + /* First check. If the ssk has changed since + * the last round, release prev_ssk + */ + if (ssk != 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 != prev_ssk) + lock_sock(ssk); + + ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <= 0) { + mptcp_push_release(ssk, &info); + goto out; + } + + if (ret > max) + max = ret; + } } - info.sent += ret; - copied += ret; - len -= ret; + info.sent += max; + copied += max; + len -= max; - 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 = dfrag->data_len; len = dfrag->data_len - dfrag->already_sent; while (len > 0) { + struct mptcp_subflow_context *subflow; int ret = 0; + int max = 0; + int err; /* 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 sock *sk, struct sock *ssk) if (!xmit_ssk) goto out; - ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <= 0) + max = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (max <= 0) goto out; first = false; } else { - xmit_ssk = mptcp_sched_get_send(mptcp_sk(sk)); - - if (!xmit_ssk) - goto out; - if (xmit_ssk != ssk) { - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), - MPTCP_DELEGATE_SEND); + err = mptcp_sched_get_send(mptcp_sk(sk)); + if (err) goto out; + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + xmit_ssk = mptcp_subflow_tcp_sock(subflow); + + if (!xmit_ssk) + goto out; + if (xmit_ssk != ssk) { + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), + MPTCP_DELEGATE_SEND); + goto out; + } + + ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <= 0) + goto out; + + if (ret > max) + max = ret; + } } - - ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <= 0) - goto out; } - info.sent += ret; - copied += ret; - len -= ret; + info.sent += max; + copied += max; + len -= max; - 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 = mptcp_sk(sk); + struct mptcp_subflow_context *subflow; struct mptcp_sendmsg_info info = {}; struct mptcp_data_frag *dfrag; size_t copied = 0; struct sock *ssk; - int ret; + int err; mptcp_clean_una_wakeup(sk); /* first check ssk: need to kick "stale" logic */ - ssk = mptcp_sched_get_retrans(msk); + err = mptcp_sched_get_retrans(msk); dfrag = 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; } - if (!ssk) + if (err) goto reset_timer; - lock_sock(ssk); + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + int ret = 0; + int max = 0; - /* limit retransmission to the bytes already sent on some subflows */ - info.sent = 0; - info.limit = READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->already_sent; - while (info.sent < info.limit) { - ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <= 0) - break; + ssk = mptcp_subflow_tcp_sock(subflow); + if (!ssk) + goto reset_timer; - MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); - copied += ret; - info.sent += ret; - } - if (copied) { - dfrag->already_sent = 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); - release_sock(ssk); + /* limit retransmission to the bytes already sent on some subflows */ + info.sent = 0; + info.limit = READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->already_sent; + while (info.sent < info.limit) { + ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <= 0) + break; + + if (ret > max) + max = ret; + + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); + copied += max; + info.sent += max; + } + if (copied) { + dfrag->already_sent = 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); + } + } reset_timer: mptcp_check_and_set_pending(sk); @@ -3118,12 +3159,25 @@ void __mptcp_check_push(struct sock *sk, struct sock *ssk) return; if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk = mptcp_sched_get_send(mptcp_sk(sk)); + struct mptcp_sock *msk = mptcp_sk(sk); + struct mptcp_subflow_context *subflow; + struct sock *xmit_ssk; + int err; - if (xmit_ssk == 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 = mptcp_sched_get_send(msk); + if (err) + return; + mptcp_for_each_subflow(msk, subflow) { + if (subflow->scheduled) { + xmit_ssk = mptcp_subflow_tcp_sock(subflow); + + if (xmit_ssk == ssk) + __mptcp_subflow_push_pending(sk, ssk); + else if (xmit_ssk) + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), MPTCP_DELEGATE_SEND); + } + } } 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); static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) { 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 = NULL; - data->call_again = 0; + data->bitmap = 0; return 0; } -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; sock_owned_by_me((struct sock *)msk); + mptcp_for_each_subflow(msk, subflow) + subflow->scheduled = 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 = mptcp_subflow_ctx(msk->first); + subflow->scheduled = 1; + return 0; + } + return -EINVAL; } - if (!msk->sched) - return mptcp_subflow_get_send(msk); + if (!msk->sched) { + ssk = mptcp_subflow_get_send(msk); + if (!ssk) + goto err; + + subflow = mptcp_subflow_ctx(ssk); + if (!subflow) + goto err; + + subflow->scheduled = 1; + return 0; + } mptcp_sched_data_init(msk, &data); msk->sched->get_subflow(msk, false, &data); - msk->last_snd = data.sock; - return data.sock; + return 0; + +err: + if (msk->first) { + subflow = mptcp_subflow_ctx(msk->first); + subflow->scheduled = 1; + return 0; + } + return -EINVAL; } -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; sock_owned_by_me((const struct sock *)msk); + mptcp_for_each_subflow(msk, subflow) + subflow->scheduled = 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 = mptcp_subflow_get_retrans(msk); + if (!ssk) + goto err; + + subflow = mptcp_subflow_ctx(ssk); + if (!subflow) + goto err; - if (!msk->sched) - return mptcp_subflow_get_retrans(msk); + subflow->scheduled = 1; + return 0; + } mptcp_sched_data_init(msk, &data); msk->sched->get_subflow(msk, true, &data); - msk->last_snd = data.sock; - return data.sock; + return 0; + +err: + if (msk->first) { + subflow = mptcp_subflow_ctx(msk->first); + subflow->scheduled = 1; + return 0; + } + return -EINVAL; } From patchwork Fri May 20 08:04:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856455 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: 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: OP5sXBXWCsQWVTB0evdVjGxTcVEN5pto26E7V9kD2Ps/Gq/HkpjoPXNiasSEUC39VoeSL+l9Mo4rMwJPNJuR75eWIjMwewqSSYEMNXTCJwKpWtK4ybAAueG/1+s8RwHK+5Yv+d/i5AyM49y+Kmw/CjOw0bTZ7k+P8YhxOi0RMgMAB0/+UqjQvlzx0qOzgVxZ7SHiiL+kggfwB2O+wRDeRPynBTXXCWTx2+LELEL/H+fy79m0SPYPUYljKN7mSjfImivoR2clhzVampAELthJMkiCDQJ20ht/qgUoulcymGhD4JZuVC/S4KjoxkwXgaM4l/8sY1doB7UV7Hlt9lzTN7veugyaVFEznrhxlI0ihh+gOIv56MIQw61mLRTvOL2K2vIjWdjovDLhAvXoI/ymdvsqIngAqeT4n09jc0jnYigVnDVT+7T/d0hra9zxj71n279N+70xub3q2bHswNgdD99MBkhS7C+lLHmlzjo6EbkUexOis/FdLuz8H3gnWyzuRtc0bCf+ddHwpU3gliN4bz9eH1NGRp06S6pXC+5SC8/kZTahYRl8hNpFR+UFhmou+csqyyikGhNwp7joc4tJYobemcwWSqwuf6eJrSqMZBsuSqlGqyKIans0nuMloXflM1EJ6Khg8kgEk3rHh/GKKlDGqv61GgE3QHti1EsgoveZ2r701HlWvH7r/4PdQiK3rM+7lQ3JJVfWb/dEa/FNjkvPdFS7j3yEIl/ZCwiqaMCGpJIUMPTvFEoFdy5WFuYzcNfIhfjL85cfI44QmaxTI/5oVW+s5IdS6ImuiulUtK+eqI4VBclHbiReCLKr2g6pqMjzc6mf+atM4lIn66j+NHq01hT9+FC3QsLeMiebYReFPU14wfxg4NI73vfjNMkkOCWSAxwnxQCreWYwsIK9uu6ogLB/Rfr914cVSs8dW5AAtytxtJHvS2oBijF49g8EiQTr31oIYaJd/EUeSkjpnrX8i0GX3C4/8OZlqL9tGFIbZaRIFf4M8vkqq/w2R0i3x6X0n7exTEUTaXZn5LgzBQ55gBs5aNPl4vmdxgYzJcsML/7wf8yK8BnBUDm0co9eccjfIEcV4xRSJDCj4Zz1Oh/omyC8tvThDIoZ9yfpR1BPX/mShJh8NcZ/f1xcVGeWDnkNif3tvCjy+JDs7siQEHd5WcZadxABVkW8yoNmx++SsyqoYBQ1yclxWXmcYLm7+/ipFSrPQl+e2qFe52E9+C7uJVCAzzNkHQ9opFzgC6JocScmhea0r+bYnpCwjLRdPWer5BffNOv3BFBu0uVL3QI9kBVPEDQ30L2AzcKM7qlRCwcp1mqhBklqtuQQkgFzSFS0PRAMHlnpCtEfiecbcTA9EG7QhR6lZ6OGztZ8Kfw1rkHyy/BlmKnthL1mSzwNLFq8XXbXcx0JO4sfukdtJmWqeP7tNSH7NYvt8MngjStCfaIbdIabtZ07qd9+EuOq1TBC+Oho0O3R9BQUxuDgvJDM5UlgNpgzaH3fDq4ls4v9bH/kGl7+My+PcVeuGcQEzkabHhUsd+BOdov4kXprxQrj/BHQ3k1iv+gxeF0vnA3kAdUbG5QFUIu9dMOc/kRVS/wyppLDL4nX6b+ldGw5UwcYVp4jNWtS/+aGxZb94ByIa6PN9rQw0aje5Io5awidq+7PZiyuYG2SR0jsJfxHUus/gnVirRw4RnQWBLXp97RxYgQ3XB3msahLLOEFPGMFVkNFO3IR6jznmkas2Rbt8O9rw51CWOE0wMVNrhH2MtA= 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 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, } switch (off) { - case offsetof(struct mptcp_sched_data, sock): - end = offsetofend(struct mptcp_sched_data, sock); - break; - case offsetof(struct mptcp_sched_data, call_again): - end = offsetofend(struct mptcp_sched_data, call_again); + case offsetof(struct mptcp_sched_data, bitmap): + end = offsetofend(struct mptcp_sched_data, bitmap); break; default: bpf_log(log, "no write support to mptcp_sched_data at off %d\n", off); From patchwork Fri May 20 08:04:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856456 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: 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: S1+JW7Yo4VhFAUZ9gvKGrLoDlss328RbXGbbzaJ/av0ljYZN2TI4CMVKvOKZyOxa22kIhH1TUTK1DtZYxOFyxNwtYojb19GFEvagl6TJtt57V6m3Tbka8SMyOM3r0xis3LpvObfGswes2wNrSbsnX9EdQnHZxccOl8Vp/nP92/41xAAMbmlZ4EBcKjuEfbpEpmdfIZGgHmfjT1tLH7xvAlYOfm3Jvu/nmLB3UnHH6q2PMLAla0Ykbct4QXNsdAyC1R3yzFAOA/Wiaj+DCCu7/FB5Huj8/BfXRMNTpZH+FrTHgbOnQfDK7TACiHb5as37DYEw3TzYfoRr2LF+7NU/++fcwkhVABL4/DPI2v3lCXmlLsuKpSUAk+LcJdqHenRS23/RWjuyqlPZp3+gPQ9deJEd73ifjpCg0Jx8/s1Zk8G0wmY/QGY/9J+HhjtiN19jpHMCZbCrDJjcURGAPXA5e29r8ya6KnTurt0rX7ra7TDOyzTGXHfVtLmTJN4GCVTGGXQfGujgKmVSvPmQj0skVmoNsLczhvJ9WIfUQTxlnYFS87l1loc6cnadgfLfIxAbOmILSblOpWiG8A3Zv5XBr4uf85r8KltBIBpUHLLMTOT3o8vBUocEpnYje8/dr9HXITqtTUDLGwyAm6gCepj2ElMRRtOnNrde69FMh/pf9G07qsA7ZlzsPCfKxfS0cfOUZfUgaAaosNI2YF/l9MyPcPRCpVVpSZ2zSHU71y9XDMvz5t/6EeolVc5FD+eEy2Qv4j2QPA6274KFgOXt0F8fzuvICiOu0eYzMl7+VVfLbPAJXSqUnatD76XRh1SA3oXghCygulVuhjaOOIz2VLmFMn1VcRSwpw0ooyOtrK7CDD9YJSTiBrnWlHbz7qiMpkP1SROmQuqtTI5d5f2KMz+8JaMwkpiYMk1LiOoz5y7sFq27aT6n3dHAAjR6iJiKDOSdW2FkYwgD/CXuoeax9XVkzSgkG1NmigMaDPwZgb7ajtzbHfxLPq/2vNfU/XKUry+8epPj+C2WJTpqkj6YM8RTqJ8Iq39FMSWoDAeyWW0vxOqFH8/lk+tZjzWcljq9Lg2QB0dcn1VQoimDuSjxRVoQcHestPpolcLyB+MoX3jNsYe6g8pA85C4hbzBT1+KTrx29rGQEzyNX8s+ielvrZ5duhwGoMSZaEn8+EF2YYST2lqeqQPP/7yRnCmRhPF2X3u/sx/BE6LvtyP9h9CNmmuZGMJB31iWjTNFWZq82sVUFoE2BXMeEgNcpudWMtFLIwCQwX833vQmJqIwKX+zGjnlX+juzKhtUe4hGpsRE1spnNSZsUYbi7GTiM7qD3/olhXCxqr1nuoB6IJa1dp3sheBdeNGlUWdFG3tyrw6ti6q0LKfviJ3On5Ndd52jARN+2qM4DzkJZOAgeScqYxnhqbU8JV7sQ3acvQfWoevIBMHqduZIxQGkjUtkDwwVTIbVw6nzJRDWGz+9sZQm8JIXrPVfmk37oNVs5MBwVHbkGktsoi3G68cDi+Cb795EqE+PDnCcq7QBKZmJhADjA1plxeMlt0rUijdFMxt49ZQr0c2end095IwT+qWikRqchhFoubyZwZM3uFpgSquMnLXsueWWHmPdw/wgFQ1DlGlgOxbuXxMLd+1MHb+Bs1we3NqkgO/KoHoMAqCW2X9VzELXpceAqceXzLjZAVDfMhlyGc1DjNzFzJIFsV/7xHIcm8wQOAp4DYz26TEYHlbbYqMBZRlv8OcZeP5fucXBkM+h9tQ4gQ= 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 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 { }; #define MPTCP_SCHED_NAME_MAX 16 +#define MPTCP_SUBFLOWS_MAX 8 struct mptcp_sched_data { unsigned long bitmap; + struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; 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 = 0; + data->bitmap = 0; + mptcp_for_each_subflow(msk, subflow) { + if (i == MPTCP_SUBFLOWS_MAX) { + pr_warn_once("too many subflows"); + break; + } + data->contexts[i++] = subflow; + } + + for (; i < MPTCP_SUBFLOWS_MAX; i++) + data->contexts[i++] = NULL; + return 0; } @@ -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; sock_owned_by_me((struct sock *)msk); @@ -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); + for (i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (test_bit(i, &data.bitmap) && data.contexts[i]) { + data.contexts[i]->scheduled = 1; + msk->last_snd = data.contexts[i]->tcp_sock; + } + } return 0; 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; sock_owned_by_me((const struct sock *)msk); @@ -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); + for (i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (test_bit(i, &data.bitmap) && data.contexts[i]) { + data.contexts[i]->scheduled = 1; + msk->last_snd = data.contexts[i]->tcp_sock; + } + } + return 0; 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; #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)); struct mptcp_sched_data { unsigned long bitmap; + struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; }; struct mptcp_sched_ops { From patchwork Fri May 20 08:04:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856457 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: 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: YgcxpDvMLqO/sYQz6Xp9QW65X1b+3nteenU9dIUtQxVvFw6Lufq3IxbGuKmRX3ag6IFsMPGM1wDa1qSSv1I3Yb9zb3kiDGHoVyEIj4uAGh48MflnfOwcqlvmvUkBV4TfBjcD6Oc0SFPkczMXr85flYxj4jWXmwS7GCCd9rBcXSiDQsh75dwLaTNSFQmE8eoZV7jEPZ6l6RhJiE8SN5fq3TcUZLfh50QXUH2AFW4jW+idgjNlr2HYcafIJ0T6xsS1OzmoVlCG2uUKn5ZgWmAbvk5doi9gPXv4HLyVQDuLPpRp2REg4kquFQlGXQlGlJnNJW7oFGtBxZ/T2MlBS65/hwm0MBgLrPE+6OJoLz8B8D/zDQpy3GgSHM3jfBTz/SI86UVVf4AfCu/rBK/kUr5zcBmgf4541ODcrBGIfjmwccBpRFx4ALYXwiI7m6ACX9LnfqUsavrrde3qfmDc47T+qLtezN2CU+4UlyKb7aZK4Oj7Q8bpFQd2d7EwZPKdNxXllzJdvsknacvj0gqGqXTIjUloLdDYsLarPBP1WFEY92+ceXbaI26FNLfxvyoQQaLDWq9fBumrNCsEB2S2wXqOjkyaQYoG0XHLC36ekAxtdXxjDMGgrqBebYimRuP/z/iKJscEaz9vzrAQHHHKCs3RXH2MHRfO+CAUA5T9sTTUWd4BRfNPuXWF2MdMK9aAT9sbu/ykVDbcAnFgqwQ8hDYipeQpkl1vOet7y50OfTPOSrdpXuwkPFH+w3JmKIgV/ckcvrC0bU0n6equYCmNDNtHgp59+JWwQcpRohrwmQEhefXOu0PH6zxwD7rldP5m5cwGX0tq/TGsoQ9BmD+sGmLaBido2AS8rYp4HlVXad2qjn/6X2pbxBe4wIi21R/tYOjXoG82Na0XX25AIn3wIjamjHS3euseJPVDwn9MeCKPecnk6ogqfIvZrfY2iKh53YvBfVE4FSAP95McBDwi5cfhzJK2S7s52RTLQJiPWf92nDlp86AXO7F9uHqtZkcjtLpdZf4t36O+gB7rQB1hgXAwrjtI5u9AO2CfRM8fEA8P9c7GqhF637CWr61Ycn+LLeyuAAerOzMIQdUl8BGmH9p1RT3tYTvqRLmgguw8AVPvS6RMziH+081RKh9NNC/l7HGJmJokFwRbpwhyu7hlA3nyOP+dhJRzKx6MZR7m2CKqZxR2tC5s+GGAW3+Gh4eiG8/fba1jdJe6umC7o6uhEd/vp1vyh5VQiODgCkxQ32ec88Z/PZZReG72tYsyx4EdXyvwFolLGFmUD+GElmCRmt/rPArkoW+TesDJpcxsRMzxwpDRpsV7EkiSiBim1FB0ouAzEz0XFbINhYtESY6ZK6U28PwK+oCArLYVNosoIBRsJci27zBvKrLhLexfTSL164JNl+ZlBVjOaBPqpb2g/UP3uhQ4aiD5cAs+TCvrT+h/lQ+2VktunR8UeJKYt9Iqdb6kPr7m0aFMlQAIb+C5mpD/Wr9vEL3oTXKpRwdAGfy2YjkcAU/b25mL/5EW07F+NvXhzK8QT6bxG9Txpkt3k5PGbhfp8HtsabsNxPW0hDeRkFyLdr6IeiX8orQDSShvzYWQUyx0eaqsTUnmWLR/F0KrTPAip6fUpZmw69ATLvp6WbknTB4LRC3FDArGTM0DHpe8ltDGWLmpmP5yMQV5beeVkGYw4mVk0MOFE286XMtEfnKr1flmBpwgtzi6BoJf3AbimsyDRggDignjGeKXSFmwv3emgvvZ4uGW1KH72Oc89Q0= 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 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)); +#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 = ((unsigned long *)addr) + (nr / sizeof(unsigned long)); + unsigned long mask = UL(1) << (nr % sizeof(unsigned long)); + + *p |= mask; +} + #endif diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/testing/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 mptcp_sock *msk) void BPF_STRUCT_OPS(bpf_first_get_subflow, const struct mptcp_sock *msk, bool reinject, struct mptcp_sched_data *data) { - data->sock = msk->first; - data->call_again = 0; + unsigned long bitmap = 0; + + set_bit(0, &bitmap); + data->bitmap = bitmap; } SEC(".struct_ops") From patchwork Fri May 20 08:04:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856458 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: 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: IlmCneQl/dYso90QNYBhIt/vEf3rEg+x/2zujKPUiOWGbi3/TnLRmMVKjpiSEci2D4j4G6WL+c8tfJ9b/9Uuft5SY71w9TKPmk+f933EtZ65vsqAXlEOLxwXAx2Yjkw3tLsvddGjFUA92xkXCmOslDU5t6sAT6oUuRRoMnLKFXElezmkaJD4jabRDfXq4QFJVbAQYsvaVgv1wmvQzE9kYydXI3vLv//rGwUPFdO+bmvRlq6OuxjYbIQ4op27DzdBz5v5DRjU01rMYxQVh5sGFGes4cBd8yBhGZ6KYDtzXx3eCwjRHAiQeLC1fFUd6cdjgI9v2k9Nyd+9hOR4ApsO5DWufsnWmuYND9/oj6y0EjNwFK3euPsnN7vAaXs7SeCGKS6JoXeu0LnsNdsor/E8XLJVrcrgcN5mupZkpUIvlkvw/B5Gnwlceiu2s6DAISWdoSGdhPr6Mf6utwZ406eTZIvPTmzES3CFe/qgqBq1x3hVDabVUf6lg1T1zMok/XvgKaPg9dCtc541gAXRudmV46ePTWM9ByAsBJCzWgHbscC0ospogJwHPHne3GA9Ub4oH+gRVodpt7VOSZTGA9L1DaMoXuEHMxazPfKVJWUe+HfhoAC/V2aBlhk6FKhp6fhlQABhtzItTVLduwuRTvCFYlmBtPsM298RplS9lElSTcbMByKA9am8bcCPw1RvtU/9dUcVGxSo7kCcES3fQ2Ql4P4LSdKZBoG2cNWGfkzx5HuvZIBrB22j981wfZugvTZFiK6sG/ncaGsYB2I0Cfqjx1dyle2f0K4Bd+5UfQDSmaYi8E4WJOgVRwXY2u191irKqkZi9aCR7kpESudOidqe6/lXBsVFH+IHj9NOn/hzsGQchMbDQ5dFBqfQGPwN6LJ6PC8KKBxapnQO3O8R9yY+lL7VWzigumqjtU6Xc23m62KQVohoSZBmjCCDnZkgFe+gkQJBaghpbFW9wZPiT9uRirSMWAC91cKtPSf6qkzHsf3dYVlFM3nrQlLhwmXrMMeYFQ0ETGTYsZSTTp/VN6s8qxXWn5jYPNtL+jvGzPJVlgwcJGDovJ4sJOwC1y7flhnltiwvLJeyVd3CS1MP5evQsldGKWhM9qVxzNi9zAz4OzLfptOTHYUh7HCN0C/iUZb5Z39ht6NtAFAVuM7JsqJcs/LRaH8J8i3jwJRnhGTRZgwFqxQOzX8zRc44AvhthTmrB4cfwGKklb7MFtfS8oESMosxVhSdZiz1YPvDCR5O5oO6WPV1s43PK2GlCTgBdQI6iL1de6oTrp6ee6wQdJTNsuBPtqFb3GvEyJ5uMH2mGeqXJgozGpmNgSrDxfprR6IVJmnybNcLKjClq2C2DYThzDyrk4TbSId+8cJuvkwcqizfCpstNU+KxZYFA/TO88VT2Uy+HSIaG4Yz1l8YVwsiZBqqH4czESqqytOBqVWo0cIdiyRL/esbLEUaxZOvESz0d8XALA126db5YG5Ntxs0n6VlcU7sTHCxqcErKxQKxLVpGjHRf39MiXIEcst8nlQulsyYCQF3S+SBQzVdGnAe5w/HVqEvRyUGtv+dPYD7taaQHFhW9rvAuWa+uPYiv9C1dN4M4OqJYQYStx2gv3tz15x/63xPzEMSoN01aN/M61m5ksfbwvilFozjz5pE7nS8/acdnTvH31pzliFPAdAKTjjHI6u33rtmWrd107KJA6h0R8auEON3A2vd7liN4x9AvbKQuj9zfUCRVyyaUrnb4djBB2nVaz42VEhjqLiHfPs= 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 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; + 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/testing/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") = "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 = 0; + int nr = 0; + + for (int i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!msk->last_snd || !data->contexts[i]) + break; + + if (data->contexts[i]->tcp_sock == msk->last_snd) { + if (i + 1 == MPTCP_SUBFLOWS_MAX || !data->contexts[i + 1]) + break; + + nr = i + 1; + break; + } + } + + set_bit(nr, &bitmap); + data->bitmap = bitmap; +} + +SEC(".struct_ops") +struct mptcp_sched_ops rr = { + .init = (void *)mptcp_sched_rr_init, + .release = (void *)mptcp_sched_rr_release, + .get_subflow = (void *)bpf_rr_get_subflow, + .name = "bpf_rr", +}; From patchwork Fri May 20 08:04:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856459 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: 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: dDXLVwXUejPP7zGO8syDan9JKldwdJkwrtWkXUAi+6sauopt/Qp00BVyp/KAb7DIQfEU6ciTvDnj0AXAjJ9xZ/Mz+ClGm+DS8MyXsGfbh6MZ1+4zrm9+cGwjI7Sldu7lzgK5zM9435pD2GShrD3o2PkN1Yp8LpCEaCW7yMoerB2F1yruD8MoA8I38jFwMIID7lrhA6nMVr2MgpuVkO1dJab2aQT431FVQeSZKdB/G1kM39c8ILvkOu4elaXwlFZ9RzvjD7sMLIEYUoXgN35DaWnwMhPKuXq6N0UzTho+ovev+FIaXDpmKDla2JQE7b0Aw1zlfYhoHBnKUpL+7iVDYVTis+POGBfQanq80OCRRpXfLQ9STE6YbI6a5q3LeY5YQRopRsjzRr6QY+pcOeudK2/I5oF1wGEQJXjdwd96eCgcKf8VI0xePIQQUl5U8Kdu6jvDOu14lWx4iGVj8HRFi8C8RiOXFiSB1mF7jtg7BudFxiTEyGFD4Lksxauf9YJphMqnvZC4hABlBmlE1G5awXtmPmufk972NI0wesRdy21PzcJw5chpMT14RDZW06S2sJgpkoair5F95oe80LFHEXB5kB9YJwk1A8GjtlH923tRtdtOTsi9OtY00Z0WOiXuOahu5cFJhD8M8dLplaKh/5I+/+AWUvDCJb8YNukW59F2ih8ek2seUCxHWAeOISSPFOoxa80fQINmpXwg39OQsu6Baw7aRjb0ZOdXyTWKK5qf7zt9Tn9uGDEb6GOMKj32luzQoV182RH48jwwTik+XDq5NbIzrzRKDmLXDZm5+X+DbHyjDzAcf1ZdveYRm0iYKglFblDxO8OGb2EMFtMn8V4rfi3GqQsDFixXYJmpwExJCOxmnPW/Koykx4PxoRa+bs7osI59FiMEOuPPQQZw7SrJWRD1BmzmdYwu3R+5/B2RQadgAl8xXF19GLIxtKEENxgg+VM85KvE7OmihKWgW1n3sHmSDihCUpzx7eu/xRzztBamnGU16Z4r2WGU1u14Ynpy8MjX2kRMZ7Gzsy1XFmLF6hKFEb8USUuF29mL798mUAITRKdZ3pxvKCOF3jMrmjt2hAxgrn2LhrzRqM539KtyHHE0Up7wtyquJB14vxmg2M0U0VM4pIwYF4jYD6VuTUCyrqdLR02hHjgWGpzu8xQzBXnPqvinTu3wnAUG2F2PEzWv0d/rMi3Q53rmTZxtU55zYdPlpAxkXVHhQIb++xUlgWG9IBYxTGeiW1gAp/hcVQ2YNo3JXJqE77J57Oj3jTexI9g4jeip62oEQLGol9RenIiexpSmYCtwj8Sn8RrAhfWvkZhvpGRbS6rSos22s/bVRKRjduktwC+3ksVit+xgdSHGzFd1jJ354W67UqirOTmq2F5EPUB8f/aJ6KRknAiaw0LYHhaztlUPOamyyvnl6erdXNU30VtrwZSOXCWLo1INK3gj0TTJN5kBWPSXZWz0ZqNxVPYpA0OaWKPC49VOidEXvbzBsFtKWU58C535u2ljVWhX9pn/1qqyLhqIdMBvsMg3mhQT3DPnqKjS8tsGDnz+1yy0THNtpk8+rCCrPvWLHHd29dGDgVscP/D5d9/L5K8vcpOxkGloRwIC3OCpHQByy7/iN9apj5WHFvm86unHlKCSBBorL0QpIDE5Hm5s3qerv7de/z7mrv9GHJwTW09dHIrt0QlZlGAQahpqkvW6WnnEh2MCrKO5TGt8fadXBUfR7PuAcDH8UZgU3tkImuUI0lv+f7ir5S13kn4= 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 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" #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); } +static void test_rr(void) +{ + struct mptcp_bpf_rr *rr_skel; + int server_fd, client_fd; + struct bpf_link *link; + + rr_skel = mptcp_bpf_rr__open_and_load(); + if (!ASSERT_OK_PTR(rr_skel, "bpf_rr__open_and_load")) + return; + + link = bpf_map__attach_struct_ops(rr_skel->maps.rr); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_rr__destroy(rr_skel); + return; + } + + 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=bpf_rr"); + server_fd = start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd = connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + system("sysctl -qw net.mptcp.scheduler=default"); + 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(); } From patchwork Fri May 20 08:04:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856460 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: 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: uWrNjRoZWF325iUnzHJ+30qjnkpTLl/qTyWveXdV2fsyvLqLAT+xHf+LCw5nu1Ifv4xp4i1SkROVGv3iznWwaN1VQlXMWSDSvSvKEOXbefVaXyc6VfOCoRMlugeBrbvFJdRZrNWVG0sYBLNamxXb3HSp56WawuNyzJC0vV1/L+5oWpPT8gH5zdyfyzUogjFcOVlvSw/11GxnG3zQugjKlqN/XwN8PkF2TyvcPcQICf0p+5+ESAiDl4GanLvAqcM/ZJ1bDFDoYtboWITevCdIdnqoWB2dHrrZ/oJvwkO4Ejr1qofpdjp/2nqQLngSnbqFVUgPCb2eYaiSaVLTAdwuiwNeLt0UYwyD20ZXgNZPgBKYVOxOjB2QZxjEu9s2O3YSrdsUUHMz0SCKouFa75aaDLNBRavx1mQ2po6al4vO2rAlPvrVyFnJuZbgFEDk5m4DKoXjP7dOfvfZjSWSGGoqjrFcDQ/0mGMkh6hIB5g2LdPBMernXeTXmozgyqhKSQHStlLa+Bc0x4w2av2zmIRqcEXJ6L0oiX3QDx01gRxGahXbrX8WSHTENLiUDP1Tp6Fe8z919bpSDw8diG2ZvccZVx0WDcFnq4lJiCl90Bhpf1mV/EwZ31WngiSM24wQV872nYbB32/nMsjaRfByWIOJP2fQW3jNsXr0cvhnalYyzB+CkxgaEYcT4O6txVxFA0VN8SvandMo5VkHb17c+5eED7KSshrjIlO9OYSFfZgwyeEoEv9qRIBZDsI1jz5eRh5Qayx+K4j84Fu+3+V9fm0FlUD1Cx82SoptKoKEdoqh43KFkx4Y7q4KflWHJwdKS9+iuDUAx/9SqcmMG9SF1TygvvgZCpbYrTVju0YHMnWjvrYK5dPBNkbSDwHrGYiWU1/mD3/ey2zqW/9TDoowcQmj2FmBibi+qaIm57I41xp8jO0JWXHqSJEofJS2UdIZ7tdM0si1lMYjIqhvb6i21CohxXro0FThCwjRgUq9+BAOjbw3kbN1cyD1jiIVQ3Mfo1fgfH8Yf8iQCb1+vq2A4/WWM/HltaLomlb0xlgJK9djWzd2ifqgNY970XisLp7csw8sBAt/991jbZ7kqrkUevXDsf+UTwHostr8CP2fU3QGHND7rdGg3keqXz/BSIxG6cGlCFb49pX6w5HzSlELMvnAynni0Np9ubwyp9tMsh6hi9IDJCRMZ6uAUZFgzmdJK5GxAzCTXfeeiXBMXP6UdzM/N45W+uxHqZfMjyJTkT3gdgyLYt7qyjkfUR9trmJpslsCzZLeiWm5hd8AIfqrQmvNlMK2H7xuCp8eY1RQAtLHIb1JXARZsPi9Ee6e3zH9/f0zMgkOuSkjPKy1YFEaxAUsObQ8//woZUl5p1xb0cUPmHlgP9Lo8Qyn/TG5t6HgRPKXKdiIoZF9JVAr4xiho2UP3RmA+xVVgdyxCkFU8OpBKEQQs8JU0csvoP06XBZIGBnxVWIx4HrKLJlMQDenIHQsRG3TnLZQIpKK6eW5m/jIhPr/GMRnFfWMMO9vjWD+pzJB+v7LDK/JfA3mKWUesKkYTTgvhzfFaBmPpgio7a58Lqo4FU6oZCfah24JaK3DAKCAfxJ4s1uqz4xV8eSJKJOdbNkB+12G7TMaBPmABRbIyTUMJ/vCFM1iEJXQNhdsBe5YsvEo9E+VgWI+bIi6oH1QJzQclsgiewYV9/5uYIH8Xj589Nx/PZdzDORVvAkKg78c0uIUPCzg5IMe9aKNY41RB0vh2IcJBeTXF+DVAI4x7mI= 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 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/testing/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") = "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 = 0; + + for (int i = 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!data->contexts[i]) + break; + + set_bit(i, &bitmap); + } + data->bitmap = bitmap; +} + +SEC(".struct_ops") +struct mptcp_sched_ops red = { + .init = (void *)mptcp_sched_red_init, + .release = (void *)mptcp_sched_red_release, + .get_subflow = (void *)bpf_red_get_subflow, + .name = "bpf_red", +}; From patchwork Fri May 20 08:04:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 12856461 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: 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: APWZx1Usx34tDvFNzk1idSILOa6NZDs8CthjewDxmW6o+MpgTYETkkOTzxb4Fzlfo80r9DnvNatD7HTiS1W/rpxvCUz6NnwUogBNz6LbncBlMse9j1rNpDLVMcWjdTUCuNqCY0uSftsVCQOvD8go4wJI8srHXKH9bptqofB7WuCkBAWM6/zgyUxuFCP6ZZXgMOicad1xVnydsY1RA3GUPGwBMEz2hbhFjt4m0IxItlxmAgCoKSYhfwcT6fBClZWmTUWbRG6H/a58qpFNuUwpm9siiU7sPvufKzH8abyoumGcuQk0Xl2PmzpYp2wpgKwVlZzIxnj2mm9tam9gVSUxGXEpaCYJFHCv6gr8Uqisuji7V3KkDIG0A7hb7/Ia2lEhKiONXcbnfmTsY1jqBbpxqp1q6+Dh9wn9CuKxSI502gyRMsr+C9GQWMCVd3TPEWLwlDX3jDehnMhkzOUb6Bnskatz5CerYKj9couUc9Ndt52GBUQlM6Cd/OIPlnw3fRPL2qsa08GX0TVEHtJYvV5fF4+MJGGmuhL4hR9Y+yN4O+/veL3WpzTvZINMpdE3gaVlImgrSDqLd7tPU1cOPHgQmo7ez8XbXTOyR783iVzjIgHKux05bWdIqmKeimowfm30+1tJLQ7LU+zbR1Uj/rHx1hjQAQQGleXrqDIqNf8bmdrc3EYqUUWJMpsk/2pe+u3rNRZVksY1eE5iw3eXidwCLP/NOJNgX0Cwuzb0pclGJRYqRjyeF5vjVBOqjHUwj4ARjoYCmRO+3AzrYJubluK+u33sVR/RPI8eAScrubMSnWQqz9C/TLNIMlxcKMwVmA7tJTKvbh3JP0+mr74bB/LBNUESGcs4ug63W87VFbBRoYD2ovWA71K4/5c3le82nHz2FKkF6XgHdd2N3d+L19gJSap/HB7zCkAXzGYs7LRGkbGugXCj25Dg9q2WSDLl10X3gS0rP1LauYYT8A5Ft3GG4WblZxKvYFpNrJxVVDWAX44Q7/ahX1RI95Y+jbL5aoeNjj6XbdjrP20uExHlHKki+Faqt4YuknQ5tzrr7XZvv05xQwfG61HNLmGu1b/IPS7nBO7mZrPdT3qtDWrArmyj5dNvyirqeuH3BV9AbWQnA0MkQgWPq1RAA7Fbs3qhYujqwxiyZtBy1fvYnpPOO8qw8emRKHTul2qSmWr7/Xf2idz3SBT7WN69sbMlWRgPd3TWaPzLg6ST4AYgiF57h+8UyhpAYsXSRl2v9yiepIos27Mjxw3Ilfq3b8vRS0zzCDPlyZ9AtGJG0Dcy8Lh+1VL7h6we8npQmmrSIkwN13hZzlig9fDSXMQSvkcGj7pC3SYjSsx3bBDjSJd7AaMXceLhycSkYVjJ5+wPZ6QY93p/P/dsHG+Eh1nj8qkX73FtRSeJBIxx1tmUFiUSxruy9mh6C7JPkp3n7fExwH+f9+MSxotqgTNkjtjWctYk1GOEfd6syaUSa6g0I7Z2u0OpuRCxVMlKClOPj0BcqVCB66iHnQKWufQOzhR+4V8mN1coZi3UEtEluO+Ve/f6KQkARAxK8wMAruWufcg+IUaM0hiqFSC7FDNqhO41LD3SSziLY+y9ERcvl3r1WedARhOSBLuhtRcVw6p0P12ibs3iNlRTZqK9pvS3rqh6TPgolLDD4zBx7cEKaZij65ASSah/DsoeRmHz7DDY953rTzYDEtaSxvRMU4Z8Bbu6R8y8fPKZ6mpuT1Dlq0zcWNfNa+qfwUq672VYDPyLS6XHAEuHObma8Kk= 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 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" #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); } +static void test_red(void) +{ + struct mptcp_bpf_red *red_skel; + int server_fd, client_fd; + struct bpf_link *link; + + red_skel = mptcp_bpf_red__open_and_load(); + if (!ASSERT_OK_PTR(red_skel, "bpf_red__open_and_load")) + return; + + link = 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=bpf_red"); + server_fd = start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd = connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + system("sysctl -qw net.mptcp.scheduler=default"); + 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(); }