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?

Vivek.

mac80211/status.c:
if (info->flags & IEEE80211_TX_STAT_ACK) {
                if (ieee80211_is_first_frag(hdr->seq_ctrl)) {
                        local->dot11TransmittedFrameCount++;
                        if (is_multicast_ether_addr(hdr->addr1))
                                local->dot11MulticastTransmittedFrameCount++;
                        if (retry_count > 0)
                                local->dot11RetryCount++;
                        if (retry_count > 1)
                                local->dot11MultipleRetryCount++;
                }

                /* 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) ||
                    ieee80211_is_mgmt(fc))
                        local->dot11TransmittedFragmentCount++;
        } else {
                if (ieee80211_is_first_frag(hdr->seq_ctrl))
                        local->dot11FailedCount++;
        }



More information about the ath10k mailing list