STRUCT IWL_MCAST_FILTER_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ STRUCT IWL_MCAST_FILTER_CMD πŸŽ€

okay bestie, this is a page from the Kernel API Manual β€” like, actual kernel docs, not some random README β€” and it's about struct iwl_mcast_filter_cmd, aka the little struct that configures the multicast filter. yes. that one. let's go πŸ’…


✨ NAME ✨

struct iwl_mcast_filter_cmd β€” configure multicast filter.

that's it. that's the whole vibe. it configures the multicast filter. iconic behaviour honestly πŸ¦‹


🌸 SYNOPSIS 🌸

here's the struct in all her glory, copied exactly, character for character, no edits no cap:

struct iwl_mcast_filter_cmd {
    u8 filter_own;
    u8 port_id;
    u8 count;
    u8 pass_all;
    u8 bssid[6];
    u8 reserved[2];
    u8 addr_list[];
 };

look at her. flexible array member at the end and everything. she's serving structure, she's serving trailing array, she's serving u8 ✨


πŸ’– MEMBERS πŸ’–

okay so now we go member by member, no skipping, i promise.

  • filter_own β€” set this to 1 and you filter out multicast packets that were sent by the station itself. basically "not me, i didn't send that" energy πŸ™ˆ
  • port_id β€” this is the specifier for the multicast MAC addresses array. and like... the manpage itself calls it "a strange way to identify network interface adopted in host-device IF", and honestly? valid. it is strange. i'm not gonna pretend it isn't πŸ’€ anyway: FW (= firmware) uses it as an index into the array of addresses, and that array has MAX_PORT_ID_NUM members. so. keep that in mind.
  • count β€” the number of MAC addresses in the array. simple. clean. we love a straightforward field πŸŽ€
  • pass_all β€” set to 1 to pass all multicast packets. all of them. every single one. no filtering. full send πŸ”₯
  • bssid β€” the current association BSSID. that's the one you're associated with right now, bestie 🫢
  • reserved β€” reserved. that's literally it. it's reserved. leave her alone 😭
  • addr_list β€” placeholder for the array of MAC addresses. and here's the IMPORTANT part, highkey the most important line on this whole page: add padding if necessary to ensure DWORD alignment. do NOT forget the padding. the DWORD alignment is not optional, it's a whole personality trait ⭐

πŸ‘‘ SEE ALSO πŸ‘‘

if you want the real source of truth (and you should, always check the source), it's this kernel file right here:

Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/filter.h

go read it. it's giving documentation. it's giving C. it's giving exactly what you need 🧚


lowkey a reminder: the compiler does not care about your feelings, but it does care about DWORD alignment. add the padding. πŸ’…

🌈 bye bestie 🌈

that's the whole page! this one came from the source ./drivers/net/wireless/intel/i... (yeah the footer path is truncated on the page, that's just how it printed, don't come for me 😭) and it's dated October 2026, with the footer naming struct iwl_mcast_filter_cmd(9) as the manual page. slay, go filter some multicast πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from