STRUCT ICE_PTP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🧊 struct ice_ptp(9) β€” the manual page, but make it a vibe ✨

okay so this is the struct ice_ptp(9) kernel API manual page, section 9, and bestie… it's the struct for integrating with CONFIG_PTP_1588_CLOCK. Say it with me: CONFIG_PTP_1588_CLOCK. Iconic. πŸ’…


✨ NAME ✨

struct ice_ptp β€” the data used for integrating with CONFIG_PTP_1588_CLOCK. That's it, that's the whole personality. 🫢


🌸 SYNOPSIS 🌸

here's the whole glow-up, every field, exactly as the kernel wrote it, no cap:

struct ice_ptp {
    enum ice_ptp_state state;
    enum ice_ptp_tx_interrupt tx_interrupt_mode;
    struct ice_ptp_port port;
    struct kthread_delayed_work work;
    u64 cached_phc_time;
    unsigned long cached_phc_jiffies;
    struct kthread_worker *kworker;
    u8 ext_ts_irq;
    struct ptp_pin_desc pin_desc[ICE_N_PINS_MAX];
    const struct ice_ptp_pin_desc *ice_pin_desc;
    struct ptp_perout_request perout_rqs[GLTSYN_TGT_H_IDX_MAX];
    struct ptp_extts_request extts_rqs[GLTSYN_EVNT_H_IDX_MAX];
    struct ptp_clock_info info;
    struct ptp_clock *clock;
    struct kernel_hwtstamp_config tstamp_config;
    unsigned long tx_refclks[ICE_E825_MAX_PHYS][ICE_REF_CLK_MAX];
    u64 reset_time;
    u64 tx_hwtstamp_good;
    u32 tx_hwtstamp_skipped;
    u32 tx_hwtstamp_timeouts;
    u32 tx_hwtstamp_flushed;
    u32 tx_hwtstamp_discarded;
    u32 late_cached_phc_updates;
 };

look at all those members. she's got range. πŸ’œ


πŸŽ€ Members πŸŽ€

time for the member-by-member tour, bestie, let's go πŸ¦‹

  • state β€” the current state of PTP state machine. main character energy, honestly.
  • tx_interrupt_mode β€” the TX interrupt mode for the PTP clock.
  • port β€” data for the PHY port initialization procedure. it's giving "getting ready" vibes.
  • work β€” delayed work function for periodic tasks. lowkey the one doing all the chores.
  • cached_phc_time β€” a cached copy of the PHC time for timestamp extension.
  • cached_phc_jiffies β€” jiffies when cached_phc_time was last updated. like a little timestamp on the timestamp. πŸ’€
  • kworker β€” kwork thread for handling periodic work.
  • ext_ts_irq β€” the external timestamp IRQ in use.
  • pin_desc β€” structure defining pins.
  • ice_pin_desc β€” internal structure describing pin relations. iykyk.
  • perout_rqs β€” cached periodic output requests.
  • extts_rqs β€” cached external timestamp requests.
  • info β€” structure defining PTP hardware capabilities.
  • clock β€” pointer to registered PTP clock device. ⭐
  • tstamp_config β€” hardware timestamping configuration.
  • tx_refclks β€” bitmaps table to store the information about TX reference clocks.
  • reset_time β€” kernel time after clock stop on reset.
  • tx_hwtstamp_good β€” number of completed Tx timestamp requests. ate. πŸ‘‘
  • tx_hwtstamp_skipped β€” number of Tx time stamp requests skipped. πŸ™ˆ
  • tx_hwtstamp_timeouts β€” number of Tx skbs discarded with no time stamp.
  • tx_hwtstamp_flushed β€” number of Tx skbs flushed due to interface closed.
  • tx_hwtstamp_discarded β€” number of Tx skbs discarded due to cached PHC time being too old to correctly extend timestamp.
  • late_cached_phc_updates β€” number of times cached PHC update is late. not me showing up late… 😭

🌈 SEE ALSO 🌈

go read these next, bestie, they're all in the Kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.h:

  • struct ice_tx_tstamp(9)
  • enum ice_tx_tstamp_work(9)
  • struct ice_ptp_tx(9)
  • struct ice_ptp_port(9)
  • struct ice_ptp_pin_desc(9)

like a little reading list. obsessed. πŸ“šβœ¨


and that's the whole page!! source is ./drivers/net/ethernet/intel/ice, dated October 2026. slay, mwah, bye bestie πŸ’–πŸŽ€πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from