STRUCT IONIC_PORT_SETATTR_CMD(9)
π struct ionic_port_setattr_cmd(9) π
okay bestie, welcome to the Kernel API Manual π β this is the page for struct ionic_port_setattr_cmd, and yes it's giving "one struct, so many options, so little time." Let's get into it β¨
πΈ NAME πΈ
struct ionic_port_setattr_cmd β set port attributes on the NIC π literally the "hey NIC, change this about your port" command packet, no cap.
β¨ SYNOPSIS β¨
here's the whole vibe, copied exactly so you can trust it π«Ά:
struct ionic_port_setattr_cmd {
u8 opcode;
u8 index;
u8 attr;
u8 rsvd;
union {
u8 state;
__le32 speed;
__le32 mtu;
u8 an_enable;
u8 fec_type;
u8 pause_type;
u8 loopback_mode;
u8 stats_ctl;
u8 rsvd2[60];
};
};
likeβ¦ look at her. she's compact, she's union-y, she's iconic π
π¦ Members π¦
okay so every single field, and what it's actually for π
opcodeβ Opcode. the "what am I even doing" byte π―indexβ Port index. which port we're talking to, iykykattrβ Attribute type (enum ionic_port_attr). this is the picker β it decides which member of the union below is the one that mattersrsvdβ reserved byte(s). not yours, don't touch π
π§ {unnamed_union}
anonymous β she has no name, only range π
stateβ Port statespeedβ Port speedmtuβ Port MTUan_enableβ Port autonegotiation settingfec_typeβ Port FEC type settingpause_typeβ Port pause type settingloopback_modeβ Port loopback modestats_ctlβ Port stats settingrsvd2β reserved byte(s). again: reserved. hands off π
real talk:rsvd2isu8 rsvd2[60]β that's sixty whole reserved bytes, it's not a suggestion, it's a boundary π§
π₯ SEE ALSO π₯
this list is long long, so buckle up, bestie β every single one, in order, no cuts, no skips, periodt πβ¨
start with the kernel file that has all the lore:
Kernel file ./drivers/net/ethernet/pensando/ionic/ionic_if.h
then:
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_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_getattr_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 you got the whole set now, slay πͺπ
quick vibe check before you go: this page comes from the source ./drivers/net/ethernet/pensand... and it's dated October 2026. mwah, bye bestie! πππ¦ thanks for reading, ily, go read the kernel source π
π¦ 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