LBT error with prioritizing.xml and policing.xml

Hello,
I've got a problem with my LBT web application. When I load the prioritizing.xml conf and run the test, Iperf1 flow work normally but Iperf2 flow (<IP_ADDRESS>:22 to <IP_ADDRESS>:22) stops the LBT application with the next return :

Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefind
GET /flows
GET /running
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and sd
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"}
Successfully written flows to file.
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and sd
/usr/lib/node_modules/lbt/server.js:450
state.plotter[flowType].stdin.end();
^
TypeError: Cannot read property 'end' of undefined
at forEach (/usr/lib/node_modules/lbt/server.js:450:42)
at Array.forEach (native)
at stopTraffic (/usr/lib/node_modules/lbt/server.js:443:23)
at Channel.stream.on (/usr/lib/node_modules/lbt/server.js:230:17)
at emitOne (events.js:101:20)
at Channel.emit (events.js:188:7)
at Channel. (/usr/lib/node_modules/lbt/node_modules/ssh2/lib/Channel.js:135:18)
at Channel.g (events.js:292:16)
at emitNone (events.js:91:20)
at Channel.emit (events.js:185:7)

Strange fact, when I run both flows together, it work normally. The same thing happen when I load the policing.xml configuration.
Could you help me ?
I thank you in advance.

I can explain why this happens, but I'm afraid it's a limitation in the way the LBT is currently implemented.
The exception

TypeError: Cannot read property 'end' of undefined

occurs here (in the stopTraffic function). So you already were on a error condition, it's just that the exception is making it worse.
What you can try to do is apply the patch below, which avoids the second error, and repeat the test:
From c9770422b81ac1c3a4565ce00273e425c65b2c45 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean<EMAIL_ADDRESS>Date: Tue, 18 Sep 2018 18:43:25 +0300
Subject: [PATCH] nodejs-lbt: server: avoid exception when stopTraffic called
 and plotter not yet started

Signed-off-by: Vladimir Oltean<EMAIL_ADDRESS>---
 package/nodejs-lbt/src/server.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/package/nodejs-lbt/src/server.js b/package/nodejs-lbt/src/server.js
index ddcbed5..ef31697 100755
--- a/package/nodejs-lbt/src/server.js
+++ b/package/nodejs-lbt/src/server.js
@@ -447,7 +447,9 @@ function stopTraffic(error) {
                 if (typeof(f.srcSSHConn) != "undefined") { f.srcSSHConn.end() };
                 if (typeof(f.dstSSHConn) != "undefined") { f.dstSSHConn.end() };
             });
-            state.plotter[flowType].stdin.end();
+            if (typeof(state.plotter[flowType].stdin) != "undefined") {
+                state.plotter[flowType].stdin.end();
+            };
         }
     });
     state.clients.forEach((stream) => {
--
2.7.4

But the original errors that occured are these:

in the onDestinationSSHConnReady function.
in the onSourceSSHConnReady function

Basically what fails is the SSH connection between nodes 2 and 3 (the link restricted by the policer).
Normally what should happen is that LBT should try to establish SSH connections through the management interfaces (192.168.15.x) and send iperf through the data interfaces (172.15.0.x), but currently, the IP of the SSH destination is the same as the IP of the iperf destination, which of course makes both iperf and SSH traffic get routed onto the same interface.
Does this policing.xml that you're using contain ingress policer values that are documented in the user manual, or did you alter the bandwidth limits manually to lower values? During my testing this scenario hasn't happened with what was documented.

It is weird because when I ran those tests few weeks ago, it work normally. But now, it doesn't work.
I used value specified in the user manual in order to have a normal behavior before trying to change bandwidth limitation and vlan priorities.
how can I apply the patch ? Did I need to modify the server.js file ?

how can I apply this patch ?

just edit the /usr/lib/node_modules/lbt/server.js on board, go to line 447 and apply the changes there.

I applied the patch but it's still not working.
Did I need to use the OpenIL master branch if I use sja1105-tool master branch ?

I applied the patch but it's still not working.

Did you read my explanation on what this patch does, and what is the other limitation in LBT that leads to SSH connections being cut off by the policer?

The log that you attached in the first post is truncated. Could you please attach the full version?

Sure, here are the full version :

[root@OpenIL:~]# /usr/lib/node_modules/lbt/server.js &
[root@OpenIL:~]# {"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},
"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","ban
dwidth":-1,"enabled":true,"label":"Host 1","id":"c86cd7a0-d7da-400a-829c-a8b3f8e9dca4"},{"source":
{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"172.1
5.0.3","port":22},"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Host 2","id
":"8c1309e7-65a4-415d-9b7a-d7cc8a74accf"}],"ping":[]}}
Server listening for http requests on port 8000
GET /
GET /client.js
GET /flows
GET /running
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"u
ser":"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabl
ed":true,"label":"Host 1","id":"142178ca-ef88-4547-81b1-265595a40e98"},{"source":{"user":"root","h
ostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22}
,"port":5202,"transport":"tcp","bandwidth":-1,"enabled":false,"label":"Host 2","id":"baeece05-be9d
-4270-825d-acbcbe2161f2"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Host 1 iperf Destination :: conn ready
Host 1 iperf Destination STDOUT: -----------------------------------------------------------
Host 1 iperf Destination STDOUT: -----------------------------------------------------------
Host 1 iperf Client :: conn ready
Host 1 iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 37596
Host 1 iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to <IP_ADDRESS> port 375
98
[   65.223156] random: crng init done
Host 1 iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
PUT /running
traffic start/stop: old state true, new state false
GET /running
GET /flows
feedgnuplot process exited with code 0
Command "iperf3 -1 -f m -i 0.5 -s -p 5201" on root@<IP_ADDRESS>:22 exited with code undefined and si
gnal undefined
Command "iperf3 -t 86400 -p 5201  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefine
d and signal undefined
GET /flows
GET /running
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"u
ser":"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabl
ed":false,"label":"Host 1","id":"3c2bcb9a-1cfa-4e9a-9acb-dde19f6bcb72"},{"source":{"user":"root","
hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22
},"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Host 2","id":"11cf960c-6aa4
-4235-9232-f47fb6f18881"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Host 2 iperf Destination :: conn ready
Host 2 iperf Destination STDOUT: -----------------------------------------------------------
Host 2 iperf Destination STDOUT: -----------------------------------------------------------
Host 2 iperf Client :: conn ready
Host 2 iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 37382
Host 2 iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to <IP_ADDRESS> port 373
84
Host 2 iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
PUT /running
traffic start/stop: old state true, new state false
Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefine
d and signal undefined
GET /flows
GET /running
GET /flows
feedgnuplot process exited with code 0
GET /running
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and si
gnal undefined
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"u
ser":"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabl
ed":true,"label":"Host 1","id":"5c7b1435-38b8-4101-b5dd-f27d887c488a"},{"source":{"user":"root","h
ostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22}
,"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Host 2","id":"62457ca4-69d2-
4eed-8938-f8fbf9c2bb47"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Host 2 iperf Destination :: conn ready
Host 1 iperf Destination :: conn ready
Host 2 iperf Destination STDOUT: -----------------------------------------------------------
Host 2 iperf Destination STDOUT: -----------------------------------------------------------
Host 1 iperf Destination STDOUT: -----------------------------------------------------------
Host 1 iperf Destination STDOUT: -----------------------------------------------------------
Host 2 iperf Client :: conn ready
Host 1 iperf Client :: conn ready
Host 1 iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 37612
Host 2 iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 37386
Host 1 iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to <IP_ADDRESS> port 376
14
Host 2 iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to <IP_ADDRESS> port 373
88
Host 1 iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Host 2 iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
PUT /running
traffic start/stop: old state true, new state false
feedgnuplot process exited with code 0
Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefine
d and signal undefined
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and si
gnal undefined
Command "iperf3 -1 -f m -i 0.5 -s -p 5201" on root@<IP_ADDRESS>:22 exited with code undefined and si
gnal undefined
Command "iperf3 -t 86400 -p 5201  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefine
d and signal undefined
GET /flows
GET /running
GET /flows
GET /running

Host 1 iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 37612
Host 2 iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 37386
(...)
PUT /running
traffic start/stop: old state true, new state false

