-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TWAMP - Question Invalid reflected sender sequence number #66
Comments
The error message indicates that the responder sent back a sequence number greater than the highest one sent. Twping considers that an error and stops, which is why you didn't get the full set of sent packets. If there are no problems, the full count of packets is sent:
What implementation of TWAMP is running on the far end? |
Hi, Directional delays may be inaccurate due to out of sync clocks! --- twping statistics from [a.b.c.d]:9692 to [e.f.g.h]:9692 --- /usr/local/bin/twping -S a.b.c.d e.f.g.h:862 -i 1f -c10 Directional delays may be inaccurate due to out of sync clocks! --- twping statistics from [a.b.c.d]:8760 to [e.f.g.h]:8760 --- /usr/local/bin/twping -S a.b.c.d e.f.g.h:862 -i 1.0e,0f -c20 |
This isn't a time sync, delay, drop or ordering issue. I've checked the twping source code, and the cause of the error message and subsequent termination of the test is arrival of a packet reflected by the server (your JunOS device) containing a sequence number that the client (twping) hasn't sent yet.
In the traffic dump, there are six packets sent forward and six sent back. Twping appears to have a problem with the sequence number in the fifth one returned, at which point it ends the test and sends a stop session in the process. The sixth sent packet was already in flight when this happened, but the server had probably turned it around and put the return volley back on the wire before it saw the stop session. Barring drops, that packet was going to show up on the client's network interface even if twping had already thrown in the towel. It would be instructive to dump the contents of the measurement packets and examine the sequence numbers in both directions. My money is on six packets going out with sequential numbers, four returned with sequential numbers and a fifth that breaks the sequence. If that is the case, the fact that it happens intermittently at the default rate and not at all when you slow the rate says that you may be exercising a bug in the JunOS implementation. |
Hi Mark, |
Hi Mark, See below a first example of the issue we talk about. Using the -v we can see the big negative fwd_delay. /usr/local/bin/twping -S a.b.c.d e.f.g.h:862 -c10 -v --- twping statistics from [a.b.c.d]:9363 to [e.f.g.h]:9363 --- Another node that tests torward another JunOS. You will see the positive fwd_delay and it's close to 0 --- twping statistics from [i.j.k.l]:9147 to [m.n.o.p]:9147 --- When we will fix the current issue the next issue will be to explain the delay spike. Maybe a kind of QOS on the JunOS could explain it.. |
Hi, ./twping -S a.b.c.d e.f.g.h -c10 -v --- twping statistics from [a.b.c.d]:9443 to [e.f.g.h]:9443 --- Directional delays may be inaccurate due to out of sync clocks! --- twping statistics from [a.b.c.d]:9443 to [e.f.g.h]:9443 --- I confirmed the issue don't happens when executed from kernel 4.18. I used the same physical box I used with my previous rhel6 test but that time with RHEL8. The results were perfect with kernel 4.14. About the current issue with old kernel. I found a workaround that fix the 3 issues(the invalid sequence that initiate a stop control packet at anytime, the wrong maximum latency and the wrong duplicates value. See below an example using the work around from a rhel6 box using old kernel 2.6.32 ./twping -S a.b.c.d e.f.g.h -c10 -v -i 0f --- twping statistics from [a.b.c.d]:9853 to [e.f.g.h]:9853 --- Directional delays may be inaccurate due to out of sync clocks! --- twping statistics from [a.b.c.d]:9853 to [e.f.g.h]:9853 --- Thank you |
Good sleuthing. I had a look at the trace you sent, and there doesn't seem to be a path through the code that would cause the complaint about the sequence number. The code maintains a counter of the highest number it's sent out that's incremented immediately after the packets are sent. The code doing the complaining would have to be seeing a number greater than that, which would mean the value is getting clobbered somewhere or packets are being reflected from the future. :-) It would be instructive to know what number twping is seeing beyond what the network saw. If you'd be amenable to compiling and trying a modified version of the code, adding the following at line 3633 (see link above) would do the trick:
We dropped support for EL6 in 2018, but if this is something unrelated to that, I'd like to know about it. |
Confirmed on owamp 4.3.3:
Client running twping is armv7l (raspberry pi) while server running twampd is x86_64. Both running Linux 5.10. Reverse twping (from x86_64 to armv7l) works fine. |
Hi all, |
@tritamk14 Please don't add unrelated questions to issues. This would be a good topic for the perfsonar-user mailing list, which is the most-relevant thing we have for discussing twamp. |
Hi,
See below an example where the packet count is set to: -c 10 and the number of packets sent is not the same number.
Could you please let me what's your opinion about it?
I already looked at the code and still and I do not know the root cause..
It could be software either network udp..
Thank you
/usr/local/bin/twping -S aaa.bbb.ccc.ddd eee.fff.ggg.hhh:862 -c 10
Approximately 3.1 seconds until results available
twping: FILE=endpoint.c, LINE=3633, Invalid reflected sender sequence number!
Directional delays may be inaccurate due to out of sync clocks!
--- twping statistics from [aaa.bbb.ccc.ddd]:9828 to [eee.fff.ggg.hhh]:9828 ---
SID: 86828b48371a71e2fd4ae7db76a58962
first: 2020-05-21T15:18:16.942
last: 2020-05-21T15:18:18.062
6 sent, 0 lost (0.000%), 0 send duplicates, 6 reflect duplicates
round-trip time min/median/max = 19/19/407 ms, (err=8.73 ms)
send time min/median/max = 40.7/40.8/40.8 ms, (err=4.36 ms)
reflect time min/median/max = -21.8/-21.8/366 ms, (err=4.36 ms)
reflector processing time min/max = 0.000954/0.000954 ms
two-way jitter = 0.1 ms (P95-P50)
send jitter = 0.1 ms (P95-P50)
reflect jitter = 0 ms (P95-P50)
send hops = 4 (consistently)
reflect hops = 4 (consistently)
The text was updated successfully, but these errors were encountered: