diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index 83c1a9741b..69ea240143 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -201,6 +201,17 @@ typedef void (*ol_txrx_tx_flow_control_fp)(void *osif_dev, */ typedef QDF_STATUS(*ol_txrx_rx_fp)(void *osif_dev, qdf_nbuf_t msdu_list); +/** + * ol_txrx_rsim_rx_decap_fp - raw mode simulation function to decap the + * packets in receive path. + * @osif_dev - the virtual device's OS shim object + * @list_head - poniter to head of receive packet queue to decap + * @list_tail - poniter to tail of receive packet queue to decap + */ +typedef QDF_STATUS(*ol_txrx_rsim_rx_decap_fp)(void *osif_dev, + qdf_nbuf_t *list_head, + qdf_nbuf_t *list_tail); + /** * ol_txrx_rx_check_wai_fp - OSIF WAPI receive function */ @@ -287,6 +298,7 @@ struct ol_txrx_ops { ol_txrx_rx_fp rx; ol_txrx_rx_check_wai_fp wai_check; ol_txrx_rx_mon_fp mon; + ol_txrx_rsim_rx_decap_fp rsim_rx_decap; } rx; /* proxy arp function pointer - specified by OS shim, stored by txrx */ diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 2b2de37580..db87d14b6b 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -1197,6 +1197,7 @@ static void *dp_vdev_attach_wifi3(void *txrx_pdev, vdev->osdev = soc->osdev; vdev->osif_rx = NULL; + vdev->osif_rsim_rx_decap = NULL; vdev->osif_rx_mon = NULL; vdev->osif_vdev = NULL; @@ -1253,6 +1254,7 @@ static void dp_vdev_register_wifi3(void *vdev_handle, void *osif_vdev, struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle; vdev->osif_vdev = osif_vdev; vdev->osif_rx = txrx_ops->rx.rx; + vdev->osif_rsim_rx_decap = txrx_ops->rx.rsim_rx_decap; vdev->osif_rx_mon = txrx_ops->rx.mon; #ifdef notyet #if ATH_SUPPORT_WAPI diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 9d8ac9cecf..ba131fa355 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -575,6 +575,7 @@ struct dp_vdev { /* callback to hand rx frames to the OS shim */ ol_txrx_rx_fp osif_rx; + ol_txrx_rsim_rx_decap_fp osif_rsim_rx_decap; #ifdef notyet /* callback to check if the msdu is an WAI (WAPI) frame */