{
struct rte_mbuf *mb;
struct ether_hdr *eth_hdr;
+ struct ether_addr addr;
struct ptpv2_msg *ptp_hdr;
uint16_t eth_type;
uint32_t timesync_index;
/* Read and check the RX timestamp. */
port_ieee1588_rx_timestamp_check(fs->rx_port, timesync_index);
+ /* Swap dest and src mac addresses. */
+ ether_addr_copy(ð_hdr->d_addr, &addr);
+ ether_addr_copy(ð_hdr->s_addr, ð_hdr->d_addr);
+ ether_addr_copy(&addr, ð_hdr->s_addr);
+
/* Forward PTP packet with hardware TX timestamp */
mb->ol_flags |= PKT_TX_IEEE1588_TMST;
fs->tx_packets += 1;