Re: [6tisch] Fwd: I-D Action: draft-ietf-6tisch-6top-protocol-02.txt

Tero Kivinen <kivinen@iki.fi> Tue, 02 August 2016 12:37 UTC

Return-Path: <kivinen@iki.fi>
X-Original-To: 6tisch@ietfa.amsl.com
Delivered-To: 6tisch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6211212D5A0 for <6tisch@ietfa.amsl.com>; Tue, 2 Aug 2016 05:37:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level:
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no 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 QQWcxuGaLw0p for <6tisch@ietfa.amsl.com>; Tue, 2 Aug 2016 05:37:53 -0700 (PDT)
Received: from mail.kivinen.iki.fi (fireball.acr.fi [83.145.195.1]) (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 3972C12B026 for <6tisch@ietf.org>; Tue, 2 Aug 2016 05:37:53 -0700 (PDT)
Received: from fireball.acr.fi (localhost [127.0.0.1]) by mail.kivinen.iki.fi (8.15.2/8.15.2) with ESMTPS id u72CbfJZ027651 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 2 Aug 2016 15:37:41 +0300 (EEST)
Received: (from kivinen@localhost) by fireball.acr.fi (8.15.2/8.14.8/Submit) id u72Cbek4007517; Tue, 2 Aug 2016 15:37:40 +0300 (EEST)
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Message-ID: <22432.37908.885838.449611@fireball.acr.fi>
Date: Tue, 02 Aug 2016 15:37:40 +0300
From: Tero Kivinen <kivinen@iki.fi>
To: Xavier Vilajosana <xvilajosana@eecs.berkeley.edu>
In-Reply-To: <CAMsDxWT12L4bdX2_WQ04vdt5B4g4Vk2zY7gULw+10Kgm28=Abg@mail.gmail.com>
References: <20160726063035.11416.82424.idtracker@ietfa.amsl.com> <CAMsDxWRQ1+zbhuCypNS2aHsTtXCtu+MnMu6ig89vLrk2_FxaEg@mail.gmail.com> <1283033447.423092.1469520332086.JavaMail.root@llavaneres.uoc.es> <CAC9+vPjqLfs4xoq3mkDMp9pxnc24iMPT31+1WYwuG_zSNQzVgA@mail.gmail.com> <CAC=zv2M1DXZTa-siHieOpbjdCEqwz=+bRt-gmSFm_qYZ_MZ=8g@mail.gmail.com> <CAMsDxWT12L4bdX2_WQ04vdt5B4g4Vk2zY7gULw+10Kgm28=Abg@mail.gmail.com>
X-Mailer: VM 8.2.0b under 24.5.1 (x86_64--netbsd)
X-Edit-Time: 17 min
X-Total-Time: 21 min
Archived-At: <https://mailarchive.ietf.org/arch/msg/6tisch/HRKwAuy68AocZj3dj5AVfHh7NCQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, Jiliang Wang <jiliangwang99@gmail.com>, Xavi Vilajosana Guillén <xvilajosana@uoc.edu>
Subject: Re: [6tisch] Fwd: I-D Action: draft-ietf-6tisch-6top-protocol-02.txt
X-BeenThere: 6tisch@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discuss link layer model for Deterministic IPv6 over the TSCH mode of IEEE 802.15.4e, and impacts on RPL and 6LoWPAN such as resource allocation" <6tisch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6tisch>, <mailto:6tisch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6tisch/>
List-Post: <mailto:6tisch@ietf.org>
List-Help: <mailto:6tisch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6tisch>, <mailto:6tisch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Aug 2016 12:37:55 -0000

Xavier Vilajosana writes:
> A node knows the bytes it can fit in a packet. This gives an indication to the
> node of what is the number of items that can be requested. When a node issues
> a LIST it starts by offset 0, this returns the first N scheduled cells. Then
> it seems reasonable that the node will indicate offset N and request N more
> cells ...  
> If the number of requested cells does not fit in the packet an error is
> returned and the node retries again with a smaller value of N.
> I do not see a big complexity on that. What issues do you see? 

Note, that in 15.4 network some othe frames might also include other
information elements, which might consume some of the space available
for the actual data. I.e., even the upperlayer of the sending device
might not know how many bytes it can send at given moment, as MAC
layer might add some extra overhead without telling that to the upper
layer.

I think it would be better to make protocol so that sender will send
as many items it can fit, and indicates whether there is more and
responder will just give offset where the next request starts. Or just
use the numCells as a max size, but make it so that sender can also
send less if it cannot fit that many in response. This would require
some way to tell how many cells there are so requested will know when
to stop. 

>             2.       Will the clear command result in inconsistency in current
>             design? For example, a clear command is sent from A to B and the
>             response from B to A is lost.
>            
>         The CLEAR is not executed until the response is received. B side
>         executes the CLEAR after receiving the L2 ACK of the response
>         message. 
>    
>     It there any problem when the L2 ACK is lost in which A clears while B
>     does not?
> 
> In a TSCH network the probability of losing the ACK is very low. As the packet
> has already been sent the ACK has extremely high chances to pass as well (it
> is shorter in length which still favours the transmission success). Of course
> this can remotely happen and if this happens the system should recover from
> that inconsistency. To do so the generation counters will enable the detection
> of the inconsistency and both nodes schedule will be cleared (only cells
> between them).

Loosing ACK might be low probability and that does not usually even
cause issues, as L2 will simply retransmit the frame. The bigger issue
is that L2 ACK just indicates that FCS check was correct and frame was
received by the other end, it DOES NOT mean that frame will be
delivered to the upper layer.

It is completely possible that MAC runs out of buffer space after
receiving the frame and sending ACK, but before sending the received
frame to upper layer.

I.e. L2 ACK only means that I got the frame, no need to do
retransmission anymore. It does not mean that frame will be delivered
to the upper layer, or that upper layer will be able to parse and
process the frame.

So using L2 ACK for any kind of application level acknowledgement is
bad idea.

Also with 6tisch L2 ACK is alreayd quite large (frame control (2
octets), seq number (1), addressing fields (0-20), auxiliary security
header (1-10), Time correction IE (2), MIC (4-16), FSC (2-4)).

> The alternative is to use a 3 step transaction, which requires 33% more
> packets over the air at every transaction. We decided to avoid that. Maybe a
> research question is to evaluate in a real deployment the energy overhead of
> using 3 way transactions vs eventually recovering from a lost ACK during a
> CLEAR. Given the chances of losing an ACK I would bet for the later.

I think using protocol defined on the 6top layer is better. It is bad
idea to rely on L2 ACKs for anything else than information that there
no need to retransmit this frame again...
-- 
kivinen@iki.fi