Hi,

I would like to know the exact meaning of "chains" member of struct sta_info. mac80211 sta_info.h states :

"@chains: chains ever used for RX from this station"

In ath9k, it is incremented when testing each value of the chain_signal array (code here is ath9k common.c) :

if (rssi != ATH9K_RSSI_BAD) {
            rxs->chains |= BIT(j);
            rxs->chain_signal[j] = ah->noise + rssi;
        }

I did this in ath10k (htt-rx.c l.874) on the model of a patch published on the mailing list :

static void ath10k_htt_rx_h_signal(struct ath10k *ar,
                   struct ieee80211_rx_status *status,
                   struct htt_rx_desc *rxd)
{
    u8 signal_per_chain;
    int i;
    for (i = 0; i< IEEE80211_MAX_CHAINS; i++)
    {
        signal_per_chain = rxd->ppdu_start.rssi_chains[i].pri20_mhz;
        if (signal_per_chain != ATH10K_RSSI_BAD) // = 0x80
        {
            status->chains |= BIT(i);
status->chain_signal[i] = ATH10K_DEFAULT_NOISE_FLOOR + signal_per_chain;
        }
    }
    /* FIXME: Get real NF */
    status->signal = ATH10K_DEFAULT_NOISE_FLOOR +
             rxd->ppdu_start.rssi_comb;
    status->flag &= ~RX_FLAG_NO_SIGNAL_VAL;
}

But when I configure the number of antennas (iw phy0 set antennas - iw 3.15) lower than the maximum of antennas, chains doesn't change, i.e. there is still a correct value in chain_signal of the disabled antennas (the value is not updated though).

I don't understand how a signal value can be received from a STA if the antennas configuration doesn't allow it.

If it is not a bug, should i check rx_chain_mask in the driver to verify the antennas configuration instead of chains ?

Thanks for your help

Simon
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to