PUT /running means that somebody is telling the server to stop traffic (old state true, new state false).
There's no error condition in this log, it's just the client who's requesting the traffic stop. The only place where PUT /running is called from the client is from btnStartStop.onclick.

Yes I did stop the traffic but it was because no graph output were shown by LBT : when I start the Iperf 2 flow, the LBT is stuck on the main page.

when I start the Iperf 2 flow, the LBT is stuck on the main page

So no error, but no plotting either?
Can you please apply this patch? It allows you to see the whole output of the iperf processes. I want to see if iperf still starts (since no errors are obvious from the log above). Perhaps the iperf output format is different for some reason in the failing case, and that's why no plotter data is sent to the browser.
From b05546e536c377a602c6667842428fab312c87a1 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean<EMAIL_ADDRESS>Date: Wed, 19 Sep 2018 15:37:27 +0300
Subject: [PATCH] nodejs-lbt: enable logging of iperf commands stdout

Signed-off-by: Vladimir Oltean<EMAIL_ADDRESS>---
 package/nodejs-lbt/src/server.js | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/package/nodejs-lbt/src/server.js b/package/nodejs-lbt/src/server.js
index ef31697..c571671 100755
--- a/package/nodejs-lbt/src/server.js
+++ b/package/nodejs-lbt/src/server.js
@@ -172,8 +172,8 @@ function onSourceSSHConnReady(flowType) {
                 }
             } else {
                 /* If not taking reports, just print out the output as-is. */
-                //console.log("%s %s Source :: STDOUT: %s",
-                        //this.label, flowType, line);
+                console.log("%s %s Source :: STDOUT: %s",
+                        this.label, flowType, line);
             }
         });
         /* stderr */
@@ -248,10 +248,9 @@ function onDestinationSSHConnReady(flowType) {
                     /* Plot an extra iperf point */
                     state.plotter[flowType].stdin.write(
                             time + " " + this.id + " " + bw + "\n");
-                } else {
-                    console.log("%s %s Destination STDOUT: %s",
-                            this.label, flowType, line);
                 }
+                console.log("%s %s Destination STDOUT: %s",
+                        this.label, flowType, line);
             } else if (flowType == "ping") {
                 /* PIT measurements taken by tcpdump. */
                 var words = line.trim().split(/[, ]+/);
--
2.7.4

I apply the patch.
First test I was "lucky" because the full error happen (board 2 to 3 flow started and stop just after few second and kill the LBT process) :

{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":true,"
label":"Iperf (Board 1 -> Board 3)","id":"fefcdf3b-d73a-4129-a0ea-046d8bb90334"},{"source":{"user":"roo
t","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22}
,"port":5202,"transport":"tcp","bandwidth":-1,"enabled":false,"label":"Iperf (Board 2 -> Board 3)","id"
:"2b2f4975-efc4-4371-9338-e4814ee0afea"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 1 -> Board 3) iperf Destination :: conn ready
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Server listening on 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Client :: conn ready
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50644
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50644
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 50646 connected to 172.1
5.0.3 port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50646
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50646
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  47.8 MBytes   801 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  41.8 MBytes   701 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  91.3 MBytes   763 Mbits/sec
0    399 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  40.1 MBytes   673 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  40.2 MBytes   675 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec  80.0 MBytes   674 Mbits/sec
0    399 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  42.8 MBytes   717 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  50.5 MBytes   848 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.01   sec  94.1 MBytes   782 Mbits/sec
0    421 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  53.4 MBytes   895 Mbits/s
ec
PUT /running
traffic start/stop: old state true, new state false
GET /running
GET /flows
feedgnuplot process exited with code 0
Command "iperf3 -t 86400 -p 5201  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
Command "iperf3 -1 -f m -i 0.5 -s -p 5201" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
GET /flows
GET /running
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":false,
"label":"Iperf (Board 1 -> Board 3)","id":"3d5a66cc-0afc-4cc1-a58d-d8c686d881b2"},{"source":{"user":"ro
ot","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22
},"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Iperf (Board 2 -> Board 3)","id"
:"ebcb0034-605e-41be-a3a2-793895b12b34"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 2 -> Board 3) iperf Destination :: conn ready
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Server listening on 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Client :: conn ready
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55170
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55170
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 55172 connected to 172.1
5.0.3 port 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55172
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55172
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  38.6 MBytes   648 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  41.0 MBytes   689 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  81.2 MBytes   681 Mbits/sec
0    148 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  41.0 MBytes   687 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  40.9 MBytes   686 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.01   sec  82.5 MBytes   687 Mbits/sec
0    156 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  40.0 MBytes   671 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  40.8 MBytes   684 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   2.01-3.01   sec  81.2 MBytes   677 Mbits/sec
0    156 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  40.9 MBytes   686 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  40.9 MBytes   685 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   3.01-4.01   sec  81.2 MBytes   686 Mbits/sec
0    156 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.00-4.50   sec  40.4 MBytes   679 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   4.01-5.00   sec  91.7 MBytes   775 Mbits/sec
0    368 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   5.00-6.00   sec   113 MBytes   944 Mbits/sec
0    368 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   6.00-7.00   sec   112 MBytes   942 Mbits/sec
0    368 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   7.00-8.00   sec   112 MBytes   941 Mbits/sec
0    368 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   8.00-9.00   sec   112 MBytes   941 Mbits/sec
0    389 KBytes
PUT /running
traffic start/stop: old state true, new state false
GET /flows
Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
GET /running
GET /flows
GET /running
feedgnuplot process exited with code 0
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":true,"
label":"Iperf (Board 1 -> Board 3)","id":"6af0bd8c-1663-4937-9cf5-7c7fbf4a50ca"},{"source":{"user":"roo
t","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22}
,"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Iperf (Board 2 -> Board 3)","id":
"0a716d8e-e09a-4603-a171-9d7d8bf81d47"}],"ping":[]}}
Successfully written flows to file.
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
/usr/lib/node_modules/lbt/server.js:455
state.plotter[flowType].stdin.end();
^
TypeError: Cannot read property 'end' of undefined
at forEach (/usr/lib/node_modules/lbt/server.js:455:42)
at Array.forEach (native)
at stopTraffic (/usr/lib/node_modules/lbt/server.js:448:23)
at Channel.stream.on (/usr/lib/node_modules/lbt/server.js:232:17)
at emitOne (events.js:101:20)
at Channel.emit (events.js:188:7)
at Channel. (/usr/lib/node_modules/lbt/node_modules/ssh2/lib/Channel.js:135:18)
at Channel.g (events.js:292:16)
at emitNone (events.js:91:20)
at Channel.emit (events.js:185:7)

Here you can find the log from use case I describe above :

