I have a problem when all connections/packets belongs to the same "flow" and are routed to the same core (and target on multi-path routing (ECMP)). In my current case one core gets all traffic, even with "-P8", and gets overloaded.
There is a "trick" by assigning a range to the loopback interface described here (and other places);
The source address. This is a test outer-source -> loadbalancer VIP. The source port can't be used if packets are fragmented and is apparently not used for NFQUEUE --queue-balance. There may also be network elements in between that does not include ports, even if that is not the problem in my case.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have a problem when all connections/packets belongs to the same "flow" and are routed to the same core (and target on multi-path routing (ECMP)). In my current case one core gets all traffic, even with "-P8", and gets overloaded.
There is a "trick" by assigning a range to the loopback interface described here (and other places);
https://github.com/Nordix/mconnect#many-source-addresses
I would like a "--srccidr" option also in iperf2.
Best Regards,
Lars Ekman
FYI; My project is still a WIP and the problem is described here https://github.com/Nordix/nfqueue-loadbalancer/blob/master/test/README.md#parallel-and-multi-queue
what part of the ip quintuple is giving uniqueness such that the parallels get bound to different cores? The source port will be unique with -P > 1
The source address. This is a test outer-source -> loadbalancer VIP. The source port can't be used if packets are fragmented and is apparently not used for
NFQUEUE --queue-balance. There may also be network elements in between that does not include ports, even if that is not the problem in my case.Does an increment option work, i.e. -B 192.168.1.2 -P 8 --incr-srcip would use .2 thru .9?
Yes, that should work fine.
I have now cloned an built locally and I'll be happy to test if you could implement something like this. From a branch or a patch will work fine.
This is done as described in ticket 112 Please do test and let me know your thoughts. It's in the 2-1-1-dev branch
Thanks a lot! I will try to get time to test is today, but Monday at the latest.