xref: /wlan-driver/qcacld-3.0/components/pmo/core/inc/wlan_pmo_pkt_filter.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 /**
20  * DOC: Declare packet filter feature API's
21  */
22 
23 #ifndef _WLAN_PMO_PKT_FILTER_H_
24 #define _WLAN_PMO_PKT_FILTER_H_
25 
26 #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
27 
28 #include "wlan_pmo_pkt_filter_public_struct.h"
29 
30 struct wlan_objmgr_psoc;
31 
32 /**
33  * pmo_get_num_packet_filters() - get the number of packet filters
34  * @psoc: the psoc to query
35  *
36  * Return: number of packet filters
37  */
38 uint32_t pmo_get_num_packet_filters(struct wlan_objmgr_psoc *psoc);
39 
40 /**
41  * pmo_core_set_pkt_filter() - Set packet filter
42  * @psoc: objmgr psoc
43  * @pmo_set_pkt_fltr_req: packet filter set param
44  * @vdev_id: vdev id
45  *
46  *  API to set packet filter
47  *
48  * Return: QDF_STATUS_SUCCESS in case of success else return error
49  */
50 QDF_STATUS pmo_core_set_pkt_filter(struct wlan_objmgr_psoc *psoc,
51 			struct pmo_rcv_pkt_fltr_cfg *pmo_set_pkt_fltr_req,
52 			uint8_t vdev_id);
53 
54 /**
55  * pmo_core_clear_pkt_filter() - Clear packet filter
56  * @psoc: objmgr psoc
57  * @pmo_clr_pkt_fltr_param: packet filter clear param
58  * @vdev_id: vdev id
59  *
60  *  API to clear packet filter
61  *
62  * Return: QDF_STATUS_SUCCESS in case of success else return error
63  */
64 QDF_STATUS pmo_core_clear_pkt_filter(struct wlan_objmgr_psoc *psoc,
65 		struct pmo_rcv_pkt_fltr_clear_param *pmo_clr_pkt_fltr_param,
66 		uint8_t vdev_id);
67 
68 #endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
69 
70 #endif /* _WLAN_PMO_PKT_FILTER_H_ */
71 
72