ice_ptp_extend_40b_ts(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ice_ptp_extend_40b_ts (kernel API manual, section 9) πŸ’–

okay so bestie, welcome to the ice_ptp_extend_40b_ts page, straight out of the Kernel API Manual ✨ this lil function's whole job? turning a smol 40b timestamp into a full 64b nanoseconds glow-up 🫢


🌸 NAME 🌸

ice_ptp_extend_40b_ts β€” the icon that converts a 40b timestamp into 64b nanoseconds πŸ‘‘

✨ SYNOPSIS ✨

u64 ice_ptp_extend_40b_ts (struct ice_pf *pf , u64 in_tstamp );

πŸŽ€ ARGUMENTS πŸŽ€

  • pf β€” the board's private structure, aka its little diary of state πŸ““
  • in_tstamp β€” the ingress/egress 40b timestamp value, the raw material we're working with πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea, bestie: the Tx and Rx timestamps are 40 bits wide πŸ’€ and they're packed like this β€” 32 bits of nominal nanoseconds, 7 bits of sub-nanoseconds, and a lil valid bit. the whole squad in one 40-bit package, no cap.

*--------------------------------------------------------------* | 32
bits of nanoseconds | 7 high bits of sub ns underflow | v |
*--------------------------------------------------------------*

let me break the layout down for you, because it's giving ✨ bit-field realness ✨:

  • the low bit is the vibe check β€” an indicator of whether the timestamp is valid ⭐
  • the next 7 bits are a capture of the upper 7 bits of the sub-nanosecond underflow 🌈
  • the remaining 32 bits are the lower 32 bits of the PHC timer πŸ‘‘
⚠️ heads up: it is assumed that the caller verifies the timestamp is valid prior to calling this function. like, that's on you, not on this function. do not come for her if you skipped the check πŸ™ˆ

what she does: extract the 32bit nominal nanoseconds and extend them πŸ”₯ and the basis for that timestamp extension? the cached PHC time stored in the device private PTP structure. that's her reference point, her main character anchor, iykyk 🧚

if you want the full lore on the extension algorithm, go read ice_ptp_extend_32b_ts β€” the original explainer, the blueprint, the mother of the method πŸ’œ

πŸ”₯ SEE ALSO πŸ”₯

the source file, obviously: Kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.c πŸ“‚

and now, the whole entire friend group β€” literally every related function, all present, none skipped πŸ’–


and that's the page, bestie!! before you go, the receipts 🧾: this lil beauty lives at ./drivers/net/ethernet/intel/ice, it's dated October 2026, and it's filed under ice_ptp_extend_40b_ts(9) β€” so cite her correctly or it's not giving academic integrity πŸ’…βœ¨ bye ily πŸ«ΆπŸ’–

πŸ“¦ where this page comes from