From: Eric Leblond <eric@regit.org>
To: netfilter@vger.kernel.org
Cc: netfilter-devel@vger.kernel.org, pablo@netfilter.org,
Eric Leblond <eric@regit.org>
Subject: [libnetfilter_queue PATCH 2/2] doxygen: improve documentation
Date: Sun, 13 Jan 2013 23:49:36 +0100 [thread overview]
Message-ID: <1358117376-7522-2-git-send-email-eric@regit.org> (raw)
In-Reply-To: <1358117376-7522-1-git-send-email-eric@regit.org>
This patch improves the doxygen documentation and adds a reference
to an external article.
---
src/libnetfilter_queue.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
index f93ac66..be25217 100644
--- a/src/libnetfilter_queue.c
+++ b/src/libnetfilter_queue.c
@@ -51,7 +51,21 @@
* - receiving queued packets from the kernel nfnetlink_queue subsystem
* - issuing verdicts and/or reinjecting altered packets to the kernel
* nfnetlink_queue subsystem
- *
+ *
+ * The cinematic is the following: When an iptables rules with target NFQUEUE
+ * matches, the kernel en-queued the packet in a chained list. It then format
+ * a nfnetlink message and sends the information (packet data , packet id and
+ * metadata) via a socket to the software connected to the queue. The software
+ * can then read the message.
+ *
+ * To remove the packet from the queue, the userspace software must issue a
+ * verdict asking kernel to accept or drop the packet. Userspace can also alter
+ * the packet. Verdict can be done in asynchronous manner, as the only needed
+ * information is the packet id.
+ *
+ * When a queue is full, packets that should have been en-queued are dropped by
+ * kernel instead of being en-queued.
+ *
* \section Git Tree
* The current development version of libnetfilter_queue can be accessed
* at https://git.netfilter.org/cgi-bin/gitweb.cgi?p=libnetfilter_queue.git;a=summary.
@@ -66,6 +80,10 @@
* the doxygen documentation (start by \link LibrarySetup \endlink page) and
* nf-queue.c source file.
*
+ * Another source of information on libnetfilter_queue usage is the following
+ * article:
+ * https://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/
+ *
* \section errors ENOBUFS errors in recv()
*
* recv() may return -1 and errno is set to ENOBUFS in case that your
@@ -89,6 +107,8 @@
* (it requires Linux kernel >= 2.6.31).
* - consider using fail-open option see nfq_set_queue_flags() (it requires
* Linux kernel >= 3.6)
+ * - increase queue max length with nfq_set_queue_maxlen() to resist to packets
+ * burst
*/
struct nfq_handle
--
1.7.10.4
prev parent reply other threads:[~2013-01-13 22:50 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1358117216.4629.2.camel@tiger2>
2013-01-13 22:49 ` [libnetfilter_queue PATCH 1/2] doxygen: improve fail-open documentation Eric Leblond
2013-01-13 22:49 ` Eric Leblond [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=1358117376-7522-2-git-send-email-eric@regit.org \
--to=eric@regit.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=netfilter@vger.kernel.org \
--cc=pablo@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).