tohojo / flent

The FLExible Network Tester.
https://flent.org
Other
431 stars 77 forks source link

Questions (and Error) regarding rrul_prio #240

Closed j-breyer closed 2 years ago

j-breyer commented 2 years ago

Hi! I'm currently trying a couple different tests provided in flent, and stumbled across the rrul_prio test.

Firstly, I'm curious as to what the labels BE, BE2, BE3 and BE4 stand for - I suppose, the BE should be Best Effort(?) And for the ping section - the difference between BE1 and PRIO? Further, their respective ToS or DSCP codes, as I was unable to find them in the docs, to consider them in possible network configurations.

Also, when running the test (mn.h1 and mn.h2 refering to local entries in /etc/hosts, connections can be established): sudo flent rrul_prio -p all_scaled --local-bind mn.h1 -l 60 -H mn.h2 -o rrul_prio2.pdf -v I find the following error:

Ping (ms) ICMP PRIO: Starting watchdog with timeout 71
Started TimerRunner idx 17 ('Watchdog [Ping (ms) ICMP PRIO]')
Started PingRunner idx 17 ('Ping (ms) ICMP PRIO')
WARNING: Program exited non-zero.
Runner class: IrttRunner
Command: /usr/bin/irtt client -o - --fill=rand -Q -d 70s -i 0.2s  --dscp=0x10,0x10 --local=mn.h1  mn.h2
Return code: 2
Stdout: 
Stderr: Error: strconv.ParseInt: parsing "0x10,0x10": invalid syntax

WARNING: Unable to parse irtt JSON output: Expecting value: line 1 column 1 (char 0)
WARNING: Command produced no valid data.
Runner class: IrttRunner
Command: /usr/bin/irtt client -o - --fill=rand -Q -d 70s -i 0.2s  --dscp=0x10,0x10 --local=mn.h1  mn.h2
Return code: 2
Stdout: 
Stderr: Error: strconv.ParseInt: parsing "0x10,0x10": invalid syntax

Searching a bit through the test config files of your other tests, I found that normally your markings would be configured with DSCP names rather than hex values, maybe there lies the problem?

The plot seems to include data from all connections, despite the Error (as far as I'm aware)

tohojo commented 2 years ago

j-breyer @.***> writes:

Hi! I'm currently trying a couple different tests provided in flent, and stumbled across the rrul_prio test.

Firstly, I'm curious as to what the labels BE, BE2, BE3 and BE4 stand for - I suppose, the BE should be Best Effort(?)

Yeah; those would be four identical Best Effort flows.

And for the ping section - the difference between BE1 and PRIO?

PRIO is marking 0x10

Further, their respective ToS or DSCP codes, as I was unable to find them in the docs, to consider them in possible network configurations.

BE is 0, PRIO is 0x10

Also, when running the test (mn.h1 and mn.h2 refering to local entries in /etc/hosts, connections can be established): sudo flent rrul_prio -p all_scaled --local-bind mn.h1 -l 60 -H mn.h2 -o rrul_prio2.pdf -v I find the following error:

Ping (ms) ICMP PRIO: Starting watchdog with timeout 71
Started TimerRunner idx 17 ('Watchdog [Ping (ms) ICMP PRIO]')
Started PingRunner idx 17 ('Ping (ms) ICMP PRIO')
WARNING: Program exited non-zero.
Runner class: IrttRunner
Command: /usr/bin/irtt client -o - --fill=rand -Q -d 70s -i 0.2s  --dscp=0x10,0x10 --local=mn.h1  mn.h2
Return code: 2
Stdout: 
Stderr: Error: strconv.ParseInt: parsing "0x10,0x10": invalid syntax

WARNING: Unable to parse irtt JSON output: Expecting value: line 1 column 1 (char 0)
WARNING: Command produced no valid data.
Runner class: IrttRunner
Command: /usr/bin/irtt client -o - --fill=rand -Q -d 70s -i 0.2s  --dscp=0x10,0x10 --local=mn.h1  mn.h2
Return code: 2
Stdout: 
Stderr: Error: strconv.ParseInt: parsing "0x10,0x10": invalid syntax

Searching a bit through the test config files of your other tests, I found that normally your markings would be configured with DSCP names rather than hex values, maybe there lies the problem?

No, it's because there are two values. Which should be fixed already; what version of Flent are you running this on?

The plot seems to include data from all connections, despite the Error (as far as I'm aware)

Well, the 'Ping (ms) UDP PRIO' series would be missing in this case.

j-breyer commented 2 years ago

Yeah; those would be four identical Best Effort flows.

I see. I misunderstood the test for testing priority queues of different DSCP values - I guess for that I should rather use rrul_cs8? Is the purpose of the four identical flows link saturation or why do they exist?

No, it's because there are two values. Which should be fixed already; what version of Flent are you running this on?

Flent v1.3.2

Well, the 'Ping (ms) UDP PRIO' series would be missing in this case.

You're correct, I assumed it was covered by the black average line

j-breyer commented 2 years ago

Flent v1.3.2

... and I just noticed that the git is on version 2.0.1. However, if I run sudo apt install flent (again), I get

Reading package lists... Done
Building dependency tree       
Reading state information... Done
flent is already the newest version (1.3.2-2).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.

(Sorry to bother you with that - is there a counting mismatch between the git and the apt version, or how do I get the up-to-date flent?)

tohojo commented 2 years ago

j-breyer @.***> writes:

Yeah; those would be four identical Best Effort flows.

I see. I misunderstood the test for testing priority queues of different DSCP values - I guess for that I should rather use rrul_cs8?

Well, depends on your diffserv setup :)

rrul_cs8 will have a flow with each of the CS0..CS7 markings. Plain RRUL has four different markings as well.

Is the purpose of the four identical flows link saturation or why do they exist?

Yup, exactly.

Flent v1.3.2

... and I just noticed that the git is on version 2.0.1. However, if I run sudo apt install flent (again), I get

Distro packaging tends to lack behind a bit - which distro (and version) are you running?

j-breyer commented 2 years ago

Distro packaging tends to lack behind a bit - which distro (and version) are you running?

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian

Well, depends on your diffserv setup :)

