qcacld-3.0: Fix condition to forward beacon to packet capture interface
User can set following combination of configs in vendor command for packet capture mode: 1. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON: to receive all mgmt frames but no beacons 2. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON + PKT_CAPTURE_MGMT_CONNECT_BEACON + connected_beacon_interval : to receive all other mgmt frames and only connected SSID beacons at particular intervals 3. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON + PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON: to receive all other mgmt frames and beacons only during scan. But with current condition connected SSID or scan beacons config will not be sent to FW as host checks for PKT_CAPTURE_MGMT_CONNECT_NO_BEACON config only. Also, on reception of any beacon, host checks for only PKT_CAPTURE_MGMT_CONNECT_NO_BEACON and if it is set, host drops the beacon which is wrong. So, enhance the conditions to send config to FW as well as remove the condition on reception of any beacon so that connected SSID or scan beacons are forwarded to packet capture interface when connected beacon interval config or PKT_CAPTURE_MGMT_CONNECT_BEACON or PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON is set by user in vendor command along with PKT_CAPTURE_MGMT_CONNECT_NO_BEACON config. Change-Id: I246b175f1c88ed45214527880ba14cdc17bf8206 CRs-Fixed: 3604708
Tento commit je obsažen v:

odevzdal
Rahul Choudhary

rodič
581c1128bd
revize
57efe2b69b
@@ -1256,7 +1256,7 @@ QDF_STATUS pkt_capture_set_filter(struct pkt_capture_frame_filter frame_filter,
|
||||
ol_txrx_soc_handle soc;
|
||||
QDF_STATUS status;
|
||||
enum pkt_capture_config config = 0;
|
||||
bool check_enable_beacon = 0, send_bcn = 0;
|
||||
bool send_bcn = 0;
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
uint32_t bcn_interval, nth_beacon_value;
|
||||
|
||||
@@ -1341,16 +1341,13 @@ QDF_STATUS pkt_capture_set_filter(struct pkt_capture_frame_filter frame_filter,
|
||||
PKT_CAPTURE_MGMT_CONNECT_NO_BEACON) {
|
||||
mode |= PACKET_CAPTURE_MODE_MGMT_ONLY;
|
||||
config |= PACKET_CAPTURE_CONFIG_NO_BEACON_ENABLE;
|
||||
} else {
|
||||
check_enable_beacon = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (check_enable_beacon) {
|
||||
if (vdev_priv->frame_filter.mgmt_rx_frame_filter &
|
||||
PKT_CAPTURE_MGMT_CONNECT_BEACON)
|
||||
PKT_CAPTURE_MGMT_CONNECT_BEACON) {
|
||||
if (!send_bcn)
|
||||
config |= PACKET_CAPTURE_CONFIG_BEACON_ENABLE;
|
||||
}
|
||||
|
||||
if (vdev_priv->frame_filter.mgmt_rx_frame_filter &
|
||||
PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON)
|
||||
|
@@ -594,10 +594,6 @@ pkt_capture_is_beacon_forward_enable(struct wlan_objmgr_vdev *vdev,
|
||||
return false;
|
||||
}
|
||||
|
||||
if (vdev_priv->frame_filter.mgmt_rx_frame_filter &
|
||||
PKT_CAPTURE_MGMT_CONNECT_NO_BEACON)
|
||||
return false;
|
||||
|
||||
mac_hdr = (tpSirMacMgmtHdr)(qdf_nbuf_data(wbuf));
|
||||
wlan_vdev_get_bss_peer_mac(vdev, &connected_bssid);
|
||||
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele