QoS - Change the way we measure bw limits

This patch introduces new way of fetching the data.
Instead creating the file, it reads /dev/zero.
/dev/zero is always very fast, so we also break the
previous hard disk limitations.

The test time is limited to 5 seconds. After that we
calculate avg bytes per second value and compare it
to expected one.

Sometimes it is visible that first kilobytes of the
test file are downloaded a little bit faster than the
actual bw limit claims, especially while testing OVN
as a backend.
When it happens the avg bytes per second value that is
measured in the test could be higher than required limit.

It is pretty easy to show the case while testing QoS with iperf3:

Accepted connection from 172.24.5.1, port 59690
[  5] local 10.1.0.35 port 5201 connected to 172.24.5.1 port 59692
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  5]   0.00-1.00   sec  1.32 MBytes  11.0 Mbits/sec  139   2.62 KBytes
[  5]   1.00-2.00   sec   628 KBytes  5.15 Mbits/sec   96   10.5 KBytes
[  5]   2.00-3.00   sec   502 KBytes  4.12 Mbits/sec   84   7.85 KBytes
[  5]   3.00-4.00   sec   649 KBytes  5.32 Mbits/sec   83   10.5 KBytes
[  5]   4.00-5.00   sec   643 KBytes  5.26 Mbits/sec   84   3.93 KBytes
[  5]   5.00-6.00   sec   529 KBytes  4.33 Mbits/sec   73   5.23 KBytes
[  5]   6.00-7.00   sec   628 KBytes  5.15 Mbits/sec   92   20.9 KBytes
[  5]   7.00-8.00   sec   534 KBytes  4.37 Mbits/sec   82   18.3 KBytes
[  5]   8.00-9.00   sec   667 KBytes  5.47 Mbits/sec  110   7.85 KBytes
[  5]   9.00-10.00  sec   635 KBytes  5.20 Mbits/sec   90   11.8 KBytes
[  5]  10.00-10.02  sec  0.00 Bytes  0.00 bits/sec    0   11.8 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.02  sec  6.61 MBytes  5.53 Mbits/sec  933             sender
[  5]   0.00-10.02  sec  6.41 MBytes  5.36 Mbits/sec                  receiver
-----------------------------------------------------------

We can find out that during first second of the test the bw limit
is exceeded, but after that the traffic is shaped.

In our case when we run the tempest QoS test the avg bytes per second
measured value that we compare with bw limit is impacted.

Closes-Bug: 1866039

Change-Id: I0964464e709baf9958548384933bd000fdee979b
2 files changed