QNet internals

Hi all,

Is there a way to tinker with QNet settings and test them out?

I read the help for lsm-qnet.so and it mentioned a few options which we can try while loading the protocol. I tried setting the ‘no_ack’ option to 1 but I really didnt notice any change in programs containing MsgSend and MsgReceive etc. I have two QNX machines at my disposal and I had set that option in the /etc/system/sysinit file itself on both machines.

Can some one point me to exactly where the effect will show if I set no_ack as 1? Is it in the kernel interactions or with the QNet Resource manager etc? My initial thought was MsgSend would become a non blocking call, but soon I found out that I was very wrong.

Also, if you guys can suggest some ideas for programs/scripts of various nature to test the quality of service with the ACKing mechanism shut off… Basically I want to stress test QNet with and without ACKing and see if messages are lost due to not ACKing them when messages are bombarded from one system to another.


The no ack simply mean that you assume the medium to be 100% reliable. Ethernet isn’t.

If you loose packets went you aren’t suppose, I believe timeout will take over but it will drastically reduce efficiency. Just a guess.

I don’t see why you would want to turn ack off. As far as I know, there is very little to gain. However it can be useful for QNET is going over so sort of bus ( rapid IO, PCI, etc )

I won’t gain anything… like I said, I just want to see the characteristics of QNet… and the reason behind its QoS…

Like you said, timeout etc may occur when no ACKing is done… that is what I want to be sure of …

Help is still needed to arrive at something conclusive


The ACK stuff is in my opinion not related to QoS. It’s an optimization for specialize hardware that don’t need it.

Playing with no ack has no affect on your application nor in the kernel, but the ability to deliver the data or not. It will just affect the data exchange between the two qnet drivers ( code in lsm-qnet). Anything above the qnet layer is unaware was is going on in qnet’s belly.

If you want to get down in the QNet protocol, you could either get the source code to it or post on found27 where one of the person behing qnet is active there.

Oh… ok… Thanks for the help :slight_smile: