UNION IONIC_LIF_IDENTITY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, welcome to union ionic_lif_identity(9) β€” this is the Kernel API Manual entry for it, and it's basically the LIF identity information, but type-specific. That's the whole vibe: it's a union that describes who a LIF is, and how it presents depends on whether you're looking at the Ethernet side or the RDMA side. slay. ✨


πŸŽ€ SYNOPSIS πŸŽ€

here's the shape of the thing, character for character, no cap:

union ionic_lif_identity {
    struct {
      __le64 capabilities;
      struct {
        u8 version;
        u8 rsvd[3];
        __le32 max_ucast_filters;
        __le32 max_mcast_filters;
        __le16 rss_ind_tbl_sz;
        __le32 min_frame_size;
        __le32 max_frame_size;
        u8 rsvd2[2];
        __le64 hwstamp_tx_modes;
        __le64 hwstamp_rx_filters;
        u8 rsvd3[88];
        union ionic_lif_config config;
      } eth;
      struct {
        u8 version;
        u8 qp_opcodes;
        u8 admin_opcodes;
        u8 minor_version;
        __le32 npts_per_lif;
        __le32 nmrs_per_lif;
        __le32 nahs_per_lif;
        u8 max_stride;
        u8 cl_stride;
        u8 pte_stride;
        u8 rrq_stride;
        u8 rsq_stride;
        u8 dcqcn_profiles;
        u8 udma_shift;
        u8 rsvd_dimensions;
        __le64 page_size_cap;
        struct ionic_lif_logical_qtype aq_qtype;
        struct ionic_lif_logical_qtype sq_qtype;
        struct ionic_lif_logical_qtype rq_qtype;
        struct ionic_lif_logical_qtype cq_qtype;
        struct ionic_lif_logical_qtype eq_qtype;
        __le16 stats_type;
        u8 rsvd;
        u8 rcq_sign_bit;
        u8 rsvd1[160];
      } rdma;
    };
    __le32 words[478];
 };

🌸 Members 🌸

🫢 the outer wrapper

  • {unnamed_struct} β€” an anonymous struct. it literally has no name, it's just out here existing, main character energy but unnamed 😭
  • capabilities β€” LIF capabilities
  • eth β€” Ethernet identify structure

πŸ¦‹ eth β€” the ethernet era

  • eth.version β€” Ethernet identify structure version
  • eth.rsvd β€” reserved byte(s)
  • eth.max_ucast_filters β€” number of perfect unicast addresses supported
  • eth.max_mcast_filters β€” number of perfect multicast addresses supported
  • eth.min_frame_size β€” minimum size of frames to be sent
  • eth.max_frame_size β€” maximum size of frames to be sent
  • eth.rsvd2 β€” reserved byte(s)
  • eth.hwstamp_tx_modes β€” bitmask of BIT_ULL(enum ionic_txstamp_mode)
  • eth.hwstamp_rx_filters β€” bitmask of enum ionic_pkt_class
  • eth.rsvd3 β€” reserved byte(s)
  • eth.config β€” LIF config struct with features, mtu, mac, q counts

πŸ’œ rdma β€” the RDMA chapter

  • rdma β€” RDMA identify structure
  • rdma.version β€” RDMA capability version
  • rdma.qp_opcodes β€” number of RDMA queue pair opcodes supported
  • rdma.admin_opcodes β€” number of RDMA admin opcodes supported
  • rdma.minor_version β€” RDMA capability minor version
  • rdma.npts_per_lif β€” page table size per LIF
  • rdma.nmrs_per_lif β€” number of memory regions per LIF
  • rdma.nahs_per_lif β€” number of address handles per LIF
  • rdma.max_stride β€” max work request stride
  • rdma.cl_stride β€” cache line stride
  • rdma.pte_stride β€” page table entry stride
  • rdma.rrq_stride β€” remote RQ work request stride
  • rdma.rsq_stride β€” remote SQ work request stride
  • rdma.dcqcn_profiles β€” number of DCQCN profiles
  • rdma.udma_shift β€” log2 number of queues per queue group
  • rdma.rsvd_dimensions β€” reserved byte
  • rdma.page_size_cap β€” supported page sizes
  • rdma.aq_qtype β€” RDMA Admin Qtype
  • rdma.sq_qtype β€” RDMA Send Qtype
  • rdma.rq_qtype β€” RDMA Receive Qtype
  • rdma.cq_qtype β€” RDMA Completion Qtype
  • rdma.eq_qtype β€” RDMA Event Qtype
  • rdma.stats_type β€” supported statistics type (enum ionic_lif_rdma_cap_stats)
  • rdma.rsvd β€” reserved byte
  • rdma.rcq_sign_bit β€” RCQ sign bit
  • rdma.rsvd1 β€” reserved byte(s)

⭐ words

  • words β€” word access to struct contents

🌈 SEE ALSO 🌈

the lore is deep, bestie. the kernel file in question is ./drivers/net/ethernet/pensando/ionic/ionic_if.h struct β€” and it's giving extended universe:

  • the command crew: 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)
  • the LIF entry: 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), struct ionic_lif_init_cmd(9), struct ionic_lif_init_comp(9)
  • the queue girls: 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)
  • the port posse: 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)
  • the LIF status + attr squad: 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)
  • the VF besties: 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)
  • the CMB discoverers: struct ionic_discover_cmb_cmd(9), struct ionic_discover_cmb_comp(9), union ionic_cmb_region(9), union ionic_discover_cmb_identity(9)
  • the QoS delegation: 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)
  • the firmware + rdma ops: 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)
  • the event icons: 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)
  • the info + regs crew: 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)

and that's the page, bestie β€” go read the header file, it ate πŸ’…. this masterpiece comes to you from ./drivers/net/ethernet/pensand..., dated October 2026, and it signs off as union ionic_lif_identity(9) 🫢✨

πŸ“¦ where this page comes from