STRUCT ICE_PTP_TX(9)
π struct ice_ptp_tx(9) β the Kernel API Manual, but make it a group chat π
okay bestie, gather round, because today we're looking at struct ice_ptp_tx from the Kernel API Manual β it's the Tracking structure for all Tx timestamp requests on a port β¨ literally the little bookkeeper that keeps tabs on every single Tx timestamp ask your port has going on. no cap, it's giving main character energy for the ice driver's timestamping. π
β¨ SYNOPSIS β¨
struct ice_ptp_tx {
spinlock_t lock;
struct ice_tx_tstamp *tstamps;
unsigned long *in_use;
unsigned long *stale;
u8 block;
u8 offset;
u8 len;
u8 init : 1;
u8 calibrating : 1;
u8 has_ready_bitmap : 1;
s8 last_ll_ts_idx_read;
};
like, that's the whole vibe right there π¦
π§ MEMBERS π§
lockβ the lock that stops everyone from touching the fields of this struct at the same time. one at a time, besties, we're not animals πtstampsβ an array of sizelenwhere the outstanding requests get stored. it's the lil holding pen π«Άin_useβ a bitmap of sizelenshowing which slots are currently in use. occupied vibes only π₯staleβ a bitmap of sizelenmarking the slots that have stale timestamps. lowkey expired, highkey still hanging around πblockβ tells you which memory block (quad or port) the timestamps are captured in. important lore πoffsetβ the offset into the timestamp block that gets you the real index. the secret little doorway πͺβ¨lenβ the length of thetstampsandin_usefields. the size of the whole situation.initβ if true, the tracker is initialized. we're up and running, periodt βcalibratingβ if true, the PHY is out here calibrating the Tx offset. during this window, timestamps are temporarily disabled π so likeβ¦ hold that thought, bestie, the PHY is busy.has_ready_bitmapβ if true, the hardware has a valid Tx timestamp ready bitmap register π if false, it falls back to verifying new timestamp values against a previously cached copy. plan B is plan B, iykyk πlast_ll_ts_idx_readβ the index of the last LL TS read by the FW. the receipts of where we last left off π§Ύ
real talk: calibrating means timestamps are temporarily disabled while the PHY does its thing β not a bug, just the plot π¬
π SEE ALSO π
kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.h and its friends:
struct ice_tx_tstamp(9)enum ice_tx_tstamp_work(9)struct ice_ptp_port(9)struct ice_ptp_pin_desc(9)struct ice_ptp(9)
go read them, they're all linked up like the friend group π«Άβ¨
and that's the whole page, bestie π this one came straight out of ./drivers/net/ethernet/intel/ice with an October 2026 date on it β so when you're citing your sources for the group project, that's the vibe check you need. mwah, slay, go timestamp something responsibly. π
ππ¦
π¦ 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