blob: 133f5f71cfd5b7cd47b3aba688f89fe38608689e [file] [log] [blame]
Dhanashri Atrefe5662c2016-03-25 12:57:53 -07001/*
2 * Copyright (c) 2016 The Linux Foundation. All rights reserved.
3 *
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 * @file cdp_txrx_me.h
29 * @brief Define the host data path mcast enhance API functions
30 * called by the host control SW and the OS interface module
31 */
32#ifndef _CDP_TXRX_ME_H_
33#define _CDP_TXRX_ME_H_
34
35/* TODO: adf need to be replaced with qdf */
36
37#if ATH_SUPPORT_ME_FW_BASED
38
39extern u_int16_t
40ol_tx_desc_alloc_and_mark_for_mcast_clone(struct ol_txrx_pdev_t *pdev, u_int16_t
41buf_count)
42
43extern u_int16_t
44ol_tx_desc_free_and_unmark_for_mcast_clone(struct ol_txrx_pdev_t *pdev,
45 u_int16_t buf_count);
46
47extern u_int16_t
48ol_tx_get_mcast_buf_allocated_marked(struct ol_txrx_pdev_t *pdev);
49#else
50extern void
51ol_tx_me_alloc_descriptor(struct ol_txrx_pdev_t *pdev);
52
53extern void
54ol_tx_me_free_descriptor(struct ol_txrx_pdev_t *pdev);
55
56extern uint16_t
57ol_tx_me_convert_ucast(ol_txrx_vdev_handle vdev, qdf_nbuf_t wbuf,
58 u_int8_t newmac[][6], uint8_t newmaccnt);
59#endif
60/* Should be a function pointer in ol_txrx_osif_ops{} */
61#if ATH_MCAST_HOST_INSPECT
62/**
63 * @brief notify mcast frame indication from FW.
64 * @details
65 * This notification will be used to convert
66 * multicast frame to unicast.
67 *
68 * @param pdev - handle to the ctrl SW's physical device object
69 * @param vdev_id - ID of the virtual device received the special data
70 * @param msdu - the multicast msdu returned by FW for host inspect
71 */
72
73int ol_mcast_notify(ol_pdev_handle pdev,
74 u_int8_t vdev_id, qdf_nbuf_t msdu);
75#endif
76
77#endif
78
79
80