Yeah, that would fix it. Note however, that i am trying to highly
discourage use of iptables and i would rather let people who use
iptables to suffer;-> (sounds rude i know). At some point i plan to
remove the dependency on iptables altogether. So i am not sure whether i
should encourage pushing of this patch or not ;->
All this hooking in 100 hooks is one of the reasons i disliked IMQ as
well
cheers,
jamal
PS:- also note in 2.6.6 tc action was not yet in, so
On Mon, 2005-01-31 at 08:28, Thomas Graf wrote:
> > > > 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
> }
>
>
|