From nobody Wed May 1 21:34:16 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:1d48:0:0:0:0:0 with SMTP id 69csp3143044jaj; Tue, 7 Sep 2021 03:42:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzoB7mL3K/nhkYT7NRFAAuZn/ntzn13nFPPZNzL/m1H+3w8jHiV8z0BbfUzyyyCUDK3IOex X-Received: by 2002:a17:903:246:b0:13a:8c8:8a31 with SMTP id j6-20020a170903024600b0013a08c88a31mr13961183plh.87.1631011333861; Tue, 07 Sep 2021 03:42:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631011333; cv=none; d=google.com; s=arc-20160816; b=ad12PByKpgIt5WDtnEcqwDuJ6wj62f9U8aaq7xPyvV5hdROWxX4GY2eiYnu9V3Wjxh PLDz0YkDnTnQnB2heT74kacANurRE7XRxBKrxnQufK2Z9dtxcIZGt1dc+OM3jBhlkwAy cnA1QN6qdxd/J3NO/PnidLOJzzzcFKH+IJsl3j+/9pF+u29p9j6SKJd9DTXEPCmvyoOj bSMmrrKaWcSwIP1e72dZ1O/BiDZGyfzy8EJn9FFdyZMvLKK40aoBPViz99HImbcx2WuK MjPkh/ABBw9fvzvp6yyQwBcNrzcBV5/TcNhIvlzZPHF1mXJtvIk8rFXeHCm6wcpN+GO0 Fi8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=z4ipqZ6YwAe6GdDe2f7sH0TYCUu5GsEf1qXuaqPdSx4=; b=Zf7BgFBlb3wpROjKUHUqyhgq43/fKylYBQ3p735uNX/y8qtO+PQnqEnwC1cr5zyDXM LIVn1Kif+bzx5U4E5zXknbMhX6yGMG8e3p8+YOJrCxSmR+euS/dZ7UzwBiBxyuDziTfF D18H9XLILQmeG/vwuLAS8Z1OsOS04tR1DlqLz0G0noNbp4qJGQfGLA31flQDCDMg3uym eJs2XlgMjPnWgx3VtgKjH6uEjRUvhSnl551q5dgtperoISmCcnWLKEa2V6Pm3bND3hmP rxQ8j8XEuEE9loZO3UUaUM2BNoJmIOFo5cGcZg2nNAuBpDLRHtjYQfCfYljxrTnTZkel 7Rmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=N9rLV4ca; spf=pass (google.com: domain of mptcp+bounces-1872-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-1872-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id d17si20409259pfr.102.2021.09.07.03.42.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Sep 2021 03:42:13 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-1872-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=N9rLV4ca; spf=pass (google.com: domain of mptcp+bounces-1872-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-1872-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id F0F8E1C0D50 for ; Tue, 7 Sep 2021 10:42:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E4EF83FCD; Tue, 7 Sep 2021 10:42:08 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0A983FC1 for ; Tue, 7 Sep 2021 10:42:07 +0000 (UTC) Received: by mail-pg1-f175.google.com with SMTP id 17so9497895pgp.4 for ; Tue, 07 Sep 2021 03:42:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z4ipqZ6YwAe6GdDe2f7sH0TYCUu5GsEf1qXuaqPdSx4=; b=N9rLV4cajSM9s5dDghKpcLxeXPiUQer+Z41da+Nf3R/rgP9iVlfu/vjYR+ebxCalsY QERBWnr32bN6uE8iPkMElkbROg2cP16fX0Syuf/SGOwkBsw/7qHwerJl1N0xWZoNcG/+ BU3uWdnrv7KiSa0jmOFvtcr2CbuNZsh8bunLucjCvL2eQHCn/KCpy3/d49atphsR6JHR IL0ikE983iVln3qiWu4TW6oMpdwv+mjrOFocoP1FbTXaqU7Q25rRTJAG3+YVbN+jXhwF qib5RK/Ih6BBQwFWIy5L3RY24aNaRbtJU5vzeuYcAcesVEwiawND2C0gxV8qBuwztUwA 8UJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z4ipqZ6YwAe6GdDe2f7sH0TYCUu5GsEf1qXuaqPdSx4=; b=Jk/DiS8M9o4lYd8c51qQa2Wo/gjjxT7rFva4gowN5WMxryu/9qSIdEVrZjpTHQa03l AWZxK5g8/h3sDtIsQkYF/N3GOu+JAJnYRv7sHVjE7UTEedrtrEJ/vQMsAcWkRPiOYniY sGmIYENwDwzVnzdMUegiej+CBJZ2W0A09DyyaS+QHGuwPWbkTb5e/ttNXnEhe0dhoK7v 5lTHwbLdDwg3x33PSbO3pG/XQSWf4JOIy9v2P8js1w7FosU8Iyv+nqB+9wLQYpZ5Qwx4 URSUZn7z7v4tNNHZ09yhVdGVyRbU30On/Sxe68ZVMHkD9ksf5G2D/vUaFJ3vhXeTlH/I qjMQ== X-Gm-Message-State: AOAM5307iF0yQyx1crro2ZdraZ51U0kkSUGc16Gr5cYre0SgdZ4GxmFQ oe81xmXqhrvvcVaa5J3a45gcsmZa4Yk= X-Received: by 2002:a62:8048:0:b0:416:2682:e56a with SMTP id j69-20020a628048000000b004162682e56amr6139567pfd.73.1631011326896; Tue, 07 Sep 2021 03:42:06 -0700 (PDT) Received: from MiBook.. ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id x189sm10571885pfc.52.2021.09.07.03.42.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Sep 2021 03:42:06 -0700 (PDT) From: Geliang Tang To: mptcp@lists.linux.dev, geliangtang@gmail.com Cc: Geliang Tang Subject: [PATCH RFC mptcp-next 1/4] mptcp: add a new sysctl scheduler Date: Tue, 7 Sep 2021 18:41:56 +0800 Message-Id: <268ae875a7e4546922c30a974f9d675562b632e0.1631011068.git.geliangtang@xiaomi.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch added a new sysctl, named scheduler, to support for selection of different schedulers. Signed-off-by: Geliang Tang --- Documentation/networking/mptcp-sysctl.rst | 8 ++++++++ net/mptcp/ctrl.c | 14 ++++++++++++++ net/mptcp/protocol.h | 3 +++ 3 files changed, 25 insertions(+) diff --git a/Documentation/networking/mptcp-sysctl.rst b/Documentation/netw= orking/mptcp-sysctl.rst index b0d4da71e68e..ecd593c44e26 100644 --- a/Documentation/networking/mptcp-sysctl.rst +++ b/Documentation/networking/mptcp-sysctl.rst @@ -57,3 +57,11 @@ stale_loss_cnt - INTEGER This is a per-namespace sysctl. =20 Default: 4 + +scheduler - STRING + Select the scheduler of your choice. + + Support for selection of different schedulers. This is a per-namespace + sysctl. + + Default: "default" diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index 8b235468c88f..369369b0b17e 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -26,6 +26,7 @@ struct mptcp_pernet { u8 mptcp_enabled; u8 checksum_enabled; u8 allow_join_initial_addr_port; + char scheduler[MPTCP_SCHED_NAME_MAX]; }; =20 static struct mptcp_pernet *mptcp_get_pernet(const struct net *net) @@ -58,6 +59,11 @@ unsigned int mptcp_stale_loss_cnt(const struct net *net) return mptcp_get_pernet(net)->stale_loss_cnt; } =20 +char *mptcp_get_scheduler(struct net *net) +{ + return mptcp_get_pernet(net)->scheduler; +} + static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet) { pernet->mptcp_enabled =3D 1; @@ -65,6 +71,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pernet= *pernet) pernet->checksum_enabled =3D 0; pernet->allow_join_initial_addr_port =3D 1; pernet->stale_loss_cnt =3D 4; + strcpy(pernet->scheduler, "default"); } =20 #ifdef CONFIG_SYSCTL @@ -108,6 +115,12 @@ static struct ctl_table mptcp_sysctl_table[] =3D { .mode =3D 0644, .proc_handler =3D proc_douintvec_minmax, }, + { + .procname =3D "scheduler", + .maxlen =3D MPTCP_SCHED_NAME_MAX, + .mode =3D 0644, + .proc_handler =3D proc_dostring, + }, {} }; =20 @@ -128,6 +141,7 @@ static int mptcp_pernet_new_table(struct net *net, stru= ct mptcp_pernet *pernet) table[2].data =3D &pernet->checksum_enabled; table[3].data =3D &pernet->allow_join_initial_addr_port; table[4].data =3D &pernet->stale_loss_cnt; + table[5].data =3D &pernet->scheduler; =20 hdr =3D register_net_sysctl(net, MPTCP_SYSCTL_PATH, table); if (!hdr) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 99a23fff7b03..305d373332b7 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -206,6 +206,8 @@ struct mptcp_pm_data { struct mptcp_rm_list rm_list_rx; }; =20 +#define MPTCP_SCHED_NAME_MAX 16 + struct mptcp_data_frag { struct list_head list; u64 data_seq; @@ -564,6 +566,7 @@ unsigned int mptcp_get_add_addr_timeout(const struct ne= t *net); int mptcp_is_checksum_enabled(const struct net *net); int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); +char *mptcp_get_scheduler(struct net *net); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); --=20 2.31.1 From nobody Wed May 1 21:34:16 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:1d48:0:0:0:0:0 with SMTP id 69csp3143016jaj; Tue, 7 Sep 2021 03:42:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhhb7lEZca0is6IJAeOQOEclZsKcA8vUKjyfE7TGQ5zdgw87jbSZpFoNE76fg+4SI6JGGH X-Received: by 2002:a17:90b:103:: with SMTP id p3mr3774719pjz.157.1631011331161; Tue, 07 Sep 2021 03:42:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631011331; cv=none; d=google.com; s=arc-20160816; b=d8AX+XyEHEHVUqyjPlOdEtCytP1as52KEVMCA5FTkN8SViO58utGatEYffqyDqQYqq T4Qg4bHS3kepfF+GZRTyYgieBPsnfQzEE1usKL5oDqEP7XTVlWqpAMAKGbYITGpO6onu eM+s7PbuckJCTT6nEq5bBIL8oWSa2Jw8JG62C8IvpPOCOBc99PdPYUw62AItN6hOhTeD ENEb8gmTIw9UO3jNgZDXUxAzoYcRBoGzaUYVxM3NwKE/qTJgzx8REtjGDxOytzap6Fzo wqhpy5ybHX5yqsPq3L2T3aJ/MP0IWlof8KF2e/hQwuwg7G0MesL7cIek/VdZxVzfhx+V kKLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Z7jUhcYhzYJSdo9US0yEIy+lB4N82r6XMS+6fJgmaHM=; b=NLiyxkN8hVHPQfChtIlSun3CbOJipH5EXSNDJTGIXqsJC5au+TyXIPCYeNOQyPwNEg 20WTLQqlbl5BznjhulRKWgIh7Hlp1p7iQo/19cuuIHimA5ggdZFY2ytsuxXUDs5U51iz UrGnWJ9Z97Club5dfQ5Y8g8SWl+GkbbpwPtaJuNVr6bFSeWGX93quyvze+SZeB8fTWag cibYE8axZPzfT7RUxlEk+9aBlWIhKVzs6cvvvVei74wEORK72KMSy99CzF0UtgiE9o+A cfRvOUU3cluH7yXhY0RMyC/AlYJbVCJd5WSgAIF0aRhWcvSlqxTprt3oKR7jcqmzPVIs Y7EQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=JeupBXqy; spf=pass (google.com: domain of mptcp+bounces-1873-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-1873-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id u1si13029714pjm.29.2021.09.07.03.42.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Sep 2021 03:42:11 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-1873-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=JeupBXqy; spf=pass (google.com: domain of mptcp+bounces-1873-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-1873-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id B95443E0FAE for ; Tue, 7 Sep 2021 10:42:10 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3234072; Tue, 7 Sep 2021 10:42:10 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1959B3FC1 for ; Tue, 7 Sep 2021 10:42:09 +0000 (UTC) Received: by mail-pj1-f50.google.com with SMTP id fs6so6022365pjb.4 for ; Tue, 07 Sep 2021 03:42:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z7jUhcYhzYJSdo9US0yEIy+lB4N82r6XMS+6fJgmaHM=; b=JeupBXqy7emI4mmIe4A5OrrBiF123Wd9JhFIcxd2wyIu4/nurBezbnVwNTg41tBH62 Z370PeqERyvOWSmBECVGV3ExcwGcP6GjQgfqP/XhDgy4PkTMo7hbyEOgob4m9ZYguC5B TdlDyzxY6oQRu5DKwZTlnlMmCJ/bszQ8BBy98LwVPUQZKcspSG9xyI85XUd3I5qKd3iA kkRpjEu5ngPdL/L3TaL8DwzVK6bKjw078g92Z4gae+aIpwH3+HMoEVfpzrr3rR6rUZkS ucb9WEJUsmWJCczvUWTlmQ7aXe3qVOwS+RsVfNAvjU5wZU5hW91ztVN4lwFYlQws2vd/ Y4uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z7jUhcYhzYJSdo9US0yEIy+lB4N82r6XMS+6fJgmaHM=; b=JQru0QT9BOH2UhN4qnfAFFvnHkrPExUXdr0xcQcI+Y7Dvpvzy1IGK9AJOmsJwPgZ/S rTh67YTD781r0CcWEwfHJNpchZJt2DJe+7QbGzdRtiAeDmBNhD3v2C1kUgE+AXIQSYtT aTbQUzNWy55f9AdQAcetG8m1eR0LTpaJGQJgCh2iGXE+dKBdBvLd7KPRrwG96QQMkHiE C4iT7mvxBM/i0XzYYztY4EcXJX0brdiPeoPIIlJ/g9fZruOkJVP9KPxmnE1RvKMzdRec W3OZNRaooVy9z+d8eDcb9aAWh/QuW3DqrIbTwK5Ya0NiPugpnPzBDshf5HYiqVoBTDnU Z+Bw== X-Gm-Message-State: AOAM5339OFI1zEjR6JYcV7d7KBtvX826bJrKTPnjZ3h656kGaZFg1sQl 5jaw5DnVA0nNnBwuMJdc2Jy8rAIbZks= X-Received: by 2002:a17:90a:6503:: with SMTP id i3mr3929796pjj.22.1631011328575; Tue, 07 Sep 2021 03:42:08 -0700 (PDT) Received: from MiBook.. ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id x189sm10571885pfc.52.2021.09.07.03.42.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Sep 2021 03:42:08 -0700 (PDT) From: Geliang Tang To: mptcp@lists.linux.dev, geliangtang@gmail.com Cc: Geliang Tang Subject: [PATCH RFC mptcp-next 2/4] mptcp: add struct mptcp_sched_ops Date: Tue, 7 Sep 2021 18:41:57 +0800 Message-Id: <4089672c8557e031d38306ef49e26e9902e7db57.1631011068.git.geliangtang@xiaomi.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch added struct mptcp_sched_ops. And define the scheduler init, register and find functions. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 60 +++++++++++++++++++++++++++++++++++++++++--- net/mptcp/protocol.h | 8 ++++++ 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 2a525c7ae920..ab72a3950f2b 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1515,6 +1515,58 @@ static struct sock *mptcp_subflow_get_send(struct mp= tcp_sock *msk) return NULL; } =20 +static struct mptcp_sched_ops mptcp_sched_default =3D { + .get_subflow =3D mptcp_subflow_get_send, + .name =3D "default", + .owner =3D THIS_MODULE, +}; + +static DEFINE_SPINLOCK(mptcp_sched_list_lock); +static LIST_HEAD(mptcp_sched_list); + +static struct mptcp_sched_ops *mptcp_sched_find(const char *name) +{ + struct mptcp_sched_ops *ops; + + list_for_each_entry_rcu(ops, &mptcp_sched_list, list) { + if (!strcmp(ops->name, name)) + return ops; + } + + return NULL; +} + +static int mptcp_register_scheduler(struct mptcp_sched_ops *sched) +{ + int ret =3D 0; + + if (!sched->get_subflow) + return -EINVAL; + + spin_lock(&mptcp_sched_list_lock); + if (mptcp_sched_find(sched->name)) { + pr_debug("%s already registered", sched->name); + ret =3D -EEXIST; + } else { + list_add_tail_rcu(&sched->list, &mptcp_sched_list); + pr_debug("%s registered", sched->name); + } + spin_unlock(&mptcp_sched_list_lock); + return 0; +} + +static void mptcp_sched_data_init(struct mptcp_sock *msk) +{ + struct net *net =3D sock_net((struct sock *)msk); + + msk->sched =3D mptcp_sched_find(mptcp_get_scheduler(net)); +} + +static void mptcp_sched_init(void) +{ + mptcp_register_scheduler(&mptcp_sched_default); +} + static void mptcp_push_release(struct sock *sk, struct sock *ssk, struct mptcp_sendmsg_info *info) { @@ -1567,7 +1619,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) =20 prev_ssk =3D ssk; mptcp_flush_join_list(msk); - ssk =3D mptcp_subflow_get_send(msk); + ssk =3D msk->sched->get_subflow(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1634,7 +1686,7 @@ 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 =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_sk(sk)->sched->get_subflow(mptcp_sk(sk= )); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -2534,6 +2586,7 @@ static int __mptcp_init_sock(struct sock *sk) msk->recovery =3D false; =20 mptcp_pm_data_init(msk); + mptcp_sched_data_init(msk); =20 /* re-use the csk retrans timer for MPTCP-level retrans */ timer_setup(&msk->sk.icsk_retransmit_timer, mptcp_retransmit_timer, 0); @@ -3005,7 +3058,7 @@ void __mptcp_check_push(struct sock *sk, struct sock = *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_subflow_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_sk(sk)->sched->get_subflow(mptcp_sk(sk)); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); @@ -3569,6 +3622,7 @@ void __init mptcp_proto_init(void) =20 mptcp_subflow_init(); mptcp_pm_init(); + mptcp_sched_init(); mptcp_token_init(); =20 if (proto_register(&mptcp_prot, MPTCP_USE_SLAB) !=3D 0) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 305d373332b7..71237d1458ea 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -207,6 +207,13 @@ struct mptcp_pm_data { }; =20 #define MPTCP_SCHED_NAME_MAX 16 +struct mptcp_sched_ops { + struct list_head list; + + struct sock * (*get_subflow)(struct mptcp_sock *msk); + char name[MPTCP_SCHED_NAME_MAX]; + struct module *owner; +}; =20 struct mptcp_data_frag { struct list_head list; @@ -264,6 +271,7 @@ struct mptcp_sock { struct socket *subflow; /* outgoing connect/listener/!mp_capable */ struct sock *first; struct mptcp_pm_data pm; + struct mptcp_sched_ops *sched; struct { u32 space; /* bytes copied in last measurement window */ u32 copied; /* bytes copied in this measurement window */ --=20 2.31.1 From nobody Wed May 1 21:34:16 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:1d48:0:0:0:0:0 with SMTP id 69csp3143043jaj; Tue, 7 Sep 2021 03:42:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrYCqZrGzqGkmwY9nRNZrkGp4LPsuSPez5BnJPwfvNck7Uq3/8YKxU5KaKUwfYCiR9uIUf X-Received: by 2002:a62:ae10:0:b0:3f2:b79:886e with SMTP id q16-20020a62ae10000000b003f20b79886emr16106432pff.47.1631011333852; Tue, 07 Sep 2021 03:42:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631011333; cv=none; d=google.com; s=arc-20160816; b=qIf3bjmYHm5Grf1YQpam0aUuJtfgz4xOdLM+eyFOFSSjurTW6wTKViEOPY1LXCvs8o 0za9pNqVbe6ElK9keKy1PvMhr4lJ+sdDQS+FpbqGqGlRr7MEfzirvhJNfc3CnUR9hi8/ ZthuMttQctJny76MyQPoonzpPv4RYJnXH+VD0uolktBg6ru7fFPrC/XKAL0sxDOjBIos w86Vgid8E7WYA6Zb63ygD4Cbnq90GkWkHNnvsHsvuj++F1kzzM1Z9kMrIPVd1LGiHAwP jI7U8bzEb/thDN+Z5AMBkdQPweUFiQqij0w5E09vwRCypEBYadxCKwF+iLpCcOPtvtzR SSTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=nRF453gc3LoiL+DkmEG/qr8KJt3b8ZPwvak9UGeLFkM=; b=x3+2E0AsvD7os6dfGaNAYZNBZB/QSWVFL+DaZ2VeU/JIPeMAlBIcKAXEXy4KdIKwJt 3PA/xJLq1hW7hQ2bChf2EbcNDBKH5NeHGc7+0tpJK7XD7bJ2SAasGzBgK+f/BY3Gz3ro wGCrazWp6zyfBNi0lougW3d8HAa8eokodNtXQSjfAO+PkgZOv44d236rT1o1NojNow/V Yu8azj3BXuV1KFETxjAJP4VzEPWQIKd9MGDrDTlGOdhVaeRcV8XtLBxCSSggqnoazIgH 2GW02985Rk5qot0hyK5vmyfveNV4fCzQzl32j/B6xMTDKyaudRC6RTMJ5a7JRoRqI5cd jkdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=LAblFN+z; spf=pass (google.com: domain of mptcp+bounces-1874-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-1874-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id 11si37520pje.76.2021.09.07.03.42.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Sep 2021 03:42:13 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-1874-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=LAblFN+z; spf=pass (google.com: domain of mptcp+bounces-1874-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-1874-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id E51F63E1049 for ; Tue, 7 Sep 2021 10:42:12 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0B1B872; Tue, 7 Sep 2021 10:42:12 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D59C43FC1 for ; Tue, 7 Sep 2021 10:42:10 +0000 (UTC) Received: by mail-pg1-f180.google.com with SMTP id n18so9475154pgm.12 for ; Tue, 07 Sep 2021 03:42:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nRF453gc3LoiL+DkmEG/qr8KJt3b8ZPwvak9UGeLFkM=; b=LAblFN+zHU/MP6R+KAFtj2sC3ddVaeRY6fFAKIr7sjTB2QUmvl/IgHgLO+NBvlZHH/ PPKjaH3236lfhTZzOoAM1lvMIvf9U2w5wnl7VyFMAJVNuMcxBGAX7QPy2q3RVAhDDeFA MtEhzXFTDQaPcRIfaQAU+m0awzpS58uEIB9eeUJjilLdDi9KyBfKt53BDtu9as3gnQXC 2qkjWgEfki0hkp9reBC6EVJSO+57kindgsibYyp3SCe9ue2qdr811el+CCBo/qYGioil d0wTR9coZdnF+d/vfKdYpz9VRmuoHDm10Rg1S6oEiHFDSMLt9WBK08wWOtARMhDq476Z DcwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nRF453gc3LoiL+DkmEG/qr8KJt3b8ZPwvak9UGeLFkM=; b=SBUIqRUBthnE6W4HyBYQs/nTUTw0eZh3jNeoeZd+/Hwf+7n0yZFEaYY1uqzOVVSEDV B3cZLQ0Trg4b+g0v8ica+rvwE89N1mReNlxhxrL5eImm3Yg/NOaUJODPL8WdwuGd1Gj/ W/LUqeIM4eF/dgxI9FaLdrctzdmZC7DyyRSfNWipVMjRLMh42KPOeQUXwuGYBGuCNk14 l1DiU5cI5Um0jYDLTpoAwWrUkaF8Q/eLbQs+JjdYmKLq0IHwbsRSVfCNy8LLxKFzro7V px+HsAUgZSt+1DMGU4gVL41FygEvX9/Uz2PoFX7/cNivfdHpet6gHo7K56Qdbqpb6TDN uiQw== X-Gm-Message-State: AOAM5301G6fZ5C6CT5rAeKYOfaL5REgWR7XnFWPASnmOjH1z6G7O54is d07KyQj+8J4jw64qVWUq5i64Yy2rcJ0= X-Received: by 2002:aa7:9282:0:b0:3e2:800a:b423 with SMTP id j2-20020aa79282000000b003e2800ab423mr16130932pfa.21.1631011330324; Tue, 07 Sep 2021 03:42:10 -0700 (PDT) Received: from MiBook.. ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id x189sm10571885pfc.52.2021.09.07.03.42.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Sep 2021 03:42:10 -0700 (PDT) From: Geliang Tang To: mptcp@lists.linux.dev, geliangtang@gmail.com Cc: Geliang Tang Subject: [PATCH RFC mptcp-next 3/4] mptcp: round-robin packet scheduler support Date: Tue, 7 Sep 2021 18:41:58 +0800 Message-Id: <95d450f9694cf9d95081a77db529db2181d0d3b3.1631011068.git.geliangtang@xiaomi.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Implement the round-robin packet scheduler like on the mptcp.org kernel. Signed-off-by: Geliang Tang --- net/mptcp/Kconfig | 7 +++++++ net/mptcp/protocol.c | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/net/mptcp/Kconfig b/net/mptcp/Kconfig index 10c97e19a7da..0df36991566a 100644 --- a/net/mptcp/Kconfig +++ b/net/mptcp/Kconfig @@ -23,6 +23,13 @@ config MPTCP_IPV6 depends on IPV6=3Dy default y =20 +config MPTCP_ROUNDROBIN + tristate "MPTCP Round-Robin" + default n + help + This is a very simple round-robin scheduler. Probably has bad performan= ce + but might be interesting for researchers. + config MPTCP_KUNIT_TEST tristate "This builds the MPTCP KUnit tests" if !KUNIT_ALL_TESTS depends on KUNIT diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index ab72a3950f2b..b78c4eb4947f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1521,6 +1521,29 @@ static struct mptcp_sched_ops mptcp_sched_default = =3D { .owner =3D THIS_MODULE, }; =20 +#if IS_ENABLED(CONFIG_MPTCP_ROUNDROBIN) +static struct sock *rr_get_subflow(struct mptcp_sock *msk) +{ + struct mptcp_subflow_context *subflow; + struct sock *ssk; + + mptcp_for_each_subflow(msk, subflow) { + ssk =3D mptcp_subflow_tcp_sock(subflow); + if (ssk !=3D msk->last_snd) { + pr_debug("msk=3D%p ssk=3D%p last_snd=3D%p", msk, ssk, msk->last_snd); + msk->last_snd =3D ssk; + } + } + return msk->last_snd; +} + +static struct mptcp_sched_ops mptcp_sched_rr =3D { + .get_subflow =3D rr_get_subflow, + .name =3D "roundrobin", + .owner =3D THIS_MODULE, +}; +#endif + static DEFINE_SPINLOCK(mptcp_sched_list_lock); static LIST_HEAD(mptcp_sched_list); =20 @@ -1565,6 +1588,9 @@ static void mptcp_sched_data_init(struct mptcp_sock *= msk) static void mptcp_sched_init(void) { mptcp_register_scheduler(&mptcp_sched_default); +#if IS_ENABLED(CONFIG_MPTCP_ROUNDROBIN) + mptcp_register_scheduler(&mptcp_sched_rr); +#endif } =20 static void mptcp_push_release(struct sock *sk, struct sock *ssk, --=20 2.31.1 From nobody Wed May 1 21:34:16 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:1d48:0:0:0:0:0 with SMTP id 69csp3143069jaj; Tue, 7 Sep 2021 03:42:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx+eQ5+OMGC2I7kx0Jz9+MVWU75MeVLbnP3pcuXxZK2OhiLL5hAZdpWtqtcyzIPKaEy9Klg X-Received: by 2002:a17:902:d892:b0:138:abfd:ec7d with SMTP id b18-20020a170902d89200b00138abfdec7dmr14414238plz.15.1631011336323; Tue, 07 Sep 2021 03:42:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631011336; cv=none; d=google.com; s=arc-20160816; b=IrGTy+b967FP8cLWenqTSYm2I+Jq7FRfjVcE2WrWXXNkqFeItbOBAaRA7b4dD0CCfl hhARXzsUOePxqaF85xJNEQSU8KDxicu3VYLqjVr16A65E9bZGy+SnmqC5e9U+1oOmzRz uotbOYbVtw6tlkGPfZeaI/NZQ2Gn3D9enHpmsjXLs/6+YyXMWbStlYdAAfggPdQr15z5 7KE/bLCONpbGjpPm5l9DcB9e6cPbxuqb5m3LxRlV0TdCyS6s+DBV5jsfLLfOTmEQTaOt DpOqtejCjYgxMvgkYSL4R1ZHYRdT89+JSLHfd61AaEkErnjbUYDyHFc8vH5z5Y0B2JOl 3/Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=1K7ugEhop6LCWfr4ijQCmh95fD7Pz5Fai/YV5A3EDdc=; b=hFqCdyNRrPBgtHkek1NwqxIPtXgtp8vY1YrItFVGaMgGKilsf2yI8XqSwu8QjH6PKB RIg5bcfPLpiknmlvxPRWojMMq1c33Txnj7FgCpmBRq2XTQ3jehxbHlZXuJE75J5AJP4g wWkfAJETQ86hGWabSAeg1xokK/VmkhXyG2+q8Ie+W56VbKIZkjgDZhORh6/K2l7sImLi 8j+SRyDMaebeGDpuZMaHFCQsdr4Iw+vs31lEhQ0Ex2cS7lzQFWaiuTZIvu6FUd3WBczW 6Nrn0ef276x/lo5MvpkzDGIlxCRmMXsDYJACpGyzyXE0JxxAjxg/OdGM5sTe985ccDyW xctw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=VkpOGbjD; spf=pass (google.com: domain of mptcp+bounces-1875-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-1875-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id t4si14878111pgv.383.2021.09.07.03.42.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Sep 2021 03:42:16 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-1875-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=VkpOGbjD; spf=pass (google.com: domain of mptcp+bounces-1875-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-1875-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 453811C0A9D for ; Tue, 7 Sep 2021 10:42:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0C4C272; Tue, 7 Sep 2021 10:42:14 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B54E13FC1 for ; Tue, 7 Sep 2021 10:42:12 +0000 (UTC) Received: by mail-pg1-f173.google.com with SMTP id k24so9486111pgh.8 for ; Tue, 07 Sep 2021 03:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1K7ugEhop6LCWfr4ijQCmh95fD7Pz5Fai/YV5A3EDdc=; b=VkpOGbjDZLHlsNiIN61pNlaphJYMnAb5PpWHzJzWlfQXID2h1ricQgXAQaVP4f76ZV A/88kM96zEaa9DqL4J1oXpeYL5/yBxXBlac7ovKiy88XOgVx3NNkgYasilUHwCqOPKpY N3alTTO3DY6b+jIhir9zk1TjaT/TkECSZV5UzLQyF7V7XNa/d/3fA8ho2hTyUBmdnAzm LN1Qdpd39YzkpdjK2Fsq5xpvRO5jgonn33EiHekSVejl0OEeFEzZd8SihTVFHN0LqE6S wl+Wpz/EcpUnlu34aFAQgEi7rbuMzDRjmsJhqJLi1ZtUCpjMeknvu5e8yZvGLYvtcGsg d4JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1K7ugEhop6LCWfr4ijQCmh95fD7Pz5Fai/YV5A3EDdc=; b=H3z0Fgz/WqXQpGVoMAbd8Z34VVZUOzemk/fLIM6nyR+CMZ+deHttobHrZqz4Pa811g simLIgTTUnY+ukcow3Yty3U9FOPytojN/J/mPB+/vKuLk/BXNEQomi/cmir5n1XHapLb oX/wHByG0z+aAlOzQphdhEIi4ODiDnIuaZkJ9UMwlRjW9NP1v2iarjtsagSlbdHc4YkA StsGiYdAidgrqNf+u5w+R9y4D74592zGkS6y9JKU1VsXFnZ1/iLu7R9zIkYYSZAnUHNB eEcJhns4sjGlzpq6Gqu8h6dYlFt6cCqXfpBoE92buVvrlI6My0S0xj/YEVVYnpLrDgeQ n0Lw== X-Gm-Message-State: AOAM533uM+sKZEtdG85b4/BlysMfa3WEW1CpbNB0qUHYj0oNyroND7CQ R6F3xO0vLsbyCXknmJRiYHEZXy+Dp7c= X-Received: by 2002:a05:6a00:d72:b0:3f7:7f03:6cfb with SMTP id n50-20020a056a000d7200b003f77f036cfbmr20476783pfv.1.1631011332158; Tue, 07 Sep 2021 03:42:12 -0700 (PDT) Received: from MiBook.. ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id x189sm10571885pfc.52.2021.09.07.03.42.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Sep 2021 03:42:11 -0700 (PDT) From: Geliang Tang To: mptcp@lists.linux.dev, geliangtang@gmail.com Cc: Geliang Tang Subject: [PATCH RFC mptcp-next 4/4] selftests: mptcp: add round-robin testcase Date: Tue, 7 Sep 2021 18:41:59 +0800 Message-Id: <7e749e6d27fee702dfc1c6478cb426c36e84a3ac.1631011068.git.geliangtang@xiaomi.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Add the round-robin scheduler testcase. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 255793c5ac4f..c69b1dce95f7 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -15,6 +15,7 @@ timeout_test=3D$((timeout_poll * 2 + 1)) mptcp_connect=3D"" capture=3D0 checksum=3D0 +roundrobin=3D0 do_all_tests=3D1 =20 TEST_COUNT=3D0 @@ -55,6 +56,9 @@ init() if [ $checksum -eq 1 ]; then ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=3D1 fi + if [ $roundrobin -eq 1 ]; then + ip netns exec $netns sysctl -q net.mptcp.scheduler=3D"roundrobin" + fi done =20 # ns1 ns2 @@ -1854,9 +1858,12 @@ for arg in "$@"; do if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"C"[0-9a-zA-Z]*$ ]]; then checksum=3D1 fi + if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"R"[0-9a-zA-Z]*$ ]]; then + roundrobin=3D1 + fi =20 - # exception for the capture/checksum options, the rest means: a part of t= he tests - if [ "${arg}" !=3D "-c" ] && [ "${arg}" !=3D "-C" ]; then + # exception for the capture/checksum/roundrobin options, the rest means: = a part of the tests + if [ "${arg}" !=3D "-c" ] && [ "${arg}" !=3D "-C" ] && [ "${arg}" !=3D "-= R" ]; then do_all_tests=3D0 fi done --=20 2.31.1