STRUCT EFX_CHANNEL(9)
π NAME
okay bestie, welcome to the Kernel API Manual entry for struct efx_channel(9) π β aka An Efx channel. yes, that's the whole name, short and iconic, no cap.
β¨ SYNOPSIS β¨
the struct literally looks like this, and every field is staying exactly as-is, bestie:
struct efx_channel {
struct efx_nic *efx;
int channel;
const struct efx_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 efx_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_filter_count;
unsigned int rfs_last_expiry;
unsigned int rfs_expire_index;
unsigned int n_rfs_succeeded;
unsigned int n_rfs_failed;
struct delayed_work filter_work;
#define RPS_FLOW_ID_INVALID 0xFFFFFFFF;
u32 *rps_flow_id;
#endif;
unsigned int n_rx_tobe_disc;
unsigned int n_rx_ip_hdr_chksum_err;
unsigned int n_rx_tcp_udp_chksum_err;
unsigned int n_rx_outer_ip_hdr_chksum_err;
unsigned int n_rx_outer_tcp_udp_chksum_err;
unsigned int n_rx_inner_ip_hdr_chksum_err;
unsigned int n_rx_inner_tcp_udp_chksum_err;
unsigned int n_rx_eth_crc_err;
unsigned int n_rx_mcast_mismatch;
unsigned int n_rx_frm_trunc;
unsigned int n_rx_overlength;
unsigned int n_skbuff_leaks;
unsigned int n_rx_nodesc_trunc;
unsigned int n_rx_merge_events;
unsigned int n_rx_merge_packets;
unsigned int n_rx_xdp_drops;
unsigned int n_rx_xdp_bad_drops;
unsigned int n_rx_xdp_tx;
unsigned int n_rx_xdp_redirect;
unsigned int rx_pkt_n_frags;
unsigned int rx_pkt_index;
struct list_head *rx_list;
struct efx_rx_queue rx_queue;
struct efx_tx_queue tx_queue[EFX_MAX_TXQ_PER_CHANNEL];
struct efx_tx_queue *tx_queue_by_type[EFX_TXQ_TYPES];
enum efx_sync_events_state sync_events_state;
u32 sync_timestamp_major;
u32 sync_timestamp_minor;
};
π«Ά Members
okay so here's the member-by-member tea, nothing skipped:
efxβ Associated Efx NIC.channelβ Channel instance number.typeβ Channel type definition.eventq_initβ Event queue initialised flag.enabledβ Channel enabled indicator.irqβ IRQ number, and this one is MSI and MSI-X only, iykyk.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.rfs_filter_countβ number of accelerated RFS filters currently in place; equals the count ofrps_flow_idslots filled.rfs_last_expiryβ value of jiffies last time some accelerated RFS filters were checked for expiry.rfs_expire_indexβ next accelerated RFS filter ID to check for expiry.n_rfs_succeededβ number of successful accelerated RFS filter insertions.n_rfs_failedβ number of failed accelerated RFS filter insertions.filter_workβ Work item forefx_filter_rfs_expire.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.n_rx_xdp_dropsβ Count of RX packets intentionally dropped due to XDP.n_rx_xdp_bad_dropsβ Count of RX packets dropped due to XDP errors.n_rx_xdp_txβ Count of RX packets retransmitted due to XDP.n_rx_xdp_redirectβ Count of RX packets redirected to a different NIC by XDP.rx_pkt_n_fragsβ Number of fragments in next packet to be delivered by__efx_siena_rx_packet, or zero if there is none.rx_pkt_indexβ Ring index of first buffer for next packet to be delivered by__efx_siena_rx_packet, ifrx_pkt_n_frags != 0.rx_listβ list of SKBs from current RX, awaiting processing.rx_queueβ RX queue for this channel.tx_queueβ TX queues for this channel.tx_queue_by_typeβ pointers intotx_queue, orNULL, indexed by txq type.sync_events_stateβ Current state of sync events on this channel.sync_timestamp_majorβ Major part of the last ptp sync event.sync_timestamp_minorβ Minor part of the last ptp sync event.
quick vibe-check aside: the synopsis also listsn_rx_outer_ip_hdr_chksum_err,n_rx_outer_tcp_udp_chksum_err,n_rx_inner_ip_hdr_chksum_err,n_rx_inner_tcp_udp_chksum_err, andn_rx_eth_crc_err; the member blurbs above don't give those their own descriptions, so I'm not inventing any. that's just the source, bestie π«Ά
π 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 canonical definition, and it ate. literally: event queue, at least one TX queue, at least one RX queue, plus the associated tasklet doing the event-queue processing. periodt.
π SEE ALSO
the source points at Kernel file ./drivers/net/ethernet/sfc/siena/net_driver.h, and then these besties:
struct efx_buffer(9)struct efx_special_buffer(9)struct efx_tx_buffer(9)struct efx_tx_queue(9)struct efx_rx_buffer(9)struct efx_rx_page_state(9)struct efx_rx_queue(9)struct efx_msi_context(9)struct efx_channel_type(9)struct efx_link_state(9)enum efx_phy_mode(9)struct efx_hw_stat_desc(9)struct efx_rss_context(9)struct efx_arfs_rule(9)struct efx_async_filter_insertion(9)struct efx_nic(9)struct efx_nic_type(9)
π cute sign-off: this page came from ./drivers/net/ethernet/sfc/siena, manual/version struct efx_channel(9), dated October 2026 β 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