GET /client.js
GET /flows
GET /running
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":true,"
label":"Iperf (Board 1 -> Board 3)","id":"4cd81099-c629-424f-9b06-eade4fc5318e"},{"source":{"user":"roo
t","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22}
,"port":5202,"transport":"tcp","bandwidth":-1,"enabled":false,"label":"Iperf (Board 2 -> Board 3)","id"
:"db5eaf12-24fd-4dc2-b026-493c1b667454"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 1 -> Board 3) iperf Destination :: conn ready
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Server listening on 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Client :: conn ready
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50656
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50656
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 50658 connected to 172.1
5.0.3 port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50658
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50658
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  38.6 MBytes   647 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  40.1 MBytes   672 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  80.0 MBytes   669 Mbits/sec
0    182 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  37.6 MBytes   631 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  40.0 MBytes   670 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec  78.4 MBytes   660 Mbits/sec
0    249 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  52.8 MBytes   886 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  40.0 MBytes   671 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec  92.7 MBytes   777 Mbits/sec
0    314 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  55.4 MBytes   930 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  55.8 MBytes   937 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.01   sec   111 MBytes   925 Mbits/sec
0    484 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   4.00-4.50   sec  40.3 MBytes   676 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   4.50-5.00   sec  40.1 MBytes   673 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   4.01-5.00   sec  81.4 MBytes   689 Mbits/sec
0    484 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   5.00-5.50   sec  53.0 MBytes   890 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   5.50-6.00   sec  40.1 MBytes   673 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   5.00-6.00   sec  91.6 MBytes   765 Mbits/sec
0    484 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   6.00-6.50   sec  39.1 MBytes   656 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   6.50-7.00   sec  40.0 MBytes   671 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   6.00-7.00   sec  80.9 MBytes   680 Mbits/sec
0    484 KBytes
PUT /running
traffic start/stop: old state true, new state false
GET /running
GET /flows
feedgnuplot process exited with code 0
Command "iperf3 -1 -f m -i 0.5 -s -p 5201" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
Command "iperf3 -t 86400 -p 5201  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
GET /flows
GET /running
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":false,
"label":"Iperf (Board 1 -> Board 3)","id":"28ef310c-9456-41e1-8621-f521ae6d1de2"},{"source":{"user":"ro
ot","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22
},"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Iperf (Board 2 -> Board 3)","id"
:"5a8d4273-311b-4ee6-9a3e-e6903c1e4745"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 2 -> Board 3) iperf Destination :: conn ready
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Server listening on 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Client :: conn ready
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55174
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55174
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 55176 connected to 172.1
5.0.3 port 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55176
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55176
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec   111 MBytes   927 Mbits/sec
0    355 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec   112 MBytes   940 Mbits/sec
0    355 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec   112 MBytes   942 Mbits/sec
0    372 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.00   sec   112 MBytes   942 Mbits/sec
0    431 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   4.00-5.00   sec   112 MBytes   942 Mbits/sec
0    431 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   5.00-6.00   sec   112 MBytes   941 Mbits/sec
0    431 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   6.00-7.00   sec   112 MBytes   941 Mbits/sec
0    458 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   7.00-8.00   sec   112 MBytes   940 Mbits/sec
0    458 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   8.00-9.00   sec   112 MBytes   944 Mbits/sec
0    458 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   9.00-10.00  sec   112 MBytes   938 Mbits/sec
0    458 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  10.00-11.00  sec   114 MBytes   955 Mbits/sec
0    906 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  11.00-12.00  sec   112 MBytes   941 Mbits/sec
0    952 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  12.00-13.00  sec   107 MBytes   901 Mbits/sec
0    952 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  13.00-14.00  sec   107 MBytes   901 Mbits/sec
0    952 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  50.8 MBytes   852 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  55.9 MBytes   938 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  56.0 MBytes   940 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.00-4.50   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.50-5.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   5.00-5.50   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   5.50-6.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   6.00-6.50   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   6.50-7.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   7.00-7.50   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   7.50-8.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   8.00-8.50   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   8.50-9.00   sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   9.00-9.50   sec  56.1 MBytes   942 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   9.50-10.00  sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  10.00-10.50  sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  10.50-11.00  sec  56.1 MBytes   940 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  11.00-11.50  sec  55.9 MBytes   938 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  11.50-12.00  sec  56.1 MBytes   941 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  12.00-12.50  sec  55.9 MBytes   933 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  12.50-13.00  sec  52.5 MBytes   886 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  13.00-13.50  sec  53.4 MBytes   896 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  13.50-14.00  sec  54.0 MBytes   905 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  14.00-14.50  sec  51.1 MBytes   857 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  14.00-15.00  sec   107 MBytes   894 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  15.00-16.00  sec   111 MBytes   935 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  16.00-17.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  17.00-18.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  18.00-19.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  19.00-20.00  sec   112 MBytes   941 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  20.00-21.00  sec   111 MBytes   936 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  21.00-22.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  22.00-23.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  23.00-24.00  sec   112 MBytes   943 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  24.00-25.00  sec   111 MBytes   934 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  25.00-26.00  sec   112 MBytes   942 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  26.00-27.00  sec   110 MBytes   924 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  27.00-28.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  28.00-29.00  sec   111 MBytes   933 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  29.00-30.00  sec   112 MBytes   942 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  30.00-31.00  sec   111 MBytes   935 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  31.00-32.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  32.00-33.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  33.00-34.00  sec   112 MBytes   944 Mbits/sec
0   1.40 MBytes
PUT /running
traffic start/stop: old state true, new state false
GET /running
GET /flows
Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
GET /running
GET /flows
feedgnuplot process exited with code 0
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":true,"
label":"Iperf (Board 1 -> Board 3)","id":"5324655b-a93d-4795-a88e-86ce93641240"},{"source":{"user":"roo
t","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22}
,"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Iperf (Board 2 -> Board 3)","id":
"7db37b28-0356-4be7-837b-9d2d981d7575"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 2 -> Board 3) iperf Destination :: conn ready
Iperf (Board 1 -> Board 3) iperf Destination :: conn ready
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Server listening on 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Server listening on 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Client :: conn ready
Iperf (Board 1 -> Board 3) iperf Client :: conn ready
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5201
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5202
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50672
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50672
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55178
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55178
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 50674 connected to 172.1
5.0.3 port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50674
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50674
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55180
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55180
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 55180 connected to 172.1
5.0.3 port 5202
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  40.2 MBytes   675 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  12.8 MBytes   214 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  44.1 MBytes   739 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  11.7 MBytes   197 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  87.1 MBytes   731 Mbits/sec
0    332 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  25.0 MBytes   210 Mbits/sec
19   90.5 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  55.4 MBytes   930 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec   652 KBytes  10.7 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  54.5 MBytes   915 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec   852 KBytes  14.0 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec   110 MBytes   922 Mbits/sec
0    402 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec  1.83 MBytes  15.4 Mbits/sec
5   83.4 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  43.1 MBytes   723 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  12.7 MBytes   214 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  42.9 MBytes   720 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  13.2 MBytes   221 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec  26.1 MBytes   220 Mbits/sec
24   93.3 KBytes
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec  85.0 MBytes   711 Mbits/sec
0    402 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  42.7 MBytes   716 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  13.4 MBytes   225 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  42.8 MBytes   719 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  13.3 MBytes   223 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.00   sec  27.0 MBytes   226 Mbits/sec
29    110 KBytes
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.02   sec  86.2 MBytes   713 Mbits/sec
0    402 KBytes
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
GET /flows
GET /running
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
Command "iperf3 -t 86400 -p 5201  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
feedgnuplot process exited with code 0
Command "iperf3 -1 -f m -i 0.5 -s -p 5201" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
GET /flows
GET /running
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 1 -> Board 3) iperf Destination :: conn ready
Iperf (Board 2 -> Board 3) iperf Destination :: conn ready
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Server listening on 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Server listening on 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
Iperf (Board 1 -> Board 3) iperf Client :: conn ready
Iperf (Board 2 -> Board 3) iperf Client :: conn ready
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50684
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 50684
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5202
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 50686 connected to 172.1
5.0.3 port 5201
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50686
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5201 connected to 172.
15.0.1 port 50686
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55182
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 55182
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55184
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 55184
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 55184 connected to 172.1
5.0.3 port 5202
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  38.1 MBytes   639 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  13.0 MBytes   218 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  54.9 MBytes   921 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  96.0 MBytes   804 Mbits/sec
1    269 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec   944 KBytes  15.5 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
Retr  Cwnd
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec  14.3 MBytes   120 Mbits/sec
28   66.5 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  54.7 MBytes   918 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec   848 KBytes  13.9 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  54.7 MBytes   919 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec   110 MBytes   920 Mbits/sec
0    307 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  1.09 MBytes  18.2 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec  1.85 MBytes  15.5 Mbits/sec
1   94.7 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  54.1 MBytes   907 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  1.46 MBytes  24.6 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  54.5 MBytes   915 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec   108 MBytes   907 Mbits/sec
0    320 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  1.44 MBytes  24.2 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec  2.92 MBytes  24.5 Mbits/sec
21   36.8 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  55.1 MBytes   924 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec   181 KBytes  2.96 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  55.6 MBytes   933 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.00   sec   111 MBytes   933 Mbits/sec
0    327 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec   182 KBytes  2.99 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.00   sec   382 KBytes  3.13 Mbits/sec
2   1.41 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   4.00-4.50   sec  46.3 MBytes   777 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.00-4.50   sec  10.6 MBytes   178 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   4.50-5.00   sec  51.7 MBytes   867 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   4.00-5.00   sec  98.0 MBytes   822 Mbits/sec
0    329 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.50-5.00   sec  3.21 MBytes  53.9 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   4.00-5.00   sec  13.9 MBytes   116 Mbits/sec
13   1.41 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   5.00-5.50   sec  55.6 MBytes   932 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   5.00-5.50   sec   279 KBytes  4.57 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   5.50-6.00   sec  55.6 MBytes   933 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   5.00-6.00   sec   111 MBytes   930 Mbits/sec
0    342 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   5.50-6.00   sec   331 KBytes  5.42 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   5.00-6.00   sec   574 KBytes  4.70 Mbits/sec
1   93.3 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   6.00-6.50   sec  55.4 MBytes   929 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   6.00-6.50   sec   390 KBytes  6.39 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   6.50-7.00   sec  55.5 MBytes   932 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   6.00-7.00   sec   111 MBytes   933 Mbits/sec
0    345 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   6.50-7.00   sec   243 KBytes  3.98 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   6.00-7.00   sec   704 KBytes  5.77 Mbits/sec
3   1.41 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   7.00-7.50   sec  55.5 MBytes   931 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   7.00-7.50   sec   334 KBytes  5.47 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   7.50-8.00   sec  55.6 MBytes   932 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   7.00-8.00   sec   111 MBytes   932 Mbits/sec
0    351 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   7.50-8.00   sec   276 KBytes  4.52 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   7.00-8.00   sec   641 KBytes  5.25 Mbits/sec
2   1.41 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   8.00-8.50   sec  55.5 MBytes   931 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   8.00-8.50   sec   315 KBytes  5.17 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   8.50-9.00   sec  56.0 MBytes   940 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   8.00-9.00   sec   112 MBytes   936 Mbits/sec
0    359 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   8.50-9.00   sec  99.0 KBytes  1.62 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   8.00-9.00   sec   445 KBytes  3.65 Mbits/sec
2   65.0 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   9.00-9.50   sec  55.2 MBytes   927 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   9.00-9.50   sec   512 KBytes  8.39 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]   9.50-10.00  sec  46.3 MBytes   776 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]   9.00-10.00  sec   100 MBytes   837 Mbits/sec
0    370 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   9.50-10.00  sec  10.6 MBytes   178 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   9.00-10.00  sec  11.9 MBytes  99.6 Mbits/sec
14   91.9 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]  10.00-10.50  sec  42.8 MBytes   719 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  10.00-10.50  sec  13.2 MBytes   221 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]  10.50-11.00  sec  43.0 MBytes   721 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]  10.00-11.01  sec  86.2 MBytes   720 Mbits/sec
0    370 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  10.50-11.00  sec  13.2 MBytes   221 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  10.00-11.00  sec  26.3 MBytes   221 Mbits/sec
36   73.5 KBytes
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]  11.00-11.50  sec  43.0 MBytes   722 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  11.00-11.50  sec  13.1 MBytes   220 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Destination STDOUT: [  5]  11.50-12.00  sec  42.8 MBytes   718 Mbits/s
ec
Iperf (Board 1 -> Board 3) iperf Source :: STDOUT: [  4]  11.01-12.00  sec  85.0 MBytes   719 Mbits/sec
0    370 KBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  11.50-12.00  sec  13.4 MBytes   224 Mbits/s
ec
PUT /running
traffic start/stop: old state true, new state false
feedgnuplot process exited with code 0
Command "iperf3 -1 -f m -i 0.5 -s -p 5202" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
Command "iperf3 -1 -f m -i 0.5 -s -p 5201" on root@<IP_ADDRESS>:22 exited with code undefined and signal
undefined
Command "iperf3 -t 86400 -p 5201  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
Command "iperf3 -t 86400 -p 5202  -c <IP_ADDRESS>" on root@<IP_ADDRESS>:22 exited with code undefined and
signal undefined
GET /flows
GET /running
GET /flows
GET /running

