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