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

Reply via email to