Hi, On 08/11/2016 11:50 AM, Xue, Wenqian wrote: > Hi, Alexander, > > Thank you for your quick reply. > I'm not sure if AACK is disabled (how can I know it?), but I'm using node interface not monitor interface. > yea, I should get it before because monitor interfaces doesn't run the code which you changed. But monitor interfaces goes into promiscuous mode and AACK is disabled there. > When without kernel modification and setting frame retries=3 for both RPis, lots of error 'sequence number did not match" will occur. While, when with the modification to deal with duplicates, the error will not occur any more. I'm not sure if AACK could discard duplicates automatically. > Thank you! > Your modification handles in duplicates in a form which is not acceptable. It will simple drop duplicates but how frame retries works is the following: 1. Node A transmits frame for Node B with ackrequest bit set. 2. Node B receive that frame and see's "ackrequest bit is set" and sending an ACK back. 3. If Node A received an ack for the sequence number then no retransmission will occur. OR 3. If Node A doesn't received an ack it will retransmit the frame. On your nodes and if you are really using two at86rf233 transceivers, this mechanism is completely done by hardware. Transmit: ARET Receive: AACK On the receive side it's always imporant that the receiving node supports AACK handling if Nodes sending frames with "ackrequest bit" set. --- First, you should sniff somehow the traffic if it's possible, to see what's going on the traffic and you see that Node B sends ACKs back, if not -> missing AACK handling. On linux the openlabs transceiver (at86rf233) supports AACK handling... don't know if you break it with your changes. --- Also I detected that the ieee802154 sockets doesn't care about "iwpan dev wpan0 set ackreq_default" setting [0]. This socket interface should only be used as DGRAM sockets and there is a big TODO to make an enhanced version of this socket interface. :-) But that you have retransmits smells that the [0] is set. --- I am here totally confused that you don't have AACK handling which the at86rf233 supports, do you really using two openlabs with mainline Linux kernel? Or do you talking with some contiki/RIOT etc. node? - Alex [0] http://lxr.free-electrons.com/source/net/ieee802154/socket.c#L667 -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html