Re: [multipathtcp] (4) 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 582731200DF for <>; Tue, 18 Jun 2019 02:29:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Status: No, score=-2.698 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, LOTS_OF_MONEY=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id dQCOdzgS8zLs for <>; Tue, 18 Jun 2019 02:29:30 -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 A9CD4120100 for <>; Tue, 18 Jun 2019 02:29:28 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Jun 2019 10:29:28 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 18 Jun 2019 10:29:24 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 18 Jun 2019 10:29:24 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Jun 2019 10:33:31 +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=jjmQewLw0rZb7ko7OMbNa5N96omW89dteIuDfA7Qr1M=; b=TimtuimTkb6h4ZIV1XcC4qY2gUlp97aOH7k5sOwaP0Mqttw7syM04NzLLqvcsVGmjSvL0lcgEsvSDADxrycryUN9Kcv4uYFN5H9o95xdvsuyHGMl8SK1cbIWZnwZtLhpVha2vN2UhqUF+5zeW7uzilbWAUM9F5BAi9T0OWXG6J4=
Received: from LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM ( by LNXSPR01MB0022.GBRP123.PROD.OUTLOOK.COM ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.10; Tue, 18 Jun 2019 09:29:22 +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:22 +0000
Thread-Topic: RE:(4) [multipathtcp] Regarding rate control at a subflow level
Thread-Index: AQHVGqrLlKZCDIjDxU+HIBOkFcnhZKahMrmg
Date: Tue, 18 Jun 2019 09:29:22 +0000
Message-ID: <LNXP123MB258764ABF651F33AAB09186DEBEA0@LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM>
References: <LO2P123MB196591A5E12A32D82202905FEB140@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM> <> <> <> <20190520135014.GG41806@MacBook-Pro-64.local> <LO2P123MB1965EA246F2652E9D5C47731EB180@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM> <20190531091849epcms5p5cceb35136a723a5ff2fc10e6b2468473@epcms5p5> <CGME20190531051947epcas2p3d0f9cf16916e319a8878bb0f0daf0821@epcms5p8> <20190604075437epcms5p8b1c851232b9dbc9b1f522114eda97ac0@epcms5p8>
In-Reply-To: <20190604075437epcms5p8b1c851232b9dbc9b1f522114eda97ac0@epcms5p8>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
authentication-results: spf=none (sender IP is );
x-originating-ip: []
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 97f25506-9e48-4b25-85c2-08d6f3cf725d
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(49563074)(7193020); SRVR:LNXSPR01MB0022;
x-ms-traffictypediagnostic: LNXSPR01MB0022:
x-ms-exchange-purlcount: 4
x-antispam-2: 1
x-microsoft-antispam-prvs: <LNXSPR01MB0022F94D18CBED201CAB529BEBEA0@LNXSPR01MB0022.GBRP123.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 007271867D
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(39860400002)(136003)(376002)(396003)(51444003)(13464003)(199004)(189003)(73956011)(6436002)(33656002)(256004)(236005)(14444005)(446003)(2501003)(229853002)(790700001)(11346002)(7736002)(25786009)(99936001)(86362001)(486006)(476003)(81166006)(81156014)(30864003)(8676002)(66446008)(8936002)(74316002)(966005)(316002)(66946007)(66476007)(5660300002)(66556008)(55016002)(7696005)(64756008)(4326008)(9686003)(6916009)(99286004)(6246003)(606006)(76176011)(54556002)(5640700003)(66616009)(68736007)(71200400001)(76116006)(53946003)(2351001)(71190400001)(26005)(52536014)(186003)(733005)(66066001)(2906002)(6506007)(14454004)(53546011)(102836004)(6306002)(54896002)(3846002)(54906003)(478600001)(6116002)(53936002)(20673002); DIR:OUT; SFP:1101; SCL:1; SRVR:LNXSPR01MB0022; 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: 95t2/5FHxjO1EooAq799mThKGZ6fRnycvOy3Z9cUAIDjlon2jBFUZxnTTp0L1b2FIvXivAdMlV+0RFgA3ssMVjHxl1Y9XFXTIc9BqmCdM4rP2bo1RO8GaA0SdJqByoYi7i1Rc2emj6rKqQo3Qtkz4GoSaRiVWuSBnD3VYu+rxQPDlMZfxrmi8QaJWMgEheAfP+oDTyQPKZlQd4QeZhjG0aC9WYIZnFVTwIRXLf35G1XGyviBslcObEeLXpuH5L9MTsG0hyulvrqHAlMxUzADcQ7bcE/My/jt+9aYbQ//lv8UrfcrZE1WnCT05zsJv52LLXcHa7BryEuCjFppsYFOR8efInG36bd+k/45BAsm6Qu73u+cK1gslcyBdTlChSbG7q42Vq86FQC1ed4gF3aW4VTMIYfjIyDjlNib7+deCiI=
Content-Type: multipart/related; boundary="_004_LNXP123MB258764ABF651F33AAB09186DEBEA0LNXP123MB2587GBRP_"; type="multipart/alternative"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 97f25506-9e48-4b25-85c2-08d6f3cf725d
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2019 09:29:22.0586 (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: LNXSPR01MB0022
Archived-At: <>
Subject: Re: [multipathtcp] (4) 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:43 -0000

Sorry for the delay in following up, been away. In-line below [phil2]

From: Madhan Raj Kanagarathinam []
Sent: 04 June 2019 08:55
To: Eardley,PL,Philip,TUD1 R <>
Subject: RE:(4) [multipathtcp] Regarding rate control at a subflow level


In 2 – I’m quite intrigued by the suggestion of a fixed ratio between the subflows

This is in specific to server that uses RR scheduler. The RR scheduler, can receive the feedback about the current UE (user equipment) parameters and schedule the packet accordingly. Here we send the ratio of scheduling rather than the actual bandwidth.

10:1 rather than taking account of actual congestion & bandwidth available?

Indeed, the RR scheduler doesn’t consider actual congestion and BDP. RR scheduler if not widely used though (in commercial level). But client assisted RR, can have significant enhancement.

[phil] So I think that (for downstream traffic) the server gets a hint from the client about the maximum capacities of each of the interfaces (I assume this is what you mean by “client assisted RR” – is that right?) (I assume this is a one-off hint, rather than an on-going signal that reflects changes in the spare capacity of each interface.).  I agree this is better than having no info, but presumably not (?nearly?) as good as getting info about the current congestion and BDP. It also creates the problem about how to signal this hint from the client to the server (whereas MP/TCP already provides a signal for congestion).

 So my question is why people would follow for this approach? I feel like I must be missing something, it seems to require a new signal and give worse performance – but perhaps it is simpler to implement?


In 3 – can we discuss this scenario a bit more. I don’t understand your example with 500Mbps 5G why a party wants to control the rate.

This is very important case in mobile user perceptive.

-       When Mobile data is 500Mbps, Wi-Fi is 50Mbps. The ratio is around 10:1. Most of data would be consumed over 5G. Neither user not the network operator would prefer this.

-       Most of the countries has CAPPED the maximum data which can be consumed over mobile data with high speed (FUP). Exhausting the data over 5G, though Wi-Fi is available, might be overhead for users. As the operator doesn’t control, at the client (smartphones) we can control the mobile data rate i.e. reduce the mobile speed so that Wi-Fi data is consumed more.

I can see that the flinck throughput guidance might be useful (end to end with the server or with an explicit proxy)

Yes, I think this can be solution that can handle all the cases. But, we can incorporate SBR inside the MPTCP option, rather than introducing a completely new TCP option (which can be possibly stripped by middlebox).

[phil] I can partly understand the scenario. But some things that I think should be taken into account:-

[1] surely a capped max data rate over 5G is a contractual /policy setting, so the operator already know the value and thus it doesn’t need to be signalled? ;

[2] the capping limit surely applies to all the mobile client’s traffic (and may include some non-MP/TCP traffic), which will be going to many different servers ;

[3] limiting the mobile data rate to a particular value solves the problem of using too much mobile data to some extent–  but I think ideally you’d like something more flexible which….

[4] can potentially reflect user preferences (eg for this app at this moment I’m prepared to use up more of my mobile data)

[5] and potentially reflect operator preferences /knowledge (eg at the moment the DSL has a low throughput so operator needs to allow more to be sent on the mobile interface, in order to hit a 20Mbps target contractual rate)

[6] and potentially reflect knowledge /preferences about relative costs (eg satellite is much more expensive than wired DSL. I guess this info is reasonably static)

Re [1] & [2] see Gregory’s email, which says to enforce this at the HAG

It would be great to discuss this list (essentially requirements / scenarios / assumptions) and delete /modify /add to it. I think it will help the next stage of Multipath at the IETF (MPTCP & MP-QUIC)






--------- Original Message ---------

Sender :<> <<>>

Date : 2019-06-03 18:58 (GMT+5:30)

Title : RE: RE:(2) [multipathtcp] Regarding rate control at a subflow level

Let me see if I can understand the scenarios further.
In 1 – presumably there is nothing to solve
In 2 – I’m quite intrigued by the suggestion of a fixed ratio between the subflows. Why would this be a good idea? It seems to imply ignoring real-time congestion information. Is the idea that (say) the Wifi is ~10Mbps and LTE ~1Mbps, so it’s considered simpler to divide on fixed ratio 10:1 rather than taking account of actual congestion & bandwidth available?
Also I don’t understand your comment about this approach being useful when there is a large difference in RTT between subflows – surely then it’s best to restrict each flow to using one of the subflows, otherwise all flows suffer the delay of the longest RTT and we need big buffers.
If I get it right, this ‘fixed ratio’ approach is also suggested in 3GPP TR23.793 - although I find the draft doc a bit unclear whether it’s talking about steering or splitting, ie choosing one access for a new flow vs dividing one flow across accesses.
[3GPP TR23.793 v16.0.0 (Dec 2018) – work in progress – “Study on access traffic steering, switch and splitting support in the 5G system architecture (Release 16)” ]

In 3 – can we discuss this scenario a bit more. I don’t understand your example with 500Mbps 5G why a party wants to control the rate.
I suppose, continuing my example below where the operator wants to deliver a 20Mbps service (& the DSL capacity a bit less than this), then the operator may want a hard limit at 20Mbps. But in this case I guess the operator can configure the gateway at this limit, at least for downlink traffic, so no signalling is needed.
So I guess it’s some other scenario?
I can see that the flinck throughput guidance might be useful (end to end with the server or with an explicit proxy)

From: Madhan Raj Kanagarathinam []
Sent: 31 May 2019 10:19
To: Nagesh shamnur <<>>; Eardley,PL,Philip,TUD1 R <<>>;<>;<>
Cc:<>; Ashutosh prakash <<>>
Subject: RE:(2) [multipathtcp] Regarding rate control at a subflow level


There are multiple usecases and even for smartphones, the users and also the operators prefer using Wi-Fi (unlicensed) to LTE (licensed and costly).

How exactly are we going to achieve the same is the question. The problem is not introducing a signalling (or an option) but how/when do we set this value.

There can be multiple sub-cases

1) User wants to use the subflows only if max value in primary or preferred subflow doesn't reach.

Ex: If Wi-Fi can fetch 100Mbps speed, the use of LTE wouldn't even be required.

2) Assisted Round-Robin : The provided subflows can decide the ration and inform the RR scheduler. The Server can schedule accordingly.

Ex: The ratio of Wi-Fi(10Mbps) to LTE(1Mbps) speed as 10:1  and the scheduler can adapt based on this value.

This would be highly useful in cases where  RTT difference between subflows are high. When high, SPTCP performs better than MPTCP.

3) Hard control on the bandwidth: This case the user wants to force limit to bandwidth.

Ex: In 5G, the mobile data speed can be over 500Mbps and would tend to use only mobile data (not Wi-Fi). Here, one of the subflow alone can try to control the rate.

The main problem (at least in wireless) is that, we cannot predict the exact available bandwidth. There are predictions based on multiple values however it is very dynamic.

In my previous work<>, we targeted video streaming case alone. As we can predict the bandwidth required for video streaming (based on quality), we controlled in the UE side (my controlling RTT and subflow creation) to maximize the user over Wi-Fi.

How about reusing the SBR (, as this already provides (subflow level or) per connection level control.



--------- Original Message ---------

Sender : Nagesh shamnur <<>>

Date : 2019-05-31 10:49 (GMT+5:30)

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

Hi Phil,

        I am glad the problem is being discussed upon.  One more possible usecase is for load balancing to achieve one or a set of clients doesn't hog the entire bandwidth available on the server side. Though the links to server supports the bandwidth but still chooses to limit the bandwidth. I agree, this is left best to be dealt with congestion control algorithm to achieve the bandwidth sharing, but there can be cases where the application decides to limit the bandwidth to avoid possibly overload kind of scenarios.


Nagesh S

-----Original Message-----

From:<> []

Sent: 30 May 2019 23:23


Cc:<>; Ashutosh prakash <<>>; Nagesh shamnur <<>>

Subject: RE: [multipathtcp] Regarding rate control at a subflow level

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. 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). 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), and deployments where there's only the proxy in the network (ie MPTCP is in the multi-interface phone). 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. 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).

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

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).

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<>