igb_ptp_rx_pktstamp(9)
π igb_ptp_rx_pktstamp(9) π
okay bestie, so we're in the Kernel API Manual today and this page is literally called igb_ptp_rx_pktstamp(9) β say that five times fast, i dare you π«Ά
β¨ NAME β¨
igb_ptp_rx_pktstamp β retrieve Rx per packet timestamp π
π SYNOPSIS π
int igb_ptp_rx_pktstamp (struct igb_q_vector *q_vector , void *va ,
ktime_t *timestamp );
that's the whole vibe, no cap π
πΈ ARGUMENTS πΈ
q_vectorβ a pointer to the interrupt specific structure. yes, that one. the interrupt-specific one π¦vaβ a pointer to the address containing the Rx buffer. it's giving "where the packet actually lives" β¨timestampβ a pointer to where the timestamp will be stored. drop it right there, bestie π
π« DESCRIPTION π«
okay so here's the tea π β this function is meant to retrieve a timestamp from the first buffer of an incoming frame. that's its whole job, its main character moment, its destiny.
and here's the detail you gotta remember: the value is stored in little endian format starting on byte 8. not byte 7, not byte 9. byte 8. write it down π
π RETURN π
it hands you back the timestamp header length, or 0 if not available π (iykyk, sometimes the vibe check just does not pass)
π₯ SEE ALSO π₯
first up, the kernel file it lives in β go say hi:
./drivers/net/ethernet/intel/igb/igb_ptp.c
and then the whole friend group πβ¨:
igb_ptp_systim_to_hwtstamp(9)igb_ptp_tx_work(9)igb_ptp_rx_hang(9)igb_ptp_tx_hang(9)igb_ptp_tx_hwtstamp(9)igb_ptp_rx_rgtstamp(9)igb_ptp_hwtstamp_get(9)igb_ptp_set_timestamp_mode(9)igb_ptp_hwtstamp_set(9)igb_ptp_init(9)igb_ptp_sdp_init(9)igb_ptp_suspend(9)igb_ptp_stop(9)igb_ptp_reset(9)
ngl bestie, this one's short and sweet but every byte counts π don't sleep on byte 8.
and that's a wrap, babes π§ this iconic little page lives in ./drivers/net/ethernet/intel/igb, dated October 2026 β periodt π
β
π¦ 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