Hi Alfredo,

 I got your point but I don't understand the point of flow-control then! If
I'm slow then pfring should slow down reading from NIC so NIC will notice
the slowdown and sends a pause frame to the sender! Is there anything wrong
with this logic?

Thanks,

On Thu, Nov 6, 2014 at 5:21 PM, Alfredo Cardigliano <[email protected]>
wrote:

> Hi Behrooz
> your application is not fast enough dequeueing packets from the ring, thus
> the drops.
> You should try increasing the ring size (via insmod parameter), it helps
> at least with spikes.
>
> Alfredo
>
> On 06 Nov 2014, at 23:01, Behrooz Shafiee <[email protected]> wrote:
>
> Hello Pavel,
>
>  I'm not sure what do you mean but here is the output of to during run:
>
> top - 16:58:48 up  2:27,  8 users,  load average: 0.25, 0.59, 0.81
> Tasks: 211 total,   4 running, 207 sleeping,   0 stopped,   0 zombie
> %Cpu(s):  7.3 us,  7.1 sy,  0.0 ni, 84.6 id,  0.2 wa,  0.8 hi,  0.0 si,
> 0.0 st
> KiB Mem:  16334304 total,  5330972 used, 11003332 free,   112164 buffers
> KiB Swap: 10207228 total,        0 used, 10207228 free.  2101892 cached Mem
>
> I just realized that if I use pfring_stats  when I receive the whole 5000
> packet the number of drops is 0 and when I don't receive all of them the
> number of drops in the stats is around 2000-3000.
>
> On Thu, Nov 6, 2014 at 4:54 PM, Pavel Odintsov <[email protected]>
> wrote:
>
>> Hello!
>>
>> Could you show top header and htop output?
>>
>> On Fri, Nov 7, 2014 at 12:48 AM, Behrooz Shafiee <[email protected]>
>> wrote:
>> > Hi everyone,
>> >
>> >  I have implemented a small transmission protocol over pfring. I rely
>> on the
>> > Ethernet flow control meaning that I assume that in the same subnet I
>> won't
>> > loose any packet (I've no router so no queueing...). Everything was fine
>> > until I did some stress test as follows.
>> > I have a rcvThread which block on pfring_recv() function for each one
>> > incoming packet and process it. I start a huge number of other
>> threads(e.g
>> > 5000) and each of them send a req to server through pfring_send (resp
>> is one
>> > packet). And then server replies with 5000 packet. most of the time i
>> > receive the 5000 packets but sometimes I miss some of them. For example
>> I
>> > reach the line after pfring_recv() 4503 times. I thought this is due to
>> > overflow in the NIC but I use intel pro which has both rx/tx flow pause
>> > frame on and I actually used a packet dump tool (such as wireshark) and
>> I
>> > see the packets are being received by the NIC. So I assume they get lost
>> > somewhere a long the line from NIC to pfring_recv() function. Can anyone
>> > help me what might have gone wrong?
>> >
>> > PS. I use pfring in normal mode not DNA
>> >
>> >
>> > Thanks,
>> > --
>> > Behrooz
>> >
>> > _______________________________________________
>> > Ntop-misc mailing list
>> > [email protected]
>> > http://listgateway.unipi.it/mailman/listinfo/ntop-misc
>>
>>
>>
>> --
>> Sincerely yours, Pavel Odintsov
>> _______________________________________________
>> Ntop-misc mailing list
>> [email protected]
>> http://listgateway.unipi.it/mailman/listinfo/ntop-misc
>>
>
>
>
> --
> Behrooz
>  _______________________________________________
> Ntop-misc mailing list
> [email protected]
> http://listgateway.unipi.it/mailman/listinfo/ntop-misc
>
>
>
> _______________________________________________
> Ntop-misc mailing list
> [email protected]
> http://listgateway.unipi.it/mailman/listinfo/ntop-misc
>



-- 
Behrooz
_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc

Reply via email to