e1000e_rx_hwtstamp(9)
π e1000e_rx_hwtstamp β¨
okay so real talk, welcome to the Kernel API Manual bestie, this is the page for e1000e_rx_hwtstamp, and it's literally the little function that decides whether your received packet gets a cute lil timestamp or not. π
πΈ NAME πΈ
e1000e_rx_hwtstamp β a utility function which checks for Rx time stamp πβ¨
π¦ SYNOPSIS π¦
void e1000e_rx_hwtstamp (struct e1000_adapter *adapter , u32 status ,
struct sk_buff *skb );
likeβ¦ she takes three things and returns nothing, no cap π
π ARGUMENTS π
adapterβ the board private structure, aka the main character of this whole file π she holds all the board-specific lorestatusβ the descriptor extended error and status field π this is where the hardware drops the gossip about what just happenedskbβ the particularskbto include the time stamp π«Ά the actual packet getting the glow-up
π₯ DESCRIPTION π₯
so here's the vibe: if the time stamp is valid π, she converts it into the timecounter ns value and stores that result into the shhwtstamps structure which is passed up the network stack. periodt. that's it, that's the whole function, and she ate π
like the way that she's just quietly doing nanosecond math so your packets know exactly when they arrivedβ¦ iconic behavior honestly β¨
π SEE ALSO π
the kernel file this lives in, for the curious besties:
- Kernel file
./drivers/net/ethernet/intel/e1000e/netdev.c
and then the whole extended friend group π (yes, all of them, we're not skipping a single one):
__ew32_prepare(9)e1000_regdump(9)e1000e_dump(9)e1000_desc_unused(9)e1000e_systim_to_hwtstamp(9)e1000_receive_skb(9)e1000_rx_checksum(9)e1000_alloc_rx_buffers(9)e1000_alloc_rx_buffers_ps(9)e1000_alloc_jumbo_rx_buffers(9)e1000_clean_rx_irq(9)e1000e_tx_hwtstamp_work(9)e1000_clean_tx_irq(9)e1000_clean_rx_irq_ps(9)e1000_clean_jumbo_rx_irq(9)e1000_clean_rx_ring(9)e1000_intr_msi(9)e1000_intr(9)e1000_configure_msix(9)e1000e_set_interrupt_capability(9)e1000_request_msix(9)e1000_request_irq(9)e1000_irq_disable(9)e1000_irq_enable(9)e1000e_get_hw_control(9)e1000e_release_hw_control(9)e1000_alloc_ring_dma(9)e1000e_setup_tx_resources(9)e1000e_setup_rx_resources(9)e1000_clean_tx_ring(9)e1000e_free_tx_resources(9)e1000e_free_rx_resources(9)e1000_update_itr(9)e1000e_write_itr(9)e1000_alloc_queues(9)e1000e_poll(9)e1000e_vlan_filter_disable(9)e1000e_vlan_filter_enable(9)e1000e_vlan_strip_disable(9)e1000e_vlan_strip_enable(9)e1000_configure_tx(9)e1000_setup_rctl(9)e1000_configure_rx(9)e1000e_write_mc_addr_list(9)e1000e_write_uc_addr_list(9)e1000e_set_rx_mode(9)e1000e_get_base_timinca(9)e1000e_config_hwtstamp(9)e1000_configure(9)e1000e_power_up_phy(9)e1000_power_down_phy(9)e1000_flush_tx_ring(9)e1000_flush_rx_ring(9)e1000_flush_desc_rings(9)e1000e_systim_reset(9)e1000e_reset(9)e1000e_trigger_lsc(9)e1000e_down(9)e1000e_sanitize_systim(9)e1000e_read_systim(9)e1000e_cyclecounter_read(9)e1000_sw_init(9)e1000_intr_msi_test(9)e1000_test_msi_interrupt(9)e1000_test_msi(9)e1000e_open(9)e1000e_close(9)e1000_set_mac(9)e1000e_update_phy_task(9)e1000_update_phy_info(9)e1000e_update_phy_stats(9)e1000e_update_stats(9)e1000_phy_read_status(9)e1000_watchdog(9)e1000_tx_timeout(9)e1000e_get_stats64(9)e1000_change_mtu(9)e1000e_hwtstamp_set(9)__e1000e_disable_aspm(9)e1000e_disable_aspm(9)e1000e_disable_aspm_locked(9)e1000_netpoll(9)e1000_io_error_detected(9)e1000_io_slot_reset(9)e1000_io_resume(9)e1000_probe(9)e1000_remove(9)e1000_init_module(9)e1000_exit_module(9)
bestie this page is from./drivers/net/ethernet/intel/e..., dated October 2026, and the whole thing is filed undere1000e_rx_hwtstamp(9)π§ββοΈ mwah, go read some source code, ily π
π¦ 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