Commit 70b4c536 authored by Sara Sharon's avatar Sara Sharon Committed by Emmanuel Grumbach

iwlwifi: mvm: enable L3 filtering

Firmware will support filtering multicast L3 packets.
The L3 filtering is configured by the WOWLAN_CONFIG command.
All flags should be enabled by default.
Older firmware is not affected as it does not look into
this field.
Signed-off-by: default avatarSara Sharon <sara.sharon@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 9c3deeb5
...@@ -804,6 +804,8 @@ iwl_mvm_get_wowlan_config(struct iwl_mvm *mvm, ...@@ -804,6 +804,8 @@ iwl_mvm_get_wowlan_config(struct iwl_mvm *mvm,
wowlan_config_cmd->is_11n_connection = wowlan_config_cmd->is_11n_connection =
ap_sta->ht_cap.ht_supported; ap_sta->ht_cap.ht_supported;
wowlan_config_cmd->flags = ENABLE_L3_FILTERING |
ENABLE_NBNS_FILTERING | ENABLE_DHCP_FILTERING;
/* Query the last used seqno and set it */ /* Query the last used seqno and set it */
ret = iwl_mvm_get_last_nonqos_seq(mvm, vif); ret = iwl_mvm_get_last_nonqos_seq(mvm, vif);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
* Copyright(c) 2015 Intel Deutschland GmbH
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as * it under the terms of version 2 of the GNU General Public License as
...@@ -245,6 +246,13 @@ enum iwl_wowlan_wakeup_filters { ...@@ -245,6 +246,13 @@ enum iwl_wowlan_wakeup_filters {
IWL_WOWLAN_WAKEUP_BCN_FILTERING = BIT(16), IWL_WOWLAN_WAKEUP_BCN_FILTERING = BIT(16),
}; /* WOWLAN_WAKEUP_FILTER_API_E_VER_4 */ }; /* WOWLAN_WAKEUP_FILTER_API_E_VER_4 */
enum iwl_wowlan_flags {
IS_11W_ASSOC = BIT(0),
ENABLE_L3_FILTERING = BIT(1),
ENABLE_NBNS_FILTERING = BIT(2),
ENABLE_DHCP_FILTERING = BIT(3),
};
struct iwl_wowlan_config_cmd { struct iwl_wowlan_config_cmd {
__le32 wakeup_filter; __le32 wakeup_filter;
__le16 non_qos_seq; __le16 non_qos_seq;
...@@ -252,8 +260,9 @@ struct iwl_wowlan_config_cmd { ...@@ -252,8 +260,9 @@ struct iwl_wowlan_config_cmd {
u8 wowlan_ba_teardown_tids; u8 wowlan_ba_teardown_tids;
u8 is_11n_connection; u8 is_11n_connection;
u8 offloading_tid; u8 offloading_tid;
u8 reserved[3]; u8 flags;
} __packed; /* WOWLAN_CONFIG_API_S_VER_3 */ u8 reserved[2];
} __packed; /* WOWLAN_CONFIG_API_S_VER_4 */
/* /*
* WOWLAN_TSC_RSC_PARAMS * WOWLAN_TSC_RSC_PARAMS
......
...@@ -1186,7 +1186,8 @@ static void iwl_mvm_set_wowlan_data(struct iwl_mvm *mvm, ...@@ -1186,7 +1186,8 @@ static void iwl_mvm_set_wowlan_data(struct iwl_mvm *mvm,
mvm_ap_sta = iwl_mvm_sta_from_mac80211(ap_sta); mvm_ap_sta = iwl_mvm_sta_from_mac80211(ap_sta);
cmd->is_11n_connection = ap_sta->ht_cap.ht_supported; cmd->is_11n_connection = ap_sta->ht_cap.ht_supported;
cmd->offloading_tid = iter_data->offloading_tid; cmd->offloading_tid = iter_data->offloading_tid;
cmd->flags = ENABLE_L3_FILTERING | ENABLE_NBNS_FILTERING |
ENABLE_DHCP_FILTERING;
/* /*
* The d0i3 uCode takes care of the nonqos counters, * The d0i3 uCode takes care of the nonqos counters,
* so configure only the qos seq ones. * so configure only the qos seq ones.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment