mac80211.h (170cd6a66d9a164180eb4dc72d50afa6ce1ce566) | mac80211.h (9179dff82598ab8b4e88dcc93c9e26a2594efd1a) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * mac80211 <-> driver interface 4 * 5 * Copyright 2002-2005, Devicescape Software, Inc. 6 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 7 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 8 * Copyright 2013-2014 Intel Mobile Communications GmbH --- 1361 unchanged lines hidden (view full) --- 1370 * subframes instead of a one huge frame for performance reasons. 1371 * All, but the last MSDU from an A-MSDU should have this flag set. E.g. 1372 * if an A-MSDU has 3 frames, the first 2 must have the flag set, while 1373 * the 3rd (last) one must not have this flag set. The flag is used to 1374 * deal with retransmission/duplication recovery properly since A-MSDU 1375 * subframes share the same sequence number. Reported subframes can be 1376 * either regular MSDU or singly A-MSDUs. Subframes must not be 1377 * interleaved with other frames. | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * mac80211 <-> driver interface 4 * 5 * Copyright 2002-2005, Devicescape Software, Inc. 6 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 7 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 8 * Copyright 2013-2014 Intel Mobile Communications GmbH --- 1361 unchanged lines hidden (view full) --- 1370 * subframes instead of a one huge frame for performance reasons. 1371 * All, but the last MSDU from an A-MSDU should have this flag set. E.g. 1372 * if an A-MSDU has 3 frames, the first 2 must have the flag set, while 1373 * the 3rd (last) one must not have this flag set. The flag is used to 1374 * deal with retransmission/duplication recovery properly since A-MSDU 1375 * subframes share the same sequence number. Reported subframes can be 1376 * either regular MSDU or singly A-MSDUs. Subframes must not be 1377 * interleaved with other frames. |
1378 * @RX_FLAG_RADIOTAP_VENDOR_DATA: This frame contains vendor-specific 1379 * radiotap data in the skb->data (before the frame) as described by 1380 * the &struct ieee80211_vendor_radiotap. | 1378 * @RX_FLAG_RADIOTAP_TLV_AT_END: This frame contains radiotap TLVs in the 1379 * skb->data (before the 802.11 header). 1380 * If used, the SKB's mac_header pointer must be set to point 1381 * to the 802.11 header after the TLVs, and any padding added after TLV 1382 * data to align to 4 must be cleared by the driver putting the TLVs 1383 * in the skb. |
1381 * @RX_FLAG_ALLOW_SAME_PN: Allow the same PN as same packet before. 1382 * This is used for AMSDU subframes which can have the same PN as 1383 * the first subframe. 1384 * @RX_FLAG_ICV_STRIPPED: The ICV is stripped from this frame. CRC checking must 1385 * be done in the hardware. 1386 * @RX_FLAG_AMPDU_EOF_BIT: Value of the EOF bit in the A-MPDU delimiter for this 1387 * frame 1388 * @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known --- 35 unchanged lines hidden (view full) --- 1424 RX_FLAG_AMPDU_LAST_KNOWN = BIT(12), 1425 RX_FLAG_AMPDU_IS_LAST = BIT(13), 1426 RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14), 1427 RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(15), 1428 RX_FLAG_MACTIME_END = BIT(16), 1429 RX_FLAG_ONLY_MONITOR = BIT(17), 1430 RX_FLAG_SKIP_MONITOR = BIT(18), 1431 RX_FLAG_AMSDU_MORE = BIT(19), | 1384 * @RX_FLAG_ALLOW_SAME_PN: Allow the same PN as same packet before. 1385 * This is used for AMSDU subframes which can have the same PN as 1386 * the first subframe. 1387 * @RX_FLAG_ICV_STRIPPED: The ICV is stripped from this frame. CRC checking must 1388 * be done in the hardware. 1389 * @RX_FLAG_AMPDU_EOF_BIT: Value of the EOF bit in the A-MPDU delimiter for this 1390 * frame 1391 * @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known --- 35 unchanged lines hidden (view full) --- 1427 RX_FLAG_AMPDU_LAST_KNOWN = BIT(12), 1428 RX_FLAG_AMPDU_IS_LAST = BIT(13), 1429 RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14), 1430 RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(15), 1431 RX_FLAG_MACTIME_END = BIT(16), 1432 RX_FLAG_ONLY_MONITOR = BIT(17), 1433 RX_FLAG_SKIP_MONITOR = BIT(18), 1434 RX_FLAG_AMSDU_MORE = BIT(19), |
1432 RX_FLAG_RADIOTAP_VENDOR_DATA = BIT(20), | 1435 RX_FLAG_RADIOTAP_TLV_AT_END = BIT(20), |
1433 RX_FLAG_MIC_STRIPPED = BIT(21), 1434 RX_FLAG_ALLOW_SAME_PN = BIT(22), 1435 RX_FLAG_ICV_STRIPPED = BIT(23), 1436 RX_FLAG_AMPDU_EOF_BIT = BIT(24), 1437 RX_FLAG_AMPDU_EOF_BIT_KNOWN = BIT(25), 1438 RX_FLAG_RADIOTAP_HE = BIT(26), 1439 RX_FLAG_RADIOTAP_HE_MU = BIT(27), 1440 RX_FLAG_RADIOTAP_LSIG = BIT(28), --- 124 unchanged lines hidden (view full) --- 1565static inline u32 1566ieee80211_rx_status_to_khz(struct ieee80211_rx_status *rx_status) 1567{ 1568 return MHZ_TO_KHZ(rx_status->freq) + 1569 (rx_status->freq_offset ? 500 : 0); 1570} 1571 1572/** | 1436 RX_FLAG_MIC_STRIPPED = BIT(21), 1437 RX_FLAG_ALLOW_SAME_PN = BIT(22), 1438 RX_FLAG_ICV_STRIPPED = BIT(23), 1439 RX_FLAG_AMPDU_EOF_BIT = BIT(24), 1440 RX_FLAG_AMPDU_EOF_BIT_KNOWN = BIT(25), 1441 RX_FLAG_RADIOTAP_HE = BIT(26), 1442 RX_FLAG_RADIOTAP_HE_MU = BIT(27), 1443 RX_FLAG_RADIOTAP_LSIG = BIT(28), --- 124 unchanged lines hidden (view full) --- 1568static inline u32 1569ieee80211_rx_status_to_khz(struct ieee80211_rx_status *rx_status) 1570{ 1571 return MHZ_TO_KHZ(rx_status->freq) + 1572 (rx_status->freq_offset ? 500 : 0); 1573} 1574 1575/** |
1573 * struct ieee80211_vendor_radiotap - vendor radiotap data information 1574 * @present: presence bitmap for this vendor namespace 1575 * (this could be extended in the future if any vendor needs more 1576 * bits, the radiotap spec does allow for that) 1577 * @align: radiotap vendor namespace alignment. This defines the needed 1578 * alignment for the @data field below, not for the vendor namespace 1579 * description itself (which has a fixed 2-byte alignment) 1580 * Must be a power of two, and be set to at least 1! 1581 * @oui: radiotap vendor namespace OUI 1582 * @subns: radiotap vendor sub namespace 1583 * @len: radiotap vendor sub namespace skip length, if alignment is done 1584 * then that's added to this, i.e. this is only the length of the 1585 * @data field. 1586 * @pad: number of bytes of padding after the @data, this exists so that 1587 * the skb data alignment can be preserved even if the data has odd 1588 * length 1589 * @data: the actual vendor namespace data 1590 * 1591 * This struct, including the vendor data, goes into the skb->data before 1592 * the 802.11 header. It's split up in mac80211 using the align/oui/subns 1593 * data. 1594 */ 1595struct ieee80211_vendor_radiotap { 1596 u32 present; 1597 u8 align; 1598 u8 oui[3]; 1599 u8 subns; 1600 u8 pad; 1601 u16 len; 1602 u8 data[]; 1603} __packed; 1604 1605/** | |
1606 * enum ieee80211_conf_flags - configuration flags 1607 * 1608 * Flags to define PHY configuration options 1609 * 1610 * @IEEE80211_CONF_MONITOR: there's a monitor interface present -- use this 1611 * to determine for example whether to calculate timestamps for packets 1612 * or not, do not use instead of filter flags! 1613 * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only). --- 5695 unchanged lines hidden --- | 1576 * enum ieee80211_conf_flags - configuration flags 1577 * 1578 * Flags to define PHY configuration options 1579 * 1580 * @IEEE80211_CONF_MONITOR: there's a monitor interface present -- use this 1581 * to determine for example whether to calculate timestamps for packets 1582 * or not, do not use instead of filter flags! 1583 * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only). --- 5695 unchanged lines hidden --- |