-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Hi,
I am having a simple three node setup formed in a triangle:
source-->hop-->sink
source-->sink
All of the connections are done using the Intel i210 cards. After I configured the hop using TAPRIO (w/ flags 0x1 and also w/o), the ptp4l stops to be in sync with other hops and also stops to exchange messages. When I try to setup ETF, CBS, or not qdisc on the hop, everything works as expected and clocks are in sync.
Are you aware of similar issues by the TAPRIO qdisc?
On the source is configured ETF qdisc as follows:
qdisc replace dev enp3s0 parent root handle 100 mqprio \
num_tc 3 \
map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \
queues 1@0 1@1 2@2 \
hw 0
qdisc replace dev enp3s0 parent 100:1 etf \
clockid CLOCK_TAI delta 500000 offload skip_sock_check
qdisc replace dev enp3s0 parent 100:2 etf \
clockid CLOCK_TAI delta 500000 offload deadline_mode skip_sock_check
The hop has a following TAPRIO + ETF configuration:
qdisc replace dev enp5s0 parent root handle 100 taprio \
num_tc 3 \
map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \
queues 1@0 1@1 2@2 \
base-time 1605802187000000000 \
flags 0x1 \
txtime-delay 400000 \
sched-entry S 01 250000 \
sched-entry S 00 50000 \
sched-entry S 02 250000 \
sched-entry S 00 50000 \
sched-entry S 04 350000 \
sched-entry S 00 50000 \
clockid CLOCK_TAI
qdisc replace dev enp5s0 parent 100:1 etf \
clockid CLOCK_TAI delta 500000 offload skip_sock_check
qdisc replace dev enp5s0 parent 100:2 etf \
clockid CLOCK_TAI delta 500000 offload deadline_mode skip_sock_check
I am collecting traffic on the sink using TCPDUMP.
ptp4l gPTP.cfg on the hop, sink and source follow same logic :
[global]
gmCapable 1
priority1 248
priority2 248
logAnnounceInterval 2
logSyncInterval 2
logMinDelayReqInterval 2
logMinPdelayReqInterval 2
syncReceiptTimeout 5
announceReceiptTimeout 5
neighborPropDelayThresh 1000
min_neighbor_prop_delay -20000000
assume_two_step 1
path_trace_enabled 1
follow_up_info 1
transportSpecific 0x1
ptp_dst_mac 01:80:C2:00:00:0E
network_transport L2
[enp3s0]
boundary_clock_jbod 1
[enp4s0]
boundary_clock_jbod 1
Executing following ptp4l command:
ptp4l -f gPTP.cfg --step_threshold=1 --socket_priority 1
What have I tried so far:
- Changing various parameters regarding the delays, retransmissions, (logMinDelayReqInterval, neighborPropDelayThresh, announceReceiptTimeout,...), but it did not help.
- Various
socket_priorityvalues - With and without flags 0x1 on the TAPRIO parent qdisc.
- Various configs on ETF child qdisc on the hop.
- Changing SW/HW timestamping.
To note, I also opened an issue on linuxptp, but after looking more into, it seems like the issue is caused by the TAPRIO itself, as other qdiscs do not introduce this problem...
nxp-archive/openil_linuxptp#19
Any pointers on how to solve this issue would be appreciated!
Thanks!