ark::time::PtpPacket

Defined in header “ark/time/ptp_packet.hh”.


Represents a PTP packet as it comes over the wire the PTP system uses a few non-standard-sized fields, so we don’t try to use a packed structure. This is a relatively ‘pure’ representation, however.

Variables

  • PtpMessageType type
    Type of the message.

  • uint8_t transport_specific_fields
    Message identifier.

  • uint8_t ptp_verison
    Version of the PTP message.

  • uint16_t message_length
    Length of the message, including heading/body/suffix.

  • uint8_t domain_number
    Domain number, should be the same on all communicating devices.

  • uint16_t flags
    Flags, bit1 means we’re in two-step, bit2 means we’re unicasat.

  • uint64_t correction_ns
    Correction for fractional nanoseconds (and path delay).

  • uint64_t source_port_identity
    The source port identity.

  • uint16_t source_port_id
    The source port ID (usually one). This is the PTP ID.

  • uint16_t sequence_id
    The sequence ID note that for follow-up packets, this matches the sequence ID of the sync packet, and for delay response, it matches the ID of the delay request.

  • PtpControlType control_field
    The control field, which indicates the type of message.

  • uint8_t log_message_interval
    Generally 0x7f for unicast, othberwise, its the log2 interval between multicast messages.

  • uint64_t timestamp_s
    Seconds.

  • uint32_t timestamp_ns
    Nanoseconds.

  • std::variant< PtpDelayResponseBody, PtpAnnounceBody > body
    Optional body contents.