qcacld-3.0: Skip FISA aggregation if RDI is zero

Skip the FISA aggregation and drop the frame if the reo destination
indication is zero in the packet TLVs.

Change-Id: I9bd02652bf321202f6b59e6da98fc6959ab93413
CRs-Fixed: 3426355
This commit is contained in:
Venkateswara Naralasetty 2023-08-02 15:56:08 +05:30 • committed by Rahul Choudhary
commit c73dbe2305

View file

@ -1901,6 +1901,7 @@ QDF_STATUS dp_fisa_rx(struct dp_soc *soc, struct dp_vdev *vdev,
struct dp_fisa_rx_sw_ft *fisa_flow;
int fisa_ret;
uint8_t rx_ctx_id = QDF_NBUF_CB_RX_CTX_ID(nbuf_list);
uint32_t tlv_reo_dest_ind;
head_nbuf = nbuf_list;
@ -1929,6 +1930,17 @@ QDF_STATUS dp_fisa_rx(struct dp_soc *soc, struct dp_vdev *vdev,
qdf_nbuf_push_head(head_nbuf, RX_PKT_TLVS_LEN +
QDF_NBUF_CB_RX_PACKET_L3_HDR_PAD(head_nbuf));
hal_rx_msdu_get_reo_destination_indication(soc->hal_soc,
(uint8_t *)qdf_nbuf_data(head_nbuf),
&tlv_reo_dest_ind);
/* Skip FISA aggregation and drop the frame if RDI is REO2TCL */
if (qdf_unlikely(tlv_reo_dest_ind == REO_REMAP_TCL)) {
qdf_nbuf_free(head_nbuf);
head_nbuf = next_nbuf;
DP_STATS_INC(dp_fisa_rx_hdl, incorrect_rdi, 1);
continue;
}
/* Add new flow if the there is no ongoing flow */
fisa_flow = dp_rx_get_fisa_flow(dp_fisa_rx_hdl, vdev,
head_nbuf);