Designing Embedded Networking Applications: Essential Insights for Developers of Intel IXP4XX Network Processor Systems

The IXP46X product line supports IEEE 1588 precision time protocol (PTP). This component allows you to configure the hardware assist block, which supports the time-critical parts of IEEE 1588. It does not implement the protocol.
You can use IEEE 1588 to synchronize terminal devices in an Ethernet network, in the sub-microsecond range. Other protocols, such as network time protocol (NTP), do not support the accuracy or convergence speeds. For detailed background on IEEE 1588, you should read the standards document (IEEE 2002a).
The hardware assist captures the timestamps at each of the MII interfaces on NPE-A/B/C for both incoming and outgoing PTP protocol messages, which are multicast over UDP/IP packets in IPv4 format.
The hardware implements a 64-bit register to keep track of the system time. The register increments based on a frequency scaling value, which is accumulated on every clock cycle in the system into a 32-bit register. Scaling register overflows increment the system time. You can then modify the scaling factor to reduce the time drift.
The Intel IXP400 software for the IXP46X product line contains an API to control this feature. The API allows you to:
Get and set the system time
Configure and query the PTP ports
Set and get the tick rate (frequency scaling value)
Poll for detected transmit/received IEEE 1588 messages
Get and set a target time
Enable/disable an interrupt/callback to be called when system time is greater than target time
Poll for the condition where system time is greater than...