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 ---