Re: [multipathtcp] Regarding rate control at a subflow level

<> Tue, 18 June 2019 09:29 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B6CAB1200C1 for <>; Tue, 18 Jun 2019 02:29:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.688
X-Spam-Status: No, score=-2.688 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id LoBX_dC2ffw1 for <>; Tue, 18 Jun 2019 02:29:23 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1C67612004E for <>; Tue, 18 Jun 2019 02:29:22 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Jun 2019 10:25:51 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 18 Jun 2019 10:29:18 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 18 Jun 2019 10:29:18 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Jun 2019 10:28:25 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=egPDxsFsV7uRavoY/ELO1y0NvqiWdXjs3d3ws4lQybA=; b=j0R7bYgRPgUDB1iEJdjxFGAW+JV5SXuPSdrqODwf9z03hyEqkWTR5mQZKBWHfbK4ZuAe2DKM7nQocDFCREbNJWdoC7cwzTJFpXX9IZ1UXwfEaZTSHZZpPeZrzXbnfqnzgLRIXJYJWeQOIUusJ9R0/kBo5mEakmvmSh2/uSLKeu4=
Received: from LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM ( by LNXP123MB2140.GBRP123.PROD.OUTLOOK.COM ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Tue, 18 Jun 2019 09:29:12 +0000
Received: from LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM ([fe80::d0d4:e85d:d101:97f0]) by LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM ([fe80::d0d4:e85d:d101:97f0%7]) with mapi id 15.20.1987.014; Tue, 18 Jun 2019 09:29:12 +0000
Thread-Topic: [multipathtcp] Regarding rate control at a subflow level
Thread-Index: AdUMWULM15YYbMauQ2OybE7pkHW5IQAPgMiAAJ7rTAAB/BSx4AFTrJcAAliq1lA=
Date: Tue, 18 Jun 2019 09:29:12 +0000
Message-ID: <LNXP123MB25870DE326B0567659FA83F7EBEA0@LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM>
References: <> <> <20190520135014.GG41806@MacBook-Pro-64.local> <LO2P123MB1965EA246F2652E9D5C47731EB180@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM> <>
In-Reply-To: <>
Accept-Language: en-GB, en-US
Content-Language: en-US
authentication-results: spf=none (sender IP is );
x-originating-ip: []
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1b17732e-7f7b-41f8-88b3-08d6f3cf6cbe
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:LNXP123MB2140;
x-ms-traffictypediagnostic: LNXP123MB2140:
x-ms-exchange-purlcount: 4
x-antispam-2: 1
x-microsoft-antispam-prvs: <LNXP123MB2140F96327B569EB7061C16CEBEA0@LNXP123MB2140.GBRP123.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 007271867D
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(39860400002)(366004)(136003)(346002)(199004)(189003)(13464003)(14454004)(68736007)(76116006)(236005)(9686003)(6306002)(53386004)(54896002)(74316002)(733005)(66066001)(186003)(229853002)(73956011)(66476007)(66556008)(14444005)(66446008)(64756008)(790700001)(55016002)(66946007)(256004)(6916009)(6436002)(3846002)(8676002)(86362001)(81166006)(81156014)(7736002)(71190400001)(53936002)(4326008)(71200400001)(316002)(478600001)(2906002)(52536014)(966005)(53546011)(5660300002)(7696005)(76176011)(66574012)(6116002)(33656002)(606006)(102836004)(486006)(6246003)(11346002)(8936002)(6506007)(476003)(25786009)(99286004)(54906003)(26005)(446003)(20673002); DIR:OUT; SFP:1101; SCL:1; SRVR:LNXP123MB2140; H:LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 30+VnDGZJNgmD9JJfH6mPio4umBk0mEIvuO4XsIaWBd839knh5WTdvyn6q7hs9zfthqNDZIO2Teau4tSBvR4xm9VTdxwxc9JpSmypiTviq7bIPkXerBqzaKP/+HbNd1gsLjWJDZd11WSibluSxVm8n+9Gnp4ZB/VndslVUdFMUrGrzrHaPkykym9MvJd31hKkuLxEhU8hM1zn8pqPPFPsZwqphmDyUky900Ut7Bult+T7FrcvO+ah4wEPbWwPRvnUCR/Xtbqpkia50N+D617ft48H/5kneMUyUeV4NJXUOYCSNAWxlrsIOs5AomXf8ByDqWRVRtg+wUSjLogpqgPvqCthwML8YG1kudvbAFDQhcGGQyEeuTJOFF/HDB8vk8EHzFWEASWXDI4kMjDDrVRUtfepuEr2iN2vTON0lLAXr4=
Content-Type: multipart/alternative; boundary="_000_LNXP123MB25870DE326B0567659FA83F7EBEA0LNXP123MB2587GBRP_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b17732e-7f7b-41f8-88b3-08d6f3cf6cbe
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2019 09:29:12.6990 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a7f35688-9c00-4d5e-ba41-29f146377ab0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LNXP123MB2140
Archived-At: <>
Subject: Re: [multipathtcp] Regarding rate control at a subflow level
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multi-path extensions for TCP <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 18 Jun 2019 09:29:27 -0000

Sorry for the delay, been away.
Gregory – thanks, really interesting info.
In summary it sounds like my scenario works ok without any extra signalling or mods, with the following caveats:

-          Assumes DSL vs 4/5G vs satellite etc preference is fixed (basically: fill DSl first). I can see this is usually true, but question is whether a particular app the perference may be the other way round?

-          In the non-proxy mode the server somehow needs to know your preference – not sure how to indicate this?

-          Does anyone care about the upstream traffic?

From: Gregory Detal []
Sent: 06 June 2019 11:24
To: Eardley,PL,Philip,TUD1 R <>
Cc:; Olivier Bonaventure <>; multipathtcp <>;;
Subject: Re: [multipathtcp] Regarding rate control at a subflow level

Hi Phil,

On Thu, May 30, 2019 at 7:53 PM <<>> wrote:
I think the use case a hybrid operator could be interested in is the following. Similar to Alexander's use case.

We want to provide a particular customer with broadband access that is faster than their DSL alone can provide, for instance to meet some minimum rate to meet a target of say 20Mbps. The rate can't quite be met by DSL, therefore cellular or even satellite is used as a top-up. DSL capacity is much cheaper than cellular /satellite, therefore the ideal scheduler would favour DSL.

This is exactly the type of deployments that we have on the field.

It would react reasonably quickly to increased total load above the DSL rate (but not so fast that the instantaneous rate from a variable rate source 'kicks in' the cellular when the rate over a slightly longer time can be met by DSL).

There are 2 possible levels: (1) macro: create a subflow when the load reaches the DSL rate and (2) micro: schedule packets first on the DSL subflow.
For (1) the CPE monitors the load on the DSL link  If the load is lower than a minimum threshold, then no subflow is established over the LTE network. If the load is above a maximum threshold, the CPE creates an additional subflow over the LTE network. Note that (2) is always enabled as as soon as the 2 subflows are available, the packet scheduler becomes important. It first tries to fill the DSL link and once it is full, it overflows over the LTE subflow.
We have deployments where (1) and (2) are enabled and others where only (2) is enables. What is always important for a customer is that a Speedtest always display the aggregated speed. In the first deployment mode, the speed is increased in the middle of the test while with the second mode the boost is observed directly.

Note that the DSL rate is not completely static.  It supports deployments with a proxy in the home gateway and in the network (under the control of the operator),

This corresponds to the currently deployed Hybrid Access Networks.

and deployments where there's only the proxy in the network (ie MPTCP is in the multi-interface phone).

This corresponds to the future ATSSS service in 5G networks that will leverage the 0-rtt convert protocol that was started in the mptcp working group and is now discussed within the tcpm working group.

Possible to ensure that an individual flow goes over only one access. Downward direction (from network to house) more important than upward.  In a long-running session using a lot of bandwidth, because the amount of other traffic varies, it may be that this session sometimes uses just the DSL and sometimes is spread over both accesses.

Our experience shows that the scheduler that prioritises the DSL link is sufficient to ensure that the traffic automatically moves to the DSL network when the load decreases.

On a minor point, ideally a speed test should measure the rate correctly (I don’t mean the scheduler identifies a speed test and favours it; rather, ideally the speed test shouldn’t eg measure just the DSL rate - alternatively re-define the speed test).

The Ookla speedtest is considered as the reference tool by customer and typically opens n parallel TCP connections to saturate the available network. Each of these connections typically creates and additional subflow and both the DSL and the LTE link are used and tested. As said above, when using the second deployment mode, both the DSL and the aggregated speed can be seen but is is often tricky to tune properly. It could therefore be interesting to think about a different and more reliable methodology to measure hybrid access networks.

So in terms of Olivier's question below, I think this means that the limit is about the total and not per subflow.

Looking at the downstream traffic, it seems that you need to limit the rate of the incoming traffic towards a specific IP address. This can be implemented on the internet facing side of a HAG. This way, the total rate of the DSL+LTE is limited because the split of the traffic is done in the HAG (DSL is filled first). This can be done locally on the HAG and does not require any MPTCP signalling. If IPv4 and IPv6 are used, then the rate should apply to all the addresses assigned to the same CPE.

In terms of mechanism, I'm open to whatever is most suitable. I'm very interested if the best method would mean that ideally some new functionality is added to the MPTCP standard (and by implication to MP-QUIC).

It is possible to add signaling to MPTCP and MPQUIC, but those signals operate on a per-connection basis. It is difficult to have a signal that affects a group of connections. Another point that needs to be addressed is the trust of the device that sends the signal. In an hybrid access network, should the CPE send inside an MPTCP option the maximum rate at which the HAG should deliver data ? If you trust all CPEs, maybe, but if customers can select their own CPE or modify them, there are some risks which such signals...

Best wishes,

-----Original Message-----
From: multipathtcp [<>] On Behalf Of Christoph Paasch
Sent: 20 May 2019 14:50
To: Olivier Bonaventure <<>>
Cc:<>; Ashutosh prakash <<>>; Nagesh shamnur <<>>
Subject: Re: [multipathtcp] Regarding rate control at a subflow level


On 17/05/19 - 09:59:54, Olivier Bonaventure wrote:
> Dear Nagesh,
> >
> >                  Greetings. In case of Mobile deployments of MPTCP,
> > though the data rates are getting cheaper, still it would be wise
> > not to run the cellular path to full limit but to throttle to a
> > certain extent considering cost in mind or if server wants to limit
> > the client at subflow level, then I couldn’t find the support for
> > the same in the specification.
> We have developed several prototypes that include this capability in
> the Linux kernel.
> > So, while going through the discussion archives, could only find
> > that, the peer(server) can throttle the speed for the entire
> > connection by publishing a smaller receiver window rather than for a
> > particular subflow. I feel, it would be a good idea if the peers can
> > exchange this information using the control packets.
> We could imagine an MPTCP option that provides the maximum rate on a
> per-subflow level, but I was wondering whether the use case is not to
> limit the bandwidth on the smartphone at the link level (i.e. multiple
> tcp connections or udp flows) and not at the subflow level. Could you
> precise your use case for the subflow level ?

another use-case for rate-control I see is when a client wants to tell a sender to gracefully close a subflow.

- Sending a TCP-RST results in packet-loss of the in-flight data.
- Reducing the window is going to stall the whole connection because the window is shared.
- Setting MP_PRIO also won't work because none might want to drain a secondary
  subflow even if the "primary" subflow is having severe packet-loss.

Thus, a "maximum-rate" option on a per-subflow level would allow to send the rate to 0, which would drain the subflow.


multipathtcp mailing list<>
multipathtcp mailing list<>

[Tessares SA]<>
Gregory Detalº | Co-Founder & CTO | +32 486 83 50 51<>
Tessares SA | Hybrid Access Solutions<>
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium<,+1348+Ottignies-Louvain-la-Neuve,+Belgium>

ºTRAAL Consulting SPRL