It would seem that Iperf 2 flow (Board 2 to 3) worked but LBT is not able to display graph.

I don't see anything out of the ordinary in the logs you attached.
Please revert all patches on server.js applied so far and use:

This as a fix for the stack trace:

From 5e53b9334c65b27c4d659260af428fccb416b35c Mon Sep 17 00:00:00 2001
From: Vladimir Oltean<EMAIL_ADDRESS>Date: Wed, 19 Sep 2018 18:43:34 +0300
Subject: [PATCH 1/3] nodejs-lbt: initialize the plotter early in startFlows()

* It can happen that the stopTraffic() function is called before
  the plotter even has time to initialize, since that was previously
  happening *after* the SSH connections were initiated.
* Start the plotter early, so that killing it is always a valid
  operation in stopTraffic().
* Avoids:

  /usr/lib/node_modules/lbt/server.js:450
  state.plotter[flowType].stdin.end();
  ^

  TypeError: Cannot read property 'end' of undefined
  at forEach (/usr/lib/node_modules/lbt/server.js:450:42)
  at Array.forEach (native)
  at stopTraffic (/usr/lib/node_modules/lbt/server.js:443:23)
  at Channel.stream.on (/usr/lib/node_modules/lbt/server.js:230:17)
  at emitOne (events.js:101:20)
  at Channel.emit (events.js:188:7)
  at Channel. (/usr/lib/node_modules/lbt/node_modules/ssh2/lib/Channel.js:135:18)
  at Channel.g (events.js:292:16)
  at emitNone (events.js:91:20)
  at Channel.emit (events.js:185:7)

Signed-off-by: Vladimir Oltean<EMAIL_ADDRESS>---
 package/nodejs-lbt/src/server.js | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/package/nodejs-lbt/src/server.js b/package/nodejs-lbt/src/server.js
index ddcbed5..5448bbe 100755
--- a/package/nodejs-lbt/src/server.js
+++ b/package/nodejs-lbt/src/server.js
@@ -346,6 +346,26 @@ function startFlows(flows, flowType) {
         feedgnuplotParams.push("--binwidth",  config[flowType].binwidth);
     }
     /* "--timefmt", "%H:%M:%S", "--set", 'format x "%H:%M:%S"', */
+    var plotter = spawn("feedgnuplot", feedgnuplotParams);
+    plotter.stdout.setEncoding("utf8");
+    plotter.stderr.setEncoding("utf8");
+    /* feedgnuplot stdout is delimited by </svg> ending tag.
+     * No need to emit line events. */
+    plotter.stdout.on("data", (data) => onGnuplotData.call(plotter, flowType, data));
+    /* Parse stderr of feedgnuplot by lines */
+    readline.createInterface({ input: plotter.stderr })
+    .on("line", (line) => {
+        console.log("feedgnuplot stderr: %s", line);
+        /* Some warning messages are not harmful */
+        if (!line.includes("adjusting to")) {
+            stopTraffic();
+        }
+    });
+    plotter.on("exit", (code) => {
+        console.log("feedgnuplot process exited with code %s", code);
+    });
+    plotter.svg = "";
+    state.plotter[flowType] = plotter;

     state.startTime = Date.now();
     flows.forEach((f) => {
@@ -408,26 +428,6 @@ function startFlows(flows, flowType) {
             f.dstSSHConn.connect(f.dstSSHConn.config);
         }
     });
