Packet drop while using BPF filter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Guys,

I am working on user level code which uses BPF filter. 
Solution has two threads and  BPF filter for incoming packets to raw socket dedicated to each thread.
Intent is to divide ingress traffic between two thread based on whether dest IP is even or odd.

BPF filters used are:
Even IP filter :-> tcpdump -i interface 'ether dst <dest mac> && ip[19] & 0x01 = 0'  
Odd IP filter :->  tcpdump -i interface  'ether dst <dest mac> && ip[19] & 0x01 = 1' 

There is a packet loss for odd IP thread even when CPU is available. Reason being packet drop due  recv buffer full.
Same amount of traffic is well handled by even IP thread(user code being same in both), scaling CPU to full 100%. 

In odd IP thread, If filter is changed to "tcpdump -i interface  'ether dst <dest mac> && ip proto 17' ", all goes fine. 
Also CPU usage at kernel drops from 50% to 4 % for a particular amount of traffic. 

Would appreciate any I/ps for reducing load at kernel for packet filtering(Odd/Even IP distribution) 


Cheers
Mukesh

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux