From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick McHardy Date: Wed, 19 Feb 2003 11:43:16 +0000 Subject: [LARTC] Re: IMQ device problems with iptables: dead looping? Message-Id: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lartc@vger.kernel.org Andrew Hall wrote: >Hello, > >I am using the IMQ with iptables (latest versions) and asking all packets to >be enqueued to IMQ0 from both prerouting and postrouting (using different >iptables rules to mark different streams). When I do this I get the kernel >saying: > >"Dead loop on netdevice imq0, fix it urgently!" and communications stop >intermittently. If I remove the jump from either preroute or postroute it >works fine but won't work together. > >Is this what is mean't to happen, because as far as I can see there is no >loop happening here? > You probably forward packets. The loop happening ist input-device -> prerouting -> imq (xmit_lock locked) -> reinject -> ... -> postrouting -> imq (LOCKED!!) To avoid this one has to drop xmit_lock in imq_xmit function before reinjecteing and grab it back afterwards. unfortunately this allows for endless recursion which is not possible in the kernel due to limited stack space. I've completed a version which should hopefully fix this as many people requested such a feature. I haven't released it yet because i have to do alot for my university atm and haven't got the time for testing although i promised the new version to some people for january ;( In about two weeks my semester-vacation start, i hope to release the new version very quickly afterwards. Thanks for your patience, Patrick _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/