STRUCT EF4_CHANNEL(9)
π NAME π
okay bestie, welcome to the Kernel API Manual page for struct ef4_channel(9) β itβs literally βAn Efx channel,β and weβre about to read it like a very organized group chat.
β¨ SYNOPSIS β¨
Hereβs the exact struct, no cap β copy it exactly, do not retype it from vibe:
struct ef4_channel {
struct ef4_nic *efx;
int channel;
const struct ef4_channel_type *type;
bool eventq_init;
bool enabled;
int irq;
unsigned int irq_moderation_us;
struct net_device *napi_dev;
struct napi_struct napi_str;
#ifdef CONFIG_NET_RX_BUSY_POLL;
unsigned long busy_poll_state;
#endif;
struct ef4_special_buffer eventq;
unsigned int eventq_mask;
unsigned int eventq_read_ptr;
int event_test_cpu;
unsigned int irq_count;
unsigned int irq_mod_score;
#ifdef CONFIG_RFS_ACCEL;
unsigned int rfs_filters_added;
#define RPS_FLOW_ID_INVALID 0xFFFFFFFF;
u32 *rps_flow_id;
#endif;
unsigned n_rx_tobe_disc;
unsigned n_rx_ip_hdr_chksum_err;
unsigned n_rx_tcp_udp_chksum_err;
unsigned n_rx_mcast_mismatch;
unsigned n_rx_frm_trunc;
unsigned n_rx_overlength;
unsigned n_skbuff_leaks;
unsigned int n_rx_nodesc_trunc;
unsigned int n_rx_merge_events;
unsigned int n_rx_merge_packets;
unsigned int rx_pkt_n_frags;
unsigned int rx_pkt_index;
struct ef4_rx_queue rx_queue;
struct ef4_tx_queue tx_queue[EF4_TXQ_TYPES];
};
π Members π
Letβs go through every single member, in order, so nothing gets left on read:
efxβ the associated Efx NIC.channelβ the channel instance number.typeβ the channel type definition.eventq_initβ event queue initialised flag.enabledβ channel enabled indicator.irqβ IRQ number, and yes: MSI and MSI-X only.irq_moderation_usβ IRQ moderation value, in microseconds.napi_devβ net device used with NAPI.napi_strβ NAPI control structure.eventqβ event queue buffer.eventq_maskβ event queue pointer mask.eventq_read_ptrβ event queue read pointer.event_test_cpuβ last CPU to handle interrupt or test event for this channel.irq_countβ number of IRQs since last adaptive moderation decision.irq_mod_scoreβ IRQ moderation score.rps_flow_idβ flow IDs of filters allocated for accelerated RFS, indexed by filter ID.n_rx_tobe_discβ count of RX_TOBE_DISC errors.n_rx_ip_hdr_chksum_errβ count of RX IP header checksum errors.n_rx_tcp_udp_chksum_errβ count of RX TCP and UDP checksum errors.n_rx_mcast_mismatchβ count of unmatched multicast frames.n_rx_frm_truncβ count of RX_FRM_TRUNC errors.n_rx_overlengthβ count of RX_OVERLENGTH errors.n_skbuff_leaksβ count of skbuffs leaked due to RX overrun.n_rx_nodesc_truncβ number of RX packets truncated and then dropped due to lack of descriptors.n_rx_merge_eventsβ number of RX merged completion events.n_rx_merge_packetsβ number of RX packets completed by merged events.rx_pkt_n_fragsβ number of fragments in next packet to be delivered by__ef4_rx_packet, or zero if there is none.rx_pkt_indexβ ring index of first buffer for next packet to be delivered by__ef4_rx_packet, ifrx_pkt_n_frags != 0.rx_queueβ RX queue for this channel.tx_queueβ TX queues for this channel.
π Description π
A channel comprises an event queue, at least one TX queue, at least one RX queue, and an associated tasklet for processing the event queue. Thatβs the whole bundle, bestie β event queue, TX queue(s), RX queue(s), and the tasklet doing the event-queue processing. π
π SEE ALSO π
Kernel file: ./drivers/net/ethernet/sfc/falcon/net_driver.h
The page also points you at these icons:
struct ef4_buffer(9)struct ef4_special_buffer(9)struct ef4_tx_buffer(9)struct ef4_tx_queue(9)struct ef4_rx_buffer(9)struct ef4_rx_page_state(9)struct ef4_rx_queue(9)struct ef4_msi_context(9)struct ef4_channel_type(9)struct ef4_link_state(9)struct ef4_phy_operations(9)enum ef4_phy_mode(9)struct ef4_hw_stat_desc(9)struct ef4_nic(9)struct ef4_nic_type(9)
Signed with sparkle from the source path ./drivers/net/ethernet/sfc/falcon β October 2026 edition β thatβs the source/version + date vibe for this struct ef4_channel(9) page, mwah πβ¨
π¦ 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