-    var plotter = spawn("feedgnuplot", feedgnuplotParams);
-    plotter.stdout.setEncoding("utf8");
-    plotter.stderr.setEncoding("utf8");
-    /* feedgnuplot stdout is delimited by </svg> ending tag.
-     * No need to emit line events. */
-    plotter.stdout.on("data", (data) => onGnuplotData.call(plotter, flowType, data));
-    /* Parse stderr of feedgnuplot by lines */
-    readline.createInterface({ input: plotter.stderr })
-    .on("line", (line) => {
-        console.log("feedgnuplot stderr: %s", line);
-        /* Some warning messages are not harmful */
-        if (!line.includes("adjusting to")) {
-            stopTraffic();
-        }
-    });
-    plotter.on("exit", (code) => {
-        console.log("feedgnuplot process exited with code %s", code);
-    });
-    plotter.svg = "";
-    state.plotter[flowType] = plotter;
 }

 function startTraffic() {
--
2.7.4

These to aid in debugging where exactly does the flow processing stop:

From aa89b43060c6747035724b53fb8eda3e6197de20 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean<EMAIL_ADDRESS>Date: Wed, 19 Sep 2018 18:42:48 +0300
Subject: [PATCH 2/3] nodejs-lbt: print the lines which are sent to gnuplot for
 iperf

Signed-off-by: Vladimir Oltean<EMAIL_ADDRESS>---
 package/nodejs-lbt/src/server.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/nodejs-lbt/src/server.js b/package/nodejs-lbt/src/server.js
index 5448bbe..f436211 100755
--- a/package/nodejs-lbt/src/server.js
+++ b/package/nodejs-lbt/src/server.js
@@ -245,9 +245,10 @@ function onDestinationSSHConnReady(flowType) {
                 } else if (line.includes("Mbits/sec")) {
                     var arr = line.trim().split(/\ +/);
                     var bw = arr[arr.indexOf("Mbits/sec") - 1];
+                    var gnuplotcmd = time + " " + this.id + " " + bw + "\n";
                     /* Plot an extra iperf point */
-                    state.plotter[flowType].stdin.write(
-                            time + " " + this.id + " " + bw + "\n");
+                    state.plotter[flowType].stdin.write(gnuplotcmd);
+                    console.log(gnuplotcmd);
                 } else {
                     console.log("%s %s Destination STDOUT: %s",
                             this.label, flowType, line);
--
2.7.4

From 2471ab1b637f8c2fc79962fa7ba8c4c4dd874a0e Mon Sep 17 00:00:00 2001
From: Vladimir Oltean<EMAIL_ADDRESS>Date: Wed, 19 Sep 2018 19:27:16 +0300
Subject: [PATCH 3/3] nodejs-lbt: dump every plotter svg to a file on disk for
 debugging

Signed-off-by: Vladimir Oltean<EMAIL_ADDRESS>---
 package/nodejs-lbt/src/server.js | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/package/nodejs-lbt/src/server.js b/package/nodejs-lbt/src/server.js
index f436211..5446e8c 100755
--- a/package/nodejs-lbt/src/server.js
+++ b/package/nodejs-lbt/src/server.js
@@ -309,10 +309,14 @@ function onGnuplotData(flowType, data) {
         this.svg += halves[0] + "</svg>";
         /* Send it to the SSE clients */
         state.clients.forEach((stream) => {
+            fs.writeFile("plot" + this.counter + ".svg", this.svg, () => {
+                console.log("plot ", this.counter, " written to file.");
+            });
             stream.send(flowType, JSON.stringify({ svg: this.svg }));
         });
         /* Re-initialize the svg with the remainder */
         this.svg = halves[1];
+        this.counter = this.counter + 1;
     } else {
         this.svg += data;
     }
@@ -352,6 +356,7 @@ function startFlows(flows, flowType) {
     plotter.stderr.setEncoding("utf8");
     /* feedgnuplot stdout is delimited by </svg> ending tag.
      * No need to emit line events. */
+    plotter.counter = 0;
     plotter.stdout.on("data", (data) => onGnuplotData.call(plotter, flowType, data));
     /* Parse stderr of feedgnuplot by lines */
     readline.createInterface({ input: plotter.stderr })
--
2.7.4

Also, I forgot to ask, but what browser version were you using before, and what browser are you using now? I think this application has only been tested on certain versions of Firefox.

Also, I forgot to ask, but what browser version were you using before, and what browser are you using now? I think this application has only been tested on certain versions of Firefox.

I'm currently use Firefox  64 bits v62.0
I will try to apply those patch and come back to you with new logs

Ok. Just send me logs from the failing case (Board 2 -> Board 3) this time.

here you can find logs for Iperf test (Board 2 -> Board 3).
After being stuck on main page for approximately 10 seconds, LBT display a graph but the plot of Iperf flow was halting and after 2 sequence value ploted, nothing happened. Moreover, when I stopped the tests, the LBT is closed itself.
GET /
GET /client.js
GET /flows
GET /running
PUT /flows
{"flows":{"iperf":[{"source":{"user":"root","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":
"root","hostname":"<IP_ADDRESS>","port":22},"port":5201,"transport":"tcp","bandwidth":-1,"enabled":false,
"label":"Iperf (Board 1 -> Board 3)","id":"5bfa1143-2d41-4a12-b1a1-102ad61f0099"},{"source":{"user":"ro
ot","hostname":"<IP_ADDRESS>","port":22},"destination":{"user":"root","hostname":"<IP_ADDRESS>","port":22
},"port":5202,"transport":"tcp","bandwidth":-1,"enabled":true,"label":"Iperf (Board 2 -> Board 3)","id"
:"df603e6d-8800-4d3b-bdf1-f853f593b2e7"}],"ping":[]}}
Successfully written flows to file.
PUT /running
traffic start/stop: old state false, new state true
sse :: established new connection to ::ffff:<IP_ADDRESS>
Iperf (Board 2 -> Board 3) iperf Destination :: conn ready
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
---------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
---------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Server listening on 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
---------
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: --------------------------------------------------
---------
Iperf (Board 2 -> Board 3) iperf Client :: conn ready
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: Connecting to host <IP_ADDRESS>, port 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 53362
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: Accepted connection from <IP_ADDRESS>, port 53362
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4] local <IP_ADDRESS> port 53364 connected to 172.1
5.0.3 port 5202
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 53364
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5] local <IP_ADDRESS> port 5202 connected to 172.
15.0.2 port 53364
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [ ID] Interval           Transfer     Bandwidth
  Retr  Cwnd
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   0.00-1.00   sec   110 MBytes   924 Mbits/sec
    0    365 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   1.00-2.00   sec   113 MBytes   943 Mbits/sec
    0    365 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   2.00-3.00   sec   113 MBytes   946 Mbits/sec
    0    783 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   3.00-4.00   sec   112 MBytes   940 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   4.00-5.00   sec   113 MBytes   945 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   5.00-6.00   sec   112 MBytes   942 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   6.00-7.00   sec   112 MBytes   938 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   7.00-8.00   sec   113 MBytes   945 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   8.00-9.00   sec   112 MBytes   940 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]   9.00-10.00  sec   112 MBytes   940 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  10.00-11.00  sec   112 MBytes   943 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  11.00-12.00  sec   112 MBytes   937 Mbits/sec
    0    822 KBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  12.00-13.00  sec   111 MBytes   932 Mbits/sec
    0   1.01 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  13.00-14.00  sec   103 MBytes   867 Mbits/sec
    0   1.01 MBytes
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [ ID] Interval           Transfer     Bandwidth
15.473 df603e6d-8800-4d3b-bdf1-f853f593b2e7 849

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.00-0.50   sec  50.6 MBytes   849 Mbits/s
ec
15.488 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   0.50-1.00   sec  56.1 MBytes   941 Mbits/s
ec
15.489 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.00-1.50   sec  56.1 MBytes   941 Mbits/s
ec
15.49 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   1.50-2.00   sec  56.1 MBytes   941 Mbits/s
ec
15.498 df603e6d-8800-4d3b-bdf1-f853f593b2e7 932

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.00-2.50   sec  55.8 MBytes   932 Mbits/s
ec
15.518 df603e6d-8800-4d3b-bdf1-f853f593b2e7 945

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   2.50-3.00   sec  56.1 MBytes   945 Mbits/s
ec
15.521 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.00-3.50   sec  56.1 MBytes   941 Mbits/s
ec
15.523 df603e6d-8800-4d3b-bdf1-f853f593b2e7 930

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   3.50-4.00   sec  55.7 MBytes   930 Mbits/s
ec
15.527 df603e6d-8800-4d3b-bdf1-f853f593b2e7 950

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.00-4.50   sec  56.3 MBytes   950 Mbits/s
ec
15.529 df603e6d-8800-4d3b-bdf1-f853f593b2e7 942

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   4.50-5.00   sec  56.1 MBytes   942 Mbits/s
ec
15.53 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   5.00-5.50   sec  56.1 MBytes   941 Mbits/s
ec
15.531 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   5.50-6.00   sec  56.1 MBytes   941 Mbits/s
ec
15.533 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   6.00-6.50   sec  56.1 MBytes   941 Mbits/s
ec
15.534 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   6.50-7.00   sec  56.1 MBytes   941 Mbits/s
ec
15.536 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   7.00-7.50   sec  56.1 MBytes   941 Mbits/s
ec
15.538 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   7.50-8.00   sec  56.1 MBytes   941 Mbits/s
ec
15.539 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   8.00-8.50   sec  56.1 MBytes   941 Mbits/s
ec
15.542 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   8.50-9.00   sec  56.1 MBytes   941 Mbits/s
ec
15.544 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   9.00-9.50   sec  56.2 MBytes   941 Mbits/s
ec
15.545 df603e6d-8800-4d3b-bdf1-f853f593b2e7 942

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]   9.50-10.00  sec  56.0 MBytes   942 Mbits/s
ec
15.547 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  10.00-10.50  sec  56.1 MBytes   941 Mbits/s
ec
15.548 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  10.50-11.00  sec  56.1 MBytes   941 Mbits/s
ec
15.549 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  11.00-11.50  sec  56.1 MBytes   941 Mbits/s
ec
15.557 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  11.50-12.00  sec  56.1 MBytes   941 Mbits/s
ec
15.558 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  12.00-12.50  sec  56.1 MBytes   941 Mbits/s
ec
15.559 df603e6d-8800-4d3b-bdf1-f853f593b2e7 918

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  12.50-13.00  sec  54.7 MBytes   918 Mbits/s
ec
15.562 df603e6d-8800-4d3b-bdf1-f853f593b2e7 871

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  13.00-13.50  sec  51.9 MBytes   871 Mbits/s
ec
15.564 df603e6d-8800-4d3b-bdf1-f853f593b2e7 867

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  13.50-14.00  sec  51.7 MBytes   867 Mbits/s
ec
15.566 df603e6d-8800-4d3b-bdf1-f853f593b2e7 869

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  14.00-14.50  sec  51.8 MBytes   869 Mbits/s
ec
15.912 df603e6d-8800-4d3b-bdf1-f853f593b2e7 869

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  14.50-15.00  sec  51.8 MBytes   869 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  14.00-15.00  sec   104 MBytes   874 Mbits/sec
    0   1.01 MBytes
