Hey Rahul,

Unfortunately I don't have time right now to read and comment on your
email in depth :(
About the ETX metrics for RPL, please have a look at #6873 and #7450.

I want to take a better look at your ideas and proposal in the weekend.

Regards,
Koen Zandberg


#6873: https://github.com/RIOT-OS/RIOT/pull/6873
#7450: https://github.com/RIOT-OS/RIOT/pull/7450


On 10/19/2017 07:46 AM, Rahul Jadhav wrote:
> Thanks Cenk for giving a clear picture. Some comments inline...
> In general, I feel this is important to be handled, since even in
> small network this would result in DAO fragmentation and will impact
> its performance.
>
> Also there are some other points i wanted to understand/clarify:
> 1. Currently RIOT does not handle L2 ACK for determining whether L2
> send was successful or not.  This feedback is not used at RPL/6lo
> layer. Scenario: A node receives a DIO from parent and sends a DAO.
> But lets say this DAO could not reach the parent. In this case L2 ACK
> would have failed and the child node could have handled it to switch
> parent. Even if K bit is set in the DAO, and if DAO-ACK is not
> received, the child node wont come to know since there is no
> state/timer maintained to handle this. Essentially this will lead to
> child node believing that it is connected to the network but the
> downstream path is never actually established.
> 2. RIOT does not handle L2 retry-count feedback to maintain RPL metric
> (for e.g. ETX).
> Pls correct if i m wrong.
>
> Thanks,
> Rahul
>
> On 19 October 2017 at 01:00, Cenk Gündoğan <list-r...@cgundogan.de
> <mailto:list-r...@cgundogan.de>> wrote:
>
>     Hey Rahul,
>
>     you are correct. The current RPL DAO building routine does not take
>     into account the MTU size, which is IMO the appropriate approach,
>     because on that level (ICMPv6) there is usually no knowledge about the
>     link-layer in use. 
>
>
> [RJ] True.
>  
>
>     If I understand you correctly, then you basically
>     want to move the fragmentation from the 6lowpan layer up to the
>     ICMPv6/RPL layer (and only for DAOs).
>
>
> [RJ] Thats exactly what I had in mind.
>  
>
>     I think in one of the older
>     iterations of our RPL implementation we once had a functionality to
>     limit the number of Target Options in the DAO to a specific number
>     (configurable on compile-time). 
>
>  
> [RJ] This would have been a real nice feature. Supporting target
> aggregation in DAO without depending on 6lo frag. In the future,
> proposing/implementing prefix eliding (the way 6loRH does for SRH or
> by simply using 6lo CID) between target containers and standardising
> it would make sense ! Considering that DAO consumes the most amount of
> RPL control traffic, i feel this can be fairly important.
>
>     But with the addition of a proper
>     6lowpan fragmentation, we dropped that functionality.
>
>
> [RJ] 6lo frag is not a good option to use and should be avoided as far
> as possible.
>  
>
>
>     I may take a look at it during the weekend. If I remember correctly,
>     then we used to have a further parameter to the "send_DAO"
>     function that
>     tracked the number of already sent Target Options. Further calls to
>     "send_DAO" would then add the next Target Options. If such
>     functionality
>     is needed (@bergzand, @BytesGalore, @smlng any comments on this?) then
>     we should aim to come up with an unintrusive approach to activate /
>     deactivate such a behaviour with compile flags.
>
>
> [RJ] Wouldn't a simple compile-time flag such as
> DAO_TARGET_CONCAT_NUM=X be sufficient, where X could be 0 (no concat,
> send only 1 target container which will be node self IP addr), -1(for
> full concat, current implementation), and anything else which means
> non-self target container count. The other way to define such a flag
> would be DAO_TARGET_CONCAT_SZ=Ybytes ... which defines number of bytes
> instead of target count.
>  
>
>
>     Cheers,
>     Cenk Gündoğan
>
>     On 17-10-19 00:00:34, Rahul Jadhav wrote:
>     > Hello RIOT team,
>     >
>     > While experimenting with RIOT i found the RPL module implementation
>     > behaviour which sort of stops my network from building up.
>     >
>     > Scenario:
>     > If i have a RIOT 6lr node and it has an FIB with, let's say, 10
>     active
>     > entries, then when the 6lr next sends DAO, it concatenates
>     multiple target
>     > containers (from multiple FIB entries) in the same DAO message. This
>     > results in a packet size crossing link MTU limit (127 in my
>     case) and for
>     > my case i do not have 6lo fragmentation enabled. Thus the DAO is
>     getting
>     > dropped.
>     >
>     > I skimmed through the code but could not find a way to send DAO
>     with max x
>     > target containers, where x is predefined.
>     >
>     > To reiterate, if the FIB active entries are more, then RIOT
>     aggregates all
>     > the entries into the same DAO as target containers and forwards
>     it. While
>     > aggregating if the packet crosses MTU boundary and if the 6lo
>     frag is not
>     > on then it (6lo module) will drop the packet. Thus the network
>     wont form.
>     > (i do not want 6lo fragmentation to happen for RPL control packets).
>     >
>     > Just want to understand, is there any way to handle this
>     situation without
>     > turning on 6lo frag?
>     >
>     > Thanks,
>     > Rahul
>     >
>     > --------------[log snippet]-------
>     >
>     > RPL: Send DAO - building internal transit
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:3/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:8/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:d/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:10/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:11/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:12/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:e/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:9/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:4/128
>     >
>     > RPL: Send DAO - building target fd00::302:304:506:6/128
>     >
>     > ::::::::
>     >
>     > 6lo: iface->max_frag_size = 127 for interface 6
>     >
>     > 6lo: packet too big (254 > 127)
>     >
>     > 6lo: waiting for incoming message.
>     >
>     > ::::::::
>     >
>     > -----------[end of log]------------
>
>     > _______________________________________________
>     > devel mailing list
>     > devel@riot-os.org <mailto:devel@riot-os.org>
>     > https://lists.riot-os.org/mailman/listinfo/devel
>     <https://lists.riot-os.org/mailman/listinfo/devel>
>
>
>     --
>     Cenk Gündoğan
>
>     Hamburg University of Applied Sciences
>     Dept. of Computer Science / Internet Technologies Group
>     Berliner Tor 7, 20099 Hamburg, Germany
>     Fon: +49 40 42875 - 8426
>     Mail: cenk.guendo...@haw-hamburg.de
>     <mailto:cenk.guendo...@haw-hamburg.de>
>     Web: https://www.inet.haw-hamburg.de/
>     <https://www.inet.haw-hamburg.de/>
>
>     _______________________________________________
>     devel mailing list
>     devel@riot-os.org <mailto:devel@riot-os.org>
>     https://lists.riot-os.org/mailman/listinfo/devel
>     <https://lists.riot-os.org/mailman/listinfo/devel>
>
>
>
>
> _______________________________________________
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to