STRUCT VFDI_STATUS(9)
π struct vfdi_status β it's in section (9) of the Kernel API Manual, bestie π
okay so picture this: the PF driver (that's the physical function, the main character) needs to hand the VF driver a little status report. and that little report is struct vfdi_status. it's literally the status provided by the PF driver to the VF driver, no cap. π«Ά
β¨ SYNOPSIS β¨
struct vfdi_status {
u32 generation_start;
u32 generation_end;
u32 version;
u32 length;
u8 vi_scale;
u8 max_tx_channels;
u8 rss_rxq_count;
u8 reserved1;
u16 peer_count;
u16 reserved2;
struct vfdi_endpoint local;
struct vfdi_endpoint peers[256];
u32 timer_quantum_ns;
};
look at her. π she's got reserved fields and everything. iconic.
πΈ Members πΈ
generation_startβ a generation count that gets DMA'd over to the VF before the rest of the structure shows up. like a little "heads up bestie, incoming" text message. πgeneration_endβ same vibe, but a generation count DMA'd to the VF after the rest of the structure. the "okay that's everything, love u" follow-up text. β¨versionβ the version of this structure, and rn it's set to1. later versions have to either stay layout-compatible or only get sent to VFs that specifically ask for them. no sneaky surprise reshuffles, periodt. πlengthβ total length of this structure, including the embedded tables. the whole package, not just the bow on top. πvi_scaleβ log2 of the number of VIs available on this VF. the hardware uses this quantity for register decoding, iykyk. π₯max_tx_channelsβ the maximum number of transmit queues the VF can use. that's her ceiling, that's her limit. πrss_rxq_countβ the number of receive queues present in the shared RSS indirection table. πpeer_countβ total number of peers in the complete peer list. and listen: if this is larger thanARRAY_SIZE(peers), then the VF must provide enough additional pages, each one filled withvfdi_endpointstructures. so like, do your homework, VF. πlocalβ the MAC address and outer VLAN tag of this VF. it's giving main character energy because it's literally about herself. πpeersβ table of peer addresses. important detail: thetcifields in these structures are currently unused and must be ignored π. any additional peers get written into whatever additional pages the VF provided.timer_quantum_nsβ the timer quantum (nominal period between timer ticks) for interrupt moderation timers, in nanoseconds. β±οΈ this member is only present iflengthis sufficiently large β so she's a conditional appearance kinda queen. not always invited to the function.
π real talk bestie: thosereserved1andreserved2fields are sitting up in the struct too. this page doesn't describe them, so don't go assigning meaning to them, okay? just vibe and move on. π¦
π SEE ALSO π
- Kernel file
./drivers/net/ethernet/sfc/siena/vfdi.hVirtual Function Driver Interface(9) enum vfdi_op(9)struct vfdi_req(9)
and that's the page!! sourced straight from ./drivers/net/ethernet/sfc/siena, dated October 2026, and yes it's struct vfdi_status(9) forever and ever π
β¨ go read the header file, it's right there, you're gonna slay π§ββοΈπ
π¦ 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