소스 검색

qcacmn: PN check bypass required in WEP mode as welil

There is no consecutive PN number for fragments in
open/WEP security mode so no point of dropping such frames

Change-Id: If75a99cb89c6b0997e9b07afc582c4141c277bb8
Shikha Bakshi 4 년 전
부모
커밋
6494ed4e55
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      dp/wifi3.0/dp_rx_defrag.c

+ 5 - 1
dp/wifi3.0/dp_rx_defrag.c

@@ -917,13 +917,17 @@ dp_rx_construct_fraglist(struct dp_peer *peer, int tid, qdf_nbuf_t head,
 	int out_of_order = 0;
 	int out_of_order = 0;
 	int index;
 	int index;
 	int needs_pn_check = 0;
 	int needs_pn_check = 0;
+	enum cdp_sec_type sec_type;
 
 
 	prev_pn128[0] = rx_tid->pn128[0];
 	prev_pn128[0] = rx_tid->pn128[0];
 	prev_pn128[1] = rx_tid->pn128[1];
 	prev_pn128[1] = rx_tid->pn128[1];
 
 
 	index = hal_rx_msdu_is_wlan_mcast(soc->hal_soc, msdu) ? dp_sec_mcast :
 	index = hal_rx_msdu_is_wlan_mcast(soc->hal_soc, msdu) ? dp_sec_mcast :
 				dp_sec_ucast;
 				dp_sec_ucast;
-	if (qdf_likely(peer->security[index].sec_type != cdp_sec_type_none))
+	sec_type = peer->security[index].sec_type;
+
+	if (!(sec_type == cdp_sec_type_none || sec_type == cdp_sec_type_wep128 ||
+	      sec_type == cdp_sec_type_wep104 || sec_type == cdp_sec_type_wep40))
 		needs_pn_check = 1;
 		needs_pn_check = 1;
 
 
 	while (msdu) {
 	while (msdu) {