iavf_flex_rx_tstamp(9)
π iavf_flex_rx_tstamp(9) π
okay so bestie, welcome to the kernel API manual, and today's main character is iavf_flex_rx_tstamp β the little function whose whole job is grabbing the Rx timestamp off the descriptor and handing it up the stack. it's giving "small but essential", fr fr. β¨
πΈ SYNOPSIS πΈ
void iavf_flex_rx_tstamp (const struct iavf_ring *rx_ring , __le64 qw2 ,
__le64 qw3 , struct sk_buff *skb );
no return value, no drama β it's void, it does its thing, it leaves. periodt. π
π ARGUMENTS π
rx_ringβ the descriptor ring, aka the whole vibe of where this descriptor lives. it's aconst struct iavf_ring *so nobody's out here editing it, we're just looking. πqw2β quad word 2 of the descriptor. yes, "quad word", it's a whole thing, we don't question it, it's an__le64.qw3β quad word 3 of the descriptor. also an__le64. the two of them are lowkey a duo. π«Άskbβ thestruct sk_buff *currently being received β the packet-in-progress, the one that's about to get its timestamp glow-up. π
π¦ DESCRIPTION π¦
so what does it actually do? it reads the Rx timestamp value straight out of the descriptor and passes it to the stack. that's it, that's the function. iconic behaviour, honestly. π
β οΈ big caveat energy: this function only operates on the VIRTCHNL_RXDID_2_FLEX_SQ_NIC flexible descriptor writeback format. like β only that one. if you're picturing some other descriptor format, nope, not here, this function is not for you. no cap. π
π SEE ALSO π
first up, the source of truth, the place where it actually lives:
- Kernel file
./drivers/net/ethernet/intel/iavf/iavf_txrx.c
and now the extended friend group β the whole squad of related functions, all here, all accounted for, screenshot-worthy list incoming πΈ:
iavf_is_descriptor_done(9)iavf_unmap_and_free_tx_resource(9)iavf_clean_tx_ring(9)iavf_free_tx_resources(9)iavf_get_tx_pending(9)iavf_force_wb(9)iavf_detect_recover_hung(9)iavf_clean_tx_irq(9)iavf_enable_wb_on_itr(9)iavf_update_itr(9)iavf_setup_tx_descriptors(9)iavf_clean_rx_ring(9)iavf_free_rx_resources(9)iavf_setup_rx_descriptors(9)iavf_release_rx_desc(9)iavf_receive_skb(9)iavf_alloc_rx_buffers(9)iavf_rx_csum(9)iavf_legacy_rx_csum(9)iavf_flex_rx_csum(9)iavf_legacy_rx_hash(9)iavf_flex_rx_hash(9)iavf_process_skb_fields(9)iavf_cleanup_headers(9)iavf_add_rx_frag(9)iavf_build_skb(9)iavf_is_non_eop(9)iavf_extract_legacy_rx_fields(9)iavf_extract_flex_rx_fields(9)iavf_clean_rx_irq(9)iavf_update_enable_itr(9)iavf_napi_poll(9)iavf_tx_prepare_vlan_flags(9)iavf_tso(9)iavf_tx_enable_csum(9)iavf_create_tx_ctx(9)__iavf_chk_linearize(9)__iavf_maybe_stop_tx(9)iavf_tx_map(9)iavf_xmit_frame_ring(9)iavf_xmit_frame(9)
like, the way that list just keeps going?? obsessed. π
and that's the whole page bestie, you ate that π β this little gem lives down in ./drivers/net/ethernet/intel/iavf, dated October 2026, and it's forever known as iavf_flex_rx_tstamp(9). 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