plot  1 written to file.
plot  2 written to file.
16.251 df603e6d-8800-4d3b-bdf1-f853f593b2e7 867

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  15.00-15.50  sec  51.7 MBytes   867 Mbits/s
ec
plot  3 written to file.
16.748 df603e6d-8800-4d3b-bdf1-f853f593b2e7 870

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  15.50-16.00  sec  52.1 MBytes   870 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  15.00-16.00  sec   103 MBytes   869 Mbits/sec
    0   1.01 MBytes
plot  4 written to file.
17.462 df603e6d-8800-4d3b-bdf1-f853f593b2e7 880

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  16.00-16.50  sec  52.2 MBytes   880 Mbits/s
ec
plot  5 written to file.
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  16.00-17.00  sec   104 MBytes   870 Mbits/sec
    0   1.01 MBytes
18.174 df603e6d-8800-4d3b-bdf1-f853f593b2e7 870

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  16.50-17.00  sec  51.8 MBytes   870 Mbits/s
ec
18.244 df603e6d-8800-4d3b-bdf1-f853f593b2e7 874

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  17.00-17.50  sec  52.1 MBytes   874 Mbits/s
ec
plot  6 written to file.
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  17.00-18.00  sec   104 MBytes   871 Mbits/sec
    0   1.01 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  18.00-19.00  sec   108 MBytes   902 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  19.00-20.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  20.00-21.00  sec   112 MBytes   942 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  21.00-22.00  sec   111 MBytes   935 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  22.00-23.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  23.00-24.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  24.00-25.00  sec   112 MBytes   941 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  25.00-26.00  sec   111 MBytes   936 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  26.00-27.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  27.00-28.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  28.00-29.00  sec   112 MBytes   943 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  29.00-30.00  sec   110 MBytes   923 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  30.00-31.00  sec   100 MBytes   839 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  31.00-32.00  sec   102 MBytes   859 Mbits/sec
    0   1.63 MBytes
32.804 df603e6d-8800-4d3b-bdf1-f853f593b2e7 869

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  17.50-18.00  sec  51.8 MBytes   869 Mbits/s
ec
32.806 df603e6d-8800-4d3b-bdf1-f853f593b2e7 845

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  18.00-18.50  sec  50.4 MBytes   845 Mbits/s
ec
32.819 df603e6d-8800-4d3b-bdf1-f853f593b2e7 935

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  18.50-19.00  sec  55.7 MBytes   935 Mbits/s
ec
32.82 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  19.00-19.50  sec  56.1 MBytes   941 Mbits/s
ec
32.821 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  19.50-20.00  sec  56.1 MBytes   941 Mbits/s
ec
32.822 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  20.00-20.50  sec  56.1 MBytes   941 Mbits/s
ec
32.823 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  20.50-21.00  sec  56.1 MBytes   941 Mbits/s
ec
32.835 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  21.00-21.50  sec  56.1 MBytes   941 Mbits/s
ec
32.836 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  21.50-22.00  sec  56.1 MBytes   941 Mbits/s
ec
32.838 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  22.00-22.50  sec  56.1 MBytes   941 Mbits/s
ec
32.839 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  22.50-23.00  sec  56.1 MBytes   941 Mbits/s
ec
32.84 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  23.00-23.50  sec  56.1 MBytes   941 Mbits/s
ec
32.844 df603e6d-8800-4d3b-bdf1-f853f593b2e7 938

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  23.50-24.00  sec  55.9 MBytes   938 Mbits/s
ec
32.845 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  24.00-24.50  sec  56.1 MBytes   941 Mbits/s
ec
32.847 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  24.50-25.00  sec  56.1 MBytes   941 Mbits/s
ec
32.848 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  25.00-25.50  sec  56.1 MBytes   941 Mbits/s
ec
32.853 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  25.50-26.00  sec  56.1 MBytes   941 Mbits/s
ec
32.855 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  26.00-26.50  sec  56.1 MBytes   941 Mbits/s
ec
32.856 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  26.50-27.00  sec  56.1 MBytes   941 Mbits/s
ec
32.875 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  27.00-27.50  sec  56.1 MBytes   941 Mbits/s
ec
32.877 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  27.50-28.00  sec  56.1 MBytes   941 Mbits/s
ec
32.878 df603e6d-8800-4d3b-bdf1-f853f593b2e7 941

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  28.00-28.50  sec  56.1 MBytes   941 Mbits/s
ec
32.879 df603e6d-8800-4d3b-bdf1-f853f593b2e7 940

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  28.50-29.00  sec  56.1 MBytes   940 Mbits/s
ec
32.88 df603e6d-8800-4d3b-bdf1-f853f593b2e7 943

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  29.00-29.50  sec  56.2 MBytes   943 Mbits/s
ec
32.881 df603e6d-8800-4d3b-bdf1-f853f593b2e7 915

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  29.50-30.00  sec  54.5 MBytes   915 Mbits/s
ec
32.882 df603e6d-8800-4d3b-bdf1-f853f593b2e7 841

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  30.00-30.50  sec  50.1 MBytes   841 Mbits/s
ec
32.883 df603e6d-8800-4d3b-bdf1-f853f593b2e7 840

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  30.50-31.00  sec  50.0 MBytes   840 Mbits/s
ec
32.883 df603e6d-8800-4d3b-bdf1-f853f593b2e7 850

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  31.00-31.50  sec  50.7 MBytes   850 Mbits/s
ec
32.884 df603e6d-8800-4d3b-bdf1-f853f593b2e7 852

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  31.50-32.00  sec  51.0 MBytes   852 Mbits/s
ec
plot  7 written to file.
33.664 df603e6d-8800-4d3b-bdf1-f853f593b2e7 894

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  32.00-32.50  sec  53.0 MBytes   894 Mbits/s
ec
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  32.00-33.00  sec   106 MBytes   892 Mbits/sec
    0   1.63 MBytes
33.949 df603e6d-8800-4d3b-bdf1-f853f593b2e7 898

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  32.50-33.00  sec  53.5 MBytes   898 Mbits/s
ec
plot  8 written to file.
34.25 df603e6d-8800-4d3b-bdf1-f853f593b2e7 874

