[dpdk-dev] generic load balancing

吴亚东 ydwoo0722 at gmail.com
Fri Dec 6 03:16:34 CET 2013


RSS is a way to distribute packets to multi cores while packets order in
the same flow still get maintained.

Round robin distribution of packets may cause ooo(out of order) of packets
in the same flow.
We also meet this problem in ipsec vpn case.
The tunneled packets are rss to the same queue if they are on the same
tunnel.
But if we dispatch the packets to the other cores to process, ooo packets
may occur and tcp performance may be greatly hurt.

If you enable rss on udp packets and some udp packets are ip fragmented,
rss of udp fragments(hash only calculated from ip addr) may be different
fom rss of udp non-fragment packets(hash with information of udp ports),
ooo may occur too.
So in kernel driver disables udp rss by default.

If intel supports round robin distribution of packets in the same flow,
Intel needs to provide some way like Cavium's SSO(tag switch) to maintain
packet order in the same flow. And it is hard to do so because intel's cpu
and nic are decoupled.





2013/12/6 Thomas Monjalon <thomas.monjalon at 6wind.com>

> Hello,
>
> 05/12/2013 16:42, Michael Quicquaro :
> > This is a good discussion and I hope Intel can see and benefit from it.
>
> Don't forget that this project is Open Source.
> So you can submit your patches for review.
>
> Thanks for participating
> --
> Thomas
>


More information about the dev mailing list