igc_add_rx_frag(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… igc_add_rx_frag β€” a Kernel API Manual moment ✨

okay so bestie, welcome to the Kernel API Manual πŸŽ€ this one's about igc_add_rx_frag(9), and honestly it's giving "small function, big job" energy. no cap, it's a whole vibe.


🌸 NAME 🌸

igc_add_rx_frag β€” Add contents of Rx buffer to sk_buff πŸ’– that's literally the whole personality.


⭐ SYNOPSIS ⭐

void igc_add_rx_frag (struct igc_ring *rx_ring , struct igc_rx_buffer
*rx_buffer , struct sk_buff *skb , unsigned int size );

look at her 🫢 returns void, takes four things, gets straight to business. iconic behaviour honestly.


πŸ¦‹ ARGUMENTS πŸ¦‹

  • rx_ring β€” the rx descriptor ring you're transacting packets on πŸŒ€ like, this is the ring the packets live on, ok?
  • rx_buffer β€” the buffer containing the page to add πŸ“„ she's the one holding the goods.
  • skb β€” the sk_buff you're placing the data into 🧺 the basket, basically. the destination.
  • size β€” size of the buffer to be added πŸ“ how much of it we're moving. no more, no less.

πŸ’œ DESCRIPTION πŸ’œ

so here's the tea β˜• this function will add the data contained in rx_buffer->page to the skb. that's it. that's the function. she takes the page living inside rx_buffer and slides that data right into the skb. lowkey simple, highkey essential ✨


🌈 SEE ALSO 🌈

the kernel file this vibe lives in: ./drivers/net/ethernet/intel/igc/igc_main.c πŸ“ go read it, iykyk.

and now the entire friend group πŸ‘‘ β€” every single one of these, no skips, no cuts, periodt:

igc_power_up_link(9), igc_release_hw_control(9), igc_get_hw_control(9),
igc_clean_tx_ring(9), igc_free_tx_resources(9),
igc_free_all_tx_resources(9), igc_clean_all_tx_rings(9),
igc_disable_all_tx_rings_hw(9), igc_setup_tx_resources(9),
igc_setup_all_tx_resources(9), igc_clean_rx_ring(9),
igc_clean_all_rx_rings(9), igc_free_rx_resources(9),
igc_free_all_rx_resources(9), igc_setup_rx_resources(9),
igc_setup_all_rx_resources(9), igc_configure_rx_ring(9),
igc_configure_rx(9), igc_configure_tx_ring(9), igc_configure_tx(9),
igc_setup_mrqc(9), igc_setup_rctl(9), igc_setup_tctl(9),
igc_set_mac_filter_hw(9), igc_clear_mac_filter_hw(9), igc_set_mac(9),
igc_write_mc_addr_list(9), igc_process_skb_fields(9),
igc_reuse_rx_page(9), igc_is_non_eop(9), igc_cleanup_headers(9),
igc_alloc_rx_buffers(9), igc_clean_tx_irq(9), igc_add_mac_filter(9),
igc_del_mac_filter(9), igc_add_vlan_prio_filter(9),
igc_del_vlan_prio_filter(9), igc_add_etype_filter(9),
igc_del_etype_filter(9), igc_get_nfc_rule(9), igc_del_nfc_rule(9),
igc_add_nfc_rule(9), igc_enable_empty_addr_recv(9), igc_set_rx_mode(9),
igc_configure(9), igc_write_ivar(9), igc_configure_msix(9),
igc_irq_enable(9), igc_irq_disable(9), igc_reset_q_vector(9),
igc_free_q_vector(9), igc_free_q_vectors(9), igc_update_itr(9),
igc_set_interrupt_capability(9), igc_update_ring_itr(9),
igc_cache_ring_register(9), igc_poll(9), igc_alloc_q_vector(9),
igc_alloc_q_vectors(9), igc_init_interrupt_scheme(9), igc_sw_init(9),
igc_up(9), igc_update_stats(9), igc_down(9), igc_change_mtu(9),
igc_tx_timeout(9), igc_get_stats64(9), igc_msix_other(9),
igc_request_msix(9), igc_clear_interrupt_scheme(9), igc_has_link(9),
igc_watchdog(9), igc_intr_msi(9), igc_intr(9), igc_request_irq(9),
__igc_open(9), __igc_close(9), igc_probe(9), igc_remove(9),
igc_io_error_detected(9), igc_io_slot_reset(9), igc_io_resume(9),
igc_reinit_queues(9), igc_get_hw_dev(9), igc_init_module(9),
igc_exit_module(9)

like… the whole roster 😭 she knows everybody. obsessed.


πŸ’€ quick reminder bestie: the args are struct igc_ring *, struct igc_rx_buffer *, struct sk_buff *, and unsigned int. type-safe queen. slay. πŸ’…

okay that's the page!! 🌷 sign-off time: this gorgeous thing comes from ./drivers/net/ethernet/intel/igc and it's dated October 2026 🌼 catch you in the kernel, bestie β€” mwah πŸ«Άβœ¨πŸ’–

πŸ“¦ where this page comes from