net/mac802154/ieee802154_i.h
Source file repositories/reference/linux-study-clean/net/mac802154/ieee802154_i.h
File Facts
- System
- Linux kernel
- Corpus path
net/mac802154/ieee802154_i.h- Extension
.h- Size
- 10656 bytes
- Lines
- 335
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/interrupt.hlinux/mutex.hlinux/hrtimer.hnet/cfg802154.hnet/mac802154.hnet/nl802154.hnet/ieee802154_netdev.hllsec.h
Detected Declarations
struct ieee802154_localstruct ieee802154_sub_if_dataenum ieee802154_ongoingenum ieee802154_sdata_state_bitsfunction hw_to_localfunction IEEE802154_DEV_TO_SUB_IFfunction IEEE802154_WPAN_DEV_TO_SUB_IFfunction ieee802154_sdata_runningfunction ieee802154_get_mac_cmdfunction mac802154_is_scanningfunction mac802154_is_beaconingfunction mac802154_is_associating
Annotated Snippet
struct ieee802154_local {
struct ieee802154_hw hw;
const struct ieee802154_ops *ops;
/* hardware address filter */
struct ieee802154_hw_addr_filt addr_filt;
/* ieee802154 phy */
struct wpan_phy *phy;
int open_count;
/* As in mac80211 slaves list is modified:
* 1) under the RTNL
* 2) protected by slaves_mtx;
* 3) in an RCU manner
*
* So atomic readers can use any of this protection methods.
*/
struct list_head interfaces;
struct mutex iflist_mtx;
/* Data related workqueue */
struct workqueue_struct *workqueue;
/* MAC commands related workqueue */
struct workqueue_struct *mac_wq;
struct hrtimer ifs_timer;
/* Scanning */
u8 scan_page;
u8 scan_channel;
struct ieee802154_beacon_req_frame scan_beacon_req;
struct cfg802154_scan_request __rcu *scan_req;
struct delayed_work scan_work;
/* Beaconing */
unsigned int beacon_interval;
struct ieee802154_beacon_frame beacon;
struct cfg802154_beacon_request __rcu *beacon_req;
struct delayed_work beacon_work;
/* Asynchronous tasks */
struct list_head rx_beacon_list;
struct work_struct rx_beacon_work;
struct list_head rx_mac_cmd_list;
struct work_struct rx_mac_cmd_work;
/* Association */
struct ieee802154_pan_device *assoc_dev;
struct completion assoc_done;
__le16 assoc_addr;
u8 assoc_status;
struct work_struct assoc_work;
bool started;
bool suspended;
unsigned long ongoing;
struct tasklet_struct tasklet;
struct sk_buff_head skb_queue;
struct sk_buff *tx_skb;
struct work_struct sync_tx_work;
/* A negative Linux error code or a null/positive MLME error status */
int tx_result;
};
enum {
IEEE802154_RX_MSG = 1,
};
enum ieee802154_sdata_state_bits {
SDATA_STATE_RUNNING,
};
/* Slave interface definition.
*
* Slaves represent typical network interfaces available from userspace.
* Each ieee802154 device/transceiver may have several slaves and able
* to be associated with several networks at the same time.
*/
struct ieee802154_sub_if_data {
struct list_head list; /* the ieee802154_priv->slaves list */
struct wpan_dev wpan_dev;
struct ieee802154_local *local;
struct net_device *dev;
/* Each interface starts and works in nominal state at a given filtering
Annotation
- Immediate include surface: `linux/interrupt.h`, `linux/mutex.h`, `linux/hrtimer.h`, `net/cfg802154.h`, `net/mac802154.h`, `net/nl802154.h`, `net/ieee802154_netdev.h`, `llsec.h`.
- Detected declarations: `struct ieee802154_local`, `struct ieee802154_sub_if_data`, `enum ieee802154_ongoing`, `enum ieee802154_sdata_state_bits`, `function hw_to_local`, `function IEEE802154_DEV_TO_SUB_IF`, `function IEEE802154_WPAN_DEV_TO_SUB_IF`, `function ieee802154_sdata_running`, `function ieee802154_get_mac_cmd`, `function mac802154_is_scanning`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.