Thanks to some inquries on linux-wireless, I took a look at wmediumd recently. The code could use a bit of work, and there are some features I’ve been meaning to add since forever, so I started gutting it with an eye towards sprucing up the architecture and feature set (changes can be found here).
One of the questions from the mailing list was whether wmediumd adds a lot of overhead compared to mac80211_hwsim. It is of course doing more work, with additional memory copies, context switches, etc — but is it enough to make wmediumd unworkable?
So I did a quick TCP iperf test on my laptop with an open mesh, and get the following numbers.
hwsim without wmediumd: [ 3] 0.0-10.0 sec 1.36 GBytes 1.16 Gbits/sec hwsim with wmediumd: [ 3] 0.0-10.0 sec 1.27 GBytes 1.09 Gbits/sec
It looks like wmediumd is doing fine. This is with monitors running, the non-monitor case does about twice that. Actually, I think this is a bit lower than it should be, but considering both cases are close, and a good deal faster than your typical wifi connection, it’s probably good enough for some level of bandwidth simulation.