[Make-wifi-fast] Calling flent from python script

Toke Høiland-Jørgensen toke at redhat.com
Thu Mar 26 10:45:31 EDT 2020


Tim Higgins <tim at smallnetbuilder.com> writes:

> Apologies that some discussion with Toke and Dave took place outside this
> list. At Dave's request, I'm bringing the conversation back here so that
> others can benefit/contribute.
>
> I'm exploring using flent for OFDMA performance testing. I'm using Win10
> /AX200 STAs because the Win10 driver is the only one whose peformance I trust,
> in both bands and both directions.
>
> I have a python 3 script that associates each Win10 STA, starts netserver on
> it and runs a short netperf TCP_STREAM test to check that the STA is reachable
> and that netserver is running. I have to do this because flent provides no
> indication (other than hanging) when it's not really running.
>
> My problem is starting flent via the python script. Using the following,
> works:
>         p = subprocess.Popen(command, stdin=subprocess.PIPE,
> stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
>         (output, err) = p.communicate()
>         print('\n>>> output : ', output)
>         print('\n>>> err : ', err)
>
> But I get no output until flent finishes. I know flent prints the following
> when it starts, if I start it in another terminal window:
>
> /snb_devel$ flent rtt_fair_var -p all_scaled -l 10 -H 192.168.1.3 -H
> 192.168.1.15 -t "2.4 GHz Down NETGEAR RAX15 AX200Pico AX200mini OFDMA on" -o
> "snb_testresults/2020-03-25_16-06_netgear_rax15/2020-03-25_16-06_OFDMA_Traffic_w_ping/2020-03-25_16-06_netgear_rax15_snbofdma_tnp_24g_dn.png"
>
> Started Flent 1.2.2 using Python 3.6.9.
> Starting rtt_fair_var test. Expected run time: 20 seconds.
>
> I'll also get the above, plus the "Data file written..." result when I print
> output as above, but not until flent finishes.
>
> How can I get the two start lines returned to the python script when flent
> starts,  then the final data file written line when it finishes?

Rather than running Flent in this way, might I suggest you take a look
at the batch facility of Flent itself? That will allow you to specify a
list of tests to run, pre/post scripts before each test run, and easy
test repetition. It's there exactly for the purpose you are describing.

There's a commented example batch file here:

https://github.com/tohojo/flent/blob/master/batchfile.example

And here's the file used for the example in the paper describing Flent:

https://github.com/tohojo/flent/blob/master/flent-paper.batch

-Toke



More information about the Make-wifi-fast mailing list