include/net/mac802154.h
Source file repositories/reference/linux-study-clean/include/net/mac802154.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/mac802154.h- Extension
.h- Size
- 15237 bytes
- Lines
- 490
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: implementation source
- Status
- source implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/unaligned.hnet/af_ieee802154.hlinux/ieee802154.hlinux/skbuff.hnet/cfg802154.h
Detected Declarations
struct ieee802154_hw_addr_filtstruct ieee802154_hwstruct ieee802154_opsenum ieee802154_hw_addr_filt_flagsenum ieee802154_hw_flagsfunction ieee802154_get_fc_from_skbfunction cpu_to_le16function ieee802154_skb_is_intra_pan_addressingfunction ieee802154_be64_to_le64function ieee802154_le64_to_be64function ieee802154_le16_to_be16function ieee802154_be16_to_le16
Annotated Snippet
struct ieee802154_hw_addr_filt {
__le16 pan_id;
__le16 short_addr;
__le64 ieee_addr;
bool pan_coord;
};
/**
* struct ieee802154_hw - ieee802154 hardware
*
* @extra_tx_headroom: headroom to reserve in each transmit skb for use by the
* driver (e.g. for transmit headers.)
*
* @flags: hardware flags, see &enum ieee802154_hw_flags
*
* @parent: parent device of the hardware.
*
* @priv: pointer to private area that was allocated for driver use along with
* this structure.
*
* @phy: This points to the &struct wpan_phy allocated for this 802.15.4 PHY.
*/
struct ieee802154_hw {
/* filled by the driver */
int extra_tx_headroom;
u32 flags;
struct device *parent;
void *priv;
/* filled by mac802154 core */
struct wpan_phy *phy;
};
/**
* enum ieee802154_hw_flags - hardware flags
*
* These flags are used to indicate hardware capabilities to
* the stack. Generally, flags here should have their meaning
* done in a way that the simplest hardware doesn't need setting
* any particular flags. There are some exceptions to this rule,
* however, so you are advised to review these flags carefully.
*
* @IEEE802154_HW_TX_OMIT_CKSUM: Indicates that xmitter will add FCS on it's
* own.
*
* @IEEE802154_HW_LBT: Indicates that transceiver will support listen before
* transmit.
*
* @IEEE802154_HW_CSMA_PARAMS: Indicates that transceiver will support csma
* parameters (max_be, min_be, backoff exponents).
*
* @IEEE802154_HW_FRAME_RETRIES: Indicates that transceiver will support ARET
* frame retries setting.
*
* @IEEE802154_HW_AFILT: Indicates that transceiver will support hardware
* address filter setting.
*
* @IEEE802154_HW_PROMISCUOUS: Indicates that transceiver will support
* promiscuous mode setting.
*
* @IEEE802154_HW_RX_OMIT_CKSUM: Indicates that receiver omits FCS.
*/
enum ieee802154_hw_flags {
IEEE802154_HW_TX_OMIT_CKSUM = BIT(0),
IEEE802154_HW_LBT = BIT(1),
IEEE802154_HW_CSMA_PARAMS = BIT(2),
IEEE802154_HW_FRAME_RETRIES = BIT(3),
IEEE802154_HW_AFILT = BIT(4),
IEEE802154_HW_PROMISCUOUS = BIT(5),
IEEE802154_HW_RX_OMIT_CKSUM = BIT(6),
};
/* Indicates that receiver omits FCS and xmitter will add FCS on it's own. */
#define IEEE802154_HW_OMIT_CKSUM (IEEE802154_HW_TX_OMIT_CKSUM | \
IEEE802154_HW_RX_OMIT_CKSUM)
/* struct ieee802154_ops - callbacks from mac802154 to the driver
*
* This structure contains various callbacks that the driver may
* handle or, in some cases, must handle, for example to transmit
* a frame.
*
* start: Handler that 802.15.4 module calls for device initialization.
* This function is called before the first interface is attached.
*
* stop: Handler that 802.15.4 module calls for device cleanup.
* This function is called after the last interface is removed.
*
* xmit_sync:
* Handler that 802.15.4 module calls for each transmitted frame.
Annotation
- Immediate include surface: `linux/unaligned.h`, `net/af_ieee802154.h`, `linux/ieee802154.h`, `linux/skbuff.h`, `net/cfg802154.h`.
- Detected declarations: `struct ieee802154_hw_addr_filt`, `struct ieee802154_hw`, `struct ieee802154_ops`, `enum ieee802154_hw_addr_filt_flags`, `enum ieee802154_hw_flags`, `function ieee802154_get_fc_from_skb`, `function cpu_to_le16`, `function ieee802154_skb_is_intra_pan_addressing`, `function ieee802154_be64_to_le64`, `function ieee802154_le64_to_be64`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.