From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

airpdcap: For FromDS and ToDS both set use magic

All 802.11 data frames on the AMP link shall be sent with ToDS and FromDS
bits in the Frame Control field both set to one. Currently for this packets
we get different associations for the same EAPOL sequence since addr2 and
addr1 change.

svn path=/trunk/; revision=45923
This commit is contained in:
Anders Broman 2012-11-05 11:55:39 +00:00
parent a98414062c
commit a6b7e3fba5
1 changed files with 12 additions and 2 deletions

View File

@ -1636,10 +1636,15 @@ AirPDcapGetStaAddress(
switch(AIRPDCAP_DS_BITS(frame->fc[1])) { /* Bit 1 = FromDS, bit 0 = ToDS */
case 0:
case 1:
case 3:
return frame->addr2;
case 2:
return frame->addr1;
case 3:
if (memcmp(frame->addr1, frame->addr2, AIRPDCAP_MAC_LEN) < 0)
return frame->addr1;
else
return frame->addr2;
default:
return NULL;
}
@ -1653,10 +1658,15 @@ AirPDcapGetBssidAddress(
case 0:
return frame->addr3;
case 1:
case 3:
return frame->addr1;
case 2:
return frame->addr2;
case 3:
if (memcmp(frame->addr1, frame->addr2, AIRPDCAP_MAC_LEN) > 0)
return frame->addr1;
else
return frame->addr2;
default:
return NULL;
}