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