a defect in ipfw dummynet
bycn82 at gmail.com
Sat May 24 16:19:20 UTC 2014
Since you guys are working on the “named table” feature. So I have stopped implementing it using my way. Hence I got some time to read more about the existing codes. This afternoon I just started to read the dummynet part, then I have another question to ask. Maybe it is not a small defect, Or just because there are some more story which I don’t know. anyway.
when we run command as below,
>ipfw pipe config 1 100kbps
the userspace program need to read the bandwidth value which is “100kbps”, And I found the code as below,
if ((*end == 'B' &&
_substrcmp2(end, "Bi", "Bit/s") != 0) ||
_substrcmp2(end, "by", "bytes") == 0)
bw *= 8;
Sure it works. But I want to ask whether it can be more readable If we list down all the possibilities and directly “hard code” in the source, At least it can be more accurate.
With current logic, we have change to have below situation.
root at FB10Head:~ # ipfw pipe config 1 bw 1ByeBye <- the command will be considered as “1 Byte per second”
root at FB10Head:~ # ipfw pipe 1 show
00001: 8.000 bit/s 0 ms burst 0
q131073 50 sl. 0 flows (1 buckets) sched 65537 weight 0 lmax 0 pri 0 droptail
sched 65537 type FIFO flags 0x0 0 buckets 0 active
root at FB10Head:~ #
More information about the freebsd-net