How do I add Open-MX multiqueue support to my NIC firmware?
As of today, only the myri10ge firmware for Myri-10G boards is known to have built-in Open-MX-aware multiqueue support. It is included in myri10ge firmware since version 1.4.33. First, you need to make sure your hardware supports multiple Rx queues (receive queues). Then you need to get your firmware sources and be able to rebuild/reflash it. What you need to change is the code that choose a Rx queue depending on the packet contents. Here’s a Open-MX packet description: • Bytes 1-6 and 7-12: source and destination mac address. • Bytes 13-14: Ethernet type. You have to match 0x86DF for Open-MX there. • Bytes 17: Open-MX type. • Byte 18: Destination endpoint number, except if the Open-MX type is 0x2a (and some control packets we do not care about). • Byte 32: Destination endpoint number, only if the Open-MX type is 0x2a. So you need to get the endpoint number and just hash it so that all packets from the same endpoint go to the same Rx queue. This ensures there will be no cache effects b