[Roll] Suggestions for draft-ji-roll-traffic-aware-objective-function-00

"Houjianqiang (Derek)" <houjianqiang@huawei.com> Thu, 21 December 2017 06:49 UTC

Return-Path: <houjianqiang@huawei.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 303621241F8 for <roll@ietfa.amsl.com>; Wed, 20 Dec 2017 22:49:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.229
X-Spam-Level:
X-Spam-Status: No, score=-4.229 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lzGEiTdm00WD for <roll@ietfa.amsl.com>; Wed, 20 Dec 2017 22:49:19 -0800 (PST)
Received: from huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F661120726 for <roll@ietf.org>; Wed, 20 Dec 2017 22:49:19 -0800 (PST)
Received: from lhreml709-cah.china.huawei.com (unknown [172.18.7.107]) by Forcepoint Email with ESMTP id 128FF75C3A689 for <roll@ietf.org>; Thu, 21 Dec 2017 06:49:15 +0000 (GMT)
Received: from DGGEMM422-HUB.china.huawei.com (10.1.198.39) by lhreml709-cah.china.huawei.com (10.201.108.32) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 21 Dec 2017 06:49:16 +0000
Received: from DGGEMM506-MBS.china.huawei.com ([169.254.4.14]) by dggemm422-hub.china.huawei.com ([10.1.198.39]) with mapi id 14.03.0361.001; Thu, 21 Dec 2017 14:49:09 +0800
From: "Houjianqiang (Derek)" <houjianqiang@huawei.com>
To: Chenyang JI <chenyang.ji@imt-atlantique.net>
CC: roll <roll@ietf.org>
Thread-Topic: Suggestions for draft-ji-roll-traffic-aware-objective-function-00
Thread-Index: AdN6AYMrlGyZK5ZrRUKoe01gXGXQXw==
Date: Thu, 21 Dec 2017 06:49:08 +0000
Message-ID: <DD0A994E4D6B3F4080662703C8C7C086AB1C96@DGGEMM506-MBS.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.134.134.224]
Content-Type: multipart/alternative; boundary="_000_DD0A994E4D6B3F4080662703C8C7C086AB1C96DGGEMM506MBSchina_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/r1gso7EGYG_Q-ebs4TMDJJvwBaY>
Subject: [Roll] Suggestions for draft-ji-roll-traffic-aware-objective-function-00
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/roll/>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Dec 2017 06:49:21 -0000

Hi Chenyang,

Nice to see that you are involved in improving the parent selection in RPL network, and thanks for bringing the idea "Packet Transmission Rate" into roll WG. Your solution is very useful, especially when traffic generated from different nodes is "highly" uneven. I have read through your draft and provide my comments and suggestions as below.


1.      The format  of your PTR metric should be modified in order to be consistent with current Metric framework as define in RFC6551. Based on my understanding, you are not requiring IANA to assign a new "DAGMC type" but rather a new "Routing-MC-Type" inside the DAG Metric Container. There is a  DAG Metric Container Format in RFC6551 you can follow and put your PTR inside the container as a new metric object. Your co-author Georgios has given a good example in his draft "draft-pkm-roll-nsa-extension-00". The metric container gives you many functions, such as combining PTR with other metrics like ETX (constraint), ChildCount (metric) and HopCount (metric), which has been mentioned in your draft.



2.      I noticed one weak point of your solution and I have come up with some possible ways to solve that. Nodes select their preferred parent node based on the PTRs of their potential parents (if I understand it right). For the two-hop cases in your draft, it's fine, but for multi-hop cases, the downstream nodes are unaware of the PTRs of the sink nodes (nodes connected to the root). For example, in the right pattern of Figure 2 in your draft, if new nodes come in below C1/C2/D1/D2, then the new nodes will prefer to choose C1/C2/D1 rather than D2 (PTR_D2 is larger). Let's say new node E1->C1, E2->C2, E3->D1, and assume E1/E2/E3 have PTR = 1pkt/s, then in this case, PTR_C1 = PTR_C2 = PTR_D1 = 2 pkt/s, PTR_A = 6 pkt/s. This in the end triggers D1 switches from A to B. So my point is when new nodes join in the downstream, they strongly influence the upstream connections. This effect causes an unstable RPL network and should be minimized. One way I come up with is to use the aggregation mode in the Metric Container so that new nodes are able to know the whole PTRs along a link to the root and then select based on the whole link condition. Another possible way is you can define a new "RANK" computation that includes the PTRs along a link, e.g. RANK_C1 = PTR_A+0.5*PTR_C1.



3.      The PTR computation method hasn't been illustrated in your draft. After thinking a bit more, here is my suggestion. The first method that came into my mind is to compute base on a time cycle, e.g. count the number of packet per 10 seconds, but then I denied this method for three reasons: 1. Nodes may have sleep mode and cannot do this PTR computation when sleeping; 2. a fixed time cycle may not be accurate to reflect PTR because nodes may send packets at different rate at different time, e.g. 1pkt/s, 1pkt/hour, 1pkt/day; 3. frequently computing PTR consumes more energy. I suggest doing the PTR computation based on the time points when sending packets. For example, a node send Packet_n-1 at time t_n-1 and send Packet_n at time t_n, then 1 / (t_n - t_n-1) reflects the packet rate. Then The PTR at time t_n could be

PTR_n = alpha * 1 / (t_n - t_n-1) + (1 - alpha) * PTR_n-1,

where alpha are constant between 0 to 1. In this way, nodes refresh their PTR when sending packets, and the PTR equation gives a smooth variation that guarantees the stability of a RPL network.

Hopefully my suggestions could help to improve the quality of your draft.

Best regards,
Derek Jianqiang Hou

Related drafts and RFC:
https://datatracker.ietf.org/doc/draft-ji-roll-traffic-aware-objective-function/
https://datatracker.ietf.org/doc/rfc6551/
https://datatracker.ietf.org/doc/draft-pkm-roll-nsa-extension/