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

<> Mon, 03 June 2019 13:28 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E19FD120243 for <>; Mon, 3 Jun 2019 06:28:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Status: No, score=-1.998 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, SPF_PASS=-0.001, 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 VXA3KVnpOuGX for <>; Mon, 3 Jun 2019 06:28:31 -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 F1EBD120242 for <>; Mon, 3 Jun 2019 06:28:29 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1713.5; Mon, 3 Jun 2019 14:28:21 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 3 Jun 2019 14:28:26 +0100
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Mon, 3 Jun 2019 14:28:26 +0100
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1531.3; Mon, 3 Jun 2019 14:27:10 +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=9EigxysoHZ7EizQXZBE1sD9YIEbhEIIDVkqK/125mSE=; b=itF6Jy+hHQ3lnzDwGiwFFJijJ1Sf6iDXxuSUIjXs7JqJu2gkGfUoAW7G8VOknDQm9cQTr9Hc64GfCQlig4Y54tyA+rweVt4AQMJOBVnP56WSF8S98NWY1GmUTwiLpjSbxNP6lMdsaaHMUvKDnPCftrXyTSFQywjS4HPeDQ9/YRo=
Received: from LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM ( by LO2P123MB1871.GBRP123.PROD.OUTLOOK.COM ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1943.21; Mon, 3 Jun 2019 13:26:50 +0000
Received: from LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM ([fe80::ccd0:2c37:ba0a:e1b1]) by LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM ([fe80::ccd0:2c37:ba0a:e1b1%4]) with mapi id 15.20.1943.018; Mon, 3 Jun 2019 13:26:50 +0000
Thread-Topic: RE:(2) [multipathtcp] Regarding rate control at a subflow level
Date: Mon, 03 Jun 2019 13:26:50 +0000
Message-ID: <LO2P123MB196591A5E12A32D82202905FEB140@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM>
References: <> <> <> <20190520135014.GG41806@MacBook-Pro-64.local> <LO2P123MB1965EA246F2652E9D5C47731EB180@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM> <CGME20190531051947epcas2p3d0f9cf16916e319a8878bb0f0daf0821@epcms5p5> <20190531091849epcms5p5cceb35136a723a5ff2fc10e6b2468473@epcms5p5>
In-Reply-To: <20190531091849epcms5p5cceb35136a723a5ff2fc10e6b2468473@epcms5p5>
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: 2c29424c-1d70-40ab-d0dc-08d6e82722d4
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:LO2P123MB1871;
x-ms-traffictypediagnostic: LO2P123MB1871:
x-ms-exchange-purlcount: 4
x-antispam-2: 1
x-microsoft-antispam-prvs: <LO2P123MB1871C961BCFAC704B7236486EB140@LO2P123MB1871.GBRP123.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0057EE387C
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(136003)(396003)(376002)(366004)(39860400002)(13464003)(189003)(199004)(99936001)(66066001)(52536014)(186003)(64756008)(76116006)(66946007)(66556008)(66476007)(66616009)(33656002)(110136005)(76176011)(54906003)(476003)(486006)(26005)(53546011)(6506007)(6306002)(446003)(11346002)(6246003)(102836004)(74316002)(316002)(73956011)(7696005)(66446008)(9686003)(54556002)(68736007)(53936002)(99286004)(236005)(4326008)(5660300002)(54896002)(25786009)(229853002)(2501003)(81156014)(71200400001)(71190400001)(606006)(733005)(81166006)(2906002)(86362001)(7736002)(6436002)(8676002)(14454004)(966005)(55016002)(790700001)(6116002)(3846002)(8936002)(478600001)(256004)(14444005)(20673002); DIR:OUT; SFP:1101; SCL:1; SRVR:LO2P123MB1871; H:LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: PQQzDofn+u5autsT+i4r5viffNIQ3zZQ5o1O6t+yHmvV32n+UYkGMEoLH+hFe3HGc3W03Ty8irFO49cNtALxPqKWuIKO1LyfhWuBtYgZQZ5wX2fygf4ia0Cg31Ze6sG2Pv89gaqMUTHSRHjF2iii/7cP8nbCrkKnDViqIccWcO8pGxTYb5J3Yk69iGWSZEt5Q8ccC12Wr1viPgs+us9dpWP2zbt2ac6hiO6Jd2bharsKRb5/49szz3ebTxLuw9g38m7CRwnVIj4pg4jlK9QHarW53J8uKMUqB7glV1exL5xC5FEyAQ3NQkxEPglpEQyx4IbqBG3TnXIrJRliCAmyfsO/f1L7k93uESvuiCy0YZDu1qutZJeOZm4M733o+dkgsMJQ2gWbZY2TFme67g8I+vnaVzFIeb0p51cVvoep91w=
Content-Type: multipart/related; boundary="_004_LO2P123MB196591A5E12A32D82202905FEB140LO2P123MB1965GBRP_"; type="multipart/alternative"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c29424c-1d70-40ab-d0dc-08d6e82722d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2019 13:26:50.3785 (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: LO2P123MB1871
Archived-At: <>
Subject: Re: [multipathtcp] (2) 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: Mon, 03 Jun 2019 13:28:34 -0000

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