rrul_cs8 will have a flow with each of the CS0..CS7 markings. Plain RRUL has four different markings as well.

Thanks a lot! I'll have a look at that :)

tohojo commented 2 years ago

j-breyer @.***> writes:

Distro packaging tends to lack behind a bit - which distro (and version) are you running?

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian

Ah, in that case there's a PPA you can use: https://launchpad.net/~tohojo/+archive/ubuntu/flent

j-breyer commented 2 years ago

Well, now I get a

UDP RTT test: Using irtt
which: /usr/local/sbin/fping6 is not an executable file
which: /usr/local/bin/fping6 is not an executable file
which: /usr/sbin/fping6 is not an executable file
which: Found fping6 executable at /usr/bin/fping6
which: /usr/local/sbin/ping6 is not an executable file
which: /usr/local/bin/ping6 is not an executable file
which: /usr/sbin/ping6 is not an executable file
which: Found ping6 executable at /usr/bin/ping6
WARNING: Found fping, but couldn't parse its output. Not using.
Looking up hostname 'mn.h1'.
ERROR: Runner Ping (ms) ICMP failed check: Cannot parse output of the system ping binary (/usr/bin/ping6). Please install fping v3.5+.

sudo apt install fping tells me, fping is at version 4.2-1

tohojo commented 2 years ago

j-breyer @.***> writes:

Well, now I get a

UDP RTT test: Using irtt
which: /usr/local/sbin/fping6 is not an executable file
which: /usr/local/bin/fping6 is not an executable file
which: /usr/sbin/fping6 is not an executable file
which: Found fping6 executable at /usr/bin/fping6
which: /usr/local/sbin/ping6 is not an executable file
which: /usr/local/bin/ping6 is not an executable file
which: /usr/sbin/ping6 is not an executable file
which: Found ping6 executable at /usr/bin/ping6
WARNING: Found fping, but couldn't parse its output. Not using.
Looking up hostname 'mn.h1'.
ERROR: Runner Ping (ms) ICMP failed check: Cannot parse output of the system ping binary (/usr/bin/ping6). Please install fping v3.5+.

sudo apt install fping tells me, fping is at version 4.2-1

Hmm, that's odd. What's the output of fping6 -D -c 1 localhost ?

j-breyer commented 2 years ago

Hmm, that's odd. What's the output of fping6 -D -c 1 localhost ?

That was a helpful tip! Turns out, /etc/hosts had ::1 defined as ip6-localhost, adding localhost to the same row removed the error.

All that's left now is an

Ping (ms) UDP BE1: Adding child IrttRunner
which: /usr/local/sbin/irtt is not an executable file
which: /usr/local/bin/irtt is not an executable file
which: /usr/sbin/irtt is not an executable file
which: Found irtt executable at /usr/bin/irtt
UDP RTT test: Cannot use irtt runner (Irtt connection check failed: Error: read udp4 10.0.6.1:54698->10.0.14.2:2112: read: connection refused
). Using netperf UDP_RR
Ping (ms) UDP BE1: Adding child NetperfDemoRunner
which: /usr/local/sbin/netperf is not an executable file
which: /usr/local/bin/netperf is not an executable file
which: /usr/sbin/netperf is not an executable file
which: Found netperf executable at /usr/bin/netperf

(part of the verbose output) But the graph shows lines for every connection, as far as i can tell the netperf does not fail.

Still curious as to why the irtt connection might be refused, the irtt server shows no sign of connection establishment.

However, the initial Error has been fixed since the version update

j-breyer commented 2 years ago

Duh, the connection gets refused if you start the irtt server on the wrong machine -.-

All issues solved regarding this topic from my side - Thank you a lot!

tohojo commented 2 years ago

Awesome! Closing this issue, then :)