Iperf (Board 2 -> Board 3) iperf Destination STDOUT: [  5]  33.00-33.50  sec  52.4 MBytes   874 Mbits/s
ec
plot  9 written to file.
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  33.00-34.00  sec   102 MBytes   860 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  34.00-35.00  sec   105 MBytes   881 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  35.00-36.00  sec   102 MBytes   860 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  36.00-37.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  37.00-38.00  sec   111 MBytes   933 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  38.00-39.00  sec   106 MBytes   891 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  39.00-40.00  sec   112 MBytes   941 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  40.00-41.00  sec   111 MBytes   937 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  41.00-42.00  sec   109 MBytes   912 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  42.00-43.00  sec   112 MBytes   943 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  43.00-44.00  sec   108 MBytes   902 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  44.00-45.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  45.00-46.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  46.00-47.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  47.00-48.00  sec   112 MBytes   941 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  48.00-49.00  sec   111 MBytes   936 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  49.00-50.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  50.00-51.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  51.00-52.00  sec   112 MBytes   942 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  52.00-53.00  sec   111 MBytes   934 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  53.00-54.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  54.00-55.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  55.00-56.00  sec   112 MBytes   943 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  56.00-57.00  sec   112 MBytes   943 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  57.00-58.00  sec   111 MBytes   935 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  58.00-59.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  59.00-60.00  sec   112 MBytes   944 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  60.00-61.00  sec   112 MBytes   943 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  61.00-62.00  sec   112 MBytes   942 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  62.00-63.00  sec   111 MBytes   936 Mbits/sec
    0   1.63 MBytes
Iperf (Board 2 -> Board 3) iperf Source :: STDOUT: [  4]  63.00-64.00  sec   111 MBytes   933 Mbits/sec
    0   1.63 MBytes
PUT /running
traffic start/stop: old state true, new state false
/usr/lib/node_modules/lbt/server.js:457
         state.plotter[flowType].stdin.end();
                                      ^

TypeError: Cannot read property 'end' of undefined
    at forEach (/usr/lib/node_modules/lbt/server.js:457:32)
    at Array.forEach (native)
    at stopTraffic (/usr/lib/node_modules/lbt/server.js:454:23)
    at onStartStopTraffic (/usr/lib/node_modules/lbt/server.js:494:9)
    at IncomingMessage.request.on.e (/usr/lib/node_modules/lbt/server.js:91:17)
    at emitNone (events.js:86:13)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

[1]+  Done(1)                    /usr/lib/node_modules/lbt/server.js

I see that the "iperf Destination STDOUT" emitted some data rather sporadically, a small burst around 15 to 18 seconds in, and a second burst around the 32 seconds timestamp.
I'm afraid there's not much the LBT program can do to help with that. Basically there's a network issue with the SSH connection to the destination, which prevents the iperf stdout from arriving (and being plotted) in time and not bursty.
I still stand by my position that the login IP and the traffic IP should be different. In fact, below you can find attached a patch where these are separated. You have to delete your existing flows.json and re-create the setup. Please configure the "Source IP" and "Destination IP" in the 172.15.0.x network, and "Source Login" and "Destination Login" in the 192.168.15.x network.
From 20d2999765c0a5588fb2238115b575c5cb50898a Mon Sep 17 00:00:00 2001
From: Vladimir Oltean<EMAIL_ADDRESS>Date: Thu, 20 Sep 2018 15:04:07 +0300
Subject: [PATCH] nodejs-lbt: separate the networks for login and data

* This allows iperf and ping traffic to be ran on different routes
  than the network route used to establish an SSH session between the
  LBT web server and those machines.

Signed-off-by: Vladimir Oltean<EMAIL_ADDRESS>---
 package/nodejs-lbt/src/client.js  | 32 +++++++++++++++++++++++++-------
 package/nodejs-lbt/src/flows.json | 10 ++++++++++
 package/nodejs-lbt/src/index.html | 10 +++++++---
 package/nodejs-lbt/src/server.js  | 20 ++++++++++++++------
 4 files changed, 56 insertions(+), 16 deletions(-)

diff --git a/package/nodejs-lbt/src/client.js b/package/nodejs-lbt/src/client.js
index 6f554ad..fe21c3c 100644
--- a/package/nodejs-lbt/src/client.js
+++ b/package/nodejs-lbt/src/client.js
@@ -14,7 +14,11 @@ var serverState = {
 /* Type of e is InputEvent.
  * Type of e.target is HTMLTableCellElement. */
 function changeFlow(classes, text) {
-    if (classes.contains("source")) {
+    if (classes.contains("sourceLogin")) {
+        this.sourceLoginText = text;
+    } else if (classes.contains("destinationLogin")) {
+        this.destinationLoginText = text;
+    } else if (classes.contains("source")) {
         this.sourceText = text;
     } else if (classes.contains("destination")) {
         this.destinationText = text;
@@ -45,8 +49,10 @@ function addFlow(flowType) {
     switch (flowType) {
     case "iperf":
         this.push({
-            sourceText: "user@hostname:port",
-            destinationText: "user@hostname:port",
+            sourceText: "hostname",
+            sourceLoginText: "user@hostname:port",
+            destinationText: "hostname",
+            destinationLoginText: "user@hostname:port",
             port: "n/a",
             transport: "tcp",
             bandwidth: "n/a",
@@ -56,8 +62,10 @@ function addFlow(flowType) {
         break;
     case "ping":
         this.push({
-            sourceText: "user@hostname:port",
-            destinationText: "user@hostname:port",
+            sourceText: "hostname",
+            sourceLoginText: "user@hostname:port",
+            destinationText: "hostname",
+            destinationLoginText: "user@hostname:port",
             intervalType: "adaptive",
             intervalMS: "n/a",
             packetSize: "64",
@@ -93,6 +101,8 @@ function populateRow(flowType, flow) {
     var label           = '<td ' + index + inputEditable + ' class="editable label">' + flow.label + '</td>';
     var sourceText      = '<td ' + index + inputEditable + ' class="editable source">' + flow.sourceText + '</td>';
     var destinationText = '<td ' + index + inputEditable + ' class="editable destination">' + flow.destinationText + '</td>';
+    var sourceLoginText = '<td ' + index + inputEditable + ' class="editable sourceLogin">' + flow.sourceLoginText + '</td>';
+    var destinationLoginText = '<td ' + index + inputEditable + ' class="editable destinationLogin">' + flow.destinationLoginText + '</td>';
     var btnRemove       = '<td> <button type="button" ' + inputDisabled + index +
                           'class="btnRemove">-</button> </td>';
     switch (flowType) {
@@ -105,7 +115,7 @@ function populateRow(flowType, flow) {
             '</select>' +
             '</td>';
         var bandwidth = '<td ' + index + inputEditable + ' class="editable bandwidth">' + flow.bandwidth + '</td>';
-        this.innerHTML = flowEnabled + label + sourceText + destinationText + port + transport + bandwidth + btnRemove;
+        this.innerHTML = flowEnabled + label + sourceLoginText + sourceText + destinationLoginText + destinationText + port + transport + bandwidth + btnRemove;
         break;
     case "ping":
         var intervalType = '<td>' +
@@ -116,7 +126,7 @@ function populateRow(flowType, flow) {
             '</td>';
         var intervalMS = '<td ' + index + inputEditable + ' class="editable interval-ms">' + flow.intervalMS + '</td>';
         var packetSize = '<td ' + index + inputEditable + ' class="editable packet-size">' + flow.packetSize + '</td>';
-        this.innerHTML = flowEnabled + label + sourceText + destinationText + intervalType + intervalMS + packetSize + btnRemove;
+        this.innerHTML = flowEnabled + label + sourceLoginText + sourceText + destinationLoginText + destinationText + intervalType + intervalMS + packetSize + btnRemove;
         break;
     default:
         throw new Error("populateRow: invalid flow type " + flowType);
@@ -328,6 +338,8 @@ function curateFlowsForSend(flows) {
         }
         newFlows.iperf.push({
             source: parseSentLoginData(f.sourceText),
+            sourceLogin: parseSentLoginData(f.sourceLoginText),
+            destinationLogin: parseSentLoginData(f.destinationLoginText),
             destination: parseSentLoginData(f.destinationText),
             port: +f.port,
             transport: f.transport,
@@ -348,6 +360,8 @@ function curateFlowsForSend(flows) {
         }
         newFlows.ping.push({
             source: parseSentLoginData(f.sourceText),
+            sourceLogin: parseSentLoginData(f.sourceLoginText),
+            destinationLogin: parseSentLoginData(f.destinationLoginText),
             destination: parseSentLoginData(f.destinationText),
             intervalType: f.intervalType,
             intervalMS: (f.intervalType == "periodic") ? +f.intervalMS : -1,
@@ -376,7 +390,9 @@ function parseRecvFlows(flows) {
         }
         newFlows.iperf.push({
             sourceText: parseRecvLoginData(f.source),
+            sourceLoginText: parseRecvLoginData(f.sourceLogin),
             destinationText: parseRecvLoginData(f.destination),
+            destinationLoginText: parseRecvLoginData(f.destinationLogin),
             port: +f.port,
             transport: f.transport,
             bandwidth: (f.transport == "udp") ? +f.bandwidth : "n/a",
@@ -396,7 +412,9 @@ function parseRecvFlows(flows) {
         }
         newFlows.ping.push({
             sourceText: parseRecvLoginData(f.source),
+            sourceLoginText: parseRecvLoginData(f.sourceLogin),
             destinationText: parseRecvLoginData(f.destination),
+            destinationLoginText: parseRecvLoginData(f.destinationLogin),
             intervalType: f.intervalType,
             intervalMS: (f.intervalType == "periodic") ? +f.intervalMS : "n/a",
             packetSize: f.packetSize,
diff --git a/package/nodejs-lbt/src/flows.json b/package/nodejs-lbt/src/flows.json
index 9678c98..20a51bb 100644
--- a/package/nodejs-lbt/src/flows.json
+++ b/package/nodejs-lbt/src/flows.json
@@ -3,11 +3,21 @@
 		"iperf": [
 			{
 				"source": {
+					"user": "root",
+					"hostname": "<IP_ADDRESS>",
+					"port": 22
+				},
+				"sourceLogin": {
 					"user": "temp",
 					"hostname": "localhost",
 					"port": 22
 				},
 				"destination": {
+					"user": "root",
+					"hostname": "<IP_ADDRESS>",
+					"port": 22
+				},
+				"destinationLogin": {
 					"user": "temp",
 					"hostname": "localhost",
 					"port": 22
diff --git a/package/nodejs-lbt/src/index.html b/package/nodejs-lbt/src/index.html
index ec208ec..157b6c9 100644
--- a/package/nodejs-lbt/src/index.html
+++ b/package/nodejs-lbt/src/index.html
@@ -22,8 +22,10 @@
           <tr>
             <th>Enabled</th>
             <th>Label</th>
-            <th>Source</th>
-            <th>Destination</th>
+            <th>Source Login</th>
+            <th>Source IP</th>
+            <th>Destination Login</th>
+            <th>Destination IP</th>
             <th>Port</th>
             <th>Transport</th>
             <th>(UDP) Bandwidth</th>
@@ -38,7 +40,9 @@
           <tr>
             <th>Enabled</th>
             <th>Label</th>
-            <th>Source</th>
+            <th>Source Login</th>
+            <th>Source IP</th>
+            <th>Destination Login</th>
             <th>Destination</th>
             <th>Interval type</th>
             <th>Interval (ms)</th>
diff --git a/package/nodejs-lbt/src/server.js b/package/nodejs-lbt/src/server.js
index 5446e8c..a1b5adc 100755
--- a/package/nodejs-lbt/src/server.js
+++ b/package/nodejs-lbt/src/server.js
@@ -393,9 +393,9 @@ function startFlows(flows, flowType) {
             stopTraffic(new Error(msg));
         });
         f.srcSSHConn.config = {
-            username: f.source.user,
-            host: f.source.hostname,
-            port: f.source.port,
+            username: f.sourceLogin.user,
+            host: f.sourceLogin.hostname,
+            port: f.sourceLogin.port,
             privateKey: sshPrivateKey
         };
         f.dstSSHConn = new sshClient();
@@ -408,9 +408,9 @@ function startFlows(flows, flowType) {
             stopTraffic(new Error(msg));
         });
         f.dstSSHConn.config = {
-            username: f.destination.user,
-            host: f.destination.hostname,
-            port: f.destination.port,
+            username: f.destinationLogin.user,
+            host: f.destinationLogin.hostname,
+            port: f.destinationLogin.port,
             privateKey: sshPrivateKey
         };
         if (flowType == "ping" && config.ping.measurement == "rtt") {
@@ -545,6 +545,8 @@ function readPlaintextFromFile(filename, exitOnFail) {
  *                 id: [uuidv4],
  *                 source: "user@host",
  *                 destination: "user@host",
+ *                 sourceLogin: "user@host",
+ *                 destinationLogin: "user@host",
  *                 port: integer,
  *                 transport: "tcp|udp",
  *                 bandwidth: integer,
@@ -558,6 +560,8 @@ function readPlaintextFromFile(filename, exitOnFail) {
  *                 id: [uuidv4],
  *                 source: "user@host",
  *                 destination: "user@host",
+ *                 sourceLogin: "user@host",
+ *                 destinationLogin: "user@host",
  *                 intervalType: "periodic|adaptive",
  *                 intervalMS: integer,
  *                 enabled: boolean,
@@ -603,7 +607,9 @@ function curateStateForSend(state) {
     state.flows.iperf.forEach((f) => {
         newFlows.iperf.push({
             source: f.source,
+            sourceLogin: f.sourceLogin,
             destination: f.destination,
+            destinationLogin: f.destinationLogin,
             port: f.port,
             transport: f.transport,
             bandwidth: f.bandwidth,
@@ -614,7 +620,9 @@ function curateStateForSend(state) {
     state.flows.ping.forEach((f) => {
         newFlows.ping.push({
             source: f.source,
+            sourceLogin: f.sourceLogin,
             destination: f.destination,
+            destinationLogin: f.destinationLogin,
             intervalType: f.intervalType,
             intervalMS: f.intervalMS,
             packetSize: f.packetSize,
--
2.7.4

Thank you, I will try your solution but I still don't understand why it worked before and no longer. Because I doesn't change anything except xml files and update sdcard.img for new kernel.

You said this also occurs with the prioritizing xml. But if you take a moment to understand what the prioritizing config does, you'll see that in the case of a single flow it actually behaves identically to the standard configuration. You only notice the prioritization when you have multiple flows, one with a higher priority than the other (that is to say, priority is relative).
So I'd ask you to first confirm that the bursty iperf data between board 2 -> board 3 happens with a clean config (sja1105-tool config default -f ls), and then focus on that scenario only until it's solved.

Here you can find the manual Iperf test I made, It seems to work :
**Server**

iperf -s -p 5201
------------------------------------------------------------
Server listening on TCP port 5201
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local <IP_ADDRESS> port 5201 connected with <IP_ADDRESS> port 57092
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.09 GBytes   939 Mbits/sec

**Client**

iperf -c <IP_ADDRESS> -p 5201
------------------------------------------------------------
Client connecting to <IP_ADDRESS>, TCP port 5201
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local <IP_ADDRESS> port 57092 connected with <IP_ADDRESS> port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.09 GBytes   940 Mbits/sec

Thank you for coming back to me. I checked your previous answer and modified few files in order to seperate IP source & Destination and IP login & Destination.
Fun fact: after a complete rebuild of sdcard.img after a few weeks, this problem was solved without any changes compared to those made when the problem occurred, but I still made the changes you made. have advised, in order to have a robust version against this problem.
I'm currently working on script modification in order to have more than 2 Iperf flow allowed during TSN demo tests. If your are interested, I could create a topic where I could display the results.

Thank you, feel free to contribute back fixes or improvements to the demo applications.

Ok, I will continue my tests and I will open an issue which purpose will be to discuss around those results.
On another level, regarding a previous question related to TSN functionalities evolutions, you told me that Frame preemption on the Ethernet controller ports and Frame preemption and seamless redundancy on the integrated L2 switch will be available on LS1028 chips. Could you provide me a COTS roadmap of NXP's involvement & evolutions on TSN if you have one ?

Could you provide me a COTS roadmap of NXP's involvement & evolutions on TSN if you have one ?

Sorry for acknowledging your request so late. I still don't have an LS1028 roadmap that I can share unfortunately, but I'll come back to you when I do.