wlan: Drop broadcast AMSDU frames

Drop AMSDU subframes if AMSDU subframe header's DA
is equal to broadcast address.

Change-Id: I21f2b95b45fb150a857d23ba158a0f9df15d5c46
CRs-Fixed: 2897293
This commit is contained in:
Dundi Raviteja
2021-10-10 23:46:47 +02:00
committed by Francescodario Cuzzocrea
parent 460e39033c
commit e3b0411e00
@@ -845,6 +845,7 @@ WLANTL_AMSDUProcess
static v_U32_t numAMSDUFrames;
vos_pkt_t* vosDataBuff;
uint8_t llc_hdr[6] = {0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00};
uint8_t broadcast_addr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
/*------------------------------------------------------------------------
@@ -969,10 +970,13 @@ WLANTL_AMSDUProcess
}
/**
* Set drop_amsdu flag and drop AMSDU subframe if AMSDU subframe DA
* is equal to LLC header
* Set drop_amsdu flag and drop AMSDU subframe if
* 1. AMSDU subframe header's DA is equal to LLC header or
* 2. AMPDU header's DA is a broadcast address
*/
if (vos_mem_compare2(MPDUHeaderAMSDUHeader + ucMPDUHLen, llc_hdr, 6) == 0) {
if ((vos_mem_compare2(MPDUHeaderAMSDUHeader + ucMPDUHLen,
llc_hdr, 6) == 0) ||
(vos_mem_compare2(MPDUHeaderAMSDUHeader + 4, broadcast_addr, 6) == 0)) {
pClientSTA->drop_amsdu = true;
vos_pkt_return_packet(vosDataBuff);
*ppVosDataBuff = NULL;