* [PATCH] netfilter: CONNMARK: support save the mark of the master connection
@ 2011-01-27 9:38 Changli Gao
2011-01-27 9:49 ` Patrick McHardy
0 siblings, 1 reply; 3+ messages in thread
From: Changli Gao @ 2011-01-27 9:38 UTC (permalink / raw)
To: Patrick McHardy; +Cc: David S. Miller, netfilter-devel, netdev, Changli Gao
In some cases(Policy routing), it is expected that all the sub-connections
share the same mark with their master.
Signed-off-by: Changli Gao <xiaosuo@gmail.com>
---
include/linux/netfilter/xt_connmark.h | 3 ++-
net/netfilter/xt_connmark.c | 15 +++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/include/linux/netfilter/xt_connmark.h b/include/linux/netfilter/xt_connmark.h
index efc17a8..4b513f8 100644
--- a/include/linux/netfilter/xt_connmark.h
+++ b/include/linux/netfilter/xt_connmark.h
@@ -15,7 +15,8 @@
enum {
XT_CONNMARK_SET = 0,
XT_CONNMARK_SAVE,
- XT_CONNMARK_RESTORE
+ XT_CONNMARK_RESTORE,
+ XT_CONNMARK_SAVE_MASTER,
};
struct xt_connmark_tginfo1 {
diff --git a/net/netfilter/xt_connmark.c b/net/netfilter/xt_connmark.c
index 7278145..4207bb6 100644
--- a/net/netfilter/xt_connmark.c
+++ b/net/netfilter/xt_connmark.c
@@ -69,6 +69,21 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par)
(ct->mark & info->ctmask);
skb->mark = newmark;
break;
+ case XT_CONNMARK_SAVE_MASTER:
+ if (ct->master) {
+ struct nf_conn *master;
+
+ master = ct->master;
+ while (master->master)
+ master = master->master;
+ newmark = (ct->mark & ~info->ctmask) ^
+ (master->mark & info->nfmask);
+ if (ct->mark != newmark) {
+ ct->mark = newmark;
+ nf_conntrack_event_cache(IPCT_MARK, ct);
+ }
+ }
+ break;
}
return XT_CONTINUE;
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] netfilter: CONNMARK: support save the mark of the master connection
2011-01-27 9:38 [PATCH] netfilter: CONNMARK: support save the mark of the master connection Changli Gao
@ 2011-01-27 9:49 ` Patrick McHardy
2011-01-27 10:01 ` Changli Gao
0 siblings, 1 reply; 3+ messages in thread
From: Patrick McHardy @ 2011-01-27 9:49 UTC (permalink / raw)
To: Changli Gao; +Cc: David S. Miller, netfilter-devel, netdev
Am 27.01.2011 10:38, schrieb Changli Gao:
> In some cases(Policy routing), it is expected that all the sub-connections
> share the same mark with their master.
We already automatically mark expected connections with the mark of the
master. What purpose does your patch serve on top of that?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] netfilter: CONNMARK: support save the mark of the master connection
2011-01-27 9:49 ` Patrick McHardy
@ 2011-01-27 10:01 ` Changli Gao
0 siblings, 0 replies; 3+ messages in thread
From: Changli Gao @ 2011-01-27 10:01 UTC (permalink / raw)
To: Patrick McHardy; +Cc: David S. Miller, netfilter-devel, netdev
On Thu, Jan 27, 2011 at 5:49 PM, Patrick McHardy <kaber@trash.net> wrote:
> Am 27.01.2011 10:38, schrieb Changli Gao:
>> In some cases(Policy routing), it is expected that all the sub-connections
>> share the same mark with their master.
>
> We already automatically mark expected connections with the mark of the
> master. What purpose does your patch serve on top of that?
>
>
It is done in init_conntrack(), indeed. Sorry for the noise. Thanks.
--
Regards,
Changli Gao(xiaosuo@gmail.com)
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-01-27 10:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-27 9:38 [PATCH] netfilter: CONNMARK: support save the mark of the master connection Changli Gao
2011-01-27 9:49 ` Patrick McHardy
2011-01-27 10:01 ` Changli Gao
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).