STRUCT IDPF_NETDEV_PRIV(9)
π NAME π
okay so bestie, welcome to the Kernel API Manual page for struct idpf_netdev_priv(9) β literally the struct to store vport back pointer. thatβs the whole vibe: a lilβ struct holding the vport back pointer, and weβre about to meet every member like itβs a group-chat roll call π
β¨
β¨ SYNOPSIS β¨
hereβs the struct in all its glory, no cap β copy it exactly because this is the real shape:
struct idpf_netdev_priv {
struct idpf_adapter *adapter;
struct idpf_vport *vport;
u32 vport_id;
u32 link_speed_mbps;
u16 vport_idx;
u16 max_tx_hdr_size;
u16 tx_max_bufs;
unsigned long state[BITS_TO_LONGS( IDPF_VPORT_STATE_NBITS)];
struct rtnl_link_stats64 netstats;
spinlock_t stats_lock;
};
π Members π
okay so letβs do the member-by-member vibe check. every field is iconic in its own way π«Ά
adapterβ adapter back pointer. lowkey the adapterβs back-pointer bestie.vportβ vport back pointer. yes, another back pointer, and itβs serving.vport_idβ vport identifier. the ID card for the vport, fr fr.link_speed_mbpsβ link speed in mbps. the link speed, in mbps, exactly as advertised π«vport_idxβ relative vport index. relative, bestie β not absolute.max_tx_hdr_sizeβ max header length hardware can support. the hardware has a max header length and this field is literally holding that info πtx_max_bufsβ max buffers that can be transmitted with scatter-gather. scatter-gather said βhow many buffers?β and this is the answer.stateβ seeenum idpf_vport_state. thatβs the reference, no extra lore.netstatsβ packet and byte stats. packets, bytes, stats β the whole cute data moment.stats_lockβ lock to protect stats update. gotta protect that stats update, periodt π
π¦ SEE ALSO π¦
also peep the Kernel file ./drivers/net/ethernet/intel/idpf/idpf.h, plus this whole squad of references β every single one is invited to the group chat, no one left on read:
struct idpf_mac_filter(9)enum idpf_state(9)enum idpf_flags(9)enum idpf_cap_field(9)enum idpf_vport_state(9)struct idpf_reset_reg(9)struct idpf_vport_max_q(9)struct idpf_reg_ops(9)struct idpf_dev_ops(9)enum idpf_vport_reset_cause(9)enum idpf_vport_flags(9)struct idpf_tstamp_stats(9)struct idpf_q_vec_rsrc(9)struct idpf_vport(9)enum idpf_user_flags(9)struct idpf_rss_data(9)struct idpf_q_coalesce(9)struct idpf_vport_user_config_data(9)enum idpf_vport_config_flags(9)struct idpf_avail_queue_info(9)struct idpf_vector_info(9)struct idpf_vector_lifo(9)struct idpf_queue_id_reg_chunk(9)struct idpf_queue_id_reg_info(9)struct idpf_vport_config(9)struct idpf_adapter(9)idpf_is_queue_model_split(9)idpf_is_rdma_cap_ena(9)idpf_get_reserved_vecs(9)idpf_get_reserved_rdma_vecs(9)idpf_get_default_vports(9)idpf_get_max_vports(9)idpf_get_max_tx_bufs(9)idpf_get_min_tx_pkt_len(9)idpf_is_reset_detected(9)idpf_is_reset_in_prog(9)idpf_netdev_to_vport(9)idpf_netdev_to_adapter(9)idpf_is_feature_ena(9)idpf_get_max_tx_hdr_size(9)idpf_vport_ctrl_lock(9)idpf_vport_ctrl_unlock(9)
xoxo, your Kernel API Manual girl π
β this page came from source/version ./drivers/net/ethernet/intel/idpf, dated October 2026, and itβs literally struct idpf_netdev_priv(9). mwah π
π¦ 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