Re: [Roll] Semantics of DAO ACK

Csaba Kiraly <kiraly@fbk.eu> Wed, 30 September 2015 04:44 UTC

Return-Path: <kiraly@fbk.eu>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21ACC1B5BC0 for <roll@ietfa.amsl.com>; Tue, 29 Sep 2015 21:44:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
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 NNpXoGkDCrHa for <roll@ietfa.amsl.com>; Tue, 29 Sep 2015 21:44:33 -0700 (PDT)
Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB8F41B5BBF for <roll@ietf.org>; Tue, 29 Sep 2015 21:44:32 -0700 (PDT)
Received: by wicgb1 with SMTP id gb1so176816864wic.1 for <roll@ietf.org>; Tue, 29 Sep 2015 21:44:31 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=T/VzTstMgupjqI/jgubkKULWpcFAsIak0zchi3N2IYE=; b=asaETrRSv5QEDlCXmSdfT2i/+Lc60jvYCZ8NpiGSZqEXd1DoDeKSHTZa9FH4IpRdem vnUT6kynb3kNDzE39YCd+Zc3JM0OmvI4IH07GApBV5hK6dCZhXO5akj9rKGutdQIEtyY soGdu3A/DyfayDLnUzU2BwW91N4wVtttgPHcqyX/FQHw1S9F1WrzFyZU0iPjKJdqOVvL 3D2c/8yl3LicmKkQh1j87cGzc1ZvrYI5qt1yTMC2qz2l08Y1xSvC1R+QnzgphGIM/04E cXRXAgoOx/AobZq02Cz73ld/uSdJiY8VJa15hl5ZCccWhMA34T8/flnQ+YREhLzC0uw6 KBmA==
X-Gm-Message-State: ALoCoQkuGHwHKpYRyBdiIWC+0bT2MF+EDCSq0v8xcCk37l2XVGor+jwFenxM3F5Z6eltjo0HjJJ44FigEntiYhXg5o7Kuo4Tt1dFEktBghCo1kHm7/J8aYCfdD2IftqRiSMOX56LAW9uEBWJ6vs9DGNzQUH8AGm3WgCfE8IU0r1WZafEsIamQ24=
X-Received: by 10.194.113.1 with SMTP id iu1mr1919359wjb.158.1443588271133; Tue, 29 Sep 2015 21:44:31 -0700 (PDT)
Received: from cskiralys-air.homenet.telecomitalia.it (host238-105-dynamic.31-79-r.retail.telecomitalia.it. [79.31.105.238]) by smtp.googlemail.com with ESMTPSA id wn10sm27256292wjc.46.2015.09.29.21.44.29 for <roll@ietf.org> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Sep 2015 21:44:30 -0700 (PDT)
To: roll@ietf.org
References: <DB5PR01MB10807DAF503BBFF45787599C80420@DB5PR01MB1080.eurprd01.prod.exchangelabs.com> <6d21d0f86ab14ae7a99ff9fe6873b1fd@XCH-RCD-001.cisco.com> <C885EE62-D889-4229-9CCB-B3CB540F5692@sics.se> <560AFDBB.8050505@gmail.com>
From: Csaba Kiraly <kiraly@fbk.eu>
Message-ID: <560B68B2.6030501@fbk.eu>
Date: Wed, 30 Sep 2015 06:44:34 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <560AFDBB.8050505@gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/roll/BalXJf8W0qZqeD8Zd4gjZS0hBDE>
Subject: Re: [Roll] Semantics of DAO ACK
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Routing Over Low power and Lossy networks <roll@ietf.org>
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: Wed, 30 Sep 2015 04:44:35 -0000

Hello Joakim,

I have also worked on the Contiki DAO-ACK code, enabling ACKs, 
implementing fixes to the DAOSequence handling, and looking into 
multiple targets.
What Cenk is saying sounds a reasonable hack, but the standard itself is 
in my opinion a bit underspecified for the semantics of DAO-ACK messages 
in several ways.
My preferred solution for ACKing DAO messages with multiple targets 
would be to have support for the same semantics that you would have had 
with one DAO message per Target, i.e., I would prefer an option field 
that gives an individual status for each Target.

To give another example of subtle problems with DAO-ACK, it was not 
clear to me whether I want my implementation to ACK when the Target is 
added to the routing table, or only when this node itself receives an 
ACK for the same Target from its parent. Both makes sense, with the 
former giving a quick one-hop ACK, while the latter works as an 
end-to-end ACK, ensuring that the path is actually built. Both look 
conformant to the standard, but I suppose the original author was 
thinking of the former, and I can easily see interoperability problems 
arising between two implementations using different semantics.

Best regards,
Csaba

On 29/09/15 23:08, Cenk Gündogan wrote:
> Hello Joakim,
>
> This is an interesting question and I also couldn't find any answers 
> in RFC 6550.
> However, my thoughts on this are as follows:
> Since a sub-set of the announced RPL targets could have been accepted 
> before filling up
> the routing table (e.g.), I would choose a status code between 1 and 127.
> I would expect a node to choose another parent if a more aggressive 
> status code is received ([128-255]).
> But a full routing table can have free space again until the next or 
> any subsequent DAO arrives ..
> therefore I prefer a "mild rejection" with a status code of [1-127].
>
> To give some feedback to the originator of the DAO, it might be 
> sensible to copy the
> rejected RPL Target options from the affected DAO to the DAO-ACK, so 
> that the originator is fully
> aware of which Target prefixes got rejected (and which ones got 
> accepted, implicitly).
> I would choose this method, because it doesn't require the originator 
> of the DAO to save any extra state
> about the DAO and its contents.
>
> Nonetheless, everything I wrote is nonconform and I am also interested 
> in the RPL experts' opinions
> and solutions.
>
> Best,
> Cenk
>
> On 29.09.2015 21:44, Joakim Eriksson wrote:
>> Hello All,
>>
>> I have spend quite some time to get a more stable implementation of 
>> DAO handling
>> for Contiki RPL and I am currently looking into DAO aggregation. But 
>> I realised that
>> it is for me not 100% clear what a node that receives a DAO with 
>> several prefixes to
>> be registered but can only accept a sub-set of them. Should it be a 
>> DAO_NACK in
>> this case or is there any other way to handle that case?
>>
>> If each would have been sent separately it is obvious that the 
>> receiving node can
>> do a NACK when the routing table is full and therefore it is possible 
>> to get fine-grained
>> answers. But with aggregation of DAOs this is not the case.
>>
>> Any ideas?
>>
>> Best regards,
>> — Joakim Eriksson, SICS
>> _______________________________________________
>> Roll mailing list
>> Roll@ietf.org
>> https://www.ietf.org/mailman/listinfo/roll
>
> _______________________________________________
> Roll mailing list
> Roll@ietf.org
> https://www.ietf.org/mailman/listinfo/roll