Manikanta Pubbisetty <mpubbise@xxxxxxxxxxxxxx> wrote: > IPQ8074 HW has support to verify the PN of the received frames. > For all frames except for fragmented ones, HW checks the PN and > delivers them to the driver. For fragmented frames, driver is > required to do a little more; it has to reassemble the fragments > and then reinject them to the HW for verifying the PN. Currently, > to keep the logic simple, PN verifcation is disabled in HW and is > handled in mac80211 for all the frames (fragmented and unfragmented). > > On the contrary, offloading PN Validation to the HW brings important > benefits. It reduces CPU cycles spent on the host CPU for verifying > the same; helps in enabling features which improve performance like > mac80211 fast RX path, enabling multiple REO rings for parallel RX > processing, 802.11 decapsulation offloading. All these features are > dependent on PN offload which in turn is dependent on handling of > the received fragments in the driver. > > When TKIP security is used, additional handling is required while > processing the fragments; since MIC is computed on an MSDU in TKIP, > only the last fragment has the MIC info. In this case, driver has to > compute the MIC after reassembly and compare it against the MIC > present in the frame. For this, MICHAEL_MIC kernel crypto library > APIs are used and the dependencies are appropriately set. > > Signed-off-by: Manikanta Pubbisetty <mpubbise@xxxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> kbuild test robot found new warnings: New smatch warnings: drivers/net/wireless/ath/ath11k/dp_rx.c:3078 ath11k_dp_rx_h_defrag_reo_reinject() warn: unsigned 'buf_id' is never less than zero. sparse warnings: (new ones prefixed by >>) >> drivers/net/wireless/ath/ath11k/dp_rx.c:65:30: sparse: sparse: incorrect type in return expression (different base types) @@ expected unsigned short @@ got resunsigned short @@ drivers/net/wireless/ath/ath11k/dp_rx.c:65:30: sparse: expected unsigned short drivers/net/wireless/ath/ath11k/dp_rx.c:65:30: sparse: got restricted __le16 drivers/net/wireless/ath/ath11k/dp_rx.c:2784:6: sparse: sparse: symbol 'ath11k_dp_rx_frag_timer' was not declared. Should it be static? 2 patches set to Changes Requested. 11381973 [1/2] ath11k: handle RX fragments 11381967 [2/2] ath11k: enable PN offload -- https://patchwork.kernel.org/patch/11381973/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches