iwlwifi: mvm: add predefined broadcast filter configuration

Configure arp request broadcast filter if this
option is enabled, in order to allow only arp
request broadcasts to pass-in.

(A following patch will make this filter even narrower
by limiting the arp request to our own ip)

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
Eliad Peller 2014-01-14 12:35:49 +02:00 committed by Emmanuel Grumbach
parent c87163b9ae
commit 777369237b

View File

@ -128,6 +128,28 @@ static const struct wiphy_wowlan_tcp_support iwl_mvm_wowlan_tcp_support = {
}; };
#endif #endif
#ifdef CONFIG_IWLWIFI_BCAST_FILTERING
static const struct iwl_fw_bcast_filter iwl_mvm_default_bcast_filters[] = {
{
/* arp */
.discard = 0,
.frame_type = BCAST_FILTER_FRAME_TYPE_ALL,
.attrs = {
{
/* frame type - arp, hw type - ethernet */
.offset_type =
BCAST_FILTER_OFFSET_PAYLOAD_START,
.offset = sizeof(rfc1042_header),
.val = cpu_to_be32(0x08060001),
.mask = cpu_to_be32(0xffffffff),
},
},
},
/* last filter must be empty */
{},
};
#endif
static void iwl_mvm_reset_phy_ctxts(struct iwl_mvm *mvm) static void iwl_mvm_reset_phy_ctxts(struct iwl_mvm *mvm)
{ {
int i; int i;
@ -292,6 +314,11 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
} }
#endif #endif
#ifdef CONFIG_IWLWIFI_BCAST_FILTERING
/* assign default bcast filtering configuration */
mvm->bcast_filters = iwl_mvm_default_bcast_filters;
#endif
ret = iwl_mvm_leds_init(mvm); ret = iwl_mvm_leds_init(mvm);
if (ret) if (ret)
return ret; return ret;