All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pablo Neira Ayuso <pablo@netfilter.org>
To: fabien.marotte@mindspeed.com
Cc: netfilter-devel@lists.netfilter.org
Subject: Re: libnetfilter_conntrack, nfct_catch returns ENOBUFS
Date: Mon, 18 Jun 2007 20:11:13 +0200	[thread overview]
Message-ID: <4676CAC1.3070104@netfilter.org> (raw)
In-Reply-To: <OF7C77170F.72E89A61-ONC12572FE.005AF6F6-C12572FE.005D1649@mindspeed.com>

fabien.marotte@mindspeed.com wrote:
>> So am I. Could you post the code?
> 
> I reduced my callback to the following :
> CtCatch( ...)
> {
>    return NFCT_CB_CONTINUE;
> }

Well, this does not help too much. What is your callback actually doing? 
If the operation that your callback does is expensive and slow, such as 
printing the event, then may overrun sooner. Here I'm able to generate 
up a bulk of 10000 HTTP GET requests in my testbed with no overrun. Of 
course, using the callback that you suppose to be using. However, if I 
print the event, the results are different.

> and I still see the bug with 20 simultaneous connections.

This is not a bug.

>> Default buffer size in your system? cat /proc/sys/net/core/rmem_default
> 
> /proc/sys/net/core/rmem_default is set to 108544 by default.
> I tried to increase the value up to 262144 and I still get the same issue.
> Is it possible conntrack module to send more than one event in the same 
> netlink messages ?

ENOBUFS tells you that your buffer has overrun. Each process has a 
receiver buffer where netlink puts the messages into. If the sender puts 
more messages into the queue than the receiver can consume, then the 
buffer overruns. This happens if your userspace process is too slow to 
consume messages, this usually happens if your CPU reaches 100% 
consumption. Solution: You can delay the overrun by increasing the 
buffer size.

-- 
The dawn of the fourth age of Linux firewalling is coming; a time of 
great struggle and heroic deeds -- J.Kadlecsik got inspired by J.Morris

      reply	other threads:[~2007-06-18 18:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-18 15:47 libnetfilter_conntrack, nfct_catch returns ENOBUFS fabien.marotte
2007-06-18 16:10 ` Pablo Neira Ayuso
2007-06-18 16:56   ` fabien.marotte
2007-06-18 18:11     ` Pablo Neira Ayuso [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4676CAC1.3070104@netfilter.org \
    --to=pablo@netfilter.org \
    --cc=fabien.marotte@mindspeed.com \
    --cc=netfilter-devel@lists.netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.