Tx Status of multicast frames

Vivek Natarajan vivek.natraj at gmail.com
Mon Nov 24 03:54:41 PST 2014

Hi Johannes,
  We are noticing a issue in updating the multicast frame statistics.
Though mac80211 explicitly sets the IEEE80211_TX_CTL_NO_ACK, it checks
IEEE80211_TX_STAT_ACK to increment the frame count. So, for multicast
frames, is the driver expected to set this STAT_ACK if the frame is
successfully transmitted over the air?

The naming convention seems to be a bit confusing from unicast and
multicast frames perspectives:

For multicast, IEEE80211_TX_STAT_ACK can denote if a frame is
successfully transmitted over the air or failed to be transmitted.

In case of normal frames, IEEE80211_TX_STAT_ACK decides if the frame
is acked or not-acked/not-transmitted.

Do you think renaming this to something like STAT_SUCCESS would be a
better thing to do?


if (info->flags & IEEE80211_TX_STAT_ACK) {
                if (ieee80211_is_first_frag(hdr->seq_ctrl)) {
                        if (is_multicast_ether_addr(hdr->addr1))
                        if (retry_count > 0)
                        if (retry_count > 1)

                /* This counter shall be incremented for an acknowledged MPDU
                 * with an individual address in the address 1 field or an MPDU
                 * with a multicast address in the address 1 field of type Data
                 * or Management. */
                if (!is_multicast_ether_addr(hdr->addr1) ||
                    ieee80211_is_data(fc) ||
        } else {
                if (ieee80211_is_first_frag(hdr->seq_ctrl))

More information about the ath10k mailing list