STRUCT BRCMF_IF(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

welcome to the Kernel API Manual corner, bestie πŸ’– today's main character is struct brcmf_if(9), and she is literally the interface control information. That's the name vibe: struct brcmf_if β€” interface control information. periodt.


✨ SYNOPSIS ✨

okay so here's the whole struct receipt, no cap β€” every field exactly as the kernel page gives it:

       struct brcmf_if {
           struct brcmf_pub *drvr;
           struct brcmf_cfg80211_vif *vif;
           struct net_device *ndev;
           struct work_struct multicast_work;
           struct work_struct ndoffload_work;
           struct brcmf_fws_mac_descriptor *fws_desc;
           int ifidx;
           s32 bsscfgidx;
           u8 mac_addr[ETH_ALEN];
           u8 netif_stop;
           spinlock_t netif_stop_lock;
           atomic_t pend_8021x_cnt;
           wait_queue_head_t pend_8021x_wait;
           struct in6_addr ipv6_addr_tbl[NDOL_MAX_ENTRIES];
           u8 ipv6addr_idx;
           bool fwil_fwerr;
        };

πŸŽ€ Members πŸŽ€

these are the little lore drops for each field, bestie:

  • drvr β€” points to device related information.
  • vif β€” points to cfg80211 specific interface information.
  • ndev β€” the associated network device.
  • multicast_work β€” worker object for multicast provisioning.
  • ndoffload_work β€” worker object for neighbor discovery offload configuration.
  • fws_desc β€” interface specific firmware-signalling descriptor.
  • ifidx β€” interface index in device firmware.
  • bsscfgidx β€” index of bss associated with this interface.
  • mac_addr β€” the assigned mac address.
  • netif_stop β€” bitmap indicates reason why netif queues are stopped.
  • netif_stop_lock β€” spinlock for updating netif_stop from multiple sources.
  • pend_8021x_cnt β€” tracks outstanding number of 802.1x frames.
  • pend_8021x_wait β€” used for signalling change in count.
  • fwil_fwerr β€” flag indicating the fwil layer should return firmware error codes.
also in the struct but with no member blurb in the original: ipv6_addr_tbl and ipv6addr_idx. not me making up lore β€” just keeping the receipt πŸ§ΎπŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹

go peek at these, iykyk:

  • Kernel file ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
  • struct brcmf_ampdu_rx_reorder(9), enum brcmf_netif_stop_reason(9)

and that's the vibe check, bestie 🫢 source/version energy: ./drivers/net/wireless/broadco..., dated October 2026, and the page name is struct brcmf_if(9). periodt πŸ’…βœ¨

πŸ“¦ where this page comes from