[dpdk-dev] lpm performance

张伟 zhangwqh at 126.com
Wed Sep 21 04:42:15 CEST 2016


Got it.  Thanks for your guidance! 








在 2016-09-20 22:41:36,"Andriy Berestovskyy" <aber at semihalf.com> 写道:
>AFAIR Intel hardware should do the 10Gbit/s line rate (i.e. ~14,8
>MPPS) with one flow and LPM quite easily. Sorry, I don't have numbers
>to share at hand.
>
>Regarding the tool please see the pktgen-dpdk or TRex. Regarding the
>number of flows and overall benchmarking methodology - please see
>RFC2544.
>
>Andriy
>
>
>On Tue, Sep 20, 2016 at 12:47 PM, 张伟 <zhangwqh at 126.com> wrote:
>> Thanks so much for your reply!  Usually how did you test lpm performance
>> with variety of destination addresses? use which tool send the traffic? how
>> many flows rules will you add? what's the performance you get?
>>
>>
>>
>>
>>
>>
>> At 2016-09-20 17:41:13, "Andriy Berestovskyy" <aber at semihalf.com> wrote:
>>>Hey,
>>>You are correct. The LPM might need just one (TBL24) or two memory
>>>reads (TBL24 + TBL8). The performance also drops once you have a
>>>variety of destination addresses instead of just one (cache misses).
>>>
>>>In your case for the dst IP 192.168.1.2 you will have two memory reads
>>>(TBL24 + TBL8), because 192.168.1/24 block has the more specific route
>>>192.168.1.1/32.
>>>
>>>Regards,
>>>Andriy
>>>
>>>On Tue, Sep 20, 2016 at 12:18 AM, 张伟 <zhangwqh at 126.com> wrote:
>>>> Hi all,
>>>>
>>>>
>>>> Does anyone test IPv4 performance? If so, what's the throughput? I can
>>>> get almost 10Gb with 64 byte packets.  But before the test, I would expect
>>>> it will be less than 10G.  I thought the performance will not be affected by
>>>> the  number of rule entires. But the throughput will be related to whether
>>>> the flow needs to check the second layer table : TBL8.  Is my understanding
>>>> correct? I added this flow entries following this link:
>>>> http://www.slideshare.net/garyachy/understanding-ddpd-algorithmics
>>>> slide 10,
>>>>
>>>>
>>>>
>>>> struct ipv4_lpm_route ipv4_lpm_route_array[] = {
>>>>
>>>>         {IPv4(192, 168, 0, 0), 16, 0},
>>>>
>>>>         {IPv4(192, 168, 1, 0), 24, 1},
>>>>
>>>>         {IPv4(192, 168, 1, 1), 32, 2}
>>>>
>>>> };
>>>>
>>>> send the flow with dst IP:
>>>>
>>>> 192.168.1.2
>>>>
>>>> It should check the second layer table. But the performance is still 10G.
>>>> Does any part go wrong with my setup? Or it really can achieve 10G with 64
>>>> byte packet size.
>>>>
>>>> Thanks,
>>>>
>>>>
>>>
>>>
>>>
>>>--
>>>Andriy Berestovskyy
>>
>>
>>
>>
>
>
>
>-- 
>Andriy Berestovskyy


More information about the dev mailing list