aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-12-22 14:27:21 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-22 14:27:21 -0500
commit63e35cd9bd4c8ae085c8b9a70554595b529c4100 (patch)
tree68e771e0035d5f3ee394a3d86885631a2610bba5 /include/net
parent503b1a529a6b62b31904bab4699752c523cf76b2 (diff)
parent3d986b25b5faa50ba6afd94f60f270b6c3061e5e (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.h67
-rw-r--r--include/net/mac80211.h4
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 */
655struct mesh_setup { 659struct 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 */
1397enum wiphy_flags { 1407enum 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
1409struct mac_address { 1420struct 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 */
1472struct wiphy { 1496struct 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 */
2388void 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 */
2401void 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 */
2445int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid); 2446int 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.