STRUCT IONIC_VF_GETATTR_CMD(9)
π
struct ionic_vf_getattr_cmd(9)
okay bestie, welcome to the Kernel API Manual, section 9 β this is the page for struct ionic_vf_getattr_cmd, and it's literally the little command struct you use to get VF attributes from the NIC π like, that's the whole vibe. VF = virtual function, attributes = the tea, and this struct is the envelope you send to ask for it. no cap, that's it. let's get into it π
β¨ NAME β¨
struct ionic_vf_getattr_cmd β Get VF attributes from the NIC π
lowkey the most self-explanatory name ever and we love that for it.
πΈ SYNOPSIS πΈ
okay so here's the whole shape of it, character for character, don't touch:
struct ionic_vf_getattr_cmd {
u8 opcode;
u8 attr;
__le16 vf_index;
u8 rsvd[60];
};
look at that. four fields. one of them is just vibes and padding (rsvd, we'll get there). it's giving "small but mighty" π¦
π Members π
breakdown time, one member at a time, no skipping, we're doing all of them:
opcodeβ the opcode, bestie. that's it, that's the field. it tells the NIC what kind of command this is. π«Άattrβ the attribute type. and it's specifically anenum ionic_vf_attr, so go look at that enum if you wanna know your options (iykyk). βvf_indexβ the VF index. which virtual function we're talking about. it's a__le16, so yes, little-endian, mind your bytes. πrsvdβ reserved byte(s).u8 rsvd[60]of them, to be exact. it's not for you. leave it alone. it's literally just there to fill out the struct and keep the layout correct π don't be the person who writes intorsvd, bestie, that's not main character energy.
ngl, the rsvd field is 60 whole bytes of "no β€οΈ" β reserved means reserved, so don't go poking at it and then act surprised when things break π
π¦ SEE ALSO π¦
okay this list is long long, but you asked for the lore and I'm giving you the lore. the kernel file this all lives in is:
./drivers/net/ethernet/pensando/ionic/ionic_if.h
and here's the entire squad of related structs, unions and enums (all section 9, all iconic, all listed, nothing skipped because I would never π):
struct ionic_admin_cmd(9)struct ionic_admin_comp(9)struct ionic_nop_cmd(9)struct ionic_nop_comp(9)struct ionic_dev_init_cmd(9)struct ionic_dev_init_comp(9)struct ionic_dev_reset_cmd(9)struct ionic_dev_reset_comp(9)struct ionic_dev_identify_cmd(9)struct ionic_dev_identify_comp(9)union ionic_drv_identity(9)enum ionic_dev_capability(9)union ionic_dev_identity(9)struct ionic_lif_identify_cmd(9)struct ionic_lif_identify_comp(9)enum ionic_lif_capability(9)enum ionic_logical_qtype(9)enum ionic_q_feature(9)enum ionic_rxq_feature(9)enum ionic_txq_feature(9)enum ionic_hwstamp_bits(9)struct ionic_lif_logical_qtype(9)enum ionic_lif_state(9)union ionic_lif_config(9)enum ionic_lif_rdma_cap_stats(9)union ionic_lif_identity(9)struct ionic_lif_init_cmd(9)struct ionic_lif_init_comp(9)struct ionic_q_identify_cmd(9)struct ionic_q_identify_comp(9)union ionic_q_identity(9)struct ionic_q_init_cmd(9)struct ionic_q_init_comp(9)struct ionic_txq_desc(9)struct ionic_txq_sg_elem(9)struct ionic_txq_sg_desc(9)struct ionic_txq_comp(9)struct ionic_rxq_desc(9)struct ionic_rxq_sg_elem(9)struct ionic_rxq_sg_desc(9)struct ionic_rxq_comp(9)enum ionic_pkt_class(9)struct ionic_q_control_cmd(9)enum ionic_phy_type(9)enum ionic_xcvr_state(9)enum ionic_port_type(9)enum ionic_port_admin_state(9)enum ionic_port_oper_status(9)enum ionic_port_fec_type(9)enum ionic_port_pause_type(9)enum ionic_port_loopback_mode(9)struct ionic_xcvr_status(9)union ionic_port_config(9)struct ionic_port_status(9)struct ionic_port_identify_cmd(9)struct ionic_port_identify_comp(9)struct ionic_port_init_cmd(9)struct ionic_port_init_comp(9)struct ionic_port_reset_cmd(9)struct ionic_port_reset_comp(9)enum ionic_stats_ctl_cmd(9)enum ionic_txstamp_mode(9)enum ionic_port_attr(9)struct ionic_port_setattr_cmd(9)struct ionic_port_setattr_comp(9)struct ionic_port_getattr_cmd(9)struct ionic_port_getattr_comp(9)struct ionic_lif_status(9)struct ionic_lif_reset_cmd(9)enum ionic_dev_attr(9)struct ionic_dev_setattr_cmd(9)struct ionic_dev_setattr_comp(9)struct ionic_dev_getattr_cmd(9)struct ionic_dev_getattr_comp(9)enum ionic_lif_attr(9)struct ionic_lif_setattr_cmd(9)struct ionic_lif_setattr_comp(9)struct ionic_lif_getattr_cmd(9)struct ionic_lif_getattr_comp(9)struct ionic_lif_setphc_cmd(9)struct ionic_rx_mode_set_cmd(9)struct ionic_rx_filter_add_cmd(9)struct ionic_rx_filter_add_comp(9)struct ionic_rx_filter_del_cmd(9)enum ionic_vf_link_status(9)struct ionic_vf_setattr_cmd(9)struct ionic_vf_ctrl_cmd(9)struct ionic_vf_ctrl_comp(9)struct ionic_discover_cmb_cmd(9)struct ionic_discover_cmb_comp(9)union ionic_cmb_region(9)union ionic_discover_cmb_identity(9)struct ionic_qos_identify_cmd(9)struct ionic_qos_identify_comp(9)enum ionic_qos_class_type(9)enum ionic_qos_sched_type(9)union ionic_qos_config(9)union ionic_qos_identity(9)struct ionic_qos_init_cmd(9)struct ionic_qos_reset_cmd(9)struct ionic_qos_clear_stats_cmd(9)struct ionic_fw_download_cmd(9)enum ionic_fw_control_oper(9)struct ionic_fw_control_cmd(9)struct ionic_fw_control_comp(9)struct ionic_rdma_reset_cmd(9)struct ionic_rdma_queue_cmd(9)struct ionic_notifyq_event(9)struct ionic_link_change_event(9)struct ionic_reset_event(9)struct ionic_heartbeat_event(9)struct ionic_log_event(9)struct ionic_xcvr_event(9)union ionic_port_identity(9)struct ionic_port_info(9)struct ionic_lif_info(9)struct ionic_hwstamp_regs(9)union ionic_dev_info_regs(9)union ionic_dev_cmd_regs(9)union ionic_dev_regs(9)struct ionic_doorbell(9)
like I said. long long. but every single one is there, periodt π
mwah, that's the page π«Ά this one came out of ./drivers/net/ethernet/pensand... and it's dated October 2026 β so yes bestie, straight from the future, and it's still calling itself struct ionic_vf_getattr_cmd(9). slay. go read the enum. πβ¨
π¦ 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