From: Patrick McHardy <kaber@trash.net>
To: Eric Leblond <eric@inl.fr>
Cc: netfilter-devel@lists.netfilter.org, pablo@netfilter.org
Subject: Re: [PATCH] Set mark to 0 from libnetfilter_conntrack
Date: Thu, 26 Oct 2006 01:37:29 +0200 [thread overview]
Message-ID: <453FF539.3020107@trash.net> (raw)
In-Reply-To: <1161801498.12718.22.camel@localhost>
Eric Leblond wrote:
> Hi,
>
> Damien Boucard from INL has discovered a bug in libnetfilter_conntrack :
> Mark can not be set to 0.
>
> After looking at the code I've found that we only change the mark if it
> is not set to 0 :
> if (ct->mark != 0)
> nfnl_addattr_l(&req->nlh, sizeof(buf), CTA_MARK, &mark,
> sizeof(u_int32_t));
>
> What's the cleanest way to solve this. I don't see any mean to correct
> this except adding an IPS_CHANGE_MARK flag.
>
> Proposed patch is attached to the mail.
>
> BR,
>
>
> ------------------------------------------------------------------------
>
> Index: include/libnetfilter_conntrack/libnetfilter_conntrack.h
> ===================================================================
> --- include/libnetfilter_conntrack/libnetfilter_conntrack.h (revision 6689)
> +++ include/libnetfilter_conntrack/libnetfilter_conntrack.h (working copy)
> @@ -196,6 +196,10 @@
> IPS_FIXED_TIMEOUT_BIT = 10,
> IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
>
> + /* Connectio must change MARK */
> + IPS_CHANGE_MARK_BIT = 11,
> + IPS_CHANGE_MARK = (1 << IPS_FIXED_CHANGE_MARK),
> +
> };
>
> enum {
> Index: src/libnetfilter_conntrack.c
> ===================================================================
> --- src/libnetfilter_conntrack.c (revision 6689)
> +++ src/libnetfilter_conntrack.c (working copy)
> @@ -976,7 +976,7 @@
> nfnl_addattr_l(&req->nlh, sizeof(buf), CTA_TIMEOUT, &timeout,
> sizeof(u_int32_t));
>
> - if (ct->mark != 0)
> + if (ct->status & IPS_CHANGE_MARK)
> nfnl_addattr_l(&req->nlh, sizeof(buf), CTA_MARK, &mark,
> sizeof(u_int32_t));
>
I don't see anything setting this bit and it shouldn't be a conntrack
bit if it doesn't exist in the kernel (and we certainly don't want this
in the kernel). The idea is still the right one, I think the library
should take care of adding a CTA_MARK attribute without any user bitmask
fiddling by including it if the value differs from the mark contained in
the received conntrack. I think Pablo's new API will allow this.
next prev parent reply other threads:[~2006-10-25 23:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-25 18:38 [PATCH] Set mark to 0 from libnetfilter_conntrack Eric Leblond
2006-10-25 23:37 ` Patrick McHardy [this message]
2006-10-26 21:37 ` Eric Leblond
2006-10-27 13:53 ` Pablo Neira Ayuso
2006-10-27 21:17 ` Eric Leblond
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=453FF539.3020107@trash.net \
--to=kaber@trash.net \
--cc=eric@inl.fr \
--cc=netfilter-devel@lists.netfilter.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 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.