From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Graf Subject: Re: dummy as IMQ replacement Date: Mon, 31 Jan 2005 14:28:19 +0100 Message-ID: <20050131132819.GB31837@postel.suug.ch> References: <1107123123.8021.80.camel@jzny.localdomain> <200501311438.01118.hasso@estpak.ee> <1107175673.7847.130.camel@jzny.localdomain> <200501311502.56796.hasso@estpak.ee> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: hadi@cyberus.ca, netdev@oss.sgi.com, Nguyen Dinh Nam , Remus , Andre Tomt , syrius.ml@no-log.org, Andy Furniss , Damion de Soto Return-path: To: Hasso Tepper Content-Disposition: inline In-Reply-To: <200501311502.56796.hasso@estpak.ee> Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org > > > 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 }