Message ID | 20200918090802.13757-1-yangbo.lu@nxp.com |
---|---|
Headers | show |
Series | dpaa2_eth: support 1588 one-step timestamping | expand |
From: Yangbo Lu <yangbo.lu@nxp.com> Date: Fri, 18 Sep 2020 17:07:57 +0800 > This patch-set is to add MC APIs of 1588 one-step timestamping, and > support one-step timestamping for PTP Sync packet on DPAA2. > > Before egress, one-step timestamping enablement needs, > > - Enabling timestamp and FAS (Frame Annotation Status) in > dpni buffer layout. > > - Write timestamp to frame annotation and set PTP bit in > FAS to mark as one-step timestamping event. > > - Enabling one-step timestamping by dpni_set_single_step_cfg() > API, with offset provided to insert correction time on frame. > The offset must respect all MAC headers, VLAN tags and other > protocol headers accordingly. The correction field update can > consider delays up to one second. So PTP frame needs to be > filtered and parsed, and written timestamp into Sync frame > originTimestamp field. > > The operation of API dpni_set_single_step_cfg() has to be done > when no one-step timestamping frames are in flight. So we have > to make sure the last one-step timestamping frame has already > been transmitted on hardware before starting to send the current > one. The resolution is, > > - Utilize skb->cb[0] to mark timestamping request per packet. > If it is one-step timestamping PTP sync packet, queue to skb queue. > If not, transmit immediately. > > - Schedule a work to transmit skbs in skb queue. > > - mutex lock is used to ensure the last one-step timestamping packet > has already been transmitted on hardware through TX confirmation queue > before transmitting current packet. ... Series applied to net-next, thanks.