igb: Implement Tx timestamp

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Akihiko Odaki 2023-05-23 11:43:33 +09:00 committed by Jason Wang
parent 3a9926d939
commit 3dfc616eab
2 changed files with 10 additions and 0 deletions

View File

@ -659,6 +659,13 @@ igb_process_tx_desc(IGBCore *core,
tx->ctx[idx].vlan_macip_lens >> IGB_TX_FLAGS_VLAN_SHIFT,
!!(tx->first_cmd_type_len & E1000_TXD_CMD_VLE));
if ((tx->first_cmd_type_len & E1000_ADVTXD_MAC_TSTAMP) &&
(core->mac[TSYNCTXCTL] & E1000_TSYNCTXCTL_ENABLED) &&
!(core->mac[TSYNCTXCTL] & E1000_TSYNCTXCTL_VALID)) {
core->mac[TSYNCTXCTL] |= E1000_TSYNCTXCTL_VALID;
e1000x_timestamp(core->mac, core->timadj, TXSTMPL, TXSTMPH);
}
if (igb_tx_pkt_send(core, tx, queue_index)) {
igb_on_tx_done_update_stats(core, tx->tx_pkt, queue_index);
}

View File

@ -322,6 +322,9 @@ union e1000_adv_rx_desc {
/* E1000_EITR_CNT_IGNR is only for 82576 and newer */
#define E1000_EITR_CNT_IGNR 0x80000000 /* Don't reset counters on write */
#define E1000_TSYNCTXCTL_VALID 0x00000001 /* tx timestamp valid */
#define E1000_TSYNCTXCTL_ENABLED 0x00000010 /* enable tx timestampping */
/* PCI Express Control */
#define E1000_GCR_CMPL_TMOUT_MASK 0x0000F000
#define E1000_GCR_CMPL_TMOUT_10ms 0x00001000