diff options
author | David S. Miller <davem@davemloft.net> | 2009-12-30 16:51:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-30 16:51:29 -0500 |
commit | 3a999e6eb5d277cd6a321dcda3fc43c3d9e4e4b8 (patch) | |
tree | b0ad8d03710ee556e97515ba1c949233859391ce /include/net | |
parent | 6cd9b49d7328c4656bfc17fcb47fb814955d40d2 (diff) | |
parent | 891dc5e73783eeabd2a704a9425e2a199b39c9f9 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/cfg80211.h | 59 | ||||
-rw-r--r-- | include/net/mac80211.h | 105 |
2 files changed, 109 insertions, 55 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 542a477a94da..add79930f47d 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -988,6 +988,15 @@ struct cfg80211_pmksa { | |||
988 | * | 988 | * |
989 | * @dump_survey: get site survey information. | 989 | * @dump_survey: get site survey information. |
990 | * | 990 | * |
991 | * @remain_on_channel: Request the driver to remain awake on the specified | ||
992 | * channel for the specified duration to complete an off-channel | ||
993 | * operation (e.g., public action frame exchange). When the driver is | ||
994 | * ready on the requested channel, it must indicate this with an event | ||
995 | * notification by calling cfg80211_ready_on_channel(). | ||
996 | * @cancel_remain_on_channel: Cancel an on-going remain-on-channel operation. | ||
997 | * This allows the operation to be terminated prior to timeout based on | ||
998 | * the duration value. | ||
999 | * | ||
991 | * @testmode_cmd: run a test mode command | 1000 | * @testmode_cmd: run a test mode command |
992 | * | 1001 | * |
993 | * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac | 1002 | * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac |
@@ -1123,6 +1132,16 @@ struct cfg80211_ops { | |||
1123 | struct cfg80211_pmksa *pmksa); | 1132 | struct cfg80211_pmksa *pmksa); |
1124 | int (*flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev); | 1133 | int (*flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev); |
1125 | 1134 | ||
1135 | int (*remain_on_channel)(struct wiphy *wiphy, | ||
1136 | struct net_device *dev, | ||
1137 | struct ieee80211_channel *chan, | ||
1138 | enum nl80211_channel_type channel_type, | ||
1139 | unsigned int duration, | ||
1140 | u64 *cookie); | ||
1141 | int (*cancel_remain_on_channel)(struct wiphy *wiphy, | ||
1142 | struct net_device *dev, | ||
1143 | u64 cookie); | ||
1144 | |||
1126 | /* some temporary stuff to finish wext */ | 1145 | /* some temporary stuff to finish wext */ |
1127 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, | 1146 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, |
1128 | bool enabled, int timeout); | 1147 | bool enabled, int timeout); |
@@ -2147,5 +2166,45 @@ void cfg80211_roamed(struct net_device *dev, const u8 *bssid, | |||
2147 | void cfg80211_disconnected(struct net_device *dev, u16 reason, | 2166 | void cfg80211_disconnected(struct net_device *dev, u16 reason, |
2148 | u8 *ie, size_t ie_len, gfp_t gfp); | 2167 | u8 *ie, size_t ie_len, gfp_t gfp); |
2149 | 2168 | ||
2169 | /** | ||
2170 | * cfg80211_ready_on_channel - notification of remain_on_channel start | ||
2171 | * @dev: network device | ||
2172 | * @cookie: the request cookie | ||
2173 | * @chan: The current channel (from remain_on_channel request) | ||
2174 | * @channel_type: Channel type | ||
2175 | * @duration: Duration in milliseconds that the driver intents to remain on the | ||
2176 | * channel | ||
2177 | * @gfp: allocation flags | ||
2178 | */ | ||
2179 | void cfg80211_ready_on_channel(struct net_device *dev, u64 cookie, | ||
2180 | struct ieee80211_channel *chan, | ||
2181 | enum nl80211_channel_type channel_type, | ||
2182 | unsigned int duration, gfp_t gfp); | ||
2183 | |||
2184 | /** | ||
2185 | * cfg80211_remain_on_channel_expired - remain_on_channel duration expired | ||
2186 | * @dev: network device | ||
2187 | * @cookie: the request cookie | ||
2188 | * @chan: The current channel (from remain_on_channel request) | ||
2189 | * @channel_type: Channel type | ||
2190 | * @gfp: allocation flags | ||
2191 | */ | ||
2192 | void cfg80211_remain_on_channel_expired(struct net_device *dev, | ||
2193 | u64 cookie, | ||
2194 | struct ieee80211_channel *chan, | ||
2195 | enum nl80211_channel_type channel_type, | ||
2196 | gfp_t gfp); | ||
2197 | |||
2198 | |||
2199 | /** | ||
2200 | * cfg80211_new_sta - notify userspace about station | ||
2201 | * | ||
2202 | * @dev: the netdev | ||
2203 | * @mac_addr: the station's address | ||
2204 | * @sinfo: the station information | ||
2205 | * @gfp: allocation flags | ||
2206 | */ | ||
2207 | void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr, | ||
2208 | struct station_info *sinfo, gfp_t gfp); | ||
2150 | 2209 | ||
2151 | #endif /* __NET_CFG80211_H */ | 2210 | #endif /* __NET_CFG80211_H */ |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 494ac69ff477..f073a2a50574 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -547,7 +547,6 @@ enum mac80211_rx_flags { | |||
547 | * unspecified depending on the hardware capabilities flags | 547 | * unspecified depending on the hardware capabilities flags |
548 | * @IEEE80211_HW_SIGNAL_* | 548 | * @IEEE80211_HW_SIGNAL_* |
549 | * @noise: noise when receiving this frame, in dBm. | 549 | * @noise: noise when receiving this frame, in dBm. |
550 | * @qual: overall signal quality indication, in percent (0-100). | ||
551 | * @antenna: antenna used | 550 | * @antenna: antenna used |
552 | * @rate_idx: index of data rate into band's supported rates or MCS index if | 551 | * @rate_idx: index of data rate into band's supported rates or MCS index if |
553 | * HT rates are use (RX_FLAG_HT) | 552 | * HT rates are use (RX_FLAG_HT) |
@@ -559,7 +558,6 @@ struct ieee80211_rx_status { | |||
559 | int freq; | 558 | int freq; |
560 | int signal; | 559 | int signal; |
561 | int noise; | 560 | int noise; |
562 | int __deprecated qual; | ||
563 | int antenna; | 561 | int antenna; |
564 | int rate_idx; | 562 | int rate_idx; |
565 | int flag; | 563 | int flag; |
@@ -702,33 +700,6 @@ static inline bool ieee80211_vif_is_mesh(struct ieee80211_vif *vif) | |||
702 | } | 700 | } |
703 | 701 | ||
704 | /** | 702 | /** |
705 | * struct ieee80211_if_init_conf - initial configuration of an interface | ||
706 | * | ||
707 | * @vif: pointer to a driver-use per-interface structure. The pointer | ||
708 | * itself is also used for various functions including | ||
709 | * ieee80211_beacon_get() and ieee80211_get_buffered_bc(). | ||
710 | * @type: one of &enum nl80211_iftype constants. Determines the type of | ||
711 | * added/removed interface. | ||
712 | * @mac_addr: pointer to MAC address of the interface. This pointer is valid | ||
713 | * until the interface is removed (i.e. it cannot be used after | ||
714 | * remove_interface() callback was called for this interface). | ||
715 | * | ||
716 | * This structure is used in add_interface() and remove_interface() | ||
717 | * callbacks of &struct ieee80211_hw. | ||
718 | * | ||
719 | * When you allow multiple interfaces to be added to your PHY, take care | ||
720 | * that the hardware can actually handle multiple MAC addresses. However, | ||
721 | * also take care that when there's no interface left with mac_addr != %NULL | ||
722 | * you remove the MAC address from the device to avoid acknowledging packets | ||
723 | * in pure monitor mode. | ||
724 | */ | ||
725 | struct ieee80211_if_init_conf { | ||
726 | enum nl80211_iftype type; | ||
727 | struct ieee80211_vif *vif; | ||
728 | void *mac_addr; | ||
729 | }; | ||
730 | |||
731 | /** | ||
732 | * enum ieee80211_key_alg - key algorithm | 703 | * enum ieee80211_key_alg - key algorithm |
733 | * @ALG_WEP: WEP40 or WEP104 | 704 | * @ALG_WEP: WEP40 or WEP104 |
734 | * @ALG_TKIP: TKIP | 705 | * @ALG_TKIP: TKIP |
@@ -1410,7 +1381,7 @@ enum ieee80211_ampdu_mlme_action { | |||
1410 | * When the device is started it should not have a MAC address | 1381 | * When the device is started it should not have a MAC address |
1411 | * to avoid acknowledging frames before a non-monitor device | 1382 | * to avoid acknowledging frames before a non-monitor device |
1412 | * is added. | 1383 | * is added. |
1413 | * Must be implemented. | 1384 | * Must be implemented and can sleep. |
1414 | * | 1385 | * |
1415 | * @stop: Called after last netdevice attached to the hardware | 1386 | * @stop: Called after last netdevice attached to the hardware |
1416 | * is disabled. This should turn off the hardware (at least | 1387 | * is disabled. This should turn off the hardware (at least |
@@ -1418,7 +1389,7 @@ enum ieee80211_ampdu_mlme_action { | |||
1418 | * May be called right after add_interface if that rejects | 1389 | * May be called right after add_interface if that rejects |
1419 | * an interface. If you added any work onto the mac80211 workqueue | 1390 | * an interface. If you added any work onto the mac80211 workqueue |
1420 | * you should ensure to cancel it on this callback. | 1391 | * you should ensure to cancel it on this callback. |
1421 | * Must be implemented. | 1392 | * Must be implemented and can sleep. |
1422 | * | 1393 | * |
1423 | * @add_interface: Called when a netdevice attached to the hardware is | 1394 | * @add_interface: Called when a netdevice attached to the hardware is |
1424 | * enabled. Because it is not called for monitor mode devices, @start | 1395 | * enabled. Because it is not called for monitor mode devices, @start |
@@ -1428,7 +1399,7 @@ enum ieee80211_ampdu_mlme_action { | |||
1428 | * interface is given in the conf parameter. | 1399 | * interface is given in the conf parameter. |
1429 | * The callback may refuse to add an interface by returning a | 1400 | * The callback may refuse to add an interface by returning a |
1430 | * negative error code (which will be seen in userspace.) | 1401 | * negative error code (which will be seen in userspace.) |
1431 | * Must be implemented. | 1402 | * Must be implemented and can sleep. |
1432 | * | 1403 | * |
1433 | * @remove_interface: Notifies a driver that an interface is going down. | 1404 | * @remove_interface: Notifies a driver that an interface is going down. |
1434 | * The @stop callback is called after this if it is the last interface | 1405 | * The @stop callback is called after this if it is the last interface |
@@ -1437,19 +1408,20 @@ enum ieee80211_ampdu_mlme_action { | |||
1437 | * must be cleared so the device no longer acknowledges packets, | 1408 | * must be cleared so the device no longer acknowledges packets, |
1438 | * the mac_addr member of the conf structure is, however, set to the | 1409 | * the mac_addr member of the conf structure is, however, set to the |
1439 | * MAC address of the device going away. | 1410 | * MAC address of the device going away. |
1440 | * Hence, this callback must be implemented. | 1411 | * Hence, this callback must be implemented. It can sleep. |
1441 | * | 1412 | * |
1442 | * @config: Handler for configuration requests. IEEE 802.11 code calls this | 1413 | * @config: Handler for configuration requests. IEEE 802.11 code calls this |
1443 | * function to change hardware configuration, e.g., channel. | 1414 | * function to change hardware configuration, e.g., channel. |
1444 | * This function should never fail but returns a negative error code | 1415 | * This function should never fail but returns a negative error code |
1445 | * if it does. | 1416 | * if it does. The callback can sleep. |
1446 | * | 1417 | * |
1447 | * @bss_info_changed: Handler for configuration requests related to BSS | 1418 | * @bss_info_changed: Handler for configuration requests related to BSS |
1448 | * parameters that may vary during BSS's lifespan, and may affect low | 1419 | * parameters that may vary during BSS's lifespan, and may affect low |
1449 | * level driver (e.g. assoc/disassoc status, erp parameters). | 1420 | * level driver (e.g. assoc/disassoc status, erp parameters). |
1450 | * This function should not be used if no BSS has been set, unless | 1421 | * This function should not be used if no BSS has been set, unless |
1451 | * for association indication. The @changed parameter indicates which | 1422 | * for association indication. The @changed parameter indicates which |
1452 | * of the bss parameters has changed when a call is made. | 1423 | * of the bss parameters has changed when a call is made. The callback |
1424 | * can sleep. | ||
1453 | * | 1425 | * |
1454 | * @prepare_multicast: Prepare for multicast filter configuration. | 1426 | * @prepare_multicast: Prepare for multicast filter configuration. |
1455 | * This callback is optional, and its return value is passed | 1427 | * This callback is optional, and its return value is passed |
@@ -1457,20 +1429,22 @@ enum ieee80211_ampdu_mlme_action { | |||
1457 | * | 1429 | * |
1458 | * @configure_filter: Configure the device's RX filter. | 1430 | * @configure_filter: Configure the device's RX filter. |
1459 | * See the section "Frame filtering" for more information. | 1431 | * See the section "Frame filtering" for more information. |
1460 | * This callback must be implemented. | 1432 | * This callback must be implemented and can sleep. |
1461 | * | 1433 | * |
1462 | * @set_tim: Set TIM bit. mac80211 calls this function when a TIM bit | 1434 | * @set_tim: Set TIM bit. mac80211 calls this function when a TIM bit |
1463 | * must be set or cleared for a given STA. Must be atomic. | 1435 | * must be set or cleared for a given STA. Must be atomic. |
1464 | * | 1436 | * |
1465 | * @set_key: See the section "Hardware crypto acceleration" | 1437 | * @set_key: See the section "Hardware crypto acceleration" |
1466 | * This callback can sleep, and is only called between add_interface | 1438 | * This callback is only called between add_interface and |
1467 | * and remove_interface calls, i.e. while the given virtual interface | 1439 | * remove_interface calls, i.e. while the given virtual interface |
1468 | * is enabled. | 1440 | * is enabled. |
1469 | * Returns a negative error code if the key can't be added. | 1441 | * Returns a negative error code if the key can't be added. |
1442 | * The callback can sleep. | ||
1470 | * | 1443 | * |
1471 | * @update_tkip_key: See the section "Hardware crypto acceleration" | 1444 | * @update_tkip_key: See the section "Hardware crypto acceleration" |
1472 | * This callback will be called in the context of Rx. Called for drivers | 1445 | * This callback will be called in the context of Rx. Called for drivers |
1473 | * which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY. | 1446 | * which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY. |
1447 | * The callback can sleep. | ||
1474 | * | 1448 | * |
1475 | * @hw_scan: Ask the hardware to service the scan request, no need to start | 1449 | * @hw_scan: Ask the hardware to service the scan request, no need to start |
1476 | * the scan state machine in stack. The scan must honour the channel | 1450 | * the scan state machine in stack. The scan must honour the channel |
@@ -1484,21 +1458,28 @@ enum ieee80211_ampdu_mlme_action { | |||
1484 | * When the scan finishes, ieee80211_scan_completed() must be called; | 1458 | * When the scan finishes, ieee80211_scan_completed() must be called; |
1485 | * note that it also must be called when the scan cannot finish due to | 1459 | * note that it also must be called when the scan cannot finish due to |
1486 | * any error unless this callback returned a negative error code. | 1460 | * any error unless this callback returned a negative error code. |
1461 | * The callback can sleep. | ||
1487 | * | 1462 | * |
1488 | * @sw_scan_start: Notifier function that is called just before a software scan | 1463 | * @sw_scan_start: Notifier function that is called just before a software scan |
1489 | * is started. Can be NULL, if the driver doesn't need this notification. | 1464 | * is started. Can be NULL, if the driver doesn't need this notification. |
1465 | * The callback can sleep. | ||
1490 | * | 1466 | * |
1491 | * @sw_scan_complete: Notifier function that is called just after a software scan | 1467 | * @sw_scan_complete: Notifier function that is called just after a |
1492 | * finished. Can be NULL, if the driver doesn't need this notification. | 1468 | * software scan finished. Can be NULL, if the driver doesn't need |
1469 | * this notification. | ||
1470 | * The callback can sleep. | ||
1493 | * | 1471 | * |
1494 | * @get_stats: Return low-level statistics. | 1472 | * @get_stats: Return low-level statistics. |
1495 | * Returns zero if statistics are available. | 1473 | * Returns zero if statistics are available. |
1474 | * The callback can sleep. | ||
1496 | * | 1475 | * |
1497 | * @get_tkip_seq: If your device implements TKIP encryption in hardware this | 1476 | * @get_tkip_seq: If your device implements TKIP encryption in hardware this |
1498 | * callback should be provided to read the TKIP transmit IVs (both IV32 | 1477 | * callback should be provided to read the TKIP transmit IVs (both IV32 |
1499 | * and IV16) for the given key from hardware. | 1478 | * and IV16) for the given key from hardware. |
1479 | * The callback must be atomic. | ||
1500 | * | 1480 | * |
1501 | * @set_rts_threshold: Configuration of RTS threshold (if device needs it) | 1481 | * @set_rts_threshold: Configuration of RTS threshold (if device needs it) |
1482 | * The callback can sleep. | ||
1502 | * | 1483 | * |
1503 | * @sta_notify: Notifies low level driver about addition, removal or power | 1484 | * @sta_notify: Notifies low level driver about addition, removal or power |
1504 | * state transition of an associated station, AP, IBSS/WDS/mesh peer etc. | 1485 | * state transition of an associated station, AP, IBSS/WDS/mesh peer etc. |
@@ -1507,30 +1488,36 @@ enum ieee80211_ampdu_mlme_action { | |||
1507 | * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), | 1488 | * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), |
1508 | * bursting) for a hardware TX queue. | 1489 | * bursting) for a hardware TX queue. |
1509 | * Returns a negative error code on failure. | 1490 | * Returns a negative error code on failure. |
1491 | * The callback can sleep. | ||
1510 | * | 1492 | * |
1511 | * @get_tx_stats: Get statistics of the current TX queue status. This is used | 1493 | * @get_tx_stats: Get statistics of the current TX queue status. This is used |
1512 | * to get number of currently queued packets (queue length), maximum queue | 1494 | * to get number of currently queued packets (queue length), maximum queue |
1513 | * size (limit), and total number of packets sent using each TX queue | 1495 | * size (limit), and total number of packets sent using each TX queue |
1514 | * (count). The 'stats' pointer points to an array that has hw->queues | 1496 | * (count). The 'stats' pointer points to an array that has hw->queues |
1515 | * items. | 1497 | * items. |
1498 | * The callback must be atomic. | ||
1516 | * | 1499 | * |
1517 | * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently, | 1500 | * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently, |
1518 | * this is only used for IBSS mode BSSID merging and debugging. Is not a | 1501 | * this is only used for IBSS mode BSSID merging and debugging. Is not a |
1519 | * required function. | 1502 | * required function. |
1503 | * The callback can sleep. | ||
1520 | * | 1504 | * |
1521 | * @set_tsf: Set the TSF timer to the specified value in the firmware/hardware. | 1505 | * @set_tsf: Set the TSF timer to the specified value in the firmware/hardware. |
1522 | * Currently, this is only used for IBSS mode debugging. Is not a | 1506 | * Currently, this is only used for IBSS mode debugging. Is not a |
1523 | * required function. | 1507 | * required function. |
1508 | * The callback can sleep. | ||
1524 | * | 1509 | * |
1525 | * @reset_tsf: Reset the TSF timer and allow firmware/hardware to synchronize | 1510 | * @reset_tsf: Reset the TSF timer and allow firmware/hardware to synchronize |
1526 | * with other STAs in the IBSS. This is only used in IBSS mode. This | 1511 | * with other STAs in the IBSS. This is only used in IBSS mode. This |
1527 | * function is optional if the firmware/hardware takes full care of | 1512 | * function is optional if the firmware/hardware takes full care of |
1528 | * TSF synchronization. | 1513 | * TSF synchronization. |
1514 | * The callback can sleep. | ||
1529 | * | 1515 | * |
1530 | * @tx_last_beacon: Determine whether the last IBSS beacon was sent by us. | 1516 | * @tx_last_beacon: Determine whether the last IBSS beacon was sent by us. |
1531 | * This is needed only for IBSS mode and the result of this function is | 1517 | * This is needed only for IBSS mode and the result of this function is |
1532 | * used to determine whether to reply to Probe Requests. | 1518 | * used to determine whether to reply to Probe Requests. |
1533 | * Returns non-zero if this device sent the last beacon. | 1519 | * Returns non-zero if this device sent the last beacon. |
1520 | * The callback can sleep. | ||
1534 | * | 1521 | * |
1535 | * @ampdu_action: Perform a certain A-MPDU action | 1522 | * @ampdu_action: Perform a certain A-MPDU action |
1536 | * The RA/TID combination determines the destination and TID we want | 1523 | * The RA/TID combination determines the destination and TID we want |
@@ -1539,21 +1526,28 @@ enum ieee80211_ampdu_mlme_action { | |||
1539 | * is the first frame we expect to perform the action on. Notice | 1526 | * is the first frame we expect to perform the action on. Notice |
1540 | * that TX/RX_STOP can pass NULL for this parameter. | 1527 | * that TX/RX_STOP can pass NULL for this parameter. |
1541 | * Returns a negative error code on failure. | 1528 | * Returns a negative error code on failure. |
1529 | * The callback must be atomic. | ||
1542 | * | 1530 | * |
1543 | * @rfkill_poll: Poll rfkill hardware state. If you need this, you also | 1531 | * @rfkill_poll: Poll rfkill hardware state. If you need this, you also |
1544 | * need to set wiphy->rfkill_poll to %true before registration, | 1532 | * need to set wiphy->rfkill_poll to %true before registration, |
1545 | * and need to call wiphy_rfkill_set_hw_state() in the callback. | 1533 | * and need to call wiphy_rfkill_set_hw_state() in the callback. |
1534 | * The callback can sleep. | ||
1546 | * | 1535 | * |
1547 | * @testmode_cmd: Implement a cfg80211 test mode command. | 1536 | * @testmode_cmd: Implement a cfg80211 test mode command. |
1537 | * The callback can sleep. | ||
1538 | * | ||
1539 | * @flush: Flush all pending frames from the hardware queue, making sure | ||
1540 | * that the hardware queues are empty. If the parameter @drop is set | ||
1541 | * to %true, pending frames may be dropped. The callback can sleep. | ||
1548 | */ | 1542 | */ |
1549 | struct ieee80211_ops { | 1543 | struct ieee80211_ops { |
1550 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); | 1544 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); |
1551 | int (*start)(struct ieee80211_hw *hw); | 1545 | int (*start)(struct ieee80211_hw *hw); |
1552 | void (*stop)(struct ieee80211_hw *hw); | 1546 | void (*stop)(struct ieee80211_hw *hw); |
1553 | int (*add_interface)(struct ieee80211_hw *hw, | 1547 | int (*add_interface)(struct ieee80211_hw *hw, |
1554 | struct ieee80211_if_init_conf *conf); | 1548 | struct ieee80211_vif *vif); |
1555 | void (*remove_interface)(struct ieee80211_hw *hw, | 1549 | void (*remove_interface)(struct ieee80211_hw *hw, |
1556 | struct ieee80211_if_init_conf *conf); | 1550 | struct ieee80211_vif *vif); |
1557 | int (*config)(struct ieee80211_hw *hw, u32 changed); | 1551 | int (*config)(struct ieee80211_hw *hw, u32 changed); |
1558 | void (*bss_info_changed)(struct ieee80211_hw *hw, | 1552 | void (*bss_info_changed)(struct ieee80211_hw *hw, |
1559 | struct ieee80211_vif *vif, | 1553 | struct ieee80211_vif *vif, |
@@ -1601,6 +1595,7 @@ struct ieee80211_ops { | |||
1601 | #ifdef CONFIG_NL80211_TESTMODE | 1595 | #ifdef CONFIG_NL80211_TESTMODE |
1602 | int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len); | 1596 | int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len); |
1603 | #endif | 1597 | #endif |
1598 | void (*flush)(struct ieee80211_hw *hw, bool drop); | ||
1604 | }; | 1599 | }; |
1605 | 1600 | ||
1606 | /** | 1601 | /** |
@@ -1840,7 +1835,7 @@ void ieee80211_tx_status_irqsafe(struct ieee80211_hw *hw, | |||
1840 | /** | 1835 | /** |
1841 | * ieee80211_beacon_get_tim - beacon generation function | 1836 | * ieee80211_beacon_get_tim - beacon generation function |
1842 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1837 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1843 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1838 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1844 | * @tim_offset: pointer to variable that will receive the TIM IE offset. | 1839 | * @tim_offset: pointer to variable that will receive the TIM IE offset. |
1845 | * Set to 0 if invalid (in non-AP modes). | 1840 | * Set to 0 if invalid (in non-AP modes). |
1846 | * @tim_length: pointer to variable that will receive the TIM IE length, | 1841 | * @tim_length: pointer to variable that will receive the TIM IE length, |
@@ -1868,7 +1863,7 @@ struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw, | |||
1868 | /** | 1863 | /** |
1869 | * ieee80211_beacon_get - beacon generation function | 1864 | * ieee80211_beacon_get - beacon generation function |
1870 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1865 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1871 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1866 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1872 | * | 1867 | * |
1873 | * See ieee80211_beacon_get_tim(). | 1868 | * See ieee80211_beacon_get_tim(). |
1874 | */ | 1869 | */ |
@@ -1881,7 +1876,7 @@ static inline struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
1881 | /** | 1876 | /** |
1882 | * ieee80211_rts_get - RTS frame generation function | 1877 | * ieee80211_rts_get - RTS frame generation function |
1883 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1878 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1884 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1879 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1885 | * @frame: pointer to the frame that is going to be protected by the RTS. | 1880 | * @frame: pointer to the frame that is going to be protected by the RTS. |
1886 | * @frame_len: the frame length (in octets). | 1881 | * @frame_len: the frame length (in octets). |
1887 | * @frame_txctl: &struct ieee80211_tx_info of the frame. | 1882 | * @frame_txctl: &struct ieee80211_tx_info of the frame. |
@@ -1900,7 +1895,7 @@ void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | |||
1900 | /** | 1895 | /** |
1901 | * ieee80211_rts_duration - Get the duration field for an RTS frame | 1896 | * ieee80211_rts_duration - Get the duration field for an RTS frame |
1902 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1897 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1903 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1898 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1904 | * @frame_len: the length of the frame that is going to be protected by the RTS. | 1899 | * @frame_len: the length of the frame that is going to be protected by the RTS. |
1905 | * @frame_txctl: &struct ieee80211_tx_info of the frame. | 1900 | * @frame_txctl: &struct ieee80211_tx_info of the frame. |
1906 | * | 1901 | * |
@@ -1915,7 +1910,7 @@ __le16 ieee80211_rts_duration(struct ieee80211_hw *hw, | |||
1915 | /** | 1910 | /** |
1916 | * ieee80211_ctstoself_get - CTS-to-self frame generation function | 1911 | * ieee80211_ctstoself_get - CTS-to-self frame generation function |
1917 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1912 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1918 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1913 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1919 | * @frame: pointer to the frame that is going to be protected by the CTS-to-self. | 1914 | * @frame: pointer to the frame that is going to be protected by the CTS-to-self. |
1920 | * @frame_len: the frame length (in octets). | 1915 | * @frame_len: the frame length (in octets). |
1921 | * @frame_txctl: &struct ieee80211_tx_info of the frame. | 1916 | * @frame_txctl: &struct ieee80211_tx_info of the frame. |
@@ -1935,7 +1930,7 @@ void ieee80211_ctstoself_get(struct ieee80211_hw *hw, | |||
1935 | /** | 1930 | /** |
1936 | * ieee80211_ctstoself_duration - Get the duration field for a CTS-to-self frame | 1931 | * ieee80211_ctstoself_duration - Get the duration field for a CTS-to-self frame |
1937 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1932 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1938 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1933 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1939 | * @frame_len: the length of the frame that is going to be protected by the CTS-to-self. | 1934 | * @frame_len: the length of the frame that is going to be protected by the CTS-to-self. |
1940 | * @frame_txctl: &struct ieee80211_tx_info of the frame. | 1935 | * @frame_txctl: &struct ieee80211_tx_info of the frame. |
1941 | * | 1936 | * |
@@ -1951,7 +1946,7 @@ __le16 ieee80211_ctstoself_duration(struct ieee80211_hw *hw, | |||
1951 | /** | 1946 | /** |
1952 | * ieee80211_generic_frame_duration - Calculate the duration field for a frame | 1947 | * ieee80211_generic_frame_duration - Calculate the duration field for a frame |
1953 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 1948 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
1954 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1949 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1955 | * @frame_len: the length of the frame. | 1950 | * @frame_len: the length of the frame. |
1956 | * @rate: the rate at which the frame is going to be transmitted. | 1951 | * @rate: the rate at which the frame is going to be transmitted. |
1957 | * | 1952 | * |
@@ -1966,7 +1961,7 @@ __le16 ieee80211_generic_frame_duration(struct ieee80211_hw *hw, | |||
1966 | /** | 1961 | /** |
1967 | * ieee80211_get_buffered_bc - accessing buffered broadcast and multicast frames | 1962 | * ieee80211_get_buffered_bc - accessing buffered broadcast and multicast frames |
1968 | * @hw: pointer as obtained from ieee80211_alloc_hw(). | 1963 | * @hw: pointer as obtained from ieee80211_alloc_hw(). |
1969 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 1964 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
1970 | * | 1965 | * |
1971 | * Function for accessing buffered broadcast and multicast frames. If | 1966 | * Function for accessing buffered broadcast and multicast frames. If |
1972 | * hardware/firmware does not implement buffering of broadcast/multicast | 1967 | * hardware/firmware does not implement buffering of broadcast/multicast |
@@ -2134,7 +2129,7 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid); | |||
2134 | 2129 | ||
2135 | /** | 2130 | /** |
2136 | * ieee80211_start_tx_ba_cb - low level driver ready to aggregate. | 2131 | * ieee80211_start_tx_ba_cb - low level driver ready to aggregate. |
2137 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf | 2132 | * @vif: &struct ieee80211_vif pointer from the add_interface callback |
2138 | * @ra: receiver address of the BA session recipient. | 2133 | * @ra: receiver address of the BA session recipient. |
2139 | * @tid: the TID to BA on. | 2134 | * @tid: the TID to BA on. |
2140 | * | 2135 | * |
@@ -2145,7 +2140,7 @@ void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid); | |||
2145 | 2140 | ||
2146 | /** | 2141 | /** |
2147 | * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate. | 2142 | * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate. |
2148 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf | 2143 | * @vif: &struct ieee80211_vif pointer from the add_interface callback |
2149 | * @ra: receiver address of the BA session recipient. | 2144 | * @ra: receiver address of the BA session recipient. |
2150 | * @tid: the TID to BA on. | 2145 | * @tid: the TID to BA on. |
2151 | * | 2146 | * |
@@ -2173,7 +2168,7 @@ int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid, | |||
2173 | 2168 | ||
2174 | /** | 2169 | /** |
2175 | * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate. | 2170 | * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate. |
2176 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf | 2171 | * @vif: &struct ieee80211_vif pointer from the add_interface callback |
2177 | * @ra: receiver address of the BA session recipient. | 2172 | * @ra: receiver address of the BA session recipient. |
2178 | * @tid: the desired TID to BA on. | 2173 | * @tid: the desired TID to BA on. |
2179 | * | 2174 | * |
@@ -2184,7 +2179,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid); | |||
2184 | 2179 | ||
2185 | /** | 2180 | /** |
2186 | * ieee80211_stop_tx_ba_cb_irqsafe - low level driver ready to stop aggregate. | 2181 | * ieee80211_stop_tx_ba_cb_irqsafe - low level driver ready to stop aggregate. |
2187 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf | 2182 | * @vif: &struct ieee80211_vif pointer from the add_interface callback |
2188 | * @ra: receiver address of the BA session recipient. | 2183 | * @ra: receiver address of the BA session recipient. |
2189 | * @tid: the desired TID to BA on. | 2184 | * @tid: the desired TID to BA on. |
2190 | * | 2185 | * |
@@ -2263,7 +2258,7 @@ void ieee80211_sta_block_awake(struct ieee80211_hw *hw, | |||
2263 | /** | 2258 | /** |
2264 | * ieee80211_beacon_loss - inform hardware does not receive beacons | 2259 | * ieee80211_beacon_loss - inform hardware does not receive beacons |
2265 | * | 2260 | * |
2266 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 2261 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
2267 | * | 2262 | * |
2268 | * When beacon filtering is enabled with IEEE80211_HW_BEACON_FILTERING and | 2263 | * When beacon filtering is enabled with IEEE80211_HW_BEACON_FILTERING and |
2269 | * IEEE80211_CONF_PS is set, the driver needs to inform whenever the | 2264 | * IEEE80211_CONF_PS is set, the driver needs to inform whenever the |