Need to get msdu-chaining working.

Michal Kazior michal.kazior at
Thu Feb 27 01:51:45 EST 2014

On 27 February 2014 00:38, Ben Greear <greearb at> wrote:
> I'm using raw-rx mode in my firmware, and it's throughput is
> extremely poor at higher speeds.  I see large numbers of warnings
> about msdu_chaining, so I suspect this may be the reason.

I assume this requires your custom FW?

> Does anyone have any suggestions for what needs to be done
> to handle these sorts of frames properly?
>                         /* FIXME: we do not support chaining yet.
>                          * this needs investigation */
>                         if (msdu_chaining) {
>                                 ath10k_warn("htt rx msdu_chaining is true\n");
>                                 ath10k_htt_rx_free_msdu_chain(msdu_head);
>                                 continue;
>                         }

>From what I understand chained msdu is a msdu that hasn't fit into the
rx buffer and is split across the popped amsdu list. I suspect only
the first msdu in chain has the htt_rx_desc and all other have not
(this is what the current code does, but you'll need to verify that).

I would try to concatenate all msdus into one (lots of memcpy :( ) or
increase the HTT_RX_BUF_SIZE so that A-MSDU frames can fit into a
single buffer (hopefully FW/HW is capable of doing that).


More information about the ath10k mailing list