blob: ce1bbb0b08551515893272eff11685699b114b06 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Nirav Shahcbc6d722016-03-01 16:24:53 +05302 * Copyright (c) 2011, 2014-2016 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28#ifndef _OL_RX__H_
29#define _OL_RX__H_
30
Nirav Shahcbc6d722016-03-01 16:24:53 +053031#include <qdf_nbuf.h> /* qdf_nbuf_t */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080032#include <ol_txrx_types.h> /* ol_txrx_vdev_t, etc. */
33
34void
35ol_rx_deliver(struct ol_txrx_vdev_t *vdev,
Nirav Shahcbc6d722016-03-01 16:24:53 +053036 struct ol_txrx_peer_t *peer, unsigned tid, qdf_nbuf_t head_msdu);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080037
38void
39ol_rx_discard(struct ol_txrx_vdev_t *vdev,
Nirav Shahcbc6d722016-03-01 16:24:53 +053040 struct ol_txrx_peer_t *peer, unsigned tid, qdf_nbuf_t head_msdu);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080041
Nirav Shahcbc6d722016-03-01 16:24:53 +053042void ol_rx_frames_free(htt_pdev_handle htt_pdev, qdf_nbuf_t frames);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080043
44void ol_rx_peer_init(struct ol_txrx_pdev_t *pdev, struct ol_txrx_peer_t *peer);
45
46void
47ol_rx_peer_cleanup(struct ol_txrx_vdev_t *vdev, struct ol_txrx_peer_t *peer);
48
49void
50ol_rx_in_order_deliver(struct ol_txrx_vdev_t *vdev,
51 struct ol_txrx_peer_t *peer,
Nirav Shahcbc6d722016-03-01 16:24:53 +053052 unsigned tid, qdf_nbuf_t head_msdu);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080053
54void
55ol_rx_offload_paddr_deliver_ind_handler(htt_pdev_handle htt_pdev,
56 uint32_t msdu_count,
57 uint32_t *msg_word);
58
59void
60ol_rx_mic_error_handler(
61 ol_txrx_pdev_handle pdev,
62 u_int8_t tid,
63 u_int16_t peer_id,
64 void *msdu_desc,
Nirav Shahcbc6d722016-03-01 16:24:53 +053065 qdf_nbuf_t msdu);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080066
67#endif /* _OL_RX__H_ */