xref: /linux/drivers/net/wireless/intel/iwlwifi/fw/api/filter.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * Copyright (C) 2012-2014 Intel Corporation
4  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
5  * Copyright (C) 2016-2017 Intel Deutschland GmbH
6  */
7 #ifndef __iwl_fw_api_filter_h__
8 #define __iwl_fw_api_filter_h__
9 
10 #include "fw/api/mac.h"
11 
12 #define MAX_PORT_ID_NUM	2
13 #define MAX_MCAST_FILTERING_ADDRESSES 256
14 
15 /**
16  * struct iwl_mcast_filter_cmd - configure multicast filter.
17  * @filter_own: Set 1 to filter out multicast packets sent by station itself
18  * @port_id:	Multicast MAC addresses array specifier. This is a strange way
19  *		to identify network interface adopted in host-device IF.
20  *		It is used by FW as index in array of addresses. This array has
21  *		MAX_PORT_ID_NUM members.
22  * @count:	Number of MAC addresses in the array
23  * @pass_all:	Set 1 to pass all multicast packets.
24  * @bssid:	current association BSSID.
25  * @reserved:	reserved
26  * @addr_list:	Place holder for array of MAC addresses.
27  *		IMPORTANT: add padding if necessary to ensure DWORD alignment.
28  */
29 struct iwl_mcast_filter_cmd {
30 	u8 filter_own;
31 	u8 port_id;
32 	u8 count;
33 	u8 pass_all;
34 	u8 bssid[6];
35 	u8 reserved[2];
36 	u8 addr_list[];
37 } __packed; /* MCAST_FILTERING_CMD_API_S_VER_1 */
38 
39 #endif /* __iwl_fw_api_filter_h__ */
40