STRUCT IWL_PROTO_OFFLOAD_CMD_V2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ 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 a struct iwl_proto_offload_cmd_common and 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