I'm not sure where CHR enters the picture here. Wouldn't you just use a wireless device of sufficient performance
and put it in bridge mode? Why have a CHR when you want to do only bridging?
(I could understand it when you have a limited-function wireless device and need more sophisticated routing)
The picture we need to replace a cable by means of wireless link, the throughput has to be not less than 100 mbps full-duplex, meaning no Wi-Fi with CSMA/CA but with TDMA. So we choose Mikrotik board because they offered nv2 and nstream protocol that are pseudo full-duplex. The wireless bridge has to be transparent too to other protocol like LACP, bfd and so on.
We setup a test connection with 4 Netmetal 5, attenuators, switch, etc. This "Device Under Test", has been connected to Spirent TestCenter to measure effective performance: various throughput,
latency, jitter, packet loss and so on.
Part of test setup can be seen in the following picture:
We found out that while the throughput can be acceptable (around 120 mbps fdx), the bit error rate is not acceptable for cable replacement purpose, because it is around 10E-4, using Netmetal 5.
That 10E-4 is due by the board which looses some frame every 10-30 minutes. That's happen when the board is loaded at 90% and even when the board is loaded only at 40%. These result happened with six diffent Netmetal 5.
So this board is not suitable for cable replacement. Cable replacement need bit error rate < 10E-9.
But RouterOS, can work on different hardware: so why don't try on x86 ? We put ROS on Core2 hardware of several years ago, running at 2 GHz and we did not loose a packet for days.
That confirms that even old x86 hardware outperforms Netmetal5 hardware, with more performance and stability.
The wireless interface used is the same, it is not problem of wireless interface, the problem is the board and the poor power of the Netmetal cpu. That's the point.
Bridging from ethernet to wireless in a trasparent way is cpu intensive task: Ethernet frames are different from wireless frame (which wireless frame is protocol dependant). Different sizes, different headers. Poor cpu means fewer frames bridged, higher cpu load.
Hope that now is more clear.
By the way: ESXi has not support for QCA9880, so I cannot use it for hypervisor. I had ubuntu kvm available, I tried it and it full support the wireless nic. I made it fully (passthrough) available to CHR VM but it does not see it. Instead if I bridge it at hypervisor level (without passthrough), CHR see it as a standard Ethernet device... quite funny
That could mean that I had to setup the wireless link at hypervisor then use it in CHR, but in this way I loose wireless management functionality of RouterOS and of course, nv2 or nstream.
At the end I tried standard RouterOS on the top of KVM, passing the wireless nic to it and it see it as it was native.