[riot-devel] Netdev2 State changes

Peter Kietzmann peter.kietzmann at haw-hamburg.de
Fri Sep 23 08:33:06 CEST 2016


Hi Alex,

sorry for the big delay. NETOPT_ACK_REQ, NETOPT_AUTOACK as well as 
NETOPT_RETRANS, NETOPT_CSMA or NETOPT_CSMA_RETRIES are not meant to be 
called each time before a frame-transmission but just to set the option 
on the device/driver. That means -if set- the driver will set the ACK 
REQ bit automatically for each frame it sends.

Best
Peter

Am 14.09.2016 um 10:25 schrieb Alexander Aring:
>
> Hi,
>
> On 09/13/2016 11:31 PM, Peter Kietzmann wrote:
>> Hi Alex,
>>
>>> It confuses me a little bit here, does such netdev2 option exists to
>>> disable auto-acknowledgement or not? For me it should always depends
>>> on the acknowledgement-request bit in fc field.
>>
>> have a look at this PR:
>>
>> https://github.com/RIOT-OS/RIOT/pull/5297 .
>>
>> I agree with you that (except in promiscuous sniffer mode) the ACK of a receiver should depend on the ACK request field of the received frame which will be handled by the hardware (in case AACK is not disabled). IIRC "NETOPT_AUTOACK" once was meant to handle the ACK request of a transmitter but the name was a bit misleading.
>>
>
> okay, but why does this setting reach the driver layer, or does it not?
> The driver(or in case of at86rf2xx the hardware) should check if the
> acknowledgement-request bit is set or not and this _per_ _frame_ and
> prepare transceiver to do ARET handling if it's set (maybe inside the
> transmit callback of driver layer).
>
> Or will the NETOPT_ACK_REQ option called each time before transmit to
> signal the fc acknowledgement-request bit? This confuse me then with the
> at86rf2xx hardware which will do ARET handling or not at hardware side
> by checking fc acknowledgement-request bit setting in fc.
>
> Such setting should only reach the mac layer, which controls then the
> frame control field generation of 802.15.4 dataframes, in my opinion.
> The transceiver should has some per frame decision if doing ARET or not
> ARET handling before transmit, or do nothing e.g. at86rf2xx because the
> hardware does that check.
>
> (sniffer) I think our handling in Linux is to let ARET enabled but
> disable AACK handling. AACK handling without address filtering will
> occur that you ack mostly every frame which will arrived. :-)
>
> - Alex
> _______________________________________________
> devel mailing list
> devel at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
>

-- 
Peter Kietzmann

Hamburg University of Applied Sciences
Dept. Informatik, Internet Technologies Group
Berliner Tor 7, 20099 Hamburg, Germany
Fon: +49-40-42875-8426
Web: http://www.haw-hamburg.de/inet


More information about the devel mailing list