STRUCT IDPF_VPORT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct idpf_vport(9) β€” the Kernel API Manual moment πŸ’…

okay so this is a page from the Kernel API Manual, and honestly? it's giving main character energy for a struct. buckle up bestie, we're meeting struct idpf_vport πŸŽ€


✨ NAME ✨

struct idpf_vport β€” the handle for netdevices and queue resources. that's it, that's the vibe. it's the little container that holds all the stuff your vport needs 🫢


🌸 SYNOPSIS 🌸

struct idpf_vport {
    struct idpf_q_vec_rsrc dflt_qv_rsrc;
    struct idpf_tx_queue **txqs;
    u16 num_txq;
    u16 num_xdp_txq;
    bool xdpsq_share;
    struct bpf_prog *xdp_prog;
    struct iidc_rdma_vport_dev_info *vdev_info;
    struct idpf_adapter *adapter;
    struct net_device *netdev;
    unsigned long flags[BITS_TO_LONGS( IDPF_VPORT_FLAGS_NBITS)];
    u32 compln_clean_budget;
    u32 vport_id;
    u16 vport_type;
    u16 idx;
    u16 max_mtu;
    u8 default_mac_addr[ETH_ALEN];
    u16 rx_itr_profile[IDPF_DIM_PROFILE_SLOTS];
    u16 tx_itr_profile[IDPF_DIM_PROFILE_SLOTS];
    struct idpf_port_stats port_stats;
    bool default_vport;
    bool crc_enable;
    bool link_up;
    struct idpf_ptp_vport_tx_tstamp_caps *tx_tstamp_caps;
    struct kernel_hwtstamp_config tstamp_config;
    struct work_struct tstamp_task;
    struct idpf_tstamp_stats tstamp_stats;
 };

like, look at that. every field is literally a little icon in the group chat πŸ’–


πŸ‘‘ Members πŸ‘‘

  • dflt_qv_rsrc β€” holds the default queue and vector resources. the starter pack, if you will ✨
  • txqs β€” used only in hotpath to get to the right queue super duper fast ⚑ no cap, speed matters here.
  • num_txq β€” the number of allocated TX queues.
  • num_xdp_txq β€” how many XDPSQs there are.
  • xdpsq_share β€” tells you whether XDPSQ sharing is enabled. yes/no situation πŸ”₯
  • xdp_prog β€” the installed XDP program.
  • vdev_info β€” the IDC vport device info pointer.
  • adapter β€” a back pointer to the associated adapter. it knows where it came from 🧚
  • netdev β€” the associated net_device. important lore: each vport should have one and only one associated netdev. periodt πŸ’…
  • flags β€” see enum idpf_vport_flags.
  • compln_clean_budget β€” the work budget for completion clean. budget queen πŸŽ€
  • vport_id β€” the device-given vport identifier.
  • vport_type β€” default SRIOV, SIOV, etc. pick your fighter 🌈
  • idx β€” the software index in the adapter vports struct.
  • max_mtu β€” the device-given max possible MTU. like, the ceiling, fr fr.
  • default_mac_addr β€” the device will give a default MAC to use. cute little hand-me-down address πŸ“
  • rx_itr_profile β€” RX profiles for Dynamic Interrupt Moderation.
  • tx_itr_profile β€” TX profiles for Dynamic Interrupt Moderation. twins!! πŸ‘―
  • port_stats β€” per port csum, header split, and other offload stats. the receipts πŸ“Š
  • default_vport β€” use this vport if one isn't specified. the fallback bestie 🫢
  • crc_enable β€” enable CRC insertion offload.
  • link_up β€” true if link is up. and if it's not... well 😭
  • tx_tstamp_caps β€” the capabilities negotiated for Tx timestamping.
  • tstamp_config β€” the Tx tstamp config.
  • tstamp_task β€” the Tx timestamping task.
  • tstamp_stats β€” Tx timestamping statistics. numbers go brrr ⭐

πŸ’€ SEE ALSO πŸ’€

like, that's a whole friend group right there πŸ˜­πŸ’œ go read them too, iykyk.


and that's the page!! this little gem comes from <pink>./drivers/net/ethernet/intel/idpf</pink> and it's dated October 2026 β€” so yeah, mark your calendar bestie, slay πŸ’…βœ¨πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from