From: Yerden Zhumabekov <e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
To: Matt Laswell <laswell-bIuJOMs36aleGPcbtGPokg@public.gmane.org>
Cc: "dev-VfR2kkLFssw@public.gmane.org" <dev-VfR2kkLFssw@public.gmane.org>
Subject: Re: Load-balancing position field in DPDK load_balancer sample app vs. Hash table
Date: Sat, 15 Nov 2014 13:10:05 +0600 [thread overview]
Message-ID: <5466FC4D.1060405@sts.kz> (raw)
In-Reply-To: <CA+GnqApEaZYvDRajXibxcckHLQsnTwXAE5uGWsJM6hrUi2eyXg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Hello Matt,
You can specify RSS configuration through rte_eth_dev_configure()
function supplied with this structure:
struct rte_eth_conf port_conf = {
.rxmode = {
.mq_mode = ETH_MQ_RX_RSS,
...
},
.rx_adv_conf = {
.rss_conf = {
.rss_key = NULL,
.rss_hf = ETH_RSS_IPV4 | ETH_RSS_IPV6,
},
},
.....
};
In this case, RSS-hash is calculated over IP addresses only and with
default RSS key. Look at lib/librte_ether/rte_ethdev.h for other
definitions.
15.11.2014 0:49, Matt Laswell пишет:
> Hey Folks,
>
> This thread has been tremendously helpful, as I'm looking at adding
> RSS-based load balancing to my application in the not too distant
> future. Many thanks to all who have contributed, especially regarding
> symmetric RSS.
>
> Not to derail the conversation too badly, but could one of you point
> me to some example code that demonstrates the steps needed to
> configure RSS? We're using Niantic NICs, so I assume that this is
> pretty standard stuff, but having an example to study is a real leg up.
>
> Again, thanks for all of the information.
>
> --
> Matt Laswell
> laswell-bIuJOMs36aleGPcbtGPokg@public.gmane.org <mailto:laswell-bIuJOMs36aleGPcbtGPokg@public.gmane.org>
> infinite io, inc.
>
> On Fri, Nov 14, 2014 at 10:57 AM, Chilikin, Andrey
> <andrey.chilikin-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org <mailto:andrey.chilikin-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>> wrote:
>
> Fortville supports symmetrical hashing on HW level, a patch for
> i40e PMD was submitted a couple of weeks ago. For Niantic you can
> use symmetrical rss key recommended by Konstantin.
>
> Regards,
> Andrey
>
> -----Original Message-----
> From: dev [mailto:dev-bounces-VfR2kkLFssw@public.gmane.org
> <mailto:dev-bounces-VfR2kkLFssw@public.gmane.org>] On Behalf Of Ananyev, Konstantin
> Sent: Friday, November 14, 2014 4:50 PM
> To: Yerden Zhumabekov; Kamraan Nasim; dev-VfR2kkLFssw@public.gmane.org
> <mailto:dev-VfR2kkLFssw@public.gmane.org>
> Cc: Yuanzhang Hu
> Subject: Re: [dpdk-dev] Load-balancing position field in DPDK
> load_balancer sample app vs. Hash table
>
> > -----Original Message-----
> > From: Yerden Zhumabekov [mailto:e_zhumabekov-8EHiFRVJVgQ@public.gmane.org
> <mailto:e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>]
> > Sent: Friday, November 14, 2014 4:23 PM
> > To: Ananyev, Konstantin; Kamraan Nasim; dev-VfR2kkLFssw@public.gmane.org
> <mailto:dev-VfR2kkLFssw@public.gmane.org>
> > Cc: Yuanzhang Hu
> > Subject: Re: [dpdk-dev] Load-balancing position field in DPDK
> > load_balancer sample app vs. Hash table
> >
> > I'd like to interject a question here.
> >
> > In case of flow classification, one might possibly prefer for
> packets
> > from the same flow to fall on the same logical core. With this '%'
> > load balancing, it would require to get the same RSS hash value for
> > packets with direct (src to dst) and swapped (dst to src) IPs and
> > ports. Am I correct that hardware RSS calculation cannot provide
> this symmetry?
>
> As I remember, it is possible but you have to tweak rss key values.
> Here is a paper describing how to do that:
> http://www.ndsl.kaist.edu/~shinae/papers/TR-symRSS.pdf
> <http://www.ndsl.kaist.edu/%7Eshinae/papers/TR-symRSS.pdf>
>
> Konstantin
>
> >
> > 14.11.2014 20:44, Ananyev, Konstantin пишет:
> > > If you have a NIC that is capable to do HW hash computation, then
> > > you can do your load balancing based on that value.
> > > Let say ixgbe/igb/i40e NICs can calculate RSS hash value based on
> > > different combinations of dst/src Ips, dst/src ports.
> > > This value can be stored inside mbuf for each RX packet by PMD
> RX function.
> > > Then you can do:
> > > worker_id = mbuf->hash.rss % n_workersl
> > >
> > > That might to provide better balancing then using just one byte
> > > value, plus should be a bit faster, as in that case your
> balancer code don't need to touch packet's data.
> > >
> > > Konstantin
> >
> > --
> > Sincerely,
> >
> > Yerden Zhumabekov
> > State Technical Service
> > Astana, KZ
> >
>
>
--
Sincerely,
Yerden Zhumabekov
State Technical Service
Astana, KZ
next prev parent reply other threads:[~2014-11-15 7:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-13 18:29 Load-balancing position field in DPDK load_balancer sample app vs. Hash table Kamraan Nasim
[not found] ` <CAPrTskioYqu_aad7EeepyuYb-9wDZWDOWXQpdCrD5Yofom__vA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-14 10:53 ` Bruce Richardson
2014-11-14 14:44 ` Ananyev, Konstantin
[not found] ` <2601191342CEEE43887BDE71AB977258213ADDFA-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-14 16:23 ` Yerden Zhumabekov
[not found] ` <54662C64.9040500-8EHiFRVJVgQ@public.gmane.org>
2014-11-14 16:50 ` Ananyev, Konstantin
[not found] ` <2601191342CEEE43887BDE71AB977258213ADEA6-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-14 16:55 ` Yerden Zhumabekov
2014-11-14 16:57 ` Chilikin, Andrey
[not found] ` <AAC06825A3B29643AF5372F5E0DDF05335024E42-kPTMFJFq+rFT4JjzTwqWc7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-14 17:20 ` Yerden Zhumabekov
[not found] ` <546639EA.3040404-8EHiFRVJVgQ@public.gmane.org>
2014-11-17 10:15 ` Chilikin, Andrey
2014-11-14 18:49 ` Matt Laswell
[not found] ` <CA+GnqApEaZYvDRajXibxcckHLQsnTwXAE5uGWsJM6hrUi2eyXg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-15 7:10 ` Yerden Zhumabekov [this message]
[not found] ` <5466FC4D.1060405-8EHiFRVJVgQ@public.gmane.org>
2014-11-15 15:28 ` Matt Laswell
2014-11-17 0:48 ` Zhang, Helin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5466FC4D.1060405@sts.kz \
--to=e_zhumabekov-8ehifrvjvgq@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=laswell-bIuJOMs36aleGPcbtGPokg@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).