You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Propagate DPDK mbuf RX timestamp to FreeBSD mbuf rcv_tstmp
#1045
ff_veth_input()
in
ff_dpdk_if.c
never copies
mbuf->timestamp
from the DPDK mbuf to the FreeBSD mbuf's
m_pkthdr.rcv_tstmp
. The FreeBSD side already has the full
SO_TIMESTAMP
→
recvmsg()
→
SCM_TIMESTAMP
path wired up — the timestamp just gets dropped at the DPDK→FreeBSD boundary.
The fix is ~10 lines across
ff_veth.c
,
ff_veth.h
,
ff_dpdk_if.c
:
Add
ff_mbuf_set_timestamp()
(same pattern as
ff_mbuf_set_vlan_info()
):
ff_veth_input()inff_dpdk_if.cnever copiesmbuf->timestampfrom the DPDK mbuf to the FreeBSD mbuf'sm_pkthdr.rcv_tstmp. The FreeBSD side already has the fullSO_TIMESTAMP→recvmsg()→SCM_TIMESTAMPpath wired up — the timestamp just gets dropped at the DPDK→FreeBSD boundary.The fix is ~10 lines across
ff_veth.c,ff_veth.h,ff_dpdk_if.c:ff_mbuf_set_timestamp()(same pattern asff_mbuf_set_vlan_info()):ff_veth_input()whenRTE_MBUF_F_RX_IEEE1588_TMSTis set:When HW timestamps aren't available the flag is never set, so nothing changes — fully backward compatible.
Happy to raise a PR if you're interested.