STRUCT IDPF_PTP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct idpf_ptp(9) πŸ’–

okay bestie, welcome to the Kernel API Manual ✨ and today's main character is struct idpf_ptp β€” literally the PTP parameters struct, no cap. if you're deep in the idpf driver and you need to know what all these fields are for, this is your page. iykyk 🫢


✨ SYNOPSIS ✨

here's the whole struct, exactly as it lives, don't touch anything, just vibe:

struct idpf_ptp {
    struct ptp_clock_info info;
    struct ptp_clock *clock;
    struct idpf_adapter *adapter;
    u64 base_incval;
    u64 max_adj;
    struct idpf_ptp_cmd cmd;
    u64 cached_phc_time;
    unsigned long cached_phc_jiffies;
    struct idpf_ptp_dev_clk_regs dev_clk_regs;
    u32 caps;
    enum idpf_ptp_access get_dev_clk_time_access:2;
    enum idpf_ptp_access get_cross_tstamp_access:2;
    enum idpf_ptp_access set_dev_clk_time_access:2;
    enum idpf_ptp_access adj_dev_clk_time_access:2;
    enum idpf_ptp_access tx_tstamp_access:2;
    u8 rsv;
    struct idpf_ptp_secondary_mbx secondary_mbx;
    spinlock_t read_dev_clk_lock;
};

πŸŽ€ Members πŸŽ€

okay so every single field, one by one, with the lore πŸ’…

  • info β€” the structure that defines the PTP hardware capabilities. it's giving "what can this clock even do" energy.
  • clock β€” a pointer to the registered PTP clock device. this is the actual clock bestie, we stan.
  • adapter β€” a back pointer to the adapter. yes it points back, it's loyal like that 🫢
  • base_incval β€” the base increment value of the PTP clock. icon behavior.
  • max_adj β€” the maximum adjustment of the PTP clock. the ceiling, the limit, the boundary.
  • cmd β€” HW specific command masks. hardware said "here are my masks" and we're like slay.
  • cached_phc_time β€” a cached copy of the PHC time, used for timestamp extension. a little time capsule 😭
  • cached_phc_jiffies β€” the jiffies when cached_phc_time was last updated. so you know how fresh that cache is, fr fr.
  • dev_clk_regs β€” the set of registers to access the device clock. registers said lemme introduce myself ✨
  • caps β€” PTP capabilities negotiated with the Control Plane. negotiated! like a whole business deal went down.
  • get_dev_clk_time_access β€” the access type for getting the device clock time.
  • get_cross_tstamp_access β€” the access type for the cross timestamping.
  • set_dev_clk_time_access β€” the access type for setting the device clock time.
  • adj_dev_clk_time_access β€” the access type for the adjusting the device clock. (yes that grammar is literally what the page says, keeping it πŸ’€)
  • tx_tstamp_access β€” the access type for the Tx timestamp value read.
  • rsv β€” reserved bits. they're just sitting there, reserved, minding their business πŸ™ˆ
  • secondary_mbx β€” the parameters for using the dedicated PTP mailbox. dedicated! special! main character energy πŸ‘‘
  • read_dev_clk_lock β€” the spinlock protecting access to the device clock read operation executed by the HW latch. it's the bouncer at the door, no cap πŸ’…

🌈 SEE ALSO 🌈

if you want the whole friend group, it's all in the Kernel file ./drivers/net/ethernet/intel/idpf/idpf_ptp.h β€” go read:


okay that's the whole page bestie, you ate that πŸ“ this came from the kernel source at ./drivers/net/ethernet/intel/idpf, dated October 2026 β€” go off, and remember: timestamp responsibly πŸ’œβœ¨
πŸ“¦ where this page comes from