wlantest: Try harder to find a STA entry with PTK for 4-address frames

Commit aab6612836 ('wlantest: Search
bss/sta entry more thoroughly for 4-address frames') allowed wlantest to
find a STA entry in this type of cases, but it was still possible for
that STA entry to be the one that has no derived PTK while the STA entry
for the other side of the link might have the derived PTK available.

Extend this BSS/STA selection mechanism to use sta->ptk_set to determine
which STA entry is more useful for decryption, i.e., select the one with
a known PTK.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2017-12-08 21:51:47 +02:00 committed by Jouni Malinen
parent 9b0de99fac
commit 97302b39dc

View file

@ -278,12 +278,15 @@ static void rx_data_bss_prot(struct wlantest *wt,
if (sta) {
sta->counters[
WLANTEST_STA_COUNTER_PROT_DATA_TX]++;
} else {
}
if (!sta || !sta->ptk_set) {
bss2 = bss_find(wt, hdr->addr2);
if (bss2) {
sta = sta_find(bss2, hdr->addr1);
if (sta)
sta2 = sta_find(bss2, hdr->addr1);
if (sta2 && (!sta || sta2->ptk_set)) {
bss = bss2;
sta = sta2;
}
}
}
} else {