[dpdk-dev] Redirection Table
Stefan Baranoff
sbaranoff at gmail.com
Tue Jan 7 14:03:56 CET 2014
All,
Does this mean that an application looking at traffic in something like an
IP/IP or GRE tunnel with only two endpoints on the tunnels but many clients
behind them must do software load balancing as the packets would IP only
(not TCP/UDP) with the same two addresses?
How much of a penalty is there for crossing processor boundaries in that
case and might a 1 CPU server, while less core dense, actually give better
performance/watt?
Thanks,
Stefan
Sent from my smart phone; people don't make typos, Swype does!
On Jan 7, 2014 3:36 AM, "Ivan Boule" <ivan.boule at 6wind.com> wrote:
> On 01/06/2014 05:52 PM, Michael Quicquaro wrote:
>
>> Thanks for the details. Can the hash function be modified so that I can
>> provide my own RSS function? i.e. my ultimate goal is to provide RSS that
>> is not dependent on packet contents.
>>
> No, the RSS function is "hard-wired" and only works on IPv4/IPv6 packets.
> All other packets are stored in the same queue (0 by default).
> You can change the RSS key used by the RSS function to compute the hash
> value.
> See the following testpmd command:
>
> port config X rss-hash-key <80 hexa digits>
>
> to set the 320-bit RSS key of port X.
>
> Best regards,
> Ivan
>
> You may have seen my thread "generic load balancing". At this point, I'm
>> realizing that the only way to accomplish this is to let the packets land
>> where they may (the queue where the NIC places the packet) and distribute
>> them (to other queues) by having some of the CPU processing devoted to this
>> task. Can you verify this?
>>
>> Regards,
>> - Michael.
>>
>>
>> On Mon, Jan 6, 2014 at 10:21 AM, Ivan Boule <ivan.boule at 6wind.com<mailto:
>> ivan.boule at 6wind.com>> wrote:
>>
>> On 12/31/2013 08:45 PM, Michael Quicquaro wrote:
>>
>> Has anyone used the "port config all reta (hash,queue)"
>> command of testpmd
>> with any success?
>>
>> I haven't found much documentation on it.
>>
>> Can someone provide an example on why and how it was used.
>>
>> Regards and Happy New Year,
>> Michael Quicquaro
>>
>> Hi Michael,
>>
>> "RETA" stands for Redirection Table.
>> It is a per-port configurable table of 128 entries that is used by the
>> RSS filtering feature of Intel 1GbE and 10GbE controllers to
>> select the
>> RX queue into which to store a received IP packet.
>> When receiving an IPv4/IPv6 packet, the controller computes a 32-bit
>> hash on:
>>
>> * the source address and the destination address of the IP header of
>> the packet,
>> * the source port and the destination port of the UDP/TCP
>> header, if any.
>>
>> Then, the controller takes the 7 lower bits of the RSS hash as an
>> index
>> into the RETA table to get the RX queue number where to store the
>> packet.
>>
>> The API of the DPDK includes a function that is exported by Poll Mode
>> Drivers to configure RETA entries of a given port.
>>
>> For test purposes, the testpmd application includes the following
>> command
>>
>> "port config X rss reta (hash,queue)[,(hash,queue)]"
>>
>> to configure RETA entries of a port X, with each couple (hash,queue)
>> contains the index of a RETA entry (between 0 and 127 included)
>> and the
>> RX queue number (between 0 and 15) to be stored into that RETA entry.
>>
>> Best regards
>> Ivan
>>
>> -- Ivan Boule
>> 6WIND Development Engineer
>>
>>
>>
>
> --
> Ivan Boule
> 6WIND Development Engineer
>
>
More information about the dev
mailing list