1 /*
2  * Copyright (c) 2017 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 various struct, macros which shall be used in
21  * pmo mc address filterign related features.
22  *
23  * Note: This file shall not contain public API's prototype/declarations.
24  *
25  */
26 
27 #ifndef _WLAN_PMO_MC_ADDR_FILTERING_STRUCT_H_
28 #define _WLAN_PMO_MC_ADDR_FILTERING_STRUCT_H_
29 
30 #include "wlan_pmo_common_public_struct.h"
31 
32 #define PMO_MAX_MC_ADDR_LIST 32
33 #define PMO_MAX_NUM_MULTICAST_ADDRESS 240
34 
35 /**
36  * struct pmo_mc_addr_list_params -pmo mc address list request params
37  * @psoc: objmgr psoc
38  * @vdev_id: vdev id on which arp offload needed
39  * @count: multicast address count
40  * @mc_addr: multicast address array
41  */
42 struct pmo_mc_addr_list_params {
43 	struct wlan_objmgr_psoc *psoc;
44 	uint8_t vdev_id;
45 	uint8_t count;
46 	struct qdf_mac_addr mc_addr[PMO_MAX_MC_ADDR_LIST];
47 };
48 
49 /**
50  * struct pmo_mc_addr_list - pmo mc address list params for vdev
51  * @is_filter_applied: is mc list filter applied on vdev
52  * @mc_cnt: mc address count
53  * @mc_addr:mc address list
54  */
55 struct pmo_mc_addr_list {
56 	uint8_t is_filter_applied;
57 	uint8_t mc_cnt;
58 	struct qdf_mac_addr mc_addr[PMO_MAX_MC_ADDR_LIST];
59 };
60 
61 /**
62  * struct pmo_mcast_filter_params - mcast filter parameters
63  * @multicast_addr_cnt: num of addresses
64  * @multicast_addr: address array
65  * @action: operation to perform
66  */
67 struct pmo_mcast_filter_params {
68 	uint32_t multicast_addr_cnt;
69 	struct qdf_mac_addr multicast_addr[PMO_MAX_NUM_MULTICAST_ADDRESS];
70 	uint8_t action;
71 };
72 #endif /* end  of _WLAN_PMO_MC_ADDR_FILTERING_STRUCT_H_ */
73