> > > http://mailman.ds9a.nl/pipermail/lartc/2004q2/012422.html
It depends on whether you have CONFIG_NET_CLS_ACT enabled or not.
If so, the ingress qdisc is hit before PREROUTING and thus can't
see the mark for a good reason. Simply removing the dependcy on
the mark resolves the issue for you.
If you don't have CONFIG_NET_CLS_ACT enabled you would see the
mark if the ingress qdisc would register on the IPv6 PREROUTING
hook but apparently it doesn't.
The patch below should fix it, it is completely untested though.
--- linux-2.6.11-rc2-bk8.orig/net/sched/sch_ingress.c 2005-01-30
21:19:51.000000000 +0100
+++ linux-2.6.11-rc2-bk8/net/sched/sch_ingress.c 2005-01-31
14:23:08.000000000 +0100
@@ -271,6 +271,14 @@
.priority = NF_IP_PRI_FILTER + 1,
};
+static struct nf_hook_ops ing6_ops = {
+ .hook = ing_hook,
+ .owner = THIS_MODULE,
+ .pf = PF_INET6,
+ .hooknum = NF_IP6_PRE_ROUTING,
+ .priority = NF_IP6_PRI_FILTER + 1,
+};
+
#endif
#endif
@@ -296,6 +304,11 @@
printk("ingress qdisc registration error \n");
return -EINVAL;
}
+ if (nf_register_hook(&ing6_ops) < 0) {
+ nf_unregister_hook(&ing_ops);
+ printk("ingress ipv6 qdisc registration error \n");
+ return -EINVAL;
+ }
nf_registered++;
}
#endif
@@ -408,8 +421,10 @@
unregister_qdisc(&ingress_qdisc_ops);
#ifndef CONFIG_NET_CLS_ACT
#ifdef CONFIG_NETFILTER
- if (nf_registered)
+ if (nf_registered) {
nf_unregister_hook(&ing_ops);
+ nf_unregister_hook(&ing6_ops);
+ }
#endif
#endif
}
|