diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-12-22 14:27:21 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-22 14:27:21 -0500 |
commit | 63e35cd9bd4c8ae085c8b9a70554595b529c4100 (patch) | |
tree | 68e771e0035d5f3ee394a3d86885631a2610bba5 /include/net | |
parent | 503b1a529a6b62b31904bab4699752c523cf76b2 (diff) | |
parent | 3d986b25b5faa50ba6afd94f60f270b6c3061e5e (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/iwlwifi/iwl-1000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-core.h
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/cfg80211.h | 67 | ||||
-rw-r--r-- | include/net/mac80211.h | 4 |
2 files changed, 64 insertions, 7 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 0d5979924be3..bcc9f448ec4e 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -649,12 +649,20 @@ struct mesh_config { | |||
649 | * struct mesh_setup - 802.11s mesh setup configuration | 649 | * struct mesh_setup - 802.11s mesh setup configuration |
650 | * @mesh_id: the mesh ID | 650 | * @mesh_id: the mesh ID |
651 | * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes | 651 | * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes |
652 | * @path_sel_proto: which path selection protocol to use | ||
653 | * @path_metric: which metric to use | ||
654 | * @vendor_ie: vendor information elements (optional) | ||
655 | * @vendor_ie_len: length of vendor information elements | ||
652 | * | 656 | * |
653 | * These parameters are fixed when the mesh is created. | 657 | * These parameters are fixed when the mesh is created. |
654 | */ | 658 | */ |
655 | struct mesh_setup { | 659 | struct mesh_setup { |
656 | const u8 *mesh_id; | 660 | const u8 *mesh_id; |
657 | u8 mesh_id_len; | 661 | u8 mesh_id_len; |
662 | u8 path_sel_proto; | ||
663 | u8 path_metric; | ||
664 | const u8 *vendor_ie; | ||
665 | u8 vendor_ie_len; | ||
658 | }; | 666 | }; |
659 | 667 | ||
660 | /** | 668 | /** |
@@ -1096,9 +1104,9 @@ struct cfg80211_pmksa { | |||
1096 | * @get_mpath: get a mesh path for the given parameters | 1104 | * @get_mpath: get a mesh path for the given parameters |
1097 | * @dump_mpath: dump mesh path callback -- resume dump at index @idx | 1105 | * @dump_mpath: dump mesh path callback -- resume dump at index @idx |
1098 | * | 1106 | * |
1099 | * @get_mesh_params: Put the current mesh parameters into *params | 1107 | * @get_mesh_config: Get the current mesh configuration |
1100 | * | 1108 | * |
1101 | * @update_mesh_params: Update mesh parameters on a running mesh. | 1109 | * @update_mesh_config: Update mesh parameters on a running mesh. |
1102 | * The mask is a bitfield which tells us which parameters to | 1110 | * The mask is a bitfield which tells us which parameters to |
1103 | * set, and which to leave alone. | 1111 | * set, and which to leave alone. |
1104 | * | 1112 | * |
@@ -1211,7 +1219,7 @@ struct cfg80211_ops { | |||
1211 | u8 key_index, bool pairwise, const u8 *mac_addr); | 1219 | u8 key_index, bool pairwise, const u8 *mac_addr); |
1212 | int (*set_default_key)(struct wiphy *wiphy, | 1220 | int (*set_default_key)(struct wiphy *wiphy, |
1213 | struct net_device *netdev, | 1221 | struct net_device *netdev, |
1214 | u8 key_index); | 1222 | u8 key_index, bool unicast, bool multicast); |
1215 | int (*set_default_mgmt_key)(struct wiphy *wiphy, | 1223 | int (*set_default_mgmt_key)(struct wiphy *wiphy, |
1216 | struct net_device *netdev, | 1224 | struct net_device *netdev, |
1217 | u8 key_index); | 1225 | u8 key_index); |
@@ -1246,10 +1254,10 @@ struct cfg80211_ops { | |||
1246 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, | 1254 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, |
1247 | int idx, u8 *dst, u8 *next_hop, | 1255 | int idx, u8 *dst, u8 *next_hop, |
1248 | struct mpath_info *pinfo); | 1256 | struct mpath_info *pinfo); |
1249 | int (*get_mesh_params)(struct wiphy *wiphy, | 1257 | int (*get_mesh_config)(struct wiphy *wiphy, |
1250 | struct net_device *dev, | 1258 | struct net_device *dev, |
1251 | struct mesh_config *conf); | 1259 | struct mesh_config *conf); |
1252 | int (*update_mesh_params)(struct wiphy *wiphy, | 1260 | int (*update_mesh_config)(struct wiphy *wiphy, |
1253 | struct net_device *dev, u32 mask, | 1261 | struct net_device *dev, u32 mask, |
1254 | const struct mesh_config *nconf); | 1262 | const struct mesh_config *nconf); |
1255 | int (*join_mesh)(struct wiphy *wiphy, struct net_device *dev, | 1263 | int (*join_mesh)(struct wiphy *wiphy, struct net_device *dev, |
@@ -1393,6 +1401,8 @@ struct cfg80211_ops { | |||
1393 | * control port protocol ethertype. The device also honours the | 1401 | * control port protocol ethertype. The device also honours the |
1394 | * control_port_no_encrypt flag. | 1402 | * control_port_no_encrypt flag. |
1395 | * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN. | 1403 | * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN. |
1404 | * @WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS: The device supports separate | ||
1405 | * unicast and multicast TX keys. | ||
1396 | */ | 1406 | */ |
1397 | enum wiphy_flags { | 1407 | enum wiphy_flags { |
1398 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), | 1408 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), |
@@ -1404,6 +1414,7 @@ enum wiphy_flags { | |||
1404 | WIPHY_FLAG_4ADDR_STATION = BIT(6), | 1414 | WIPHY_FLAG_4ADDR_STATION = BIT(6), |
1405 | WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), | 1415 | WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), |
1406 | WIPHY_FLAG_IBSS_RSN = BIT(8), | 1416 | WIPHY_FLAG_IBSS_RSN = BIT(8), |
1417 | WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS= BIT(9), | ||
1407 | }; | 1418 | }; |
1408 | 1419 | ||
1409 | struct mac_address { | 1420 | struct mac_address { |
@@ -1416,7 +1427,9 @@ struct ieee80211_txrx_stypes { | |||
1416 | 1427 | ||
1417 | /** | 1428 | /** |
1418 | * struct wiphy - wireless hardware description | 1429 | * struct wiphy - wireless hardware description |
1419 | * @reg_notifier: the driver's regulatory notification callback | 1430 | * @reg_notifier: the driver's regulatory notification callback, |
1431 | * note that if your driver uses wiphy_apply_custom_regulatory() | ||
1432 | * the reg_notifier's request can be passed as NULL | ||
1420 | * @regd: the driver's regulatory domain, if one was requested via | 1433 | * @regd: the driver's regulatory domain, if one was requested via |
1421 | * the regulatory_hint() API. This can be used by the driver | 1434 | * the regulatory_hint() API. This can be used by the driver |
1422 | * on the reg_notifier() if it chooses to ignore future | 1435 | * on the reg_notifier() if it chooses to ignore future |
@@ -1468,6 +1481,17 @@ struct ieee80211_txrx_stypes { | |||
1468 | * @mgmt_stypes: bitmasks of frame subtypes that can be subscribed to or | 1481 | * @mgmt_stypes: bitmasks of frame subtypes that can be subscribed to or |
1469 | * transmitted through nl80211, points to an array indexed by interface | 1482 | * transmitted through nl80211, points to an array indexed by interface |
1470 | * type | 1483 | * type |
1484 | * | ||
1485 | * @available_antennas_tx: bitmap of antennas which are available to be | ||
1486 | * configured as TX antennas. Antenna configuration commands will be | ||
1487 | * rejected unless this or @available_antennas_rx is set. | ||
1488 | * | ||
1489 | * @available_antennas_rx: bitmap of antennas which are available to be | ||
1490 | * configured as RX antennas. Antenna configuration commands will be | ||
1491 | * rejected unless this or @available_antennas_tx is set. | ||
1492 | * | ||
1493 | * @max_remain_on_channel_duration: Maximum time a remain-on-channel operation | ||
1494 | * may request, if implemented. | ||
1471 | */ | 1495 | */ |
1472 | struct wiphy { | 1496 | struct wiphy { |
1473 | /* assign these fields before you register the wiphy */ | 1497 | /* assign these fields before you register the wiphy */ |
@@ -1505,8 +1529,13 @@ struct wiphy { | |||
1505 | char fw_version[ETHTOOL_BUSINFO_LEN]; | 1529 | char fw_version[ETHTOOL_BUSINFO_LEN]; |
1506 | u32 hw_version; | 1530 | u32 hw_version; |
1507 | 1531 | ||
1532 | u16 max_remain_on_channel_duration; | ||
1533 | |||
1508 | u8 max_num_pmkids; | 1534 | u8 max_num_pmkids; |
1509 | 1535 | ||
1536 | u32 available_antennas_tx; | ||
1537 | u32 available_antennas_rx; | ||
1538 | |||
1510 | /* If multiple wiphys are registered and you're handed e.g. | 1539 | /* If multiple wiphys are registered and you're handed e.g. |
1511 | * a regular netdev with assigned ieee80211_ptr, you won't | 1540 | * a regular netdev with assigned ieee80211_ptr, you won't |
1512 | * know whether it points to a wiphy your driver has registered | 1541 | * know whether it points to a wiphy your driver has registered |
@@ -2347,6 +2376,32 @@ void __cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, | |||
2347 | size_t len); | 2376 | size_t len); |
2348 | 2377 | ||
2349 | /** | 2378 | /** |
2379 | * cfg80211_send_unprot_deauth - notification of unprotected deauthentication | ||
2380 | * @dev: network device | ||
2381 | * @buf: deauthentication frame (header + body) | ||
2382 | * @len: length of the frame data | ||
2383 | * | ||
2384 | * This function is called whenever a received Deauthentication frame has been | ||
2385 | * dropped in station mode because of MFP being used but the Deauthentication | ||
2386 | * frame was not protected. This function may sleep. | ||
2387 | */ | ||
2388 | void cfg80211_send_unprot_deauth(struct net_device *dev, const u8 *buf, | ||
2389 | size_t len); | ||
2390 | |||
2391 | /** | ||
2392 | * cfg80211_send_unprot_disassoc - notification of unprotected disassociation | ||
2393 | * @dev: network device | ||
2394 | * @buf: disassociation frame (header + body) | ||
2395 | * @len: length of the frame data | ||
2396 | * | ||
2397 | * This function is called whenever a received Disassociation frame has been | ||
2398 | * dropped in station mode because of MFP being used but the Disassociation | ||
2399 | * frame was not protected. This function may sleep. | ||
2400 | */ | ||
2401 | void cfg80211_send_unprot_disassoc(struct net_device *dev, const u8 *buf, | ||
2402 | size_t len); | ||
2403 | |||
2404 | /** | ||
2350 | * cfg80211_michael_mic_failure - notification of Michael MIC failure (TKIP) | 2405 | * cfg80211_michael_mic_failure - notification of Michael MIC failure (TKIP) |
2351 | * @dev: network device | 2406 | * @dev: network device |
2352 | * @addr: The source MAC address of the frame | 2407 | * @addr: The source MAC address of the frame |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index e411cf87fb41..69ded1ee49ce 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -2435,6 +2435,7 @@ void ieee80211_queue_delayed_work(struct ieee80211_hw *hw, | |||
2435 | * ieee80211_start_tx_ba_session - Start a tx Block Ack session. | 2435 | * ieee80211_start_tx_ba_session - Start a tx Block Ack session. |
2436 | * @sta: the station for which to start a BA session | 2436 | * @sta: the station for which to start a BA session |
2437 | * @tid: the TID to BA on. | 2437 | * @tid: the TID to BA on. |
2438 | * @timeout: session timeout value (in TUs) | ||
2438 | * | 2439 | * |
2439 | * Return: success if addBA request was sent, failure otherwise | 2440 | * Return: success if addBA request was sent, failure otherwise |
2440 | * | 2441 | * |
@@ -2442,7 +2443,8 @@ void ieee80211_queue_delayed_work(struct ieee80211_hw *hw, | |||
2442 | * the need to start aggregation on a certain RA/TID, the session level | 2443 | * the need to start aggregation on a certain RA/TID, the session level |
2443 | * will be managed by the mac80211. | 2444 | * will be managed by the mac80211. |
2444 | */ | 2445 | */ |
2445 | int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid); | 2446 | int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid, |
2447 | u16 timeout); | ||
2446 | 2448 | ||
2447 | /** | 2449 | /** |
2448 | * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate. | 2450 | * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate. |