Re: [lp-wan] need for MAX_ACK_REQUESTS?

Arun <arun@ackl.io> Wed, 19 July 2017 14:11 UTC

Return-Path: <arun@ackl.io>
X-Original-To: lp-wan@ietfa.amsl.com
Delivered-To: lp-wan@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6690D13188D for <lp-wan@ietfa.amsl.com>; Wed, 19 Jul 2017 07:11:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 uW-rXk04vcKy for <lp-wan@ietfa.amsl.com>; Wed, 19 Jul 2017 07:11:44 -0700 (PDT)
Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [IPv6:2001:4b98:c:538::198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9BA0D131473 for <lp-wan@ietf.org>; Wed, 19 Jul 2017 07:11:44 -0700 (PDT)
Received: from mfilter14-d.gandi.net (mfilter14-d.gandi.net [217.70.178.142]) by relay6-d.mail.gandi.net (Postfix) with ESMTP id 04F05FB8C2; Wed, 19 Jul 2017 16:11:43 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter14-d.gandi.net
Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198]) by mfilter14-d.gandi.net (mfilter14-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id vUrlHjHXeg50; Wed, 19 Jul 2017 16:11:41 +0200 (CEST)
X-Originating-IP: 192.44.77.204
Received: from [192.168.1.158] (nat-asr-incub-b204.rennes.enst-bretagne.fr [192.44.77.204]) (Authenticated sender: arun@acklio.com) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 702F6FB8CF; Wed, 19 Jul 2017 16:11:40 +0200 (CEST)
To: Carles Gomez Montenegro <carlesgo@entel.upc.edu>
Cc: lp-wan <lp-wan@ietf.org>, BARTHEL Dominique IMT/OLPS <dominique.barthel@orange.com>
References: <f06b79ed-9b06-8ba0-79da-d091b9270d4e@ackl.io> <c53f65f77e2bef71d2b8598cd4c72dfc.squirrel@webmail.entel.upc.edu>
From: Arun <arun@ackl.io>
Message-ID: <d89f5ae6-2d9d-56ff-71c7-c8624563a002@ackl.io>
Date: Wed, 19 Jul 2017 16:11:33 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <c53f65f77e2bef71d2b8598cd4c72dfc.squirrel@webmail.entel.upc.edu>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="FXHhTf3Lmr4TUtdu7vKohTEj4CSThRKdD"
Archived-At: <https://mailarchive.ietf.org/arch/msg/lp-wan/Ycpt9RlV7mNjeJJn-1-Mkl7xnxw>
Subject: Re: [lp-wan] need for MAX_ACK_REQUESTS?
X-BeenThere: lp-wan@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Low-Power Wide Area Networking \(LP-WAN\), also known as LPWA or Low-Rate WAN \(LR-WAN\)" <lp-wan.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lp-wan>, <mailto:lp-wan-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lp-wan/>
List-Post: <mailto:lp-wan@ietf.org>
List-Help: <mailto:lp-wan-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lp-wan>, <mailto:lp-wan-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jul 2017 14:11:46 -0000

Hi Carles,
I'm not clear about the purpose of having retry counter for each fragments.

My understanding is as follows (w.r.t. ACK always) :
 - whenever there is a retransmission  the receiver would expect the
ACK_REQUEST packet to be least the CFN in the bitmap.
 we resend (at the same time increment retry counter for this fragment)
only last fragment in case of timer expiry. when the counter reaches
MAX_FRAG_RETRIES for CFN =1, what do we do?
 we cannot try resending CFN !=1 (in this case cfn=4) because the
receiver would still expect CFN=1 for ACK_REQUEST or to send bitmap.
So, I think it would be good to have only variable, can be MAX_ACK_REQUEST.



                       Tx                        Rx
                        +                         +
                        |                         |
                        |          cfn=6          | expected
ACK_REQ_PACKET = cfn_0
                        +------------------------->
                        |          cfn=5          |
                        +------------------------->
                        |          cfn=4          |
                        +--------------------X---->
                        |          cfn=3          |
                        +--------------------X---->
                        |          cfn=2          |
                        +------------------------->
                        |          cfn=1          |
                        +--------------------X---->
                        |          cfn=0          |
                        +------------------------->
                        |  ACK:11001011           |expected
ACK_REQ_PACKET = cfn_1
                        <-------------------------+
                        |         cfn=4           |
                        +-------------------X----->
                        |         cfn=3           |
                        +------------------------->
                        |         cfn=1           |
                        +-------------------X----->
          timer expired |    ACK:11011011         |expected
ACK_REQ_PACKET = cfn_1
                        <--X----------------------+
                        |        cfn=1            |
                        +------------------------->
          timer expired |    ACK:11011011         |expected
ACK_REQ_PACKET = cfn_1
                        <--X----------------------+
    reached MAX_ACK_REQ |                         |
         discard cfn=1  |      cfn=4??            |
                        +-------------------------> wait until cfn=1 to
send ACK
                        |                         |
                        |                         |
regards,

On 19/07/2017 13:58, Carles Gomez Montenegro wrote:
> Hi Arun,
>
> Thanks for commenting on this.
>
> Currently, MAX_ACK_REQUESTS applies only to the last fragment in a window,
> which can be viewed also as an "ACK request". MAX_FRAG_RETRIES applies to
> the previous fragments in the window.
>
> I have been thinking about this several times, and I see two options:
>
> 1.- Keep the two parameters. There might be reasons for setting
> MAX_ACK_REQUESTS to a higher value than MAX_FRAG_RETRIES. It may be
> specially critical to get an ACK (which gives feedback on the delivery of
> all fragments in the window), while one might want to be careful regarding
> how many times a fragment (from the rest of fragments in the window) is
> resent. In addition, it is possible to set the two parameters to the same
> value if desired.
>
> 2.- Remove MAX_ACK_REQUESTS and have just MAX_FRAG_RETRIES applying to all
> fragments.
>
> Which are your (and other) opinions on this?
>
> Thanks,
>
> Carles
>
>
>
>> Hi Carles, all,
>>
>>  Do we still need this variable MAX_ACK_REQUESTS ?
>>  MAX_FRAG_RETRIES is going to be the same (during retransmission we only
>> send the last fragment of the received bitmap which would be considered
>> as ACK REQUEST). correct?
>>
>>  if this is already discussed in the thread of Dominique's review please
>> point me to the same.
>>
>> thanks,
>>
>> --
>>
>> Arunprabhu Kandasamy
>> arun at ackl.io

-- 
Arunprabhu Kandasamy
arun at ackl.io

2 bis rue de la Châtaigneraie
35510 Cesson-Sévigné 
France 
Phone: +33 (0)2.99.12.24.14