STRUCT IONIC_PORT_SETATTR_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ 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, iykyk
  • attr β€” Attribute type (enum ionic_port_attr). this is the picker β€” it decides which member of the union below is the one that matters
  • rsvd β€” reserved byte(s). not yours, don't touch πŸ™ˆ

🧚 {unnamed_union}

anonymous β€” she has no name, only range πŸ’œ

  • state β€” Port state
  • speed β€” Port speed
  • mtu β€” Port MTU
  • an_enable β€” Port autonegotiation setting
  • fec_type β€” Port FEC type setting
  • pause_type β€” Port pause type setting
  • loopback_mode β€” Port loopback mode
  • stats_ctl β€” Port stats setting
  • rsvd2 β€” reserved byte(s). again: reserved. hands off 😭
real talk: rsvd2 is u8 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