STRUCT SIENA_NIC_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct siena_nic_data(9) πŸ’…

okay so bestie, this is from the Kernel API Manual, and it's literally the whole vibe of the Siena NIC state β€” like, every single thing this driver needs to remember about itself lives in here. no cap. let's get into it 🫢


✨ NAME ✨

struct siena_nic_data β€” the Siena NIC state. that's it, that's the whole thing, and honestly? iconic.


🌸 SYNOPSIS 🌸

here's the struct, bestie, copied exactly so nobody comes for me:

struct siena_nic_data {
    struct efx_nic *efx;
    int wol_filter_id;
    u64 stats[SIENA_STAT_COUNT];
  #ifdef CONFIG_SFC_SIENA_SRIOV;
    struct siena_vf *vf;
    struct efx_channel *vfdi_channel;
    unsigned vf_buftbl_base;
    struct efx_buffer vfdi_status;
    struct list_head local_addr_list;
    struct list_head local_page_list;
    struct mutex local_lock;
    struct work_struct peer_work;
  #endif;
 };
πŸ‘€ notice the last four-ish fields are fenced behind #ifdef CONFIG_SFC_SIENA_SRIOV; β€” so they only show up when that config is on. keep that in mind, it's giving conditional realness.

πŸŽ€ Members πŸŽ€

every field, one by one, no skipping, no "lol I'll summarise later" β€” that's not how we do it here πŸ’…

  • efx β€” pointer back to the main interface structure. like a little "home" link for the driver 🏠
  • wol_filter_id β€” the Wake-on-LAN packet filter id. yes, the thing that wakes your machine up from its nap 😴
  • stats β€” the hardware statistics. hardware. statistics. say it with me πŸ”₯
  • vf β€” array of struct siena_vf objects.
  • vf_buftbl_base β€” the zeroth buffer table index used to back VF queues. zeroth!! index zero!! very main character energy πŸ‘‘
  • vfdi_status β€” common VFDI status page to be dmad to VF address space.
  • local_addr_list β€” list of local addresses. protected by local_lock. ⚠️
  • local_page_list β€” list of DMA addressable pages used to broadcast local_addr_list. protected by local_lock. ⚠️
  • local_lock β€” the mutex protecting local_addr_list and local_page_list. the bodyguard, fr fr πŸ›‘οΈ
  • peer_work β€” work item to broadcast peer addresses to VMs.
πŸ™ˆ tiny aside: vfdi_channel is chillin' in the struct up there but this page doesn't hand you a description for it β€” so I'm not gonna invent one. we don't make stuff up in this house.

πŸ¦‹ SEE ALSO πŸ¦‹

go touch grass in the kernel source, the file is right here:

  • Kernel file ./drivers/net/ethernet/sfc/siena/nic.h

and that's the whole page, bestie β€” slay πŸ’œ

🌈 cute sign-off time: this gem comes from ./drivers/net/ethernet/sfc/siena, dated October 2026, and it's filed under struct siena_nic_data(9). periodt. ✨
πŸ“¦ where this page comes from