This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL183x : Interop issue with Linksys AP in Block Ack implementation

Other Parts Discussed in Thread: WL1835

  •  Operating system Linux, Kernel 3.4.7
  •  WiLink™ WL183x single antenna  
  •  WiLink™ firmware version R8.6SP1
  • Network capture  link
  • Ini file link
  • wlconf dump link
  • wl18xx-conf.bin link

Dear TI Wilink Forum

 

We have encountered a problems with the TI WL1835 module that we think are related to the F/W implementation.

We would like to share with our observations and hope it can be resolved via a F/W patch

 

Fault in Block ACK implementation

The issues comes up with Linksys E-900/E-1200 AP (we assume it would be common to other designs that share the same chipset.

The problem is with an erroneous interpretation of the block ACK bit field by the TI design.

The Linksys AP sets bit for received packets in the last received burst but does not set bits for packets that were previously received and already acknowledged in previous BA packets.

The TI device interprets the fact that bits are not set to indicate the packets have not been received and retries sending them even if they were previously acknowledged. More over the TI device considers these ‘lost’ packets in its PER calculation and therefore starts lowering the transmission modulation.

The net effect is a complete collapse in many cases and discontinuation of block ACK operation scheme.

To clarify this, here is a short example:

TI sends packet burst with SN 750 – 759

Linksys responds with BA indicating packets 750,752-757,759 received (i.e. 751 and 758 have not been received

TI sends packet burst with SN 751,758,760 – 767

Linksys responds with BA indication packets 751,758,760-767 all have been received, but does not mark the packets 750,752-757 as they were already acknowledged and not part of last burst.

TI interprets this as loss of packets 750,752-757 and sends the following burst SN 750,752-757,768-770

Linksys responds with marking 750,752-757,768-770 but not marking 751,758-767

TI interprets this as loss of 751 etc….

 

It should be noted that other implementations (several wifi sticks) tested for WiFi devices were able to interpret the Block ACK response correctly, and did not repeat transmission of a packet that has been already been acknowledged.

We are not in the position to say if the Linksys implementation is in violation of the spec, but even if it is, we are facing major interop issue that can easily be avoided with fix the BA implementation (i.e. do not re-transmit packets previously acknowledged)