UNION IONIC_LIF_IDENTITY(9)
π 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 capabilitiesethβ Ethernet identify structure
π¦ eth β the ethernet era
eth.versionβ Ethernet identify structure versioneth.rsvdβ reserved byte(s)eth.max_ucast_filtersβ number of perfect unicast addresses supportedeth.max_mcast_filtersβ number of perfect multicast addresses supportedeth.min_frame_sizeβ minimum size of frames to be senteth.max_frame_sizeβ maximum size of frames to be senteth.rsvd2β reserved byte(s)eth.hwstamp_tx_modesβ bitmask ofBIT_ULL(enum ionic_txstamp_mode)eth.hwstamp_rx_filtersβ bitmask ofenum ionic_pkt_classeth.rsvd3β reserved byte(s)eth.configβ LIF config struct with features, mtu, mac, q counts
π rdma β the RDMA chapter
rdmaβ RDMA identify structurerdma.versionβ RDMA capability versionrdma.qp_opcodesβ number of RDMA queue pair opcodes supportedrdma.admin_opcodesβ number of RDMA admin opcodes supportedrdma.minor_versionβ RDMA capability minor versionrdma.npts_per_lifβ page table size per LIFrdma.nmrs_per_lifβ number of memory regions per LIFrdma.nahs_per_lifβ number of address handles per LIFrdma.max_strideβ max work request striderdma.cl_strideβ cache line striderdma.pte_strideβ page table entry striderdma.rrq_strideβ remote RQ work request striderdma.rsq_strideβ remote SQ work request striderdma.dcqcn_profilesβ number of DCQCN profilesrdma.udma_shiftβ log2 number of queues per queue grouprdma.rsvd_dimensionsβ reserved byterdma.page_size_capβ supported page sizesrdma.aq_qtypeβ RDMA Admin Qtyperdma.sq_qtypeβ RDMA Send Qtyperdma.rq_qtypeβ RDMA Receive Qtyperdma.cq_qtypeβ RDMA Completion Qtyperdma.eq_qtypeβ RDMA Event Qtyperdma.stats_typeβ supported statistics type (enum ionic_lif_rdma_cap_stats)rdma.rsvdβ reserved byterdma.rcq_sign_bitβ RCQ sign bitrdma.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
- 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