99 | | From CN80xx refrence manual: |
100 | | |
101 | | The CN80XX hardware supports very accurate timestamping in the PTP, BGX, GTI, |
102 | | and NIC blocks. This timestamping is suitable for use in IEEE 1588 Precision Time |
103 | | Protocol (PTP) or other purposes. |
104 | | |
105 | | The CN80XX outbound timestamping hardware captures timestamps, but cannot |
106 | | insert the timestamp into any outgoing packets. Using IEEE 1588 vernacular, this |
107 | | means that the CN80XX outbound timestamping hardware is most useful when |
108 | | implementing a two-step clock, not a one-step clock, for PTP event messages sent |
109 | | from CN80XX. After the hardware captures the timestamp for the outgoing 1588 |
110 | | event message and delivers it to software, the 1588 software running on the CN80XX |
111 | | may need to send the timestamp to required recipients in a subsequent 1588 general |
112 | | message as a second step. |
113 | | |
114 | | NIC has no specific mode supporting PTP timestamping, but contains a number of |
115 | | features to compensate for the PTP timestamp introduced by BGX when it is |
116 | | timestamping. |
117 | | When BGX is in the receive-timestamp mode, NIC receives the timestamp plus |
118 | | packet from the BGX. NIC packet parsing is able to skip over the received |
119 | | timestamps (NIC_PF_PKIND(0..15)_CFG[HDR_SL]). NIC MAXERR, MINERR, and |
120 | | LENERR checks can compensate for the additional header, since the MAXERR and |
121 | | MINERR byte counts are programmable, and the programmed value can easily be |
122 | | increased by 8. The LENERR check already compensates based on the skip value. |
123 | | NIC makes the timestamp available for software with every packet. The timestamp |
124 | | can be present in the completion-queue entry and/or the receive buffer in L2/DRAM |
125 | | for software, depending on NIC configuration. The software will likely use the |
126 | | timestamp when IEEE 1588 event messages arrive. For other packets, the software |
127 | | may choose to discard or ignore the timestamp that is present with every packet in |
128 | | this mode. |
129 | | |
130 | | [[Image(cavium-octeon-tx-block-diagram.jpg, width=600)]] |