Received: with ECARTIS (v1.0.0; list netdev); Mon, 31 Jan 2005 05:28:08 -0800 (PST) Received: from b.mx.projectdream.org (eth0-0.arisu.projectdream.org [194.158.4.191]) by oss.sgi.com (8.13.0/8.13.0) with ESMTP id j0VDS0Qx018991 for ; Mon, 31 Jan 2005 05:28:01 -0800 Received: from postel.suug.ch (postel.suug.ch [195.134.158.23]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by b.mx.projectdream.org (Postfix) with ESMTP id 2996682; Mon, 31 Jan 2005 14:27:36 +0100 (CET) Received: by postel.suug.ch (Postfix, from userid 10001) id 618731C0EA; Mon, 31 Jan 2005 14:28:19 +0100 (CET) Date: Mon, 31 Jan 2005 14:28:19 +0100 From: Thomas Graf To: Hasso Tepper Cc: hadi@cyberus.ca, netdev@oss.sgi.com, Nguyen Dinh Nam , Remus , Andre Tomt , syrius.ml@no-log.org, Andy Furniss , Damion de Soto Subject: Re: dummy as IMQ replacement 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 Content-Disposition: inline In-Reply-To: <200501311502.56796.hasso@estpak.ee> X-Virus-Scanned: ClamAV 0.80/650/Sun Jan 2 19:00:02 2005 clamav-milter version 0.80j on 127.0.0.1 X-Virus-Status: Clean X-archive-position: 1079 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: tgraf@suug.ch Precedence: bulk X-list: netdev Content-Length: 1534 Lines: 54 > > > 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 }