STRUCT IWL_PROTO_OFFLOAD_CMD_V2(9)
π¦ struct iwl_proto_offload_cmd_v2(9) π¦
okay so bestie, welcome to the Kernel API Manual, section 9 π
. We're talking about struct iwl_proto_offload_cmd_v2 β that's the ARP/NS offload configuration situation. Yes, version two. There's a v1, there's a v3, and there's this one. Slay.
β¨ NAME β¨
struct iwl_proto_offload_cmd_v2 β ARP/NS offload configuration π«Ά
Like, your NIC wants to keep answering for you while the rest of your machine is asleep. That's the whole vibe. It's giving "main character energy while the CPU naps" π΄π
πΈ SYNOPSIS πΈ
struct iwl_proto_offload_cmd_v2 {
struct iwl_proto_offload_cmd_common common;
u8 remote_ipv6_addr[16];
u8 solicited_node_ipv6_addr[16];
u8 target_ipv6_addr[IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V2][16];
u8 ndp_mac_addr[ETH_ALEN];
u8 num_valid_ipv6_addrs;
u8 reserved2[3];
};
literally the whole struct. no cap, that's all of it. Notice how there's so many u8 [16] arrays β that's because IPv6 addresses are 16 bytes each, bestie. Sixteen. Every time. Obsessed with consistency tbh β¨
π Members π
okay let's go through them one by one, no skipping, I would never π
commonβ the common/IPv4 configuration π§. It's astruct iwl_proto_offload_cmd_commonand yes there is a whole other manpage for it, see below.remote_ipv6_addrβ the remote address to answer to (or zero if all) π. Like, if you leave it as zero it's answering to everyone. Very generous of it.solicited_node_ipv6_addrβ broken π β the manpage literally calls it broken. There's a solicited node address for each target address, so this single field can't actually represent that. It's not you, bestie, it's the struct. Not me defending a broken field but like... πtarget_ipv6_addrβ our target addresses π. It's the big one:u8 target_ipv6_addr[IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V2][16]β a whole little grid of addresses.ndp_mac_addrβ neighbor solicitation response MAC address π¦. This is the MAC that gets booped back at whoever's asking.num_valid_ipv6_addrsβ the number of valid IPv6 addresses β. Please keep it honest, it's how anyone knows how much of that address grid is real.reserved2β reserved π. Do not touch. It is not for you. It's reserved. Hands off. (u8 reserved2[3]β three whole bytes of "leave me alone".)
π SEE ALSO π
all the siblings and neighbors, fr fr, assembled in their full glory:
- Kernel file
./drivers/net/wireless/intel/iwlwifi/fw/api/d3.hπ enum iwl_d0i3_flags(9)enum iwl_d3_wakeup_flags(9)struct iwl_d3_manager_config(9)enum iwl_proto_offloads(9)struct iwl_proto_offload_cmd_common(9)struct iwl_proto_offload_cmd_v1(9)struct iwl_proto_offload_cmd_v3_small(9)struct iwl_proto_offload_cmd_v3_large(9)struct iwl_proto_offload_cmd_v4(9)struct iwl_wowlan_patterns_cmd_v1(9)struct iwl_wowlan_ipv4_tcp_syn(9)struct iwl_wowlan_ipv6_tcp_syn(9)union iwl_wowlan_pattern_data(9)struct iwl_wowlan_pattern_v2(9)struct iwl_wowlan_patterns_cmd(9)struct iwl_wowlan_config_cmd_v6(9)struct iwl_wowlan_config_cmd(9)struct iwl_wowlan_gtk_status_v2(9)struct iwl_wowlan_all_rsc_tsc_v5(9)struct iwl_wowlan_gtk_status_v3(9)enum iwl_wowlan_key_status(9)struct iwl_wowlan_gtk_status(9)struct iwl_wowlan_igtk_status_v1(9)struct iwl_wowlan_igtk_status(9)struct iwl_wowlan_status_v6(9)struct iwl_wowlan_status_v7(9)struct iwl_wowlan_info_notif_v1(9)enum iwl_wowlan_mlo_gtk_type(9)enum iwl_wowlan_mlo_gtk_flag(9)struct iwl_wowlan_mlo_gtk(9)struct iwl_wowlan_info_notif_v3(9)struct iwl_wowlan_info_notif_v5(9)struct iwl_wowlan_info_notif(9)struct iwl_wowlan_wake_pkt_notif(9)
that's a lot of wowlan, bestie. lowkey the whole d3.h header is just this. iykyk π
okay that's the whole page!! before you go β credit where it's due: this one comes from ./drivers/net/wireless/intel/i... and it's dated October 2026 π, and it's filed under struct iwl_...fload_cmd_v2(9) in the Kernel API Manual. mwah, go read the v3 ones next, they're longer πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms