There is a mistake in Traffic Policy related to default units. It ruins your Traffic Policy if you use them.
In the three examples below, when setting the bandwidth without giving a sufix, VyOS says it takes it as kbps (kilobyte/s), but that is wrong, it actually takes it as something very different: kbit/s (kilobit/s).
```
vyos@vyos# set traffic-policy shaper S-F_C bandwidth
Possible completions:
auto Rate matches interface speed (default)
<number> Rate in k (1000) bytes per second
<number>bit bit(1), kbit(10^3), mbit(10^6), gbit, tbit
<number>ibit kibit(1024), mibit(1024^2), gibit(1024^3), tbit(1024^4)
<number>ibps kibps(1024*8), mibps(1024^2*8), gibps, tibps *Byte/sec*
<number>bps bps(8),kbps(8*10^3),mbps(8*10^6), gbps, tbps *Byte/sec*
```
```
vyos@vyos# set traffic-policy rate-control TBF bandwidth
Possible completions:
<number> Rate in k (1000) bytes per second
<number><suffix>
Rate with scaling suffix (mbit, mbps, ...)
```
```
vyos@vyos# set traffic-policy limiter LIMITER default bandwidth
Possible completions:
<number> Rate in k (1000) bytes per second
<number><suffix>
Rate with scaling suffix (mbit, mbps, ...)
```
Moreover, when defining the bandwidth of a class or the bandwidth of default traffic, VyOS does not only make the same mistake but it also shows the confusion:
```
vyos@vyos# set traffic-policy shaper S-F_C class 10 bandwidth
Possible completions:
<number> Bandwidth in Kbps(10^3 bits per second)
<number>% Percentage of overall rate (default 100%)
<number>bit bit(1), kbit(10^3), mbit(10^6), gbit, tbit
<number>ibit kibit(1024), mibit(1024^2), gibit(1024^3), tbit(1024^4)
<number>ibps kibps(1024*8), mibps(1024^2*8), gibps, tibps *Byte/sec*
<number>bps bps(8),kbps(8*10^3),mbps(8*10^6), gbps, tbps *Byte/sec*
```
```
vyos@vyos# set traffic-policy shaper S-F_C default bandwidth
Possible completions:
<number> Bandwidth in Kbps(10^3 bits per second)
<number>% Percentage of overall rate (default 100%)
<number>bit bit(1), kbit(10^3), mbit(10^6), gbit, tbit
<number>ibit kibit(1024), mibit(1024^2), gibit(1024^3), tbit(1024^4)
<number>ibps kibps(1024*8), mibps(1024^2*8), gibps, tibps *Byte/sec*
<number>bps bps(8),kbps(8*10^3),mbps(8*10^6), gbps, tbps *Byte/sec*
```
In the two examples above VyOS says (in the first line of possible completions), "if you don't give a unit suffix, your number will be taken as kbps" and it also explains that it means //10^3 bits per second//, which is wrong. kbps is not //10^3 bit per second// but 10^3 byte per second.
VyOS will again actually take the given number as kbit (kilobit per second), not as kbps.
Besides fixing these mistakes, it would also be good to check every default unit for every setting of every traffic policy.