The official website of the project http://www.linuximq.net/
The patches for assembly with different versions of the kernel:
imq for linux-3.13
md5 1f1eb139cb08ddc9fe9699970e9b2ace (original)
imq for linux-3.17
md5 7126a8e6200816f7ac55bee47338d4ec (fixed)
imq for linux-3.18
md5 c4abb4eb2940bb1132fd7856aab36549 (fixed)
imq for linux-4.0.3
md5 896ec7bb872987825203063365a0abf0 (fixed)
The main problem of the original version of IMQ - very strange works with NET_NS (ie inside lxc). version for 4.0.3 to work correctly with netns, version for 4.4.42 version for 4.9.3
It is not clear why need to create all at once imqX interfaces (in older kernels it was necessary). In the new kernels "ip li add" allows create any virtual interface even if man/help this type of interface is not specified)
I found an interesting feature: if the first run htb.init, and then raise imq0, then transit and incoming traffic limited to normal, but not limited to outbound traffic.
Important! First, raise the interface imqX, and then run htb.init!
Do not use container with "lxc.network.type = phys" for imqX interfaces! They can always be created inside the container through the "ip li add".
Remember! All virtual network interfaces after the end of container is removed.