Hi Tero,

I came across another question on the retransmission algorithm. Could you 
help...?

What should we do when a frame sent in an un-scheduled slot is not acknowledged?

As you know, with the frame pending bit, we can send a frame even if we don't 
have a cell scheduled at that time (Section 7.2.1.3 of IEEE 802.15.4-2015). 
While I don't think the back-off wait is necessary in this case, this topic is 
not covered by IEEE 802.15.4-2015...
 
Thank you!
Yatch

> On Jun 22, 2018, at 17:52, Yasuyuki Tanaka <yasuyuki.tan...@inria.fr> wrote:
> 
> Thank you, Tero!!
> 
> tero> I.e., the text this refers to ("A device upon encountering a
> tero> transmission failure in a shared link shall initialize the BE to
> tero> macMinBe.") is on page 66, not in page 65.
> 
> OK, we're on the same page now :-)
> 
> tero> Note, that CCA will NOT fail for other tsch transmissions on the
> tero> slot, as those transmissions all start at the same time, thus
> tero> there is no way to detect them. 
> 
> Right, it won't. This is another interesting point of TSCH. I learned
> this from Thomas 1.5 years ago.
> 
>   https://mailarchive.ietf.org/arch/msg/6tisch/E8IDY4-dkuPMIjD3rh54bGdaQ80
> 
> By the way, it seems I misunderstood what you told me two days ago:
> 
> tero>> if CCA fails, we just assume the sending of the frame failed,
> tero>> increment NB (which has slightly different meaning than in 6-5
> tero>> here) and try again.
> 
> I thought, it meant "CCA failure is treated as a transmission failure
> in *Figure 6-5*". This is wrong. But it does for figure 6-6; CCA
> failure is treated in the same manner for retransmission failure (no ACK)
> in figure 6-6. Oh, I am very clear!
> 
> tero> If TschCca is not set we skip CCA, regardless wheter this is
> tero> shared or dedicated link. In initial tranmission we do CCA for
> tero> shared links always, and for dedicated links we check TschCca.
> 
> That's good to know! I totally overlooked this part!!
> 
> tero> I think it is clear from the figures 6-5 and 6-6. Note, that
> tero> figures in standard are normative.
> 
> Thanks to you, figure 6-5 and 6-6 are my friends now.
> 
> One question for clarification: if a node gets out of the CSMA-CA
> algorithm (figure 6-5) with NB == (macMaxFrameRetries - 1) and doesn't
> receive an ACK to a frame transmitted over a shared link, it enters
> the TSCH Retransmission backoff algorithm (figure 6-6) keeping the NB
> value. Then, this node can attempt only one retransmission at most,
> because NB reaches macMaxFrameRetries by one retransmission failure
> (no ACK or channel busy). This is correct, isn't it?
> 
> And, I'd suggest one correction in figure 6-6.
> 
> tero>> Hmm... it seems we did have sponsor ballot comment i-9 from Pat
> tero>> Kinney which included part saying:
> tero>>
> tero>>        8. In box 'NB = NB +1, BE = min(BE-1, macMinBe) change
> tero>>        'BE = min(BE-1, macMinBe)' to 'BE = min(BE+1, macMaxBe)'
> tero>>        to correspond with page 31 text.
> 
> In fact, 'BE = min(BE+1, macMaxBe)' should be applied if and only if a
> retransmission fails in a shared link. Then, we would need a decision
> box having 'shared link?' above the BE update. If it goes to 'Y', then
> execute 'BE = min(BE+1, macMaxBe)'. Otherwise, keep the current BE
> value.
> 
> tero> On the other hand there is no reason why I should not be able to
> tero> use dedicated link to B to send the frame to it even when it is
> tero> not first in queue. I think this kind of text is explictly left
> tero> out from the standard, i.e., there is nothing saying it is
> tero> allowed, but there is nothing saying you cannot do it.
> 
> To my knowledge, this kind of operation commonly happens in 6TiSCH
> implementations which implement the following protocols:
> 
>  https://tools.ietf.org/html/draft-ietf-6tisch-6top-protocol-12#section-3.1
>  https://tools.ietf.org/html/draft-chang-6tisch-msf-01#section-2
> 
> tero> This of course means that NB variables needs to be per frame,
> tero> but on the otherhand we want the BE to be global, not per frame,
> tero> and this is not really reflected in the figure now.
> 
> It'd be really great if we could have some text on such a case.
> 
> Here is a little input: MSF allocates dedicated *cells* having SHARED
> bit on, and a node could have multiple frames under retransmission
> processes. I have no idea if having one global BE would be enough for
> this case.
> 
> tero> So even if we managed to send last frame using the dedicated
> tero> link, we should keep the large BE value as we have not
> tero> successfully used shared link, so there is no point of lowering
> tero> it yet.
> 
> Oh, it eventually comes back to one of my first questions :-)
> 
> yatch>>> I'm not sure, after all the retransmissions for the last
> yatch>>> frame in shared links failed, the next retransmission process
> yatch>>> should reset BE or not. What about the case when the
> yatch>>> transmission for the last frame in a dedicated link was
> yatch>>> successful but the transmission queue was NOT empty?
> 
> According to discussions so far and the figures, the answer is that BE
> should always be reset when it enters the retransmission
> algorithm....
> 
> tero> I think this is trying to say that if we go to the idle state,
> tero> i.e., we have no longer frames going out in queue, then there is
> tero> no point of keep the large BE even if we managed to clear the
> tero> queue using dedicated cell. I.e., if the queue goes empty we
> tero> reset everything related to the retranmission timing.
> 
> ...yet, part of this different idea is written in the text, which
> confused me... :-/
> 
> Have a wonderful weekend!
> 
> Best,
> Yatch
> 

_______________________________________________
6tisch mailing list
6tisch@ietf.org
https://www.ietf.org/mailman/listinfo/6tisch

Reply via email to