This patchset cover below parts: (1)Introduce a new timesync API called "rte_eth_timesync_adjust_freq" that enables frequency adjustment during PTP timesync. This new API aligns with the kernel PTP which already supports frequency adjustment. It brings DPDK closer in alignment with the kernel's best practice.
(2)Refine the ptpclient application by applying a PI algorithm that leverages the new API to further improve timesync accuracy. These changes doesn't break original solution and creates a more accurate solution for DPDK-based high accuracy PTP. We have provided significant improvements for timesync accuracy on e810 and we believe these improvements will also benefit other devices. The original command for starting ptpclient is: ./build/examples/dpdk-ptpclient -a 0000:81:00.0 -c 1 -n 3 -- -T 0 -p 0x1 The command with PI algorithm is: ./build/examples/dpdk-ptpclient -a 0000:81:00.0 -c 1 -n 3 -- -T 0 -p 0x1 -- controller=pi [1/3] ethdev: add frequency adjustment API. [2/3] examples/ptpclient: refine application. [3/3] examples/ptpclient: add frequency adjustment support. Simei Su (3): ethdev: add frequency adjustment API examples/ptpclient: refine application examples/ptpclient: add frequency adjustment support examples/ptpclient/ptpclient.c | 222 +++++++++++++++++++++++++++++++++------ lib/ethdev/ethdev_driver.h | 5 + lib/ethdev/ethdev_trace.h | 9 ++ lib/ethdev/ethdev_trace_points.c | 3 + lib/ethdev/rte_ethdev.c | 19 ++++ lib/ethdev/rte_ethdev.h | 38 +++++++ 6 files changed, 265 insertions(+), 31 deletions(-) -- 2.9.5