Subject: Re: Packets lost: Softirq

From: Eric Dumazet <[email-masked]>
Date: Sat, 19 May 2007 21:28:23 +0200

Vasantha Kumar Puttappa a écrit :
> Hi All,
>  Please somebody guide me here. I desparatley need help regarding this
> issue. ( plz do "reply to all")
> 
>  I am tracking all udp packets (in particular, SIP based UDP packets)that
> goes through the iptables using LOG mechanism.
>  I use the following command,
>      iptables -A INPUT -p udp -j LOG --log-level-4.
>      iptables -A FORWARD -p udp -j LOG --log-level-4
> 
>   In addition, i also run 'Ethereal' to make sure that all the packets
> captured goes through the iptables as well.
> 
>   Here is the problem,
>     Sometimes, a random number of packets doesnot go through IPtables and
>   they are completely lost. Although, I can see those lost packets in
> Ethereal. I tried increasing the backlog queue and ip_queue length, but
> still no use.
> 
>    I am using Netgear's wireless network card (WG511, made in taiwan).
>    Device driver: Prism54
>    firmware: isl3890
>    Kernel verison-- 2.6.11-6mdk
> 
>   Let me give you more insight into what I am trying do.
> 
>  I have a vitrual network interface and 2 physical network interface (one
> Ethernet based, and other 802.11 based). The virtual network interface
> dynamically binds to any one of the above physical interfaces for packet
> transmission. The issue of packet loss occurs **only** during link
> switching.
> 
> I feel that the following issues might be the possible reasons for the
> packet loss.
> 
> 1. Due to missing soft_IRQ interrupt for packets and hence packet loss ( i
> have no proof to back this)
> 2. Due to incompatible wireless device driver.
> 

netdev CCed

3) packets are going normally through iptables, but the '-j LOG' is flooded 
and syslog miss some of them.

Just do a : iptables -nvL INPUT

and check packets counters : they should match ethereal ones :)

-j LOG is not designed for logging all packets, just some of them :)