STRUCT IONIC_PORT_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🫢 struct ionic_port_info(9) 🫢

okay so welcome to the Kernel API Manual bestie, this is the page for struct ionic_port_info(9) and it's literally the whole vibe of "what even is a port" in the ionic driver πŸ’…


🌸 NAME 🌸

struct ionic_port_info β€” the port info structure. that's it. that's the whole name section. slay πŸŽ€


✨ SYNOPSIS ✨

struct ionic_port_info {
    union ionic_port_config config;
    struct ionic_port_status status;
    union {
      struct ionic_port_stats      stats;
      struct ionic_mgmt_port_stats mgmt_stats;
    };
    union {
      u8 sprom_epage[384];
      struct {
        u8 sprom_page1[128];
        u8 sprom_page2[128];
        u8 sprom_page17[128];
      };
    };
    u8 rsvd[376];
    struct ionic_port_extra_stats extra_stats;
 };

like, look at her. she contains multitudes. unions inside unions, it's giving inception πŸŒ€βœ¨


πŸ¦‹ Members πŸ¦‹

ok so here's the member-by-member breakdown, no cap:

  • config β€” port configuration data. the settings, the fit, the whole look πŸŽ€
  • status β€” port status data. literally "how are you doing bestie" but for the port 🌈
  • {unnamed_union} β€” anonymous. yep, she's anonymous, no name, still iconic πŸ«₯✨ (this is the first one, there are two, keep reading)
  • stats β€” port statistics data. the numbers, the receipts, the proof πŸ“ŠπŸ”₯
  • mgmt_stats β€” port management statistics data. like stats but management flavored πŸ‘‘
  • {unnamed_union} β€” anonymous. the second anonymous union, still anonymous, still here πŸ™ˆ (yes there are two, no I'm not kidding)
  • sprom_epage β€” Extended Transceiver sprom. the extended transceiver's sprom, as e-page, u8 sprom_epage[384] 🧚
  • {unnamed_struct} β€” anonymous. an unnamed struct peeking out, hi bestie πŸ’œ
  • sprom_page1 β€” Extended Transceiver sprom, page 1. u8 sprom_page1[128] πŸ“
  • sprom_page2 β€” Extended Transceiver sprom, page 2. u8 sprom_page2[128] πŸ“
  • sprom_page17 β€” Extended Transceiver sprom, page 17. yes, page 17. we skipped ahead, we're built different πŸ’… (it's u8 sprom_page17[128])
  • rsvd β€” reserved byte(s). u8 rsvd[376]. hands off, that's reserved πŸ™…β€β™€οΈ
  • extra_stats β€” Extra port statistics data. the bonus stats, the deluxe edition extra port statistics data ⭐

πŸ’– SEE ALSO πŸ’–

first up, the literal kernel file where she lives, iykyk:

Kernel file ./drivers/net/ethernet/pensando/ionic/ionic_if.h struct

and now the friends-and-family section, aka every single one of these, in order, don't skip 🫢:

  • 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_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_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)

bestie that's the whole page, we ate and left absolutely zero crumbs πŸ‘‘βœ¨

and for the cute sign-off: this one came from ./drivers/net/ethernet/pensand... (yes the footer truncates it like that, that's just how the footer do) and it's dated October 2026, the struct ionic_port_info(9) page in the Kernel API Manual. take care of her, she has two anonymous unions and a page 17 πŸ«ΆπŸ’–

πŸ“¦ where this page comes from