STRUCT EFX_CHANNEL_TYPE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct efx_channel_type πŸ’–

okay bestie, welcome to the struct efx_channel_type(9) manual page β€” yes, that’s the kernel API manual energy, and this struct is literally here to distinguish traffic and extra channels. no cap, that’s its whole main character job. ✨

🌸 NAME 🌸

struct efx_channel_type β€” distinguishes traffic and extra channels. periodt. πŸ’…

✨ SYNOPSIS ✨

here’s the whole squad, character for character:

       struct efx_channel_type {
           void (*handle_no_channel)(struct efx_nic *);
           int (*pre_probe)(struct efx_channel *);
           void (*post_remove)(struct efx_channel *);
           void (*get_name)(struct efx_channel *, char *buf, size_t len);
           struct efx_channel *(*copy)(const struct efx_channel *);
           bool (*receive_skb)(struct efx_channel *, struct sk_buff *);
           bool (*want_txqs)(struct efx_channel *);
           bool keep_eventq;
           bool want_pio;
        };

πŸ’… Members πŸ’…

  • handle_no_channel β€” handles failure to allocate an extra channel. lowkey the β€œoops, no extra channel” handler. 🫢
  • pre_probe β€” sets up extra state prior to initialisation. it’s giving prep era. ✨
  • post_remove β€” tears down extra state after finalisation, if allocated. heads up: it may be called on channels that have not been probed. 😭
  • get_name β€” generates the channel’s name, which is used for its IRQ handler. iconic naming ceremony. πŸŽ€
  • copy β€” copies the channel state prior to reallocation. may be NULL if reallocation is not supported. πŸ¦‹
  • receive_skb β€” handles an skb ready to be passed to netif_receive_skb. yes bestie, skb delivery duty. πŸ“¦
  • want_txqs β€” determines whether this channel should have TX queues created. if NULL, TX queues are not created. no TX queues, no drama. πŸ’€
  • keep_eventq β€” flag for whether event queue should be kept initialised while the device is stopped. keeping it ready, fr fr. πŸ”₯
  • want_pio β€” flag for whether PIO buffers should be linked to this channel’s TX queues. PIO buffer link-up vibes. 🌈

🌟 SEE ALSO 🌟

kernel file ./drivers/net/ethernet/sfc/siena/net_driver.h is the home base, and you can also go give these a vibe check:

  • 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_channel(9)
  • struct efx_msi_context(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)

xoxo πŸ’– this page lives under ./drivers/net/ethernet/sfc/siena, dated October 2026, and it’s all about struct efx_channel_type(9). mwah πŸ’‹

πŸ“¦ where this page comes from