igb_setup_tx_resources(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

igb_setup_tx_resources β€” allocate Tx resources (Descriptors)

okay so real talk, bestie, this little icon lives in the Kernel API Manual, section 9, and it's the function that gets your transmit resources (descriptors) set up. it's giving "backend bestie doing the unglamorous work so the packets can slay later." πŸ’…


✨ SYNOPSIS ✨

int igb_setup_tx_resources (struct igb_ring *tx_ring );

πŸŽ€ ARGUMENTS πŸŽ€

  • tx_ring β€” tx descriptor ring (for a specific queue) to setup

yep, that's the one and only thing you hand it: the tx descriptor ring for a specific queue. not all the queues. the one. main character energy for a single ring, honestly. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

Return 0 on success, negative on failure.

that's literally it, no cap. zero means it ate and everything's fine, and a negative value means nope, it didn't work out. that's the entire vibe check. 😭✨


🌈 SEE ALSO 🌈

first up, the actual kernel file where the magic happens:

  • ./drivers/net/ethernet/intel/igb/igb_main.c

and now, the entire igb cinematic universe, in order, because we do not skip a single one of these πŸ’€:

igb_get_i2c_data(9), igb_set_i2c_data(9), igb_set_i2c_clk(9), igb_get_i2c_clk(9), igb_get_hw_dev(9), igb_init_module(9), igb_exit_module(9), igb_cache_ring_register(9), igb_write_ivar(9), igb_configure_msix(9), igb_request_msix(9), igb_free_q_vector(9), igb_reset_q_vector(9), igb_free_q_vectors(9), igb_clear_interrupt_scheme(9), igb_set_interrupt_capability(9), igb_alloc_q_vector(9), igb_alloc_q_vectors(9), igb_init_interrupt_scheme(9), igb_request_irq(9), igb_irq_disable(9), igb_irq_enable(9), igb_release_hw_control(9), igb_get_hw_control(9), igb_config_tx_modes(9), igb_setup_tx_mode(9), igb_configure(9), igb_power_up_link(9), igb_power_down_link(9), igb_check_swap_media(9), igb_up(9), igb_set_i2c_bb(9), igb_set_fw_version(9), igb_init_mas(9), igb_init_i2c(9), igb_probe(9), igb_remove_i2c(9), igb_remove(9), igb_probe_vfs(9), igb_sw_init(9), __igb_open(9), __igb_close(9)

and the tx crew, obviously 🧚:

igb_setup_all_tx_resources(9), igb_setup_tctl(9), igb_configure_tx_ring(9), igb_configure_tx(9), igb_free_tx_resources(9), igb_free_all_tx_resources(9), igb_clean_tx_ring(9), igb_clean_all_tx_rings(9), igb_clean_tx_irq(9), igb_tx_timeout(9)

the rx girlies 🌸:

igb_setup_rx_resources(9), igb_setup_all_rx_resources(9), igb_setup_mrqc(9), igb_setup_rctl(9), igb_setup_srrctl(9), igb_configure_rx_ring(9), igb_configure_rx(9), igb_free_rx_resources(9), igb_free_all_rx_resources(9), igb_clean_rx_ring(9), igb_clean_all_rx_rings(9), igb_reuse_rx_page(9), igb_add_rx_frag(9), igb_is_non_eop(9), igb_cleanup_headers(9), igb_process_skb_fields(9), igb_alloc_rx_buffers(9)

addresses, filters, and link stuff πŸ¦‹:

igb_set_mac(9), igb_write_mc_addr_list(9), igb_set_rx_mode(9), igb_has_link(9), igb_check_lvmmc(9), igb_rar_set_index(9), igb_set_uta(9)

interrupts, polling, and the watchdog πŸ‘‘:

igb_watchdog(9), igb_update_ring_itr(9), igb_update_itr(9), igb_get_stats64(9), igb_change_mtu(9), igb_update_stats(9), igb_intr_msi(9), igb_intr(9), igb_poll(9), igb_mii_ioctl(9), igb_ioctl(9), igb_io_error_detected(9), igb_io_slot_reset(9), igb_io_resume(9)

and the i2c baddies wrapping it up πŸ“:

igb_read_i2c_byte(9), igb_write_i2c_byte(9)


πŸ’€ not me writing out every single one of those references. yes bestie, all of them. iykyk.

okay that's the whole page, go forth and allocate responsibly 🫢 slay

this cutie was brought to you by ./drivers/net/ethernet/intel/igb, October 2026 β€” mwah, see u next manpage πŸ’–πŸŽ€βœ¨

πŸ“¦ where this page comes from