software/drivers/sd8887/src/wlan/mlan/mlan_11n_rxreorder.c
/**
 *  @brief This function will process the rx packet and
 *         forward it to kernel/upper layer
 *
 *  @param priv     A pointer to mlan_private
 *  @param payload  A pointer to rx packet payload
 *  @param rx_reor_tbl_ptr       pointer to RxReorderTbl
 *
 *  @return         MLAN_STATUS_SUCCESS or MLAN_STATUS_FAILURE
 */
@brief This function will process the rx packet and
forward it to kernel/upper layer

@param priv     A pointer to mlan_private
@param payload  A pointer to rx packet payload
@param rx_reor_tbl_ptr       pointer to RxReorderTbl


@brief This function will process the rx packet and forward it to kernel / upper layer @param priv A pointer to mlan_private @param payload A pointer to rx packet payload @param rx_reor_tbl_ptr pointer to RxReorderTbl
static mlan_status
wlan_11n_dispatch_pkt(t_void *priv, t_void *payload,
		      RxReorderTbl *rx_reor_tbl_ptr)
{
	mlan_status ret = MLAN_STATUS_SUCCESS;
	pmlan_adapter pmadapter = ((pmlan_private)priv)->adapter;
	ENTER();
	if (payload == (t_void *)RX_PKT_DROPPED_IN_FW) {
		LEAVE();
		return ret;
	}
	if (ISSUPP_RSN_REPLAY_DETECTION(pmadapter->fw_cap_info) &&
	    rx_reor_tbl_ptr &&
	    wlan_is_rsn_replay_attack((mlan_private *)priv, payload,
				      rx_reor_tbl_ptr)) {
		LEAVE();
		return ret;
	}
#ifdef UAP_SUPPORT
	if (GET_BSS_ROLE((mlan_private *)priv) == MLAN_BSS_ROLE_UAP) {
		if (MLAN_STATUS_SUCCESS ==
		    wlan_11n_dispatch_amsdu_pkt((mlan_private *)priv,
						(pmlan_buffer)payload)) {
			LEAVE();
			return ret;
		}
		ret = wlan_process_uap_rx_packet(priv, (pmlan_buffer)payload);
		LEAVE();
		return ret;
	}
#endif 
#ifdef STA_SUPPORT
	if (MLAN_STATUS_SUCCESS ==
	    wlan_11n_dispatch_amsdu_pkt((mlan_private *)priv,
					(pmlan_buffer)payload)) {
		LEAVE();
		return ret;
	}
	ret = wlan_process_rx_packet(pmadapter, (pmlan_buffer)payload);
#endif 
	LEAVE();
	return ret;
}
static mlan_status wlan_11n_dispatch_pkt ( t_void * priv , t_void * payload , RxReorderTbl * rx_reor_tbl_ptr ) { mlan_status ret = MLAN_STATUS_SUCCESS ; pmlan_adapter pmadapter = ( ( pmlan_private ) priv ) -> adapter ; ENTER ( ) ; if ( payload == ( t_void * ) RX_PKT_DROPPED_IN_FW ) { LEAVE ( ) ; return ret ; } if ( ISSUPP_RSN_REPLAY_DETECTION ( pmadapter -> fw_cap_info ) && rx_reor_tbl_ptr && wlan_is_rsn_replay_attack ( ( mlan_private * ) priv , payload , rx_reor_tbl_ptr ) ) { LEAVE ( ) ; return ret ; } #ifdef UAP_SUPPORT if ( GET_BSS_ROLE ( ( mlan_private * ) priv ) == MLAN_BSS_ROLE_UAP ) { if ( MLAN_STATUS_SUCCESS == wlan_11n_dispatch_amsdu_pkt ( ( mlan_private * ) priv , ( pmlan_buffer ) payload ) ) { LEAVE ( ) ; return ret ; } ret = wlan_process_uap_rx_packet ( priv , ( pmlan_buffer ) payload ) ; LEAVE ( ) ; return ret ; } #endif #ifdef STA_SUPPORT if ( MLAN_STATUS_SUCCESS == wlan_11n_dispatch_amsdu_pkt ( ( mlan_private * ) priv , ( pmlan_buffer ) payload ) ) { LEAVE ( ) ; return ret ; } ret = wlan_process_rx_packet ( pmadapter , ( pmlan_buffer ) payload ) ; #endif LEAVE ( ) ; return ret ; }
@brief This function will process the rx packet and
         forward it to kernel/upper layer
@brief This function will process the rx packet and forward it to kernel / upper layer
/* UAP_SUPPORT */ /* STA_SUPPORT */