diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2021-05-24 07:26:15 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2021-05-24 07:26:15 -0700 |
| commit | 498528eb22b7cde1f4589f52088ce59dfc03fb0e (patch) | |
| tree | 702fcbff5c7abcff6dbe250962b0d2df4a246d27 | |
| parent | 38629817a9a665ad4209e67b0193d102a08efdfd (diff) | |
| parent | e0dbdc7635cee6f8fdaf118237446bc73ad9f75c (diff) | |
Merge "qcacld-3.0: Do not intrabss forward fragmented EAPOL frames."
| -rw-r--r-- | core/dp/txrx/ol_rx_defrag.c | 2 | ||||
| -rw-r--r-- | core/dp/txrx/ol_rx_fwd.c | 19 |
2 files changed, 19 insertions, 2 deletions
diff --git a/core/dp/txrx/ol_rx_defrag.c b/core/dp/txrx/ol_rx_defrag.c index e066ab5498e2..16ba405218f8 100644 --- a/core/dp/txrx/ol_rx_defrag.c +++ b/core/dp/txrx/ol_rx_defrag.c @@ -968,7 +968,7 @@ ol_rx_frag_tkip_demic(ol_txrx_pdev_handle pdev, const uint8_t *key, ol_rx_defrag_copydata(msdu, pktlen - f_tkip.ic_miclen + rx_desc_len, f_tkip.ic_miclen, (caddr_t) mic0); - if (!qdf_mem_cmp(mic, mic0, f_tkip.ic_miclen)) + if (qdf_mem_cmp(mic, mic0, f_tkip.ic_miclen)) return OL_RX_DEFRAG_ERR; qdf_nbuf_trim_tail(msdu, f_tkip.ic_miclen); diff --git a/core/dp/txrx/ol_rx_fwd.c b/core/dp/txrx/ol_rx_fwd.c index ebc15b7206d9..db211fea6902 100644 --- a/core/dp/txrx/ol_rx_fwd.c +++ b/core/dp/txrx/ol_rx_fwd.c @@ -1,5 +1,8 @@ /* - * Copyright (c) 2011, 2014-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2011, 2014-2017, 2021 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -204,6 +207,20 @@ ol_rx_fwd_check(struct ol_txrx_vdev_t *vdev, continue; } + if (vdev->opmode == wlan_op_mode_ap && + qdf_nbuf_is_ipv4_eapol_pkt(msdu) && + qdf_mem_cmp(qdf_nbuf_data(msdu) + + QDF_NBUF_DEST_MAC_OFFSET, + vdev->mac_addr.raw, + QDF_MAC_ADDR_SIZE)) { + TXRX_STATS_MSDU_LIST_INCR( + pdev, tx.dropped.host_reject, msdu); + qdf_nbuf_set_next(msdu, NULL); + qdf_nbuf_tx_free(msdu, QDF_NBUF_PKT_ERROR); + msdu = msdu_list; + continue; + } + /* * This MSDU needs to be forwarded to the tx path. * Check whether it also needs to be sent to the OS |
