From owner-netdev@oss.sgi.com Mon Jul 1 21:50:34 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.3/8.12.3) with ESMTP id g624oYnC026393 for ; Mon, 1 Jul 2002 21:50:34 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.3/8.12.3/Submit) id g624oYdY026392 for netdev-outgoing; Mon, 1 Jul 2002 21:50:34 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from monket.dyndns.org (DHCP-144-56.resnet.ua.edu [130.160.144.56]) by oss.sgi.com (8.12.3/8.12.3) with SMTP id g624oSnC026380 for ; Mon, 1 Jul 2002 21:50:28 -0700 Received: (from crutcher@localhost) by monket.dyndns.org (8.11.6/8.11.6) id g624sIL04202 for netdev@oss.sgi.com; Mon, 1 Jul 2002 23:54:18 -0500 Date: Mon, 1 Jul 2002 23:54:18 -0500 From: Crutcher Dunnavant To: netdev@oss.sgi.com Subject: init_foodev cleanup questions Message-ID: <20020701235418.B4148@monket.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello all. I've got some time on my hands, so I am walking through all the network drivers, and cleaning up use of init_foodev. This means zapping foo_setup, and kmallocing or memseting dev->priv; I'm doing this at the prompting of an entry on the kernel-janitors TODO list. Very much of this code is utter crap, and the fixes are obvious. However, I have some questions regarding the legacy probe code from drivers/net/Space.c can I safely remove bar_probe() from Space.c, if I also cleanup bar.c so as to make it a module_init/module_exit based module? Oh, and something seems to be wrong with the listserver, I'm getting the following error, and Sender: is not getting set correctly. X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f -- Crutcher Dunnavant ECSS System Hacker / UA COE CS Senior From owner-netdev@oss.sgi.com Tue Jul 2 07:45:22 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.3/8.12.5) with ESMTP id g62EjLZO032062 for ; Tue, 2 Jul 2002 07:45:21 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.3/8.12.3/Submit) id g62EjLgK032061 for netdev-outgoing; Tue, 2 Jul 2002 07:45:21 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from monket.dyndns.org (DHCP-144-56.resnet.ua.edu [130.160.144.56]) by oss.sgi.com (8.12.3/8.12.5) with SMTP id g62Ej5ZO032046 for ; Tue, 2 Jul 2002 07:45:06 -0700 Received: (from crutcher@localhost) by monket.dyndns.org (8.11.6/8.11.6) id g62EmtQ08248 for netdev@oss.sgi.com; Tue, 2 Jul 2002 09:48:55 -0500 Date: Tue, 2 Jul 2002 09:48:55 -0500 From: Crutcher Dunnavant To: netdev@oss.sgi.com Subject: Re: init_foodev cleanup questions Message-ID: <20020702094855.A7978@monket.dyndns.org> References: <20020701235418.B4148@monket.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <20020701235418.B4148@monket.dyndns.org>; from crutcher@eng.ua.edu on Mon, Jul 01, 2002 at 11:54:18PM -0500 X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk ++ 01/07/02 23:54 -0500 - Crutcher Dunnavant: > Hello all. > > I've got some time on my hands, so I am walking through > all the network drivers, and cleaning up use of init_foodev. > This means zapping foo_setup, and kmallocing or memseting > dev->priv; > > I'm doing this at the prompting of an entry on the > kernel-janitors TODO list. > > Very much of this code is utter crap, and the fixes are > obvious. > > However, I have some questions regarding the legacy probe > code from drivers/net/Space.c > > can I safely remove bar_probe() from Space.c, if I also > cleanup bar.c so as to make it a module_init/module_exit > based module? below is an (untested) example of what I'm talking about. Is this kosher? --- linux-2.5.24/drivers/net/3c509.c.init_netdev Mon Jul 1 23:22:12 2002 +++ linux-2.5.24/drivers/net/3c509.c Mon Jul 1 23:36:31 2002 @@ -233,8 +233,9 @@ #endif /* __ISAPNP__ */ static int nopnp; -int __init el3_probe(struct net_device *dev, int card_idx) +int __init el3_init_one(int card_idx) { + struct net_device *dev; struct el3_private *lp; short lrs_state = 0xff, i; int ioaddr, irq, if_port; @@ -1242,7 +1243,6 @@ #endif /* CONFIG_PM */ -#ifdef MODULE /* Parameters that may be passed into the module. */ static int debug = -1; static int irq[] = {-1, -1, -1, -1, -1, -1, -1, -1}; @@ -1264,8 +1264,8 @@ MODULE_DEVICE_TABLE(isapnp, el3_isapnp_adapters); MODULE_LICENSE("GPL"); -int -init_module(void) +static __init int +el3_init(void) { int el3_cards = 0; @@ -1273,7 +1273,7 @@ el3_debug = debug; el3_root_dev = NULL; - while (el3_probe(0, el3_cards) == 0) { + while (el3_init_one(el3_cards) == 0) { if (irq[el3_cards] > 1) el3_root_dev->irq = irq[el3_cards]; if (xcvr[el3_cards] >= 0) @@ -1284,8 +1284,8 @@ return el3_cards ? 0 : -ENODEV; } -void -cleanup_module(void) +static __exit void +el3_exit(void) { struct net_device *next_dev; @@ -1308,7 +1308,9 @@ el3_root_dev = next_dev; } } -#endif /* MODULE */ + +MODULE_INIT(el3_init); +MODULE_EXIT(el3_exit); /* * Local variables: --- linux-2.5.24/drivers/net/Space.c.init_netdev Mon Jul 1 23:33:59 2002 +++ linux-2.5.24/drivers/net/Space.c Tue Jul 2 00:32:30 2002 @@ -57,7 +57,6 @@ extern int znet_probe(struct net_device *); extern int express_probe(struct net_device *); extern int eepro_probe(struct net_device *); -extern int el3_probe(struct net_device *); extern int at1500_probe(struct net_device *); extern int at1700_probe(struct net_device *); extern int fmv18x_probe(struct net_device *); @@ -216,9 +215,6 @@ * look for EISA/PCI/MCA cards in addition to ISA cards). */ static struct devprobe isa_probes[] __initdata = { -#ifdef CONFIG_EL3 /* ISA, EISA, MCA 3c5x9 */ - {el3_probe, 0}, -#endif #ifdef CONFIG_HP100 /* ISA, EISA & PCI */ {hp100_probe, 0}, #endif -- Crutcher Dunnavant ECSS System Hacker / UA COE CS Senior From owner-netdev@oss.sgi.com Tue Jul 2 12:33:09 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g62JX9Rw015101 for ; Tue, 2 Jul 2002 12:33:09 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g62JX9YR015100 for netdev-outgoing; Tue, 2 Jul 2002 12:33:09 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from monket.dyndns.org (DHCP-144-56.resnet.ua.edu [130.160.144.56]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g62JX4Rw015083 for ; Tue, 2 Jul 2002 12:33:04 -0700 Received: (from crutcher@localhost) by monket.dyndns.org (8.11.6/8.11.6) id g62Jas709948 for netdev@oss.sgi.com; Tue, 2 Jul 2002 14:36:54 -0500 Date: Tue, 2 Jul 2002 14:36:54 -0500 From: Crutcher Dunnavant To: netdev@oss.sgi.com Subject: proposed changes to init_*dev() for GFP_DMA Message-ID: <20020702143654.A9903@monket.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello all. For the 2.5 tree, I'm wondering if there would be support for extending the underlying init_*dev() -> init_netdev() interfaces, so that there is a way to pass in the GFP_DMA alloc flag, or any other flag, if needed for the private memory to be kmalloced for dev->priv? This would allow more drivers to use the same interface. Basicaly, I'm thinking something like: struct net_device *init_etherdev(struct net_device *dev, int sizeof_priv, int flags); /* for regualr devices */ dev = init_etherdev(NULL, sizeof(struct foo_priv), GFP_KERNEL); or /* for DMA devices */ dev = init_etherdev(NULL, sizeof(struct foo_priv), GFP_KERNEL | GFP_DMA); -- Crutcher Dunnavant ECSS System Hacker / UA COE CS Senior From owner-netdev@oss.sgi.com Thu Jul 4 08:12:18 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g64FCIRw008097 for ; Thu, 4 Jul 2002 08:12:18 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g64FCI2x008096 for netdev-outgoing; Thu, 4 Jul 2002 08:12:18 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g64FBxRw008085 for ; Thu, 4 Jul 2002 08:12:00 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 60947450E; Thu, 4 Jul 2002 16:41:42 +0200 (CEST) Date: Thu, 4 Jul 2002 16:41:42 +0200 From: bert hubert To: netdev@oss.sgi.com Subject: SMP issues on ingress queue grafting Message-ID: <20020704144142.GC12749@outpost.ds9a.nl> Mail-Followup-To: bert hubert , netdev@oss.sgi.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Alexey, Werner, Jamal, Others, On 2.4.18-ac3 SMP, Dimitris Zilaskos reports that he can reliably hang his system with the following two line script repeated during heavy traffic. Full thread starts here: http://mailman.ds9a.nl/pipermail/lartc/2002q3/004316.html Hope this points you to any problems. Regards, bert ----- Forwarded message from Dimitris Zilaskos ----- From: Dimitris Zilaskos To: Stef Coene Cc: lartc@mailman.ds9a.nl Subject: Re: [LARTC] tc reliably hangs my system Date: Thu, 4 Jul 2002 13:07:08 +0300 (EEST) ok , this 2 lines repated anything from 5 to 20 times cause the hang : tc qdisc del dev eth0 ingress tc qdisc add dev eth0 handle ffff: ingress again , the presence of sustained outgoing traffic catalyses the effect . It takes at least 150-200 kbytes/sec to easily cause the hang . Regards , -- ============================================================================= Dimitris Zilaskos Department of Physics @ Aristotle Univercity of Thessaloniki , Greece ============================================================================= _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ ----- End forwarded message ----- -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Thu Jul 4 11:14:47 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g64IElRw012905 for ; Thu, 4 Jul 2002 11:14:47 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g64IElvJ012904 for netdev-outgoing; Thu, 4 Jul 2002 11:14:47 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g64IEaRw012895 for ; Thu, 4 Jul 2002 11:14:37 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id OAA02567; Thu, 4 Jul 2002 14:18:40 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g64ICZK26981; Thu, 4 Jul 2002 14:12:35 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Thu, 4 Jul 2002 14:12:34 -0400 (EDT) From: jamal To: bert hubert cc: Subject: Re: SMP issues on ingress queue grafting In-Reply-To: <20020704144142.GC12749@outpost.ds9a.nl> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Maybe related to what Doron was seeing: Theres a patch thats been sitting around for a year or so; http://www.cyberus.ca/~hadi/patches/ing-stats.patch hopefuly the patch would be in 2.4.19 when it comes out. Ask him to test it out. cheers, jamal On Thu, 4 Jul 2002, bert hubert wrote: > Alexey, Werner, Jamal, Others, > > On 2.4.18-ac3 SMP, Dimitris Zilaskos reports that he can reliably hang his > system with the following two line script repeated during heavy traffic. > > Full thread starts here: > http://mailman.ds9a.nl/pipermail/lartc/2002q3/004316.html > > Hope this points you to any problems. > > Regards, > > bert > > ----- Forwarded message from Dimitris Zilaskos ----- > > From: Dimitris Zilaskos > To: Stef Coene > Cc: lartc@mailman.ds9a.nl > Subject: Re: [LARTC] tc reliably hangs my system > Date: Thu, 4 Jul 2002 13:07:08 +0300 (EEST) > > > ok , this 2 lines repated anything from 5 to 20 times cause the hang : > > tc qdisc del dev eth0 ingress > tc qdisc add dev eth0 handle ffff: ingress > > again , the presence of sustained outgoing traffic catalyses the effect . > It takes at least 150-200 kbytes/sec to easily cause the hang . > > Regards , > > -- > ============================================================================= > > Dimitris Zilaskos > > Department of Physics @ Aristotle Univercity of Thessaloniki , Greece > ============================================================================= > > _______________________________________________ > LARTC mailing list / LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ > > > ----- End forwarded message ----- > > -- > http://www.PowerDNS.com Versatile DNS Software & Services > http://www.tk the dot in .tk > http://lartc.org Linux Advanced Routing & Traffic Control HOWTO > From owner-netdev@oss.sgi.com Fri Jul 5 08:22:12 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g65FMCRw004344 for ; Fri, 5 Jul 2002 08:22:12 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g65FMCaw004343 for netdev-outgoing; Fri, 5 Jul 2002 08:22:12 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g65FLsRw004333 for ; Fri, 5 Jul 2002 08:21:54 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 0AD7C44E4; Fri, 5 Jul 2002 16:57:10 +0200 (CEST) Date: Fri, 5 Jul 2002 16:57:10 +0200 From: bert hubert To: netdev@oss.sgi.com Subject: [dzila@tassadar.physics.auth.gr: Re: [LARTC] tc reliably hangs my system] Message-ID: <20020705145710.GA5919@outpost.ds9a.nl> Mail-Followup-To: bert hubert , netdev@oss.sgi.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Jamal, The patch you mentioned works fine, so I suggest it be merged pronto :-) Thanks! ----- Forwarded message from Dimitris Zilaskos ----- Date: Fri, 5 Jul 2002 16:35:33 +0300 (EEST) From: Dimitris Zilaskos To: bert hubert Cc: lartc@mailman.ds9a.nl Subject: Re: [LARTC] tc reliably hangs my system > > > http://www.cyberus.ca/~hadi/patches/ing-stats.patch > > This fixes a known issue that looks like this - can you try if this resolves > your problem? This patch will be in in 2.4.19 probably. Thnx . I am using the patch now with success . I can no longer reproduce the hang . Regards , -- ============================================================================= Dimitris Zilaskos Department of Physics @ Aristotle Univercity of Thessaloniki , Greece ============================================================================= ----- End forwarded message ----- -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Fri Jul 5 09:03:23 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g65G3NRw004971 for ; Fri, 5 Jul 2002 09:03:23 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g65G3Nkm004970 for netdev-outgoing; Fri, 5 Jul 2002 09:03:23 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g65G3HRw004961 for ; Fri, 5 Jul 2002 09:03:18 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id UAA06535; Fri, 5 Jul 2002 20:05:19 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207051605.UAA06535@sex.inr.ac.ru> Subject: Re: IPv6 ND on PPC hardware To: netdev@oss.sgi.com, md@Linux.IT Date: Fri, 5 Jul 2002 20:05:19 +0400 (MSD) In-Reply-To: <20020629143901.GA1963@wonderland.linux.it> from "Marco d'Itri" at Jun 29, 2 07:15:01 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > When I try to ping another host on the LAN it usually works the first > time, and then stops working because the other host does not replies to > ND requests. It would be better if you gave full tcpdump where "working" stage is present too. > Apparently verything works again if I switch the interface > in promiscuous mode. At receiver? If yes, then it is most likely wrongly configured multicast filter at device. Though it is still not clear why it worked the first time. Alexey From owner-netdev@oss.sgi.com Mon Jul 8 14:19:58 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g68LJwRw015945 for ; Mon, 8 Jul 2002 14:19:58 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g68LJwPE015943 for netdev-outgoing; Mon, 8 Jul 2002 14:19:58 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from almesberger.net (OL65-148.fibertel.com.ar [24.232.148.65]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g68LJqRw015926 for ; Mon, 8 Jul 2002 14:19:53 -0700 Received: (from werner@localhost) by almesberger.net (8.11.6/8.11.6) id g68LSj520616; Mon, 8 Jul 2002 18:28:45 -0300 Date: Mon, 8 Jul 2002 18:28:45 -0300 From: Werner Almesberger To: bert hubert , netdev@oss.sgi.com Subject: Re: tc lockup on 2.4.19 up Message-ID: <20020708182845.P1424@almesberger.net> References: <20020708204858.GA16318@outpost.ds9a.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020708204858.GA16318@outpost.ds9a.nl>; from ahu@ds9a.nl on Mon, Jul 08, 2002 at 10:48:58PM +0200 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO,ASCII_FORM_ENTRY version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk bert hubert wrote: > I think the rule gets matched circularly, but I'm unsure. Indeed. Happens with tcsim too. I need to think a bit about this one. As a work-around, you can use tcc with -One, which generates a bunch of tests for equality instead of the single negation. Thanks, - Werner -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net / /_http://icapeople.epfl.ch/almesber/_____________________________________/ From owner-netdev@oss.sgi.com Mon Jul 8 14:25:18 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g68LPIRw016221 for ; Mon, 8 Jul 2002 14:25:18 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g68LPHQX016220 for netdev-outgoing; Mon, 8 Jul 2002 14:25:17 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g68LOxRw016207 for ; Mon, 8 Jul 2002 14:25:00 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id E235644D5; Mon, 8 Jul 2002 22:48:58 +0200 (CEST) Date: Mon, 8 Jul 2002 22:48:58 +0200 From: bert hubert To: netdev@oss.sgi.com Cc: wa@almesberger.net Subject: tc lockup on 2.4.19 up Message-ID: <20020708204858.GA16318@outpost.ds9a.nl> Mail-Followup-To: bert hubert , netdev@oss.sgi.com, wa@almesberger.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi, While writing a chapter on tcng (USE IT!), I made this setup, which locks up my 2.4.19-pre10 laptop solidly after a single packet matched: #include "fields.tc" dev eth0 { cbq (bandwidth 100Mbps, maxburst 5p, avpkt 1000B, allot 1500B){ class (2, rate 10kBps, bounded) if ip_dst == 213.244.168.210 && ip_tos!=0x10; } } which translates into: tc qdisc add dev eth0 handle 1:0 root cbq bandwidth 12500000bps avpkt 1000 tc class add dev eth0 parent 1:0 classid 1:2 cbq bandwidth 12500000bps rate \ 10000bps allot 1500 avpkt 1000 maxburst 5 bounded tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1:0:0 u32 \ divisor 1 tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match u32 \ 0xd5f4a8d2 0xffffffff at 16 match u8 0x10 0xff at 1 classid 1:0 ######## tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match u32 \ 0xd5f4a8d2 0xffffffff at 16 classid 1:2 tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match u32 0 0 at 0 \ classid 1:0 The lines up to #### suffice to lock up the machine upon a ssh keystroke to 213.244.168.210 - the last line is supposed to match on an ssh keystroke. I think the rule gets matched circularly, but I'm unsure. Please let me know - I can investigate more later on if I can reproduce this in uml. Regards, bert hubert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Mon Jul 8 18:44:28 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g691iSRw022632 for ; Mon, 8 Jul 2002 18:44:28 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g691iS33022631 for netdev-outgoing; Mon, 8 Jul 2002 18:44:28 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from hotmail.com (f14.law15.hotmail.com [64.4.23.14]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g691iORw022622 for ; Mon, 8 Jul 2002 18:44:24 -0700 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Mon, 8 Jul 2002 18:48:42 -0700 Received: from 202.109.116.253 by lw15fd.law15.hotmail.msn.com with HTTP; Tue, 09 Jul 2002 01:48:42 GMT X-Originating-IP: [202.109.116.253] From: "Tong Lee" To: netdev@oss.sgi.com Subject: An answer for "Scheduling in interrupt". Date: Tue, 09 Jul 2002 09:48:42 +0800 Mime-Version: 1.0 Content-Type: text/plain; charset=gb2312; format=flowed Message-ID: X-OriginalArrivalTime: 09 Jul 2002 01:48:42.0599 (UTC) FILETIME=[C13CDF70:01C226EA] X-Spam-Status: No, hits=0.5 required=5.0 tests=FROM_ENDS_IN_NUMS,DEAR_SOMEBODY version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Dear Krishna Kumar, I have finally figured our what caused the "Scheduling in interrupt" panic. I didn't realize that ip_local_deliver is run within the bottom_half context, and I had used a semaphore there. It is that semaphore which had induced a sleep and therefore a schedule. However I now have a new problem to fight with: my kgdb became dysfunctional. Upon reaching a "return" statement and when I typed "next", it simply went off and never returned! Have you any comments on how to solve or bypass this problem? Lee Tong _________________________________________________________________ ÓëÁª»úµÄÅóÓѽøÐн»Á÷£¬ÇëʹÓà MSN Messenger: http://messenger.microsoft.com/cn/ From owner-netdev@oss.sgi.com Wed Jul 10 00:40:25 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6A7ePRw027917 for ; Wed, 10 Jul 2002 00:40:25 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6A7ePxd027916 for netdev-outgoing; Wed, 10 Jul 2002 00:40:25 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from mailhub.fokus.gmd.de (mailhub.fokus.gmd.de [193.174.154.14]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6A7eJRw027907 for ; Wed, 10 Jul 2002 00:40:19 -0700 Received: from buruk.fokus.gmd.de (buruk [193.175.135.102]) by mailhub.fokus.gmd.de (8.11.6/8.11.6) with ESMTP id g6A7ibW21063; Wed, 10 Jul 2002 09:44:37 +0200 (MEST) Received: from localhost (localhost [[UNIX: localhost]]) by buruk.fokus.gmd.de (8.11.6/8.11.6) id g6A7jDn21354; Wed, 10 Jul 2002 09:45:13 +0200 From: Matthias Welk Organization: Fraunhofer Fokus To: netdev@oss.sgi.com Subject: PROBLEM: udp not delivered on special socket receive buffer size Date: Wed, 10 Jul 2002 09:45:11 +0200 User-Agent: KMail/1.4.5 Cc: davem@redhat.com, kuznet@ms2.inr.ac.ru, pekkas@netcore.fi, Peter Gober MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline Message-Id: <200207100945.13002.welk@fokus.gmd.de> Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id g6A7eKRw027908 X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi, I reported the following problem allready to the linux-kernel mailinglist, but did not receive any answer. I hope you are the right contacts for this. The probles is, that I did not receive any udp packets (224 bytes), if the receive buffer size (SO_RCVBUF) of the socket is set to a value below 831 (??) bytes. Yes, you may ask why such a low value, but I have no influence on this, because it is set in the Java Media Framework internally. You can check this behaviour with a small c-program too. So my question is: Is this a bug or are there any reasons for this magic 831 bytes barrier ? Thanks, Matthias. -- --------------------------------------------------------------- From: Matthias Welk office: +49-30-3463-7272 FHG Fokus mobile: +49-179- 1144752 Kaiserin-Augusta-Allee 31 fax : +49-30-3463-8672 10589 Berlin email : welk@fokus.fhg.de ---------------------------------------------------------------- From owner-netdev@oss.sgi.com Wed Jul 10 01:55:10 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6A8tARw028996 for ; Wed, 10 Jul 2002 01:55:10 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6A8tAbl028995 for netdev-outgoing; Wed, 10 Jul 2002 01:55:10 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6A8t5Rw028986 for ; Wed, 10 Jul 2002 01:55:05 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id MAA25289; Wed, 10 Jul 2002 12:56:58 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207100856.MAA25289@sex.inr.ac.ru> Subject: Re: PROBLEM: udp not delivered on special socket receive buffer size To: welk@fokus.gmd.de (Matthias Welk) Date: Wed, 10 Jul 2002 12:56:58 +0400 (MSD) Cc: netdev@oss.sgi.com, davem@redhat.com, pekkas@netcore.fi, gober@fokus.gmd.de In-Reply-To: <200207100945.13002.welk@fokus.gmd.de> from "Matthias Welk" at Jul 10, 2 09:45:11 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk HelloQ > The probles is, that I did not receive any udp packets (224 bytes), if the= > =20 > receive buffer size (SO_RCVBUF) of the socket is set to a value below 831=20 > (??) bytes. Apparently, 831 is not enough to allow to queue such buffer. Tune value of "rx_copybreak" for ethernet to value sort of 1000. It is module parameter for most of drivers. > Yes, you may ask why such a low value, but I have no influence on this,=20 > because it is set in the Java Media Framework internally. No doubts, this piece of software was not ever tested and contains lots of another bugs, you will get nothing but persistnet pain in ass if you are going to use it seriously. Alexey From owner-netdev@oss.sgi.com Wed Jul 10 03:39:19 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6AAdJRw020861 for ; Wed, 10 Jul 2002 03:39:19 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6AAdJNF020860 for netdev-outgoing; Wed, 10 Jul 2002 03:39:19 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from mailhub.fokus.gmd.de (mailhub.fokus.gmd.de [193.174.154.14]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6AAdCRw020851 for ; Wed, 10 Jul 2002 03:39:13 -0700 Received: from buruk.fokus.gmd.de (buruk [193.175.135.102]) by mailhub.fokus.gmd.de (8.11.6/8.11.6) with ESMTP id g6AAhbW21224; Wed, 10 Jul 2002 12:43:37 +0200 (MEST) Received: from localhost (localhost [[UNIX: localhost]]) by buruk.fokus.gmd.de (8.11.6/8.11.6) id g6AAiFS02107; Wed, 10 Jul 2002 12:44:15 +0200 From: Matthias Welk Organization: Fraunhofer Fokus To: kuznet@ms2.inr.ac.ru Subject: Re: PROBLEM: udp not delivered on special socket receive buffer size Date: Wed, 10 Jul 2002 12:44:15 +0200 User-Agent: KMail/1.4.5 Cc: netdev@oss.sgi.com, davem@redhat.com, pekkas@netcore.fi, gober@fokus.gmd.de References: <200207100856.MAA25289@sex.inr.ac.ru> In-Reply-To: <200207100856.MAA25289@sex.inr.ac.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: inline Message-Id: <200207101244.15458.welk@fokus.gmd.de> Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id g6AAdDRw020852 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Wednesday 10 July 2002 10:56, kuznet@ms2.inr.ac.ru wrote: >> The probles is, that I did not receive any udp packets (224 bytes), if the= >> =20 >> receive buffer size (SO_RCVBUF) of the socket is set to a value below 831=20 >> (??) bytes. > >Apparently, 831 is not enough to allow to queue such buffer. > >Tune value of "rx_copybreak" for ethernet to value sort of 1000. >It is module parameter for most of drivers. > But shouldn't it not be working without tuning via kernel module parameters ? And where is the relation between the "rx_copybreak" -value and the socket, I mean why is it working if I increase receive buffer size ? And shouldn't the minimum size set to a minum working value ? Thanks, Matthias. -- --------------------------------------------------------------- From: Matthias Welk office: +49-30-3463-7272 FHG Fokus mobile: +49-179- 1144752 Kaiserin-Augusta-Allee 31 fax : +49-30-3463-8672 10589 Berlin email : welk@fokus.fhg.de ---------------------------------------------------------------- From owner-netdev@oss.sgi.com Wed Jul 10 15:28:35 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6AMSYRw021984 for ; Wed, 10 Jul 2002 15:28:35 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6AMSYWq021983 for netdev-outgoing; Wed, 10 Jul 2002 15:28:34 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from orr.homenet (dsl-65-188-251-69.telocity.com [65.188.251.69]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6AMSRRw021974 for ; Wed, 10 Jul 2002 15:28:27 -0700 Received: from lunz by orr.homenet with local (Exim 3.35 #1 (Debian)) id 17SQ0j-00026C-00; Wed, 10 Jul 2002 18:32:37 -0400 Date: Wed, 10 Jul 2002 18:32:37 -0400 To: netdev@oss.sgi.com Cc: Robert.Olsson@data.slu.se, greearb@candelatech.com, garzik@mandrakesoft.com Subject: [ANNOUNCE] NAPI patches for 2.4.19-rc1 Message-ID: <20020710223237.GA7995@orr.falooley.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="azLHFNyN32YCQGCU" Content-Disposition: inline User-Agent: Mutt/1.3.28i From: Jason Lunz X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk --azLHFNyN32YCQGCU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I've backported the most recent napi sources I could find to 2.4.19-rc1. The patches are available at http://orr.falooley.org/pub/linux/net/. Testing and suggestions are welcome. Currently backported napi drivers are e1000, eepro100, tulip, and 3c59x. I intend to backport dl2k and sundance at some point, but I have no dl2k cards and I'm working with Donald Becker to get the sundance driver working on the card I have. Does anyone know of more recent NAPI conversions? Robert Olsson tells me Jeff Garzik has a more recent tulip conversion, but there are _no_ napi net drivers in 2.5.25 and I haven't found any others except for those mentioned at the NAPI ftp site. Jason --azLHFNyN32YCQGCU Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9LLYFaDU3zTAC0GcRAiP+AJwOEmMKfXW2fBWFq0r+u7OK636OYQCcC/FT TAq5A0OiWJ+LSuZEP1DqXLU= =PlFN -----END PGP SIGNATURE----- --azLHFNyN32YCQGCU-- From owner-netdev@oss.sgi.com Wed Jul 10 15:52:24 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6AMqORw023187 for ; Wed, 10 Jul 2002 15:52:24 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6AMqOwt023186 for netdev-outgoing; Wed, 10 Jul 2002 15:52:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from grok.yi.org (IDENT:35viu6z0j89nqrzPKsSLi/HWZrtxTsXZ@ip68-3-14-32.ph.ph.cox.net [68.3.14.32]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6AMqIRw023173 for ; Wed, 10 Jul 2002 15:52:18 -0700 Received: from candelatech.com (IDENT:XtpGyJKtB6BoF2SecF0fdivIszUOX+Hr@localhost.localdomain [127.0.0.1]) by grok.yi.org (8.11.6/8.11.2) with ESMTP id g6AMueR18049; Wed, 10 Jul 2002 15:56:40 -0700 Message-ID: <3D2CBBA8.7080400@candelatech.com> Date: Wed, 10 Jul 2002 15:56:40 -0700 From: Ben Greear Organization: Candela Technologies User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020529 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jason Lunz CC: netdev@oss.sgi.com, Robert.Olsson@data.slu.se, garzik@mandrakesoft.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: <20020710223237.GA7995@orr.falooley.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Jason Lunz wrote: > I've backported the most recent napi sources I could find to 2.4.19-rc1. > The patches are available at http://orr.falooley.org/pub/linux/net/. > > Testing and suggestions are welcome. Currently backported napi drivers > are e1000, eepro100, tulip, and 3c59x. I intend to backport dl2k and > sundance at some point, but I have no dl2k cards and I'm working with > Donald Becker to get the sundance driver working on the card I have. > > Does anyone know of more recent NAPI conversions? Robert Olsson tells me > Jeff Garzik has a more recent tulip conversion, but there are _no_ napi > net drivers in 2.5.25 and I haven't found any others except for those > mentioned at the NAPI ftp site. > > Jason The tulip driver I saw on the napi web site was based off of the one in kernel 2.4.2, which was back when tulip was broken for a lot of cards (especially mine). Is that where you got the basis for this last port? Thanks, I'll try out the tulip and NAPI patches ASAP. Ben -- Ben Greear President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear From owner-netdev@oss.sgi.com Wed Jul 10 16:36:12 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6ANaCRw023933 for ; Wed, 10 Jul 2002 16:36:12 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6ANaCEH023932 for netdev-outgoing; Wed, 10 Jul 2002 16:36:12 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6ANa6Rw023921 for ; Wed, 10 Jul 2002 16:36:06 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id TAA01283; Wed, 10 Jul 2002 19:40:19 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6ANY2924723; Wed, 10 Jul 2002 19:34:03 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Wed, 10 Jul 2002 19:34:02 -0400 (EDT) From: jamal To: Jason Lunz cc: , , , Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 In-Reply-To: <20020710223237.GA7995@orr.falooley.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk For some reason i thought there was already patches for 2.4.18 and above. Robert, seems like you dont have them; Two patches: 2.4.18: http://www.cyberus.ca/~hadi/patches/napi-patch-2418.gz 2.4.19-pre10: http://www.cyberus.ca/~hadi/patches/napi-2419-pre10.gz Also a more recently tested tulip driver at: http://www.cyberus.ca/~hadi/patches/tulip-napi.tgz tested with Znyx 4 port ethernet cards; For the best perfomance (at least on the Znyx Nics) turn on MMIO (selected from kernel config). Ignore anything that looks strange in the code. The dl2k and sundance driver from Ed Peng listed in the README at the site should work fine on 2.4 The info is at: ftp://robur.slu.se/pub/Linux/net-development/NAPI/README cheers, jamal On Wed, 10 Jul 2002, Jason Lunz wrote: > > I've backported the most recent napi sources I could find to 2.4.19-rc1. > The patches are available at http://orr.falooley.org/pub/linux/net/. > > Testing and suggestions are welcome. Currently backported napi drivers > are e1000, eepro100, tulip, and 3c59x. I intend to backport dl2k and > sundance at some point, but I have no dl2k cards and I'm working with > Donald Becker to get the sundance driver working on the card I have. > > Does anyone know of more recent NAPI conversions? Robert Olsson tells me > Jeff Garzik has a more recent tulip conversion, but there are _no_ napi > net drivers in 2.5.25 and I haven't found any others except for those > mentioned at the NAPI ftp site. > > Jason > From owner-netdev@oss.sgi.com Wed Jul 10 17:37:25 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6B0bPRw027181 for ; Wed, 10 Jul 2002 17:37:25 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6B0bPIs027175 for netdev-outgoing; Wed, 10 Jul 2002 17:37:25 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from beohost.scyld.com (dsl093-058-082.blt1.dsl.speakeasy.net [66.93.58.82]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6B0bHRw027159 for ; Wed, 10 Jul 2002 17:37:18 -0700 Received: from localhost (becker@localhost) by beohost.scyld.com (8.11.6/8.11.6) with ESMTP id g6B0fxP03175; Wed, 10 Jul 2002 20:41:59 -0400 Date: Wed, 10 Jul 2002 20:41:59 -0400 (EDT) From: Donald Becker To: jamal cc: netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Wed, 10 Jul 2002, jamal wrote: ... > For the best perfomance (at least on the Znyx Nics) turn on MMIO > (selected from kernel config). Ignore anything that looks strange > in the code. The dl2k and sundance driver from Ed Peng listed in the > README at the site should work fine on 2.4 Ehhh? Has anyone tested that sundance driver with the Kendin chip using the on-chip transceiver? I'm guessing that it doesn't work. And, BTW, I don't like some of the driver changes in that version. One pair of changes that represent "it works for me" code and flawed reasoning is resetting the transceiver and then calling mdelay(300). Unless there is a specific known hardware problem, the driver should not reset the transceiver and thus re-do autonegotiation. Some switches (Cisco) turn off traffic to that port for a minute when link beat is lost, and some operations rely on being able to rapidly bring the interface up and down. The mdelay(300) is completely bogus. While that is a typical period for autonegotiation to complete on a short link, the spec says that it can take up to 3 seconds, 10X longer, to complete autonegotiation. Given that the driver must be able to handle a longer autonegotiation period and no link beat, why call mdelay() at all? The driver also changes the transceiver settings to non-standard values. Yes, the change might seem more descriptive, but the modified driver doesn't match the documentation or accept the options that other drivers do. There is a value to consistency: "/bin/list" is more descriptive than "/bin/ls", but you don't see any distribution trying to rename 'ls'... -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Second Generation Beowulf Clusters Annapolis MD 21403 410-990-9993 From owner-netdev@oss.sgi.com Wed Jul 10 19:19:48 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6B2JmRw031995 for ; Wed, 10 Jul 2002 19:19:48 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6B2Jmdi031994 for netdev-outgoing; Wed, 10 Jul 2002 19:19:48 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from pizda.ninka.net (IDENT:root@pizda.ninka.net [216.101.162.242]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6B2JhRw031985 for ; Wed, 10 Jul 2002 19:19:43 -0700 Received: from localhost (IDENT:davem@localhost.localdomain [127.0.0.1]) by pizda.ninka.net (8.9.3/8.9.3) with ESMTP id TAA14827; Wed, 10 Jul 2002 19:15:35 -0700 Date: Wed, 10 Jul 2002 19:15:35 -0700 (PDT) Message-Id: <20020710.191535.28787427.davem@redhat.com> To: welk@fokus.gmd.de Cc: netdev@oss.sgi.com, kuznet@ms2.inr.ac.ru, pekkas@netcore.fi, gober@fokus.gmd.de Subject: Re: PROBLEM: udp not delivered on special socket receive buffer size From: "David S. Miller" In-Reply-To: <200207100945.13002.welk@fokus.gmd.de> References: <200207100945.13002.welk@fokus.gmd.de> X-Mailer: Mew version 2.1 on Emacs 21.1 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk From: Matthias Welk Date: Wed, 10 Jul 2002 09:45:11 +0200 So my question is: Is this a bug or are there any reasons for this magic 831 bytes barrier ? Assuming anything about the meaning of the send/receive buffer sizes, as raw numbers, is going to cause no ends of problems for any application. Under Linux, the size of the socket buffer structure itself (not just the data) is subtracted from the socket buffer size when accounting. That is a perfectly legal thing to do. So the Java code is broken. From owner-netdev@oss.sgi.com Thu Jul 11 06:16:01 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BDG1Rw030242 for ; Thu, 11 Jul 2002 06:16:01 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BDG1GO030241 for netdev-outgoing; Thu, 11 Jul 2002 06:16:01 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from orr.homenet (dsl-65-188-251-69.telocity.com [65.188.251.69]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BDFvRw030232 for ; Thu, 11 Jul 2002 06:15:58 -0700 Received: from lunz by orr.homenet with local (Exim 3.35 #1 (Debian)) id 17Sdrp-0003Dz-00; Thu, 11 Jul 2002 09:20:21 -0400 Date: Thu, 11 Jul 2002 09:20:21 -0400 To: Ben Greear Cc: netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 Message-ID: <20020711132021.GB12354@orr.falooley.org> References: <20020710223237.GA7995@orr.falooley.org> <3D2CBBA8.7080400@candelatech.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3D2CBBA8.7080400@candelatech.com> User-Agent: Mutt/1.3.28i From: Jason Lunz X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Wed, Jul 10, 2002 at 3:56PM -0700, Ben Greear wrote: > The tulip driver I saw on the napi web site was based off of the one > in kernel 2.4.2, which was back when tulip was broken for a lot of > cards (especially mine). > > Is that where you got the basis for this last port? I asked Robert Olssen about this a while back; he said that it was based on the driver in 2.5.3 "to make Jeff happy". Jason From owner-netdev@oss.sgi.com Thu Jul 11 06:21:48 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BDLmRw030373 for ; Thu, 11 Jul 2002 06:21:48 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BDLmks030372 for netdev-outgoing; Thu, 11 Jul 2002 06:21:48 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from orr.homenet (dsl-65-188-251-69.telocity.com [65.188.251.69]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BDLhRw030363 for ; Thu, 11 Jul 2002 06:21:44 -0700 Received: from lunz by orr.homenet with local (Exim 3.35 #1 (Debian)) id 17SdxM-0003Eg-00; Thu, 11 Jul 2002 09:26:04 -0400 Date: Thu, 11 Jul 2002 09:26:04 -0400 To: jamal Cc: netdev@oss.sgi.com, Robert.Olsson@data.slu.se, greearb@candelatech.com, garzik@mandrakesoft.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 Message-ID: <20020711132604.GC12354@orr.falooley.org> References: <20020710223237.GA7995@orr.falooley.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.28i From: Jason Lunz X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Wed, Jul 10, 2002 at 7:34PM -0400, jamal wrote: > For some reason i thought there was already patches for 2.4.18 and above. > Robert, seems like you dont have them; > Two patches: > 2.4.18: http://www.cyberus.ca/~hadi/patches/napi-patch-2418.gz > 2.4.19-pre10: http://www.cyberus.ca/~hadi/patches/napi-2419-pre10.gz ah, thanks! The napi README links to the usenix paper on your site, but doesn't mention the patches directory. > Also a more recently tested tulip driver at: > http://www.cyberus.ca/~hadi/patches/tulip-napi.tgz great, I'll check it out too. > tested with Znyx 4 port ethernet cards; For the best perfomance (at > least on the Znyx Nics) turn on MMIO (selected from kernel config). Do you know if this would also apply to the DLink 4-port tulip cards (DFE-570TX)? They're based on intel 21143's. Jason From owner-netdev@oss.sgi.com Thu Jul 11 06:34:49 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BDYnRw030771 for ; Thu, 11 Jul 2002 06:34:49 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BDYnSg030770 for netdev-outgoing; Thu, 11 Jul 2002 06:34:49 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from www.linux.org.uk (parcelfarce.linux.theplanet.co.uk [195.92.249.252]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BDYjRw030758 for ; Thu, 11 Jul 2002 06:34:45 -0700 Received: from nbn-tnt3-a-7.coastalnet.com ([64.92.83.7] helo=mandrakesoft.com) by www.linux.org.uk with esmtp (Exim 3.33 #5) id 17SeA8-00013T-00; Thu, 11 Jul 2002 14:39:17 +0100 Message-ID: <3D2D8A77.8060401@mandrakesoft.com> Date: Thu, 11 Jul 2002 09:39:03 -0400 From: Jeff Garzik Organization: MandrakeSoft User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jason Lunz CC: jamal , netdev@oss.sgi.com, Robert.Olsson@data.slu.se, greearb@candelatech.com, garzik@mandrakesoft.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: <20020710223237.GA7995@orr.falooley.org> <20020711132604.GC12354@orr.falooley.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Jason Lunz wrote: > On Wed, Jul 10, 2002 at 7:34PM -0400, jamal wrote: >>tested with Znyx 4 port ethernet cards; For the best perfomance (at >>least on the Znyx Nics) turn on MMIO (selected from kernel config). > > > Do you know if this would also apply to the DLink 4-port tulip cards > (DFE-570TX)? They're based on intel 21143's. Yes, MMIO will speed up pretty much any tulip card Jeff From owner-netdev@oss.sgi.com Thu Jul 11 06:40:04 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BDe4Rw031008 for ; Thu, 11 Jul 2002 06:40:04 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BDe4FB031007 for netdev-outgoing; Thu, 11 Jul 2002 06:40:04 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from orr.homenet (dsl-65-188-251-69.telocity.com [65.188.251.69]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BDe2Rw030998 for ; Thu, 11 Jul 2002 06:40:02 -0700 Received: from lunz by orr.homenet with local (Exim 3.35 #1 (Debian)) id 17SeFE-0003JO-00; Thu, 11 Jul 2002 09:44:32 -0400 Date: Thu, 11 Jul 2002 09:44:32 -0400 To: Jeff Garzik Cc: netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 Message-ID: <20020711134432.GA12722@orr.falooley.org> References: <20020710223237.GA7995@orr.falooley.org> <20020711132604.GC12354@orr.falooley.org> <3D2D8A77.8060401@mandrakesoft.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3D2D8A77.8060401@mandrakesoft.com> User-Agent: Mutt/1.3.28i From: Jason Lunz X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Thu, Jul 11, 2002 at 9:39AM -0400, Jeff Garzik wrote: > Yes, MMIO will speed up pretty much any tulip card Why isn't it the default? Because the clones don't handle it? Jason From owner-netdev@oss.sgi.com Thu Jul 11 07:30:42 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BEUgRw004367 for ; Thu, 11 Jul 2002 07:30:42 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BEUgBs004366 for netdev-outgoing; Thu, 11 Jul 2002 07:30:42 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from beohost.scyld.com (pool-151-196-173-131.balt.east.verizon.net [151.196.173.131]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BEU6Rw004324 for ; Thu, 11 Jul 2002 07:30:22 -0700 Received: from localhost (becker@localhost) by beohost.scyld.com (8.11.6/8.11.6) with ESMTP id g6BEXY407133; Thu, 11 Jul 2002 10:33:44 -0400 Date: Thu, 11 Jul 2002 10:33:34 -0400 (EDT) From: Donald Becker To: Jason Lunz cc: netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 In-Reply-To: <20020711134432.GA12722@orr.falooley.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Thu, 11 Jul 2002, Jason Lunz wrote: > On Thu, Jul 11, 2002 at 9:39AM -0400, Jeff Garzik wrote: > > Yes, MMIO will speed up pretty much any tulip card > > Why isn't it the default? Because the clones don't handle it? It's the default in my driver, with -DUSE_IO_OPS to override. The driver did need additional write flushes with a few operations. Don't do this blindly, or you will end up with a driver that is much slower than just using I/O operations (e.g. early 8139too drivers). When I made the changes, I tested on a few dozen tulip cards. Do not change a driver unless you have access to all of the chips and chip revisions, as well as boards with all of the transceiver options. There are a few NICs that either don't work with MMIO, or have different register semantics. Early via-rhine chips and the rtl8139 are good examples. Don't assume that if it works for you, the change is universally valid. -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Second Generation Beowulf Clusters Annapolis MD 21403 410-990-9993 From owner-netdev@oss.sgi.com Thu Jul 11 07:33:02 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BEX2Rw004465 for ; Thu, 11 Jul 2002 07:33:02 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BEX229004464 for netdev-outgoing; Thu, 11 Jul 2002 07:33:02 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from www.linux.org.uk (parcelfarce.linux.theplanet.co.uk [195.92.249.252]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BEWrRw004451 for ; Thu, 11 Jul 2002 07:32:58 -0700 Received: from nbn-tnt3-a-7.coastalnet.com ([64.92.83.7] helo=mandrakesoft.com) by www.linux.org.uk with esmtp (Exim 3.33 #5) id 17Sf4P-0002BP-00; Thu, 11 Jul 2002 15:37:26 +0100 Message-ID: <3D2D9816.1050703@mandrakesoft.com> Date: Thu, 11 Jul 2002 10:37:10 -0400 From: Jeff Garzik Organization: MandrakeSoft User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jason Lunz CC: netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: <20020710223237.GA7995@orr.falooley.org> <20020711132604.GC12354@orr.falooley.org> <3D2D8A77.8060401@mandrakesoft.com> <20020711134432.GA12722@orr.falooley.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Jason Lunz wrote: > On Thu, Jul 11, 2002 at 9:39AM -0400, Jeff Garzik wrote: > >>Yes, MMIO will speed up pretty much any tulip card > > > Why isn't it the default? Because the clones don't handle it? tulip still has PCI posting bugs [1], and some clones don't support MMIO at all. Jeff [1] you only notice this on a few chipsets, typically non-ia32 ones From owner-netdev@oss.sgi.com Thu Jul 11 07:53:00 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BEr0Rw005228 for ; Thu, 11 Jul 2002 07:53:00 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BEr0tf005227 for netdev-outgoing; Thu, 11 Jul 2002 07:53:00 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from www.linux.org.uk (parcelfarce.linux.theplanet.co.uk [195.92.249.252]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BEqqRw005208 for ; Thu, 11 Jul 2002 07:52:53 -0700 Received: from nbn-tnt3-a-7.coastalnet.com ([64.92.83.7] helo=mandrakesoft.com) by www.linux.org.uk with esmtp (Exim 3.33 #5) id 17SfNk-0002Wq-00; Thu, 11 Jul 2002 15:57:24 +0100 Message-ID: <3D2D9CC8.5050200@mandrakesoft.com> Date: Thu, 11 Jul 2002 10:57:12 -0400 From: Jeff Garzik Organization: MandrakeSoft User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Donald Becker CC: jamal , netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Donald Becker wrote: > The mdelay(300) is completely bogus. While that is a typical period for > autonegotiation to complete on a short link, the spec says that it can > take up to 3 seconds, 10X longer, to complete autonegotiation. Given > that the driver must be able to handle a longer autonegotiation period > and no link beat, why call mdelay() at all? Ouch. You are absolutely right, and I take the blame for not reviewing more closely. That's what I get for trusting vendors too much ;-) [D-Link has been the one patching sundance and dl2k for a while now] I've been meaning to go through several drivers and fix up the stupid assumptions they make about autonegotiation completion time. There are a couple other drivers that do somewhat the same thing, though with a different [if equally silly] implementation. And finally, most drivers need to be updated to follow the logic: call netif_carrier_off(). Wait for autoneg complete and link OK, before calling netif_carrier_on(). > The driver also changes the transceiver settings to non-standard > values. Yes, the change might seem more descriptive, but the modified > driver doesn't match the documentation or accept the options that other > drivers do. There is a value to consistency: "/bin/list" is more > descriptive than "/bin/ls", but you don't see any distribution trying > to rename 'ls'... Which lines of code are you referring to? This _might_ be a case where the docs are inaccurate, since the patch was done by D-Link with access to the chip designers. Jeff From owner-netdev@oss.sgi.com Thu Jul 11 08:49:24 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BFnORw006663 for ; Thu, 11 Jul 2002 08:49:24 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BFnOJG006662 for netdev-outgoing; Thu, 11 Jul 2002 08:49:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from robur.slu.se (robur.slu.se [130.238.98.12]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BFnFRw006652 for ; Thu, 11 Jul 2002 08:49:17 -0700 Received: (from robert@localhost) by robur.slu.se (8.9.3/8.9.3) id SAA02901; Thu, 11 Jul 2002 18:00:10 +0200 From: Robert Olsson MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15661.43914.786721.347779@robur.slu.se> Date: Thu, 11 Jul 2002 18:00:10 +0200 To: Jason Lunz Cc: netdev@oss.sgi.com, Robert.Olsson@data.slu.se, greearb@candelatech.com, garzik@mandrakesoft.com Subject: [ANNOUNCE] NAPI patches for 2.4.19-rc1 In-Reply-To: <20020710223237.GA7995@orr.falooley.org> References: <20020710223237.GA7995@orr.falooley.org> X-Mailer: VM 6.92 under Emacs 19.34.1 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Jason Lunz writes: > > I've backported the most recent napi sources I could find to 2.4.19-rc1. > The patches are available at http://orr.falooley.org/pub/linux/net/. Thanks! Yes but remember it's experimental branch and hopefully soon we can kill most of it... > Does anyone know of more recent NAPI conversions? Robert Olsson tells me > Jeff Garzik has a more recent tulip conversion, but there are _no_ napi > net drivers in 2.5.25 and I haven't found any others except for those > mentioned at the NAPI ftp site. Current tulip seems fine but it is complex. Eventually it will be better if uses a simliar scheme as e1000 and tg3. Leaving all "interrupt work" to dev->poll. And yes it was forked off linux-2.4.2 so Jeffs later work is not included. The e1000 4.2.4 is well tested. But for 4.2.17 I more or less moved the path onto it. I've put a reference to your work in README Cheers. --ro From owner-netdev@oss.sgi.com Thu Jul 11 09:46:25 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BGkPRw008468 for ; Thu, 11 Jul 2002 09:46:25 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BGkOGn008467 for netdev-outgoing; Thu, 11 Jul 2002 09:46:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from beohost.scyld.com (dsl093-058-082.blt1.dsl.speakeasy.net [66.93.58.82]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BGkHRw008458 for ; Thu, 11 Jul 2002 09:46:17 -0700 Received: from localhost (becker@localhost) by beohost.scyld.com (8.11.6/8.11.6) with ESMTP id g6BGou708117; Thu, 11 Jul 2002 12:51:00 -0400 Date: Thu, 11 Jul 2002 12:50:56 -0400 (EDT) From: Donald Becker To: Jeff Garzik cc: jamal , Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 In-Reply-To: <3D2D9CC8.5050200@mandrakesoft.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Thu, 11 Jul 2002, Jeff Garzik wrote: > Donald Becker wrote: > > The mdelay(300) is completely bogus. ... > Ouch. You are absolutely right, and I take the blame for not reviewing > more closely. That's what I get for trusting vendors too much ;-) > [D-Link has been the one patching sundance and dl2k for a while now] Very, very few vendor patchs are worth applying. They sometimes know of otherwise undocumented chip bugs, but a lot of the actual code is bad. It's not "maintaining" a driver when you just take a vendor modification of a driver and assume it's OK. You have to understand the changes and evaluate if they make sense. > I've been meaning to go through several drivers and fix up the stupid > assumptions they make about autonegotiation completion time. Putting broken changes into the kernel with a plan to go back later and clean them is a bad development methodology. > > The driver also changes the transceiver settings to non-standard > > values. > Which lines of code are you referring to? Removing "options" as a way to set the transceiver. > This _might_ be a case where the docs are inaccurate, since the patch > was done by D-Link with access to the chip designers. No, it's unrelated to specific chip. It's a change that looks good when you see only that driver, but the change makes it inconsistent will all of the other drivers. -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Second Generation Beowulf Clusters Annapolis MD 21403 410-990-9993 From owner-netdev@oss.sgi.com Thu Jul 11 10:13:06 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BHD6Rw009040 for ; Thu, 11 Jul 2002 10:13:06 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BHD66O009039 for netdev-outgoing; Thu, 11 Jul 2002 10:13:06 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from grok.yi.org (IDENT:WNh3SpSoifjKSc6T0HzM7bu6NKnOtaH1@ip68-3-14-32.ph.ph.cox.net [68.3.14.32]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BHD0Rw009030 for ; Thu, 11 Jul 2002 10:13:00 -0700 Received: from candelatech.com (IDENT:jtE5zW5uePMGc4repdzLdfPqnn14d3PK@localhost.localdomain [127.0.0.1]) by grok.yi.org (8.11.6/8.11.2) with ESMTP id g6BHHOR29971; Thu, 11 Jul 2002 10:17:24 -0700 Message-ID: <3D2DBDA4.4090009@candelatech.com> Date: Thu, 11 Jul 2002 10:17:24 -0700 From: Ben Greear Organization: Candela Technologies User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020529 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Donald Becker CC: Jeff Garzik , jamal , netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Donald Becker wrote: > Very, very few vendor patchs are worth applying. They sometimes know of > otherwise undocumented chip bugs, but a lot of the actual code is bad. > > It's not "maintaining" a driver when you just take a vendor modification > of a driver and assume it's OK. You have to understand the changes and > evaluate if they make sense. I don't know the quality of the patches submitted by dlink, but I do know that the existing driver in the 2.4.18 kernel absolutely does not work at all. So, if there is a hack/patch that makes it work, I consider that better than completely broken, even if it is ugly. Of course, the preferred driver would be clean and work with all chipsets, but those are not easy to find. Ben -- Ben Greear President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear From owner-netdev@oss.sgi.com Thu Jul 11 11:27:39 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BIRcRw012487 for ; Thu, 11 Jul 2002 11:27:39 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BIRcNA012486 for netdev-outgoing; Thu, 11 Jul 2002 11:27:38 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from www.linux.org.uk (parcelfarce.linux.theplanet.co.uk [195.92.249.252]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BIRYRw012476 for ; Thu, 11 Jul 2002 11:27:35 -0700 Received: from nbn-tnt3-a-7.coastalnet.com ([64.92.83.7] helo=mandrakesoft.com) by www.linux.org.uk with esmtp (Exim 3.33 #5) id 17SijX-0006jp-00; Thu, 11 Jul 2002 19:32:08 +0100 Message-ID: <3D2DCF1B.9050108@mandrakesoft.com> Date: Thu, 11 Jul 2002 14:31:55 -0400 From: Jeff Garzik Organization: MandrakeSoft User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Ben Greear CC: Donald Becker , jamal , netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: <3D2DBDA4.4090009@candelatech.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Ben Greear wrote: > I don't know the quality of the patches submitted by dlink, but I do > know that the existing driver in the 2.4.18 kernel absolutely does not > work at all. So, if there is a hack/patch that makes it work, I consider > that better than completely broken, even if it is ugly. I thought that issue was fixed in 2.4.19-rc1? Can you verify the problem still exists? Jeff From owner-netdev@oss.sgi.com Thu Jul 11 11:49:29 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BInORw014820 for ; Thu, 11 Jul 2002 11:49:24 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BInODd014819 for netdev-outgoing; Thu, 11 Jul 2002 11:49:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from beohost.scyld.com (dsl093-058-082.blt1.dsl.speakeasy.net [66.93.58.82]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BInDRw014810 for ; Thu, 11 Jul 2002 11:49:14 -0700 Received: from localhost (becker@localhost) by beohost.scyld.com (8.11.6/8.11.6) with ESMTP id g6BIrt508812; Thu, 11 Jul 2002 14:53:55 -0400 Date: Thu, 11 Jul 2002 14:53:55 -0400 (EDT) From: Donald Becker To: Ben Greear cc: Jeff Garzik , jamal , Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 In-Reply-To: <3D2DBDA4.4090009@candelatech.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Thu, 11 Jul 2002, Ben Greear wrote: > > Very, very few vendor patchs are worth applying. They sometimes know of > > otherwise undocumented chip bugs, but a lot of the actual code is bad. > > > > It's not "maintaining" a driver when you just take a vendor modification > > of a driver and assume it's OK. You have to understand the changes and > > evaluate if they make sense. > > I don't know the quality of the patches submitted by dlink, but I do > know that the existing driver in the 2.4.18 kernel absolutely does not > work at all. It's a driver that _did_ work, but untested changes were made. > So, if there is a hack/patch that makes it work, I consider > that better than completely broken, even if it is ugly. The DLink modified driver is still missing a few important changes for the new chip version in MMIO mode. For instance, ASICCtrl apparently must now be read and written as a 32 bit word, while the older chip worked with writew(). -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Second Generation Beowulf Clusters Annapolis MD 21403 410-990-9993 From owner-netdev@oss.sgi.com Thu Jul 11 12:30:42 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BJUgRw020727 for ; Thu, 11 Jul 2002 12:30:42 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BJUgdX020726 for netdev-outgoing; Thu, 11 Jul 2002 12:30:42 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from www.linux.org.uk (parcelfarce.linux.theplanet.co.uk [195.92.249.252]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BJUYRw020717 for ; Thu, 11 Jul 2002 12:30:35 -0700 Received: from nbn-tnt3-a-7.coastalnet.com ([64.92.83.7] helo=mandrakesoft.com) by www.linux.org.uk with esmtp (Exim 3.33 #5) id 17SjiV-0000IJ-00; Thu, 11 Jul 2002 20:35:08 +0100 Message-ID: <3D2DDDDE.2040008@mandrakesoft.com> Date: Thu, 11 Jul 2002 15:34:54 -0400 From: Jeff Garzik Organization: MandrakeSoft User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Donald Becker CC: jamal , netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Content-Length: 1489 Lines: 43 Donald Becker wrote: > On Thu, 11 Jul 2002, Jeff Garzik wrote: > >>Donald Becker wrote: >> >>>The mdelay(300) is completely bogus. >> > ... > >>Ouch. You are absolutely right, and I take the blame for not reviewing >>more closely. That's what I get for trusting vendors too much ;-) >>[D-Link has been the one patching sundance and dl2k for a while now] > > > Very, very few vendor patchs are worth applying. They sometimes know of > otherwise undocumented chip bugs, but a lot of the actual code is bad. > > It's not "maintaining" a driver when you just take a vendor modification > of a driver and assume it's OK. You have to understand the changes and > evaluate if they make sense. I never claimed to maintain sundance ;-) Not having docs and test hardware tends to narrow the field a bit. >>I've been meaning to go through several drivers and fix up the stupid >>assumptions they make about autonegotiation completion time. > > > Putting broken changes into the kernel with a plan to go back later and > clean them is a bad development methodology. That depends on the change. mdelay(300) is a case of "stupid but usually works" not completely broken. As long as it's forward progress that gets something working, I would rather apply now and fix up later. That reduces the overall brokenness time a user must deal with. I'm accepting patches to clean up sundance, if someone with test hardware is willing to compare your driver and the kernel's. Jeff From owner-netdev@oss.sgi.com Thu Jul 11 15:27:38 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6BMRcRw024778 for ; Thu, 11 Jul 2002 15:27:38 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6BMRcko024777 for netdev-outgoing; Thu, 11 Jul 2002 15:27:38 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from grok.yi.org (IDENT:wSKzhOFe+a8kpdeDxsX9qFKCTgVX1IWg@ip68-3-14-32.ph.ph.cox.net [68.3.14.32]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6BMRURw024768 for ; Thu, 11 Jul 2002 15:27:31 -0700 Received: from candelatech.com (IDENT:EYg0qiStCrWxQPVYZREKrt7AOmmqR70K@localhost.localdomain [127.0.0.1]) by grok.yi.org (8.11.6/8.11.2) with ESMTP id g6BMVmR07269; Thu, 11 Jul 2002 15:31:48 -0700 Message-ID: <3D2E0754.1060107@candelatech.com> Date: Thu, 11 Jul 2002 15:31:48 -0700 From: Ben Greear Organization: Candela Technologies User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020529 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jeff Garzik CC: Donald Becker , jamal , netdev@oss.sgi.com Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 References: <3D2DBDA4.4090009@candelatech.com> <3D2DCF1B.9050108@mandrakesoft.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Content-Length: 825 Lines: 27 Jeff Garzik wrote: > Ben Greear wrote: > >> I don't know the quality of the patches submitted by dlink, but I do >> know that the existing driver in the 2.4.18 kernel absolutely does not >> work at all. So, if there is a hack/patch that makes it work, I consider >> that better than completely broken, even if it is ugly. > > > > I thought that issue was fixed in 2.4.19-rc1? Can you verify the > problem still exists? > > Jeff About to pack and move to Washington state, but will test it as soon as I get the lab powered up again :) I have not tried with rc1, so it very well could be fixed. -- Ben Greear President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear From owner-netdev@oss.sgi.com Fri Jul 12 09:36:29 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6CGaTRw008043 for ; Fri, 12 Jul 2002 09:36:29 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6CGaTGh008042 for netdev-outgoing; Fri, 12 Jul 2002 09:36:29 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from deliverator.sgi.com (deliverator.SGI.COM [204.94.214.10] (may be forged)) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6CGaPRw008033 for ; Fri, 12 Jul 2002 09:36:25 -0700 Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by deliverator.sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam: SGI does not authorize the use of its proprietary systems or networks for unsolicited or bulk email from the Internet.) via ESMTP id JAA01563 for ; Fri, 12 Jul 2002 09:41:01 -0700 (PDT) mail_from (linux-netdev@m.gmane.org) Received: from root by main.gmane.org with local (Exim 3.33 #1 (Debian)) id 17T3Iz-0005v6-00 for ; Fri, 12 Jul 2002 18:30:05 +0200 To: netdev@oss.sgi.com X-Injected-Via-Gmane: http://gmane.org/ Received: from news by main.gmane.org with local (Exim 3.33 #1 (Debian)) id 17T25O-0002HQ-00 for ; Fri, 12 Jul 2002 17:11:58 +0200 Path: not-for-mail From: Jason Lunz Newsgroups: gmane.linux.network Subject: Re: [ANNOUNCE] NAPI patches for 2.4.19-rc1 Date: Fri, 12 Jul 2002 15:11:58 +0000 (UTC) Organization: PBR Streetgang Lines: 12 Message-ID: References: <3D2DBDA4.4090009@candelatech.com> <3D2DCF1B.9050108@mandrakesoft.com> <3D2E0754.1060107@candelatech.com> NNTP-Posting-Host: dsl-65-188-226-101.telocity.com X-Trace: main.gmane.org 1026486718 2105 65.188.226.101 (12 Jul 2002 15:11:58 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 12 Jul 2002 15:11:58 +0000 (UTC) User-Agent: slrn/0.9.7.4 (Linux) X-Spam-Status: No, hits=1.3 required=5.0 tests=MAY_BE_FORGED version=2.20 X-Spam-Level: * Sender: owner-netdev@oss.sgi.com Precedence: bulk greearb@candelatech.com said: >> I thought that issue was fixed in 2.4.19-rc1? Can you verify the >> problem still exists? >> Jeff > I have not tried with rc1, so it very well could be fixed. The 2.4.19-rc1 sundance driver (sundance.c:v1.01b 17-Jan-2002) does not work with my DLink 4-port DFE-580TX. As Donald mentioned earlier, newer Kendin sundance chips have a finicky on-chip transceiver. I'll be testing various sundance drivers on this card today. Jason From owner-netdev@oss.sgi.com Sat Jul 13 00:53:21 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6D7rLRw025169 for ; Sat, 13 Jul 2002 00:53:21 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6D7rLv1025168 for netdev-outgoing; Sat, 13 Jul 2002 00:53:21 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from titan.bieringer.de (mail.bieringer.de [195.226.187.51]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6D7rERw025158 for ; Sat, 13 Jul 2002 00:53:15 -0700 Received: (qmail 10456 invoked from network); 13 Jul 2002 07:57:48 -0000 Received: from p508052a3.dip.t-dialin.net (HELO ?192.168.1.2?) (80.128.82.163) by mail.bieringer.de with SMTP; 13 Jul 2002 07:57:48 -0000 Date: Sat, 13 Jul 2002 09:57:46 +0200 From: Peter Bieringer To: Maillist netdev Subject: ICMPv6 ratelimiting, which /proc-settings related? Message-ID: <17380000.1026547066@localhost> X-Mailer: Mulberry/2.2.1 (Linux/x86) X-URL: http://www.bieringer.de/pb/ X-OS: Linux MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam-Status: No, hits=-2.2 required=5.0 tests=SUBJ_ENDS_IN_Q_MARK,PGP_SIGNATURE version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, extending my IPv6-howto with information about the /proc-FS I found that there is no setting for ICMPv6 rate limiting. But in "ipv6/icmp.c" there are some " if (net_ratelimit())" calls. How can this limit be controlled? Is it the "/proc/sys/net/ipv4/icmp_ratelimit" switch? I see no reaction turning the value from 1 to 10000 and running a ping6 -i 0.1 ::1 TIA, Peter -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9L917e1eqe5WPQi0RAgXrAJ404K8wy03ZUdVFVZpOOlAeQ9OdogCgsfUD /QaVWS9anK4WPPvYEPNOFx4= =H2fP -----END PGP SIGNATURE----- From owner-netdev@oss.sgi.com Sat Jul 13 01:45:13 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6D8jDRw025681 for ; Sat, 13 Jul 2002 01:45:13 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6D8jD4o025680 for netdev-outgoing; Sat, 13 Jul 2002 01:45:13 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from titan.bieringer.de (mail.bieringer.de [195.226.187.51]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6D8j7Rw025671 for ; Sat, 13 Jul 2002 01:45:08 -0700 Received: (qmail 10922 invoked from network); 13 Jul 2002 08:49:43 -0000 Received: from p508053ee.dip.t-dialin.net (HELO ?192.168.1.2?) (80.128.83.238) by mail.bieringer.de with SMTP; 13 Jul 2002 08:49:43 -0000 Date: Sat, 13 Jul 2002 10:49:41 +0200 From: Peter Bieringer To: Maillist netdev Subject: IPv6-proc-FS neigh/* and route/* information available? Message-ID: <19920000.1026550181@localhost> X-Mailer: Mulberry/2.2.1 (Linux/x86) X-URL: http://www.bieringer.de/pb/ X-OS: Linux MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam-Status: No, hits=-2.2 required=5.0 tests=SUBJ_ENDS_IN_Q_MARK,PGP_SIGNATURE version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, is there already somewhere information about the entries in /proc/sys/net/ipv6/neigh/*/* and /proc/sys/net/ipv6/route/* available? Kernel sources Documentation/networking/ip-sysctl.txt tells unfortunately nothing about the values. If still not, perhaps someone can contribute information. For the meantime, IPv6 howto contains "To be filled". TIA, Peter -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iEYEARECAAYFAj0v6aYACgkQe1eqe5WPQi2k9wCfY0QyVsP4KzwYdbSyq7ZpQnt5 PKoAoP1HcTToDsgflNZpzEFB4Xq5PCMA =/EKX -----END PGP SIGNATURE----- From owner-netdev@oss.sgi.com Sat Jul 13 06:57:52 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6DDvpRw029299 for ; Sat, 13 Jul 2002 06:57:51 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6DDvp80029298 for netdev-outgoing; Sat, 13 Jul 2002 06:57:51 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from deliverator.sgi.com (deliverator.SGI.COM [204.94.214.10] (may be forged)) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6DDvmRw029289 for ; Sat, 13 Jul 2002 06:57:48 -0700 Received: from ralf (pD95462DA.dip.t-dialin.net [217.84.98.218]) by deliverator.sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam: SGI does not authorize the use of its proprietary systems or networks for unsolicited or bulk email from the Internet.) via SMTP id HAA09262 for ; Sat, 13 Jul 2002 07:02:26 -0700 (PDT) mail_from (ondrosch@web.de) Message-Id: <200207131402.HAA09262@deliverator.sgi.com> From: "Fa. Economy" To: Subject: Benzinersparnis und Umweltschutz Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Date: Sat, 13 Jul 2002 16:02:40 X-MIME-Autoconverted: from 8bit to quoted-printable by deliverator.sgi.com id HAA09262 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id g6DDvmRw029290 X-Spam-Status: No, hits=4.6 required=5.0 tests=INVALID_DATE_NO_TZ,MAY_BE_FORGED,MAILTO_TO_SPAM_ADDR version=2.20 X-Spam-Level: **** Sender: owner-netdev@oss.sgi.com Precedence: bulk Sehr geehrte Damen und Herren, gerade in der heutigen Zeit sind die Themen Umweltschutz und gerade auch die hohen Benzinpreise ein heißes Thema. Wir verteiben ein Produkt, welches durch eine spezielle Langzeit-Innen-Beschichtung fogende Ergebnisse bewirkt: - bis zu 25 % Benzin-einsparung - bis zu 40 % weniger Abgase - bis zu 80 % geringerer Ölverbrauch - bis zu 15 % mehr Motorleistung und darüberhinaus wird der Verschleiß an Getrieben und Motoren, damit verbundene Reparaturkosten drastisch reduziert - und die Motoren halten viel, viel länger. Sollten wir Ihr Interesse geweckt haben, dann bitte kontaktieren Sie uns unter: cepow11@web.de Sollten wir Sie in irgend einer Form belästigt habe, dann bitten wir um entschuldigung. Ansonsten verbleiben wir mit freundlichen Grüßen Fa. Economy From owner-netdev@oss.sgi.com Sun Jul 14 09:27:11 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6EGRARw011651 for ; Sun, 14 Jul 2002 09:27:11 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6EGRA72011650 for netdev-outgoing; Sun, 14 Jul 2002 09:27:10 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from coruscant.gnumonks.org (mail@coruscant.franken.de [193.174.159.226]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6EGR3Rw011641 for ; Sun, 14 Jul 2002 09:27:05 -0700 Received: from uucp by coruscant.gnumonks.org with local-bsmtp (Exim 3.34 #1) id 17TmHl-0002f7-00 for netdev@oss.sgi.com; Sun, 14 Jul 2002 18:31:49 +0200 Received: from laforge by naboo.gnumonks.org with local (Exim 3.35 #1) id 17TStL-0002O9-00; Sat, 13 Jul 2002 21:49:19 +0200 Date: Sat, 13 Jul 2002 21:49:19 +0200 From: Harald Welte To: Peter Bieringer Cc: Maillist netdev Subject: Re: ICMPv6 ratelimiting, which /proc-settings related? Message-ID: <20020713194919.GQ24779@naboo.lsm> References: <17380000.1026547066@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <17380000.1026547066@localhost> User-Agent: Mutt/1.3.28i X-Operating-System: Linux naboo 2.4.19-pre4-ben0 X-Date: Today is Sweetmorn, the 45th day of Confusion in the YOLD 3168 X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Sat, Jul 13, 2002 at 09:57:46AM +0200, Peter Bieringer wrote: > extending my IPv6-howto with information about the /proc-FS I found > that there is no setting for ICMPv6 rate limiting. > > But in "ipv6/icmp.c" there are some " if (net_ratelimit())" calls. > > How can this limit be controlled? Is it the > "/proc/sys/net/ipv4/icmp_ratelimit" > switch? no, the net_ratelimit() is a generic function to limit the rate of printk()'s to prevent syslog flooding... > TIA, > Peter -- Live long and prosper - Harald Welte / laforge@gnumonks.org http://www.gnumonks.org/ ============================================================================ GCS/E/IT d- s-: a-- C+++ UL++++$ P+++ L++++$ E--- W- N++ o? K- w--- O- M- V-- PS+ PE-- Y+ PGP++ t++ 5-- !X !R tv-- b+++ DI? !D G+ e* h+ r% y+(*) From owner-netdev@oss.sgi.com Sun Jul 14 10:39:13 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6EHdDRw012320 for ; Sun, 14 Jul 2002 10:39:13 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6EHdDT8012319 for netdev-outgoing; Sun, 14 Jul 2002 10:39:13 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from yue.hongo.wide.ad.jp (yue.hongo.wide.ad.jp [203.178.139.94]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6EHd5Rw012310 for ; Sun, 14 Jul 2002 10:39:05 -0700 Received: from localhost (localhost [127.0.0.1]) by yue.hongo.wide.ad.jp (8.12.3+3.5Wbeta/8.12.3/Debian -4) with ESMTP id g6EHi2Ud027856 for ; Mon, 15 Jul 2002 02:44:02 +0900 Date: Mon, 15 Jul 2002 02:44:01 +0900 (JST) Message-Id: <20020715.024401.17983126.yoshfuji@wide.ad.jp> To: netdev@oss.sgi.com Subject: Re: ICMPv6 ratelimiting, which /proc-settings related? From: YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?= In-Reply-To: <17380000.1026547066@localhost> References: <17380000.1026547066@localhost> X-URL: http://www.yoshifuji.org/%7Ehideaki/ X-Fingerprint: 90 22 65 EB 1E CF 3A D1 0B DF 80 D8 48 07 F8 94 E0 62 0E EA X-PGP-Key-URL: http://www.yoshifuji.org/%7Ehideaki/hideaki@yoshifuji.org.asc X-Mailer: Mew version 2.2 on Emacs 20.7 / Mule 4.1 (AOI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-2.7 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK,CHARSET_FARAWAY_HEADERS version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk In article <17380000.1026547066@localhost> (at Sat, 13 Jul 2002 09:57:46 +0200), Peter Bieringer says: > extending my IPv6-howto with information about the /proc-FS I found > that there is no setting for ICMPv6 rate limiting. icmpv6_xrlim_allow() controls rate limiting. A variable named sysctl_icmpv6_time lives in net/ipv6/icmp.c, but sysctl does not exist in fact... Is introducing /proc/sys/net/ipv6/icmp/all/icmpv6_time reasonable? --yoshfuji From owner-netdev@oss.sgi.com Sun Jul 14 10:44:48 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6EHimRw012448 for ; Sun, 14 Jul 2002 10:44:48 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6EHimo7012447 for netdev-outgoing; Sun, 14 Jul 2002 10:44:48 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from titan.bieringer.de (mail.bieringer.de [195.226.187.51]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6EHifRw012438 for ; Sun, 14 Jul 2002 10:44:42 -0700 Received: (qmail 14620 invoked from network); 14 Jul 2002 17:49:22 -0000 Received: from p50805754.dip.t-dialin.net (HELO ?192.168.1.2?) (80.128.87.84) by mail.bieringer.de with SMTP; 14 Jul 2002 17:49:22 -0000 Date: Sun, 14 Jul 2002 19:49:09 +0200 From: Peter Bieringer To: Maillist netdev , Maillist USAGI-users Subject: Re: ICMPv6 ratelimiting, which /proc-settings related? Message-ID: <11480000.1026668949@localhost> In-Reply-To: <20020713194919.GQ24779@naboo.lsm> References: <17380000.1026547066@localhost> <20020713194919.GQ24779@naboo.lsm> X-Mailer: Mulberry/2.2.1 (Linux/x86) X-URL: http://www.bieringer.de/pb/ X-OS: Linux MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam-Status: No, hits=-6.6 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK,PGP_SIGNATURE version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 - --On Saturday, July 13, 2002 09:49:19 PM +0200 Harald Welte wrote: >> extending my IPv6-howto with information about the /proc-FS I found >> that there is no setting for ICMPv6 rate limiting. >> >> But in "ipv6/icmp.c" there are some " if (net_ratelimit())" calls. >> >> How can this limit be controlled? Is it the >> "/proc/sys/net/ipv4/icmp_ratelimit" >> switch? > > no, the net_ratelimit() is a generic function to limit the rate of > printk()'s to prevent syslog flooding... Ok. Are there any plans on the IPv6 roadmap? I've cross-post to USAGI also, perhaps they are working on such. TIA, Peter -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9Mbmfe1eqe5WPQi0RAtxiAKDo6Tz75Sbq14S5By2w8jQtPJZEAQCfWuj4 O5Fg84w7EVbU8Ar9ypuDJjg= =oP9x -----END PGP SIGNATURE----- From owner-netdev@oss.sgi.com Mon Jul 15 13:51:16 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6FKpGRw012977 for ; Mon, 15 Jul 2002 13:51:16 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6FKpFZ6012976 for netdev-outgoing; Mon, 15 Jul 2002 13:51:15 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from e21.nc.us.ibm.com (e21.nc.us.ibm.com [32.97.136.227]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6FKpDRw012967 for ; Mon, 15 Jul 2002 13:51:13 -0700 Received: from westrelay05.boulder.ibm.com (westrelay05.boulder.ibm.com [9.17.193.33]) by e21.nc.us.ibm.com (8.12.2/8.12.2) with ESMTP id g6FKu4RY142198 for ; Mon, 15 Jul 2002 16:56:04 -0400 Received: from smtp.linux.ibm.com (ltc-eth1000.torolab.ibm.com [9.26.4.197]) by westrelay05.boulder.ibm.com (8.12.3/NCO/VER6.3) with ESMTP id g6FKtEbf089504 for ; Mon, 15 Jul 2002 14:55:14 -0600 Received: from imap.linux.ibm.com (imap.linux.ibm.com [9.27.103.44]) by smtp.linux.ibm.com (Postfix) with ESMTP id E46DD3FE06 for ; Mon, 15 Jul 2002 16:56:03 -0400 (EDT) Received: by imap.linux.ibm.com (Postfix, from userid 99) id 721CC23C00D; Mon, 15 Jul 2002 16:56:03 -0400 (EDT) Received: from 9.47.18.15 ( [9.47.18.15]) as user niv@imap.linux.ibm.com by imap.linux.ibm.com with HTTP; Mon, 15 Jul 2002 13:56:03 -0700 Message-ID: <1026766563.3d3336e3360f4@imap.linux.ibm.com> Date: Mon, 15 Jul 2002 13:56:03 -0700 From: Nivedita Singhvi To: netdev@oss.sgi.com Subject: acenic gige NAPIfied driver? MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.0 X-Originating-IP: 9.47.18.15 X-Spam-Status: No, hits=-0.1 required=5.0 tests=SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Has anyone already patched the acenic gige driver for NAPI support? thanks, Nivedita From owner-netdev@oss.sgi.com Mon Jul 15 18:08:34 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6G18YRw016850 for ; Mon, 15 Jul 2002 18:08:34 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6G18Ywm016849 for netdev-outgoing; Mon, 15 Jul 2002 18:08:34 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6G18SRw016838 for ; Mon, 15 Jul 2002 18:08:28 -0700 Received: from mira-sjcd-1.cisco.com (IDENT:mirapoint@mira-sjcd-1.cisco.com [171.69.43.44]) by sj-msg-core-1.cisco.com (8.12.2/8.12.2) with ESMTP id g6G19UH5025651; Mon, 15 Jul 2002 18:12:08 -0700 (PDT) Received: from dhcp-128-107-163-94.cisco.com (dhcp-128-107-163-94.cisco.com [128.107.163.94]) by mira-sjcd-1.cisco.com (Mirapoint) with ESMTP id ACX35189; Mon, 15 Jul 2002 17:40:21 -0700 (PDT) Date: Mon, 15 Jul 2002 17:39:19 -0700 (PDT) From: Vince Laviano To: cc: , , , , Subject: IGMPv3 for Linux Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi everyone, I've been working on a port of Wilbert de Graaf's (wilbert@kloosterhof.com) IGMPv3 implementation for FreeBSD to Linux 2.4.x. A tarball containing the patch (against Linux 2.4.6), documentation, and some test programs demonstrating use of the new multicast source filter (MSF) API is available at ftp://ftpeng.cisco.com/igmpv3linux/igmpv3linux-v0003.tar.gz This is alpha quality software, and there is still a good amount of work to be done, but it's reached a stage where some people may find it useful. Also, I'm anxious to receive feedback on both the high-level approach and on any specific problems that people detect. Known limitations are: - ip_mc_destroy_dev() not yet implemented - probable concurrency issues - Only traditional struct ip_mreq accepted by MSF API functions; no support for struct ip_mreqn (i.e. identification of join interface by ifindex). - ip_mc_inc_group() and ip_mc_dec_group() internal interface used by GRE not yet implemented. - Source filters not used for raw socket delivery, only for UDP delivery - Coarse-grained locking - Protocol-independent MSF API not implemented The web page for the original FreeBSD implementation is in the middle of being migrated to http://www.kloosterhof.com/~wilbert/igmpv3.html. For now, a Google- cached copy can be viewed at http://www.google.com/search?q=cache:w5LFEFJjCugC:home.hetnet.nl/~wilbertdg/igmpv3.html+igmpv3&hl=en&ie=UTF-8 Thanks, Vince Laviano vlaviano@cisco.com From owner-netdev@oss.sgi.com Mon Jul 15 21:27:24 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6G4RORw019180 for ; Mon, 15 Jul 2002 21:27:24 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6G4RO4T019179 for netdev-outgoing; Mon, 15 Jul 2002 21:27:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from web8101.in.yahoo.com (web8101.mail.in.yahoo.com [203.199.70.28]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6G4RBRw019168 for ; Mon, 15 Jul 2002 21:27:12 -0700 Message-ID: <20020716043159.23350.qmail@web8101.in.yahoo.com> Received: from [164.164.94.65] by web8101.mail.in.yahoo.com via HTTP; Mon, 15 Jul 2002 21:31:59 PDT Date: Mon, 15 Jul 2002 21:31:59 -0700 (PDT) From: Abhinandan Patil Subject: need details of 2.4.7-10kernel To: Vince Laviano , davem@redhat.com Cc: kuznet@ms2.inr.ac.ru, linux-net@vger.kernel.org, netdev@oss.sgi.com, wilbert@kloosterhof.com, eckert@cisco.com In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk hi everybody i am working on 2.4.7-10 linux kernel i want to minimise the kernel to bare minimum. i want the details regarding this please give me the links where i can find the details. even i want to minimise the tcp/ip stack in this kernel so i need details regarding this also i request you people to help me in this regards. Thanks in advance Abhi Patil --- Vince Laviano wrote: > > Hi everyone, > > I've been working on a port of Wilbert de Graaf's > (wilbert@kloosterhof.com) > IGMPv3 implementation for FreeBSD to Linux 2.4.x. > > A tarball containing the patch (against Linux > 2.4.6), documentation, and some > test programs demonstrating use of the new multicast > source filter (MSF) API > is available at > ftp://ftpeng.cisco.com/igmpv3linux/igmpv3linux-v0003.tar.gz > > This is alpha quality software, and there is still a > good amount of work to be > done, but it's reached a stage where some people may > find it useful. Also, I'm > anxious to receive feedback on both the high-level > approach and on any specific > problems that people detect. > > Known limitations are: > - ip_mc_destroy_dev() not yet implemented > - probable concurrency issues > - Only traditional struct ip_mreq accepted by > MSF API functions; no > support for struct ip_mreqn (i.e. > identification of join interface by > ifindex). > - ip_mc_inc_group() and ip_mc_dec_group() > internal interface used by GRE > not yet implemented. > - Source filters not used for raw socket > delivery, only for UDP delivery > - Coarse-grained locking > - Protocol-independent MSF API not implemented > > The web page for the original FreeBSD implementation > is in the middle of being > migrated to > http://www.kloosterhof.com/~wilbert/igmpv3.html. > For now, a Google- > cached copy can be viewed at > http://www.google.com/search?q=cache:w5LFEFJjCugC:home.hetnet.nl/~wilbertdg/igmpv3.html+igmpv3&hl=en&ie=UTF-8 > > Thanks, > Vince Laviano > vlaviano@cisco.com > > __________________________________________________ Do You Yahoo!? Yahoo! Autos - Get free new car price quotes http://autos.yahoo.com From owner-netdev@oss.sgi.com Mon Jul 15 23:22:00 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6G6M0Rw020426 for ; Mon, 15 Jul 2002 23:22:00 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6G6LxE6020425 for netdev-outgoing; Mon, 15 Jul 2002 23:21:59 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from hotmail.com ([211.185.244.61]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6G6LoRw020409 for ; Mon, 15 Jul 2002 23:21:51 -0700 Received: from unknown (HELO mx.loxsystems.net) (39.78.28.158) by sparc.zubilam.net with smtp; 16 Jul 0102 13:36:11 -0600 Received: from 197.230.202.29 ([197.230.202.29]) by a231242.upc-a.zhello.nl with esmtp; 16 Jul 0102 07:32:22 -0100 Received: from unknown (HELO q4.quickslow.com) (13.112.185.191) by pet.vosni.net with smtp; 16 Jul 0102 06:28:33 -0300 Received: from 156.247.70.158 ([156.247.70.158]) by m10.grp.snv.yahui.com with NNFMP; 16 Jul 0102 03:24:44 +0600 Reply-To: Message-ID: <008a21e45e6c$7455b8e6$8dd16ec5@oxygdk> From: To: hello@oss.sgi.com Subject: This Is Not Your Father's ISP!!!!! Date: Tue, 16 Jul 0102 04:07:42 +0500 MiME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2615.200 Importance: Normal X-Spam-Status: No, hits=4.6 required=5.0 tests=NO_REAL_NAME,PLING,PLING_PLING,NO_OBLIGATION,FORGED_HOTMAIL_RCVD version=2.20 X-Spam-Level: **** Sender: owner-netdev@oss.sgi.com Precedence: bulk New, Superior ISP Just Released Have you ever been disconnected from your ISP just as you were in the Middle of something that you were interested in just because you hadn't clicked your mouse for the last few seconds, or been disconnected because someone on your mailing list accused you of spam, or waited for an eternity to get connected? All of this and you were paying nearly $30.00 to be treated this way? Well, if any of this sounds familiar, then I have some good news for you. For $14.98/month or less (depending upon the plan) you can kiss all of this Goodby. I have been fortunate in that I have been involved in the testing of a brand new ISP. This is a superior product in many ways. It is fast, clean, and dependable. I have tried several providers and find this to be by far the best. I would like to offer you the chance to be one of the first to sign-up for this service when it becomes available to the public. This will be within the week as we have worked out the bugs and signed the contracts. Please contact me at connect@clubdepot.com and just say save me a spot. There is no obligation. I will just send you the details and give you a connection so that you can see if we have a listing in your area. Caroline Gainer PS: We will also be offering you a chance to market this product within a period of two weeks or less. You will get $1.00-$2.00 for each subscription that you sell. Count it up 13 subscribers and yours is free. 6096QsXb5-253SzaS7490OOdk3-870jFWL5816QWZg4-883bjcB5334TdMl8-642oFhl63 From owner-netdev@oss.sgi.com Tue Jul 16 00:03:07 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6G737Rw021131 for ; Tue, 16 Jul 2002 00:03:07 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6G737LC021130 for netdev-outgoing; Tue, 16 Jul 2002 00:03:07 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from titan.bieringer.de (mail.bieringer.de [195.226.187.51]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6G72xRw021121 for ; Tue, 16 Jul 2002 00:02:59 -0700 Received: (qmail 4431 invoked from network); 16 Jul 2002 07:07:47 -0000 Received: from pd950f4c0.dip.t-dialin.net (217.80.244.192) by mail.bieringer.de with SMTP; 16 Jul 2002 07:07:47 -0000 Date: Tue, 16 Jul 2002 09:07:46 +0200 From: Peter Bieringer To: netdev@oss.sgi.com cc: "YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" Subject: Re: ICMPv6 ratelimiting, which /proc-settings related? Message-ID: <14790000.1026803266@localhost> In-Reply-To: <20020715.024401.17983126.yoshfuji@wide.ad.jp> References: <17380000.1026547066@localhost> <20020715.024401.17983126.yoshfuji@wide.ad.jp> X-Mailer: Mulberry/2.2.1 (Linux/x86) X-URL: http://www.bieringer.de/pb/ X-OS: Linux MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk --On Monday, July 15, 2002 02:44:01 AM +0900 "YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" wrote: > In article <17380000.1026547066@localhost> (at Sat, 13 Jul 2002 > 09:57:46 +0200), Peter Bieringer says: > >> extending my IPv6-howto with information about the /proc-FS I found >> that there is no setting for ICMPv6 rate limiting. > > icmpv6_xrlim_allow() controls rate limiting. > > A variable named sysctl_icmpv6_time lives in net/ipv6/icmp.c, but > sysctl does not exist in fact... Oh, I found: # grep icmpv6_time * icmp.c:int sysctl_icmpv6_time = 1*HZ; icmp.c: int tmo = sysctl_icmpv6_time; > Is introducing /proc/sys/net/ipv6/icmp/all/icmpv6_time reasonable? Is HZ completly arch independed? Afair, it was CPU depended (like grep HZ include/asm/param.h) shows. Mho: Better name: /proc/sys/net/ipv6/icmp/all/icmpv6_rate I would suggest use of unit 1/s and run conversion internally. Therfore 1 -> 1/s 10 -> 10/s 100 -> 100/s 0.1 -> 1/10s Peter From owner-netdev@oss.sgi.com Tue Jul 16 00:26:01 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6G7Q1Rw021453 for ; Tue, 16 Jul 2002 00:26:01 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6G7Q0g3021452 for netdev-outgoing; Tue, 16 Jul 2002 00:26:00 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from yue.hongo.wide.ad.jp (yue.hongo.wide.ad.jp [203.178.139.94]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6G7PqRw021443 for ; Tue, 16 Jul 2002 00:25:52 -0700 Received: from localhost (localhost [127.0.0.1]) by yue.hongo.wide.ad.jp (8.12.3+3.5Wbeta/8.12.3/Debian -4) with ESMTP id g6G7UvUd007506 for ; Tue, 16 Jul 2002 16:30:57 +0900 Date: Tue, 16 Jul 2002 16:30:57 +0900 (JST) Message-Id: <20020716.163057.16459867.yoshfuji@wide.ad.jp> To: netdev@oss.sgi.com Subject: Re: ICMPv6 ratelimiting, which /proc-settings related? From: YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?= In-Reply-To: <14790000.1026803266@localhost> References: <17380000.1026547066@localhost> <20020715.024401.17983126.yoshfuji@wide.ad.jp> <14790000.1026803266@localhost> X-URL: http://www.yoshifuji.org/%7Ehideaki/ X-Fingerprint: 90 22 65 EB 1E CF 3A D1 0B DF 80 D8 48 07 F8 94 E0 62 0E EA X-PGP-Key-URL: http://www.yoshifuji.org/%7Ehideaki/hideaki@yoshifuji.org.asc X-Mailer: Mew version 2.2 on Emacs 20.7 / Mule 4.1 (AOI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-2.7 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK,CHARSET_FARAWAY_HEADERS version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk In article <14790000.1026803266@localhost> (at Tue, 16 Jul 2002 09:07:46 +0200), Peter Bieringer says: > > Is introducing /proc/sys/net/ipv6/icmp/all/icmpv6_time reasonable? > > Is HZ completly arch independed? Afair, it was CPU depended (like > grep HZ include/asm/param.h) shows. We already have proc_dointvec_jiffies(). We can use it to make that sysctl be arch independent. > Mho: Better name: > > /proc/sys/net/ipv6/icmp/all/icmpv6_rate > > I would suggest use of unit 1/s and run conversion internally. > Therfore > 1 -> 1/s > 10 -> 10/s > 100 -> 100/s > 0.1 -> 1/10s ah, ipv4 uses /proc/sys/net/ipv4/icmp_*_rate, icmpv6_rate sounds reasonable. --yoshfuji From owner-netdev@oss.sgi.com Tue Jul 16 06:00:42 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6GD0gRw030342 for ; Tue, 16 Jul 2002 06:00:42 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6GD0g9c030341 for netdev-outgoing; Tue, 16 Jul 2002 06:00:42 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from babbler.csp.org.by ([80.94.224.242]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6GCuIRw030250 for ; Tue, 16 Jul 2002 05:56:26 -0700 Received: from svs ([192.168.1.197]) by babbler.csp.org.by (8.11.1/8.11.1) with SMTP id g6GDKFB23496 for ; Tue, 16 Jul 2002 16:20:16 +0300 Message-Id: <200207161320.g6GDKFB23496@babbler.csp.org.by> From: Svetlana Savitskaya To: netdev@oss.sgi.com Subject: business proposal X-Mailer: Microsoft Outlook Express 5.00.2615.200 Reply-To: svs@atwss.com Date: Tue, 16 Jul 2002 15:07:59 +0200 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Status: No, hits=-2.5 required=5.0 tests=DEAR_SOMEBODY,TO_UNSUB_REPLY version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Dear Sir/Madame, My name is Svetlana Savitskaya. I work for Arch/Web Space Station, a web and software development. We have a business proposal that may be of interest to you. It is about outsourcing development of IT systems. Please let me know if you are interested and I'll send you more details. You can get more information about us at www.web-space-station.com. Our portfolio: www.web-space-station.com/portfolio/index.html Testimonials: http://www.web-space-station.com/cgi-bin/pub/testimonials/testimonials.cgi Thank you for your time and considerations, Svetlana Savitskaya Business Development Department Email: svs@atwss.com Tel.: +375 172 840792 PS We are highly concerned about ethical business. We found you as a result of our targeted on-line search. It's a business-to-business proposal and you are not placed in any mailing list. There is no necessity to unsubscribe. If you don't reply to this message we will assume that you are not interested in our proposal and never contact you again. Arch Ltd./Web Space Station Podebradova 697/16, Prague, 182 00 Czech Republic From owner-netdev@oss.sgi.com Thu Jul 18 02:38:19 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6I9cJRw021180 for ; Thu, 18 Jul 2002 02:38:19 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6I9cJlX021179 for netdev-outgoing; Thu, 18 Jul 2002 02:38:19 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from lists.samba.org (samba.sourceforge.net [198.186.203.85]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6I9cDRw021168 for ; Thu, 18 Jul 2002 02:38:13 -0700 Received: by lists.samba.org (Postfix, from userid 1080) id 18BC942CD; Thu, 18 Jul 2002 02:39:28 -0700 (PDT) From: Rusty Russell To: netfilter-devel@lists.netfilter.org Cc: netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: TODO list before feature freeze Date: Thu, 18 Jul 2002 19:34:53 +1000 Message-Id: <20020718093928.18BC942CD@lists.samba.org> X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi all, With four months to go before the feature freeze, it's important to compile a feature list for netfilter-related things. I see the following coming up: Connection tracking: o TCP window tracking finally goes in. o Fix the extremely low TCP RST timeout o Fix the UDP timeout calculations to be per-port. o Improve hashing o Fix the massive timer performance problem. o Zero-copy-safe the connection tracking framework o ctnetlink support iptables: o Change over to a netlink interface o Back to add/delete/replace interface + commit. o Rewrite libiptc to use netlink (to port iptables). o Write new ip extension for iptables. o Zero-copy-safe the iptables framework NAT: o Zero-copy-safe the NAT framework Please add feature requests: note that I have not been following the lists, so "obvious" things may not be obvious to me. Thanks for your patience, Rusty. -- Anyone who quotes me in their sig is an idiot. -- Rusty Russell. From owner-netdev@oss.sgi.com Thu Jul 18 03:55:36 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6IAtaRw023403 for ; Thu, 18 Jul 2002 03:55:36 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6IAtaf9023402 for netdev-outgoing; Thu, 18 Jul 2002 03:55:36 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from 64.51.17.18 ([218.91.69.3]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6IAoJRx023215 for ; Thu, 18 Jul 2002 03:51:50 -0700 Message-Id: <200207181051.g6IAoJRx023215@oss.sgi.com> From: YXGLASS To: netdev@oss.sgi.com Reply-To: BYXYLHT@PUB.YZ.JSINFO.NET Subject: =?gb2312?q?_=BA=CF=D7=F7(GLASS)?= Date: Thu, 18 Jul 2002 18:52:54 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651" X-Spam-Status: No, hits=3.3 required=5.0 tests=SUPERLONG_LINE,CHARSET_FARAWAY_HEADERS,DIFFERENT_REPLY_TO,SUBJ_ALL_CAPS version=2.20 X-Spam-Level: *** Sender: owner-netdev@oss.sgi.com Precedence: bulk This is a multi-part message in MIME format --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: text/plain; charset=gb2312 Content-Transfer-Encoding: quoted-printable =C4=FA=BA=C3: =C8=E7=B9=FB=CE=D2=C3=C7=B5=C4=D3=CA=BC=FE=B4=F2=C8=C5=C1=CB=C4=FA,=C7=EB= =C4=FA=D4=AD=C1=C2. =CE=D2=B3=A7=CA=C7=D7=A8=D2=B5=B4=D3=CA=C2=B2=A3=C1=A7=B9=A4=D2=D5=C6=B7= =C9=FA=B2=FA=BA=CD=BF=AA=B7=A2=B5=C4=B3=A7=BC=D2=A3=AC=B3=A4=C6=DA=B7=FE=CE=F1= =D3=DA=C5=B7=C3=C0=BF=CD=BB=A7=A3=AC=D6=F7=D2=AA=C9=FA=B2=FA=B2=A3=C1=A7=B9=A4= =D2=D5=D6=C6=C6=B7=A3=AC=B2=FA=C6=B7=BB=A8=D1=F9=B7=B1=B6=E0=A3=AC=D3=D0=C9=CF= =C7=A7=B8=F6=C6=B7=D6=D6=A3=AC=B8=F7=D6=D6=D0=A1=B6=AF=CE=EF, =C8=C6=CB=BF=BC= =FE=A3=AC=B9=D2=BC=FE=A3=AC=CA=B5=D0=C4=BC=FE=CF=B5=C1=D0=B5=C8=A3=AC=B1=A3=D6= =A4=D6=CA=C1=BF=A3=AC=BD=BB=BB=F5=BC=B0=CA=B1=A3=AC=B2=A2=BF=C9=B0=B4=BF=CD=BB= =A7=C0=B4=D1=F9=B6=A8=D7=F6=A1=A3=CE=D2=B3=A7=BF=C9=D2=D4=CC=E1=B9=A9=B7=E1=B8= =BB=B5=C4=D1=F9=C6=B7=B8=F8=C4=FA=D1=A1=D4=F1=BB=F2=B0=B4=C4=FA=B5=C4=D2=E2=CB= =BC=C9=FA=B2=FA=A1=A3=B1=BE=D7=C5=D2=D4=BF=CD=BB=A7=CE=AA=B8=F9=B1=BE=B5=C4=B7= =FE=CE=F1=D7=DA=D6=BC=A3=AC=C4=FA=B5=C4=D4=B8=CD=FB=D4=DA=B1=BE=B3=A7=D2=BB=B6= =A8=BB=E1=B5=C3=B5=BD=CA=B5=CF=D6=A1=A3=D4=DA=B4=CB=D6=D4=D0=C4=B6=D4=C4=FA=B5= =C4=C0=B4=B7=C3=B1=ED=CA=BE=B8=D0=D0=BB=A1=A3=B1=BE=B3=A7=B4=B4=B0=EC=D2=D4=C0= =B4=A3=AC=B6=E0=B4=CE=C8=D9=BB=F1=D5=FE=B8=AE=BC=B0=D6=F7=B9=DC=B2=BF=C3=C5=B5= =C4=B1=ED=D1=EF=A3=AC=B1=BB=CA=DA=D3=E8=A1=B0=D6=D8=BA=CF=CD=AC=CA=D8=D0=C5=D3= =C3=B5=A5=CE=BB=A1=B1=A1=B0=B0=B2=C8=AB=CE=C4=C3=F7=B5=A5=CE=BB=A1=B1=B5=C8=B6= =E0=CF=EE=B9=E2=C8=D9=B3=C6=BA=C5=A1=A3 =A1=A1=A1=B0=D6=CA=C1=BF=C1=A2=D2=B5=A3=AC=B4=B4=D0=C2=CD=BC=C7=BF=A1=B1=CF= =B5=B1=BE=B3=A7=C9=FA=B4=E6=B7=A2=D5=B9=D6=AE=D7=DA=D6=BC=A1=A3=B3=A7=B3=A4=C1= =F5=BA=A3=CC=CE=CF=C8=C9=FA=C2=CA=C8=AB=CC=E5=D4=B1=B9=A4=BD=DF=B3=CF=BB=B6=D3= =AD=C9=E7=BB=E1=B8=F7=BD=E7=C8=CB=CA=BF=B9=E2=C1=D9=D6=B8=BD=CC=A1=A2=D0=AF=CA= =D6=BA=CF=D7=F7=A3=AC=CD=AC=C4=B1=B7=A2=D5=B9=A3=AC=B9=B2=B4=B4=BB=D4=BB=CD=A1= =A3 =B1=A6=D3=A6=CF=D8=D3=C0=D0=C2=B2=A3=C1=A7=B9=A4=D2=D5=C6=B7=B3=A7 Baoyin Yongxing Glass Arts Factory =C1=F5=BA=A3=CC=CE tel:86-514-8266376 fax:86-514-8261553 www.glass-cn.com First please forgive me of writing to you without your permit . My factory is located in Jiangsu Province of Main Land China., we are specially in making all kinds of glass crafts for holidays, our products varied from spun glass to mouth blown glass ornaments, there must be of some kinds fit your favorites. We will attract you with the high quality products of competitive price. We can assure you that both of us will get benefit from the cooperation! We own about 150 skillful employees at present , and we could ensure you prompt shipment and good quality. Your designs are welcome. Your early reply will be appreciated . Best wishes, Liu Haitao --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=19s3.jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=19s3.jpg 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 fdVOX5lzRo8z7WvkV1Vy06OHb2YX1eCiv//Z --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=25s1.jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=25s1.jpg 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 --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=28201.gif Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=28201.gif R0lGODlhoACAAPcAAP///zk5OWNjY97W1pyUlFpSUlJKSkpCQkI5Oa2UlGNSUlpKSikhIWtSUq1S SoRSQoRza62UhL2Ue3NSOca1pWNSQpyMe3NjUhgQCIyEe4xzUs61jHtrUu/GhM6lY2NaSr2cY62M SnNrWnNjOa2ca+fGa5SMc5yMWt7WtbWtjJyMSvfvtdbOlO/nlK2lWrW1rYyMhHNza6WllO/v1oSE c2NjUpyca73Ga73GjHuEWqW1a1JaQr3GrZy9c6XOc4Sca2N7SlJaSr3nlHucWkprKWNzWnu1WmOU UkJzMUqUObXerZzOlFKESkp7Qnu1c3PnY3vGc3vWc2PGWjmEMYSMhMbnxoyljFq1WkqcSlK1Ukre UjGUOWO1axh7IWPec0LOUhiMKWOUa2PGc3vOjErea4TnnEq1Y0rGa0qEWmvGhGvejITOnFLvjFLO hErnjIz3vWNza5TWtVKEa2v3tVrvrUqMcxjvnEpjWmvGpVr/xmvvxlKMe0qEc2OcjEJ7a1KcjEJr Y1q1pcb372utpXPGvRDezufv76Wtrb3GxpSlpa3e3mOEhKX//4ze3jn3/4z3/2P3/xjn91Ln9xDn /3OttXPn9zne91KcrTm1zhDG72OEjITn/2PG3krG50KctTGlxhjG9xC15yFSYznO/xi17xi99xC9 /1rO/yFzlDFje0qlzhhjhGutzkp7lDm19ymUzhCl7yljhCFaeylznCFrlCml7xCM1lJreylSayFK YzmEtSlrlCFjjCFrnBCc9xCl/xgxQkql5xBztRCE1jlaczFSaylKYxg5UhhCYxCM5yFKa5ytvXuM nIylvWuEnIyUnKW1xhgxSsbO3iEpOSk5Wq21xqWt1vf3/729xnt7hFJSWkpKUtbW7zk5QikpMSEh KVpaeykpOXtzpWtjlLWt1ntrnOfe95R7vXtjpWtSlMa13s6t93tSrTkxQoxjvZRjzr2M7zEpOYxr ra173qVz1rVz74RKtbWM1s6U9+e1//fe/5SElEI5QjEpMYx7hAAAACwAAAAAoACAAEAI/wCpHYt2 rKBBgwIPHqMWrSHBgQYJJlwYsWA0YAMfPsyI0aJCj9EESnTYEGJGiyRPqiypEaJDkxhZhsyYkqTN myhdSiw4caFAakAR9lQ49GDRoh+TKl3K8+BGpiahIiX41OPJp1g/EkRGkScyarko/jQ2EejPpj+D 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 9i0PCAA7 --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=29209.gif Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=29209.gif R0lGODlhFAE1AfcAAOeVmPKdpvrX2/jp6/iotvu/yfi1wvzJ1+LK0dpylePU2fva5uzT3Mu1vdFS h9iSr96uxfzM5MWYsu/U5Onk5/zj9PXs9OTM5Ozc7Pz0/OTc5O7k9OTk9PT09uTs/Oz0/OTs9Jqb nLzc9Ozv8Zqrtq62u6zU7KTU7OT0/I/E3JbM5Kbc9L7T3dvs9KzU5D+ZvIjM5ITE3JLU7DqqznzE 3Zzf9I3D1KTU5Kzc7Iart57Bzcbq9oiboUi42Fy61FesxWa71VubrnTE3HnM5JzU5KTc7JG6xqfL 1bzj7tXz/EymvGTE3Feou2equ3S7zXzD1IzM3JTU5Jzc7Kvm9bTU3JqmqVu1yGa6y3TE1HzM3ITM 3JTc7JTEzqzU3LXc5dro62rE1XPM3HK3w4vW5H67xoTCzpbM1rbr9aTU3Kzc5LTk7JzU3KTc5Kzk 7HvEzITM1IzU3JTc5HiyuYzM1JTU3Jzc5KTk7LfHyWrEzHTM1HzU3XzM1ITU3Mn3+pzk5ovJzHem qLTT1MHc3b3T1Lv09YTU1Izc3IzU1JTc3KTs7JTU1Fd8fKz09Jzc3KTk5JTMzKzs7JzU1Im5uaTc 3Kzk45TExLTs7JzMzKTU1Lzs7K/c3KzU1Mfq6tj8/OT8/OT09PL8/OTs7M7V1W+WlbTk4pa5uKjL ydX29IvGwYiqp5/DwL7k4ZTc1Jzc1Kzs5NHi4JTMxJvUy7f066Tc0sbMy6zd0qjUyrTd1Mr165XF uIu1qp/Nv5a2q+T89MDe09j16X7EprfXyXKBerrt1ez89KXewIGslZXbsnTKlYXTornkyMzo1m25 ha3Pt2Wscuf36cjkyPT89LrduJ/Vm4iOh97v2pjThdrg2IzFcbfcpsvmtbLTloCrU9rvxGeIPcbN tNXeoLa8iff46vz89NzYctvVifXz1pOOWbuxavTrrPbtwuvbkufeu+DTqtzAequcdbiXWtnBl+rh 0HFULZp0Q9nQxNWqfd/DttSfj9GLfuKspfDQz81nZfz09OTc3Pz8/CwAAAAAFAE1AQAI/wD9KfAn UMFAgggTKlzIsCFDDQk1SIQYkSDFiRIt+suIEOPGiBcxitwosqTJkyhTqlzJsqXLlzBjejzosKZN ijYXjuw4kSRHnD5D7vwps6jRo0iTKkVKU2DOpxWhgrzIU6PVjCNdBl3KtavXr2A1NG0qtSZHqSdJ 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 --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=xy (317).jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=xy (317).jpg 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 --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=xy (409).jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=xy (409).jpg /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+IMWElDQ19QUk9GSUxFAAEB AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IA AAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtw dAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABw ZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwA AAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAA AABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAA EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAA t4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMu Y2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0 IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0 IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JU IGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBo AG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA +wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5 AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYC wQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQG BBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYF pgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJ zwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxc DHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EP Xg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkW bBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3 Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPw JB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgp aymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8k L1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01 hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpD fUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsM S1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNT X1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvl XDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27E bx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5 KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6 hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6P No+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrV m0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2n bqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB 48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+4 0DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hze ot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c 7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9 uv5L/tz/bf///+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYG CAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAeABaAwER AAIRAQMRAf/EALAAAAEEAwEAAAAAAAAAAAAAAAYDBAcIAQIFAAEAAgMBAAAAAAAAAAAAAAAAAQMA AgQFEAABAwIFAQIIBgwKCwAAAAABAgMEEQUAIRIGBzFBE1FhcYEiMtMVUhS0lRYXkbFCIzRVZXU2 N6cIY1QlNUUmVidHSKHB8YIzs5SkRre4EQACAQIDCAAFAwUBAAAAAAAAAQIRAyFRcTFBkRIyUhPT YYHRIgTwocGx8UJyQwX/2gAMAwEAAhEDEQA/AJN464+2BO2HtWZM2rZ5Mt+z292Q+9borjjjq4ra lLWpTZKlKJqSeuMVu3HlWC2DLt2am8Xte8LBxlxqc/odY/EPdkT2WGeKOSF+Wfc+IojjDjPt2bYv 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 GDnWf+dTp8ksv+dPmf/Z --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=xy (46).jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=xy (46).jpg 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 --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651 Content-Type: application/octet-stream; charset=iso-8859-1; file=xy (903).jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=xy (903).jpg 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 pUqahY3BXTu/CEr/ADj8X//Z --cf3f5fd0-2949-4ce1-b5a4-f21e6a2bb651-- From owner-netdev@oss.sgi.com Thu Jul 18 23:57:55 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6J6vtRw015933 for ; Thu, 18 Jul 2002 23:57:55 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6J6vtB6015932 for netdev-outgoing; Thu, 18 Jul 2002 23:57:55 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from iisc.ernet.in (www-cache.iisc.ernet.in [144.16.64.3] (may be forged)) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6J6vmRw015923 for ; Thu, 18 Jul 2002 23:57:50 -0700 Received: from eis.iisc.ernet.in (eis.iisc.ernet.in [144.16.64.5]) by iisc.ernet.in (8.9.2/8.9.0) with SMTP id MAA80976 for ; Fri, 19 Jul 2002 12:26:32 +0530 (IST) Received: by eis.iisc.ernet.in (SMI-8.6/SMI-4.1) id MAA21653; Fri, 19 Jul 2002 12:28:23 +0530 From: anand@eis.iisc.ernet.in (SVR Anand) Message-Id: <200207190658.MAA21653@eis.iisc.ernet.in> Subject: TCP advertized window To: netdev@oss.sgi.com Date: Fri, 19 Jul 2002 12:28:23 +0530 (GMT+05:30) X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=1.3 required=5.0 tests=MAY_BE_FORGED version=2.20 X-Spam-Level: * Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi, When I did tcpdump I observed that the tcp advertised window is not fixed to maximum value of 32K or 64K for the entire duration of the connection, but is evolving from some starting value at the start of the connection. The maximum value to which it grows is again not constant for connections to different hosts. Can you let me know what is the mechanism used in computing the advertised window ? Anand From owner-netdev@oss.sgi.com Fri Jul 19 00:39:09 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6J7d9Rw016936 for ; Fri, 19 Jul 2002 00:39:09 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6J7d91F016935 for netdev-outgoing; Fri, 19 Jul 2002 00:39:09 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from balabit.hu (catv-d5de80ec.bp11catv.broadband.hu [213.222.128.236]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6J7d1Rw016921 for ; Fri, 19 Jul 2002 00:39:02 -0700 Date: Fri, 19 Jul 2002 09:39:36 +0200 From: Balazs Scheidler To: Rusty Russell Cc: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020719073936.GE7933@balabit.hu> References: <20020718093928.18BC942CD@lists.samba.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20020718093928.18BC942CD@lists.samba.org> X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Thu, Jul 18, 2002 at 07:34:53PM +1000, Rusty Russell wrote: > Hi all, > > With four months to go before the feature freeze, it's > important to compile a feature list for netfilter-related things. I > see the following coming up: > > Connection tracking: > o TCP window tracking finally goes in. > o Fix the extremely low TCP RST timeout > o Fix the UDP timeout calculations to be per-port. > o Improve hashing > o Fix the massive timer performance problem. > o Zero-copy-safe the connection tracking framework > o ctnetlink support > > iptables: > o Change over to a netlink interface > o Back to add/delete/replace interface + commit. > o Rewrite libiptc to use netlink (to port iptables). > o Write new ip extension for iptables. > o Zero-copy-safe the iptables framework > > NAT: > o Zero-copy-safe the NAT framework > > Please add feature requests: note that I have not been following the > lists, so "obvious" things may not be obvious to me. I think conntrack exemptions and transparent proxy support should be added to the list. The latter is working for me in production at least for TCP connections. UDP support is to be dependant on conntrack exemptions, so that is not yet implemented. (at least the sendmsg side, the recvmsg side should be working) -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1 From owner-netdev@oss.sgi.com Fri Jul 19 07:05:16 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6JE5GRw026584 for ; Fri, 19 Jul 2002 07:05:16 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6JE5Gwi026583 for netdev-outgoing; Fri, 19 Jul 2002 07:05:16 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sgi.com (sgi-too.SGI.COM [204.94.211.39]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6JE58Rw026545 for ; Fri, 19 Jul 2002 07:05:08 -0700 Received: from 76.04.15.19 ([61.133.121.163]) by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam: SGI does not authorize the use of its proprietary systems or networks for unsolicited or bulk email from the Internet.) via SMTP id HAA09704 for ; Fri, 19 Jul 2002 07:06:05 -0700 (PDT) mail_from (web@mingyue.net) Message-Id: <200207191406.HAA09704@sgi.com> From: =?gb2312?q?=C2=EA=D1=C5=CD=F8=C2=E7_?= To: netdev@oss.sgi.com Reply-To: web@mingyue.net Subject: =?gb2312?q?=B5=CD=BC=DB/=B8=DF=CB=D9/=CE=C8=B6=A8=B5=C4=D0=E9=C4=E2=D6=F7=BB=FA?= Date: Fri, 19 Jul 2002 22:04:25 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8874d2d5-6000-4854-90f1-ae8fb85cf1a5" X-Spam-Status: No, hits=4.3 required=5.0 tests=NO_REAL_NAME,CHARSET_FARAWAY_HEADERS,SUBJ_ALL_CAPS version=2.20 X-Spam-Level: **** Sender: owner-netdev@oss.sgi.com Precedence: bulk This is a multi-part message in MIME format --8874d2d5-6000-4854-90f1-ae8fb85cf1a5 Content-Type: text/plain; charset=gb2312 Content-Transfer-Encoding: quoted-printable =C4=E3=BA=C3=A3=BA =C2=EA=D1=C5=CD=F8=C2=E7=A3=A8 http://www.cmaya.com =A3=A9=A3=AC=CA=C7=D7= =A8=D2=B5=B5=C4=BB=A5=C1=AA=CD=F8 =D0=C5=CF=A2=B7=FE=CE=F1=C9=CC=A3=AC=CF=D6=C8=D9=D0=D2=B5=C4=CF=F2=C4=FA=CD=C6= =BC=F6: =C8=EB=C3=C5=D0=CD=D0=E9=C4=E2=D6=F7=BB=FA 50M=CD=F8=D2=B3=BF=D5=BC=E4= /60=D4=AA/=C4=EA =BD=F8=BD=D7=D0=CD=D0=E9=C4=E2=D6=F7=BB=FA 50M=CD=F8=D2=B3=BF=D5=BC=E4= /=D6=A7=B3=D6cgi=A1=A2php/120=D4=AA/=C4=EA =B8=DF=CA=D6=D0=CD=D0=E9=C4=E2=D6=F7=BB=FA 200M=CD=F8=D2=B3=BF=D5=BC=E4= /=D6=A7=B3=D6cgi=A1=A2php/300=D4=AA/=C4=EA =C1=ED=D3=D0=B6=E0=BF=EE=B4=FA=C0=ED=B2=FA=C6=B7=A3=AC=D7=EE=B8=DF=D3=C5= =BB=DD=D6=C18=D5=DB=A1=A3 ------------------------------------------------- =B1=F5=D6=DD=CA=D0=C2=EA=D1=C5=CD=F8=C2=E7=BC=BC=CA=F5=D3=D0=CF=DE=B9=AB=CB=BE= http://www.cmaya.com =C8=C8=CF=DF=B5=E7=BB=B0:0543-5318896 =B4=AB=D5=E6:0543-5351719 =B5=E7=D7=D3=D3=CA=BC=FE:service@mingyue.net tech@mingyue.net ------------------------------------------------ --8874d2d5-6000-4854-90f1-ae8fb85cf1a5-- From owner-netdev@oss.sgi.com Fri Jul 19 10:44:31 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6JHiVRw005392 for ; Fri, 19 Jul 2002 10:44:31 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6JHiVWr005391 for netdev-outgoing; Fri, 19 Jul 2002 10:44:31 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from noxmail.sandelman.ottawa.on.ca (cyphermail.sandelman.ottawa.on.ca [192.139.46.78]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6JHiNRw005381 for ; Fri, 19 Jul 2002 10:44:26 -0700 Received: from sandelman.ottawa.on.ca (marajade.sandelman.ottawa.on.ca [192.139.46.20]) by noxmail.sandelman.ottawa.on.ca (8.11.6/8.11.6) with ESMTP id g6JHiAW03674 (using TLSv1/SSLv3 with cipher EDH-RSA-DES-CBC3-SHA (168 bits) verified OK); Fri, 19 Jul 2002 13:44:16 -0400 (EDT) Received: from marajade.sandelman.ottawa.on.ca (marajade [127.0.0.1]) by sandelman.ottawa.on.ca (8.12.3/8.12.3/Debian -4) with ESMTP id g6JHhBAt004510 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK); Fri, 19 Jul 2002 13:43:13 -0400 Received: from marajade.sandelman.ottawa.on.ca (mcr@localhost) by marajade.sandelman.ottawa.on.ca (8.12.3/8.12.3/Debian -4) with ESMTP id g6JHh4CN004505; Fri, 19 Jul 2002 13:43:10 -0400 Message-Id: <200207191743.g6JHh4CN004505@marajade.sandelman.ottawa.on.ca> To: Rusty Russell cc: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze In-reply-to: Your message of "Thu, 18 Jul 2002 19:34:53 +1000." <20020718093928.18BC942CD@lists.samba.org> Mime-Version: 1.0 (generated by tm-edit 1.8) Content-Type: text/plain; charset=US-ASCII Date: Fri, 19 Jul 2002 13:43:04 -0400 From: Michael Richardson X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk >>>>> "Rusty" == Rusty Russell writes: Rusty> With four months to go before the feature freeze, it's Rusty> important to compile a feature list for netfilter-related things. I Rusty> see the following coming up: Rusty> Connection tracking: Rusty> o TCP window tracking finally goes in. Rusty> o Fix the extremely low TCP RST timeout Rusty> o Fix the UDP timeout calculations to be per-port. Rusty> o Improve hashing Rusty> o Fix the massive timer performance problem. Rusty> o Zero-copy-safe the connection tracking framework Rusty> o ctnetlink support Permit CT to deal with multihomed hosts. From owner-netdev@oss.sgi.com Fri Jul 19 18:26:09 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6K1Q8Rw032579 for ; Fri, 19 Jul 2002 18:26:08 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6K1Q8je032578 for netdev-outgoing; Fri, 19 Jul 2002 18:26:08 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6K1Q2Rw032569 for ; Fri, 19 Jul 2002 18:26:03 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id FAA01451; Sat, 20 Jul 2002 05:26:10 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207200126.FAA01451@sex.inr.ac.ru> Subject: Re: TCP advertized window To: anand@eis.iisc.ernet.IN (SVR Anand) Date: Sat, 20 Jul 2002 05:26:10 +0400 (MSD) Cc: netdev@oss.sgi.com In-Reply-To: <200207190658.MAA21653@eis.iisc.ernet.in> from "SVR Anand" at Jul 19, 2 11:15:00 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > Can you let me know what is the mechanism used in computing the advertised > window ? It is initialized to 3*mss (actually, 2...4*mss, look into include/net/tcp.h tcp_select_initial_window() for details). Then each arriving segment it is increased by 2*mss until it reaches maximal value (if the segment does not have pathological ratio real_bits/overhead, see tcp_grow_window()). Maximum depends only on rcvbuf and mss. If pathological overflow of rcvbuf still happens, window may be reset back to initial value. Alexey From owner-netdev@oss.sgi.com Sun Jul 21 19:30:52 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6M2UqRw008259 for ; Sun, 21 Jul 2002 19:30:52 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6M2UqUi008258 for netdev-outgoing; Sun, 21 Jul 2002 19:30:52 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from vmmr5.verisignmail.com (vmmr5.verisignmail.com [216.168.230.145]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6M2UoRw008246 for ; Sun, 21 Jul 2002 19:30:50 -0700 Received: from vmms5.verisignmail.com (vmms5.verisignmail.com [10.166.0.146]) by vmmr5.verisignmail.com (Mirapoint Messaging Server MOS 2.9.3.2) with ESMTP id KJT00075; Sun, 21 Jul 2002 22:31:33 -0400 (EDT) From: Received: from vmms5.verisignmail.com (localhost.verisignmail.com [127.0.0.1]) by vmms5.verisignmail.com (Mirapoint Messaging Server MOS 2.9.3.2) with SMTP id KOR00071 (AUTH dewi@smansakiss.com); Sun, 21 Jul 2002 22:31:32 -0400 (EDT) Message-Id: <200207220231.KOR00071@vmms5.verisignmail.com> Received: from 202.138.228.102 by vmms5.verisignmail.com (Mirapoint Messaging Server MOS 2.9.3.2) with HTTP/1.1; Sun, 21 Jul 2002 22:31:31 -0400 Date: Sun, 21 Jul 2002 22:31:31 -0400 Subject: delete from mailing list To: netdev@oss.sgi.com X-Mailer: Mirapoint Webmail Direct 2.9.3.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=3.0 required=5.0 tests=MSG_ID_ADDED_BY_MTA_2,NO_REAL_NAME version=2.20 X-Spam-Level: *** Sender: owner-netdev@oss.sgi.com Precedence: bulk delete from mailing list thank's From owner-netdev@oss.sgi.com Sun Jul 21 20:59:46 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6M3xkRw009447 for ; Sun, 21 Jul 2002 20:59:46 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6M3xkuq009446 for netdev-outgoing; Sun, 21 Jul 2002 20:59:46 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from mail.telpin.com.ar (mail.telpin.com.ar [200.43.18.243]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6M3xQRw009427 for ; Sun, 21 Jul 2002 20:59:36 -0700 Received: from telpin.com.ar ([200.43.18.242]) by mail.telpin.com.ar (8.12.1/8.12.1) with SMTP id g6M50SvF026855; Mon, 22 Jul 2002 01:00:39 -0400 Date: Mon, 22 Jul 2002 00:49:19 -0300 From: Alberto Bertogli To: lartc@mailman.ds9a.nl Cc: linux-kernel@vger.kernel.org, netdev@oss.sgi.com Subject: Frozen machine with adding a tc filter Message-ID: <20020722034919.GH685@telpin.com.ar> Mail-Followup-To: Alberto Bertogli , lartc@mailman.ds9a.nl, linux-kernel@vger.kernel.org, netdev@oss.sgi.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-RAVMilter-Version: 8.3.0(snapshot 20010925) (mail) X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi! This is a (really early) bug report on one i just caught when setting a filter for traffic control. It makes the machine to frozen solid, without even an oops. Keyboard is not responsive (neither sysrq nor the num/caps/screen lock leds), everything seems quite dead. It's fully reproducible, i tried both 2.4.13 and 2.4.19-rc3 (the last one with htb patches, but i don't think it's related). The machine is an iPII with 256Mb RAM, it has been working well for about a year and a half. Basically a main cbq class with two (also cbq) leaves: tc qdisc add dev eth1 root handle 20:0 cbq bandwidth 100Mbit avpkt 1000 tc class add dev eth1 parent 20:0 classid 20:1 $EST cbq bandwidth 100Mbit \ rate 2800Kbit bounded isolated $CBQ_PARAMS ($EST is empty and $CBQ_PARAMS is "allot 1514 avpkt 1000") Both leaves are basically the same, just a cbq class with parent 20:1 and then sfq attached as qdisc; really simple. I have another set pretty much like this one, only with one leave, on eth0. The command which frozes the machine is tc filter add dev eth1 parent 20:0 protocol ip handle 5 fw classid 20:0 I know it's weird, but anyway i don't think that a lockup is the error the user deserves =) Setting classid 20:X (X != 0) works as expected. As this is quite early (just hit it) i don't know if i can reproduce it using another scenario. Tomorrow i'll try to dig into it on a testing machine and i'll post the results. Thanks, Alberto From owner-netdev@oss.sgi.com Sun Jul 21 22:08:04 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6M584Rw010628 for ; Sun, 21 Jul 2002 22:08:04 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6M584Hm010627 for netdev-outgoing; Sun, 21 Jul 2002 22:08:04 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from petasus.ch.intel.com (petasus.ch.intel.com [143.182.124.5]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6M581Rw010617 for ; Sun, 21 Jul 2002 22:08:02 -0700 Received: from fmsmsxvs043.fm.intel.com (fmsmsxvs043.fm.intel.com [132.233.42.129]) by petasus.ch.intel.com (8.11.6/8.11.6/d: solo.mc,v 1.42 2002/05/23 22:21:11 root Exp $) with SMTP id g6LMB8e28004 for ; Sun, 21 Jul 2002 22:11:08 GMT Received: from fmsmsx29.FM.INTEL.COM ([132.233.42.29]) by fmsmsxvs043.fm.intel.com (NAVGW 2.5.2.11) with SMTP id M2002072122073709367 for ; Sun, 21 Jul 2002 22:07:37 -0700 Received: by fmsmsx29.fm.intel.com with Internet Mail Service (5.5.2653.19) id <3XNF6A2Y>; Sun, 21 Jul 2002 22:08:46 -0700 Message-ID: <9795DB627281D941B9E608445730DFC821F163@fmsmsx106.fm.intel.com> From: "Hossain, Mohammad" To: netdev@oss.sgi.com Subject: delete from mailing list Date: Sun, 21 Jul 2002 22:06:54 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk delete from mailing list From owner-netdev@oss.sgi.com Mon Jul 22 13:47:08 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6MKl8Rw006254 for ; Mon, 22 Jul 2002 13:47:08 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6MKl86C006253 for netdev-outgoing; Mon, 22 Jul 2002 13:47:08 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6MKl4Rw006236 for ; Mon, 22 Jul 2002 13:47:04 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id AAA14255; Tue, 23 Jul 2002 00:46:44 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207222046.AAA14255@sex.inr.ac.ru> Subject: Re: Frozen machine with adding a tc filter To: albertogli@telpin.COM.AR (Alberto Bertogli) Date: Tue, 23 Jul 2002 00:46:44 +0400 (MSD) Cc: netdev@oss.sgi.com In-Reply-To: <20020722034919.GH685@telpin.com.ar> from "Alberto Bertogli" at Jul 22, 2 08:15:00 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > I know it's weird, but anyway i don't think that a lockup is the error the > user deserves =) You really deserved this. Alexey From owner-netdev@oss.sgi.com Mon Jul 22 14:52:12 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6MLqBRw007227 for ; Mon, 22 Jul 2002 14:52:11 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6MLqBOJ007226 for netdev-outgoing; Mon, 22 Jul 2002 14:52:11 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6MLpsRw007200 for ; Mon, 22 Jul 2002 14:51:55 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id A4B73450F; Mon, 22 Jul 2002 23:21:11 +0200 (CEST) Date: Mon, 22 Jul 2002 23:21:11 +0200 From: bert hubert To: kuznet@ms2.inr.ac.ru Cc: Alberto Bertogli , netdev@oss.sgi.com Subject: Re: Frozen machine with adding a tc filter Message-ID: <20020722212111.GA22916@outpost.ds9a.nl> Mail-Followup-To: bert hubert , kuznet@ms2.inr.ac.ru, Alberto Bertogli , netdev@oss.sgi.com References: <20020722034919.GH685@telpin.com.ar> <200207222046.AAA14255@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200207222046.AAA14255@sex.inr.ac.ru> User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, Jul 23, 2002 at 12:46:44AM +0400, kuznet@ms2.inr.ac.ru wrote: > Hello! > > > I know it's weird, but anyway i don't think that a lockup is the error the > > user deserves =) > > You really deserved this. I also reported this - should tc check this? Or the kernel? I think each qdisc implements its own filter hooks and rules, so tc may be a nice place to do at least simple checking, although it cannot easily spot complicated loops. if ((cl = (void*)res.class) == NULL) { if (TC_H_MAJ(res.classid)) cl = cbq_class_lookup(q, res.classid); else if ((cl = defmap[res.classid&TC_PRIO_MAX]) == NULL cl = defmap[TC_PRIO_BESTEFFORT]; if (cl == NULL || cl->level >= head->level) goto fallback; } Aren't the last 2 lines meant to prevent this from happening? (net/sched/sch_cbq.c). Please tell me your ideas, I hope to fix this. I know people who've had this happen by accident and they really hate it. Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Mon Jul 22 15:57:00 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6MMuxRw007824 for ; Mon, 22 Jul 2002 15:56:59 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6MMux6W007823 for netdev-outgoing; Mon, 22 Jul 2002 15:56:59 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6MMurRw007814 for ; Mon, 22 Jul 2002 15:56:54 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id CAA14506; Tue, 23 Jul 2002 02:57:14 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207222257.CAA14506@sex.inr.ac.ru> Subject: Re: Frozen machine with adding a tc filter To: ahu@ds9a.nl (bert hubert) Date: Tue, 23 Jul 2002 02:57:14 +0400 (MSD) Cc: albertogli@telpin.COM.AR, netdev@oss.sgi.com In-Reply-To: <20020722212111.GA22916@outpost.ds9a.nl> from "bert hubert" at Jul 22, 2 11:21:11 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > I also reported this Sorry, I do not remeber this. > - should tc check this? Or the kernel? The kernel. This funny feature was supposed to disappear ages ago, in 2.2. It did not, hence, it did not. :-) > Aren't the last 2 lines meant to prevent this from happening? They are. > Please tell me your ideas, Well, before all figure out where it deadlocks. Alexey From owner-netdev@oss.sgi.com Tue Jul 23 14:56:42 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6NLuaRw013680 for ; Tue, 23 Jul 2002 14:56:37 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6NLua9M013679 for netdev-outgoing; Tue, 23 Jul 2002 14:56:36 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6NLu5Rw013638 for ; Tue, 23 Jul 2002 14:56:33 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id BAA16799; Wed, 24 Jul 2002 01:56:22 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207232156.BAA16799@sex.inr.ac.ru> Subject: Re: Frozen machine with adding a tc filter To: ahu@ds9a.nl (bert hubert) Date: Wed, 24 Jul 2002 01:56:22 +0400 (MSD) Cc: albertogli@telpin.COM.AR, netdev@oss.sgi.com, jdike@karaya.com In-Reply-To: <20020723212803.GA14546@outpost.ds9a.nl> from "bert hubert" at Jul 23, 2 11:28:04 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > However, with the commandlines specified, the classifier returns.. head, This is strange. cbq_bind_filter() is supposed to return nil class, unless reference has deeper level. Alexey From owner-netdev@oss.sgi.com Tue Jul 23 15:02:39 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6NM2dRw013985 for ; Tue, 23 Jul 2002 15:02:39 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6NM2dGA013984 for netdev-outgoing; Tue, 23 Jul 2002 15:02:39 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6NM1nRw013968 for ; Tue, 23 Jul 2002 15:01:49 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 074C244F5; Tue, 23 Jul 2002 23:28:04 +0200 (CEST) Date: Tue, 23 Jul 2002 23:28:04 +0200 From: bert hubert To: kuznet@ms2.inr.ac.ru Cc: albertogli@telpin.COM.AR, netdev@oss.sgi.com, jdike@karaya.com Subject: Re: Frozen machine with adding a tc filter Message-ID: <20020723212803.GA14546@outpost.ds9a.nl> Mail-Followup-To: bert hubert , kuznet@ms2.inr.ac.ru, albertogli@telpin.COM.AR, netdev@oss.sgi.com, jdike@karaya.com References: <20020722212111.GA22916@outpost.ds9a.nl> <200207222257.CAA14506@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200207222257.CAA14506@sex.inr.ac.ru> User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, Jul 23, 2002 at 02:57:14AM +0400, kuznet@ms2.inr.ac.ru wrote: > > Please tell me your ideas, > > Well, before all figure out where it deadlocks. I tried this in User Mode Linux and after some help by Jeff, I figured out that the deadlock is within cbq_classify() in sch_cbq.c. The problem is that the 'no upwards classifying' check: if (cl == NULL || cl->level >= head->level) goto fallback; is only applied if the classifyer did not return an answer: if (!head->filter_list || (result = tc_classify(skb, head->filter_list, &res)) < 0) goto fallback; if ((cl = (void*)res.class) == NULL) { if (TC_H_MAJ(res.classid)) cl = cbq_class_lookup(q, res.classid); else if ((cl = defmap[res.classid&TC_PRIO_MAX]) == NULL) cl = defmap[TC_PRIO_BESTEFFORT]; if (cl == NULL || cl->level >= head->level) goto fallback; } However, with the commandlines specified, the classifier returns.. head, and the loop prevention test is never performed. Suggested fix is to move down the test to the end of the loop so it is always invoked before iterating. Another test that might sense is to see if head and cl differ before moving on. A loop is guaranteed in that case. I can build this into a patch if needed, but I suspect Alexey will want to write his own. Thanks for your time. Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Tue Jul 23 15:10:53 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6NMArRw015220 for ; Tue, 23 Jul 2002 15:10:53 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6NMAr6h015219 for netdev-outgoing; Tue, 23 Jul 2002 15:10:53 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6NMAjRw015210 for ; Tue, 23 Jul 2002 15:10:46 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 92C5C44F5; Wed, 24 Jul 2002 00:11:42 +0200 (CEST) Date: Wed, 24 Jul 2002 00:11:42 +0200 From: bert hubert To: kuznet@ms2.inr.ac.ru Cc: albertogli@telpin.COM.AR, netdev@oss.sgi.com, jdike@karaya.com Subject: Re: Frozen machine with adding a tc filter Message-ID: <20020723221142.GA15146@outpost.ds9a.nl> Mail-Followup-To: bert hubert , kuznet@ms2.inr.ac.ru, albertogli@telpin.COM.AR, netdev@oss.sgi.com, jdike@karaya.com References: <20020723212803.GA14546@outpost.ds9a.nl> <200207232156.BAA16799@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200207232156.BAA16799@sex.inr.ac.ru> User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Wed, Jul 24, 2002 at 01:56:22AM +0400, kuznet@ms2.inr.ac.ru wrote: > Hello! > > > However, with the commandlines specified, the classifier returns.. head, > > This is strange. cbq_bind_filter() is supposed to return nil class, > unless reference has deeper level. These are the commandlines: tc qdisc add dev eth0 handle 1:0 root cbq bandwidth 12500000bps avpkt 1000 tc class add dev eth0 parent 1:0 classid 1:2 cbq bandwidth 12500000bps rate \ 10000bps allot 1500 avpkt 1000 maxburst 5 bounded tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1:0:0 u32 \ divisor 1 tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match u32 \ 0xd5f4a8d2 0xffffffff at 16 classid 1:0 In the last command, cbq_bind_filter is called with parent==0: static unsigned long cbq_bind_filter(struct Qdisc *sch, unsigned long parent, u32 classid) { struct cbq_sched_data *q = (struct cbq_sched_data *)sch->data; struct cbq_class *p = (struct cbq_class*)parent; struct cbq_class *cl = cbq_class_lookup(q, classid); if (cl) { if (p && p->level <= cl->level) return 0; cl->filters++; return (unsigned long)cl; } return 0; } cl->level is in fact 1. Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Tue Jul 23 15:19:57 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6NMJuRw015843 for ; Tue, 23 Jul 2002 15:19:57 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6NMJuMi015842 for netdev-outgoing; Tue, 23 Jul 2002 15:19:56 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6NMJpRw015833 for ; Tue, 23 Jul 2002 15:19:51 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id CAA16865; Wed, 24 Jul 2002 02:19:53 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207232219.CAA16865@sex.inr.ac.ru> Subject: Re: Frozen machine with adding a tc filter To: ahu@ds9a.nl (bert hubert) Date: Wed, 24 Jul 2002 02:19:53 +0400 (MSD) Cc: albertogli@telpin.COM.AR, netdev@oss.sgi.com, jdike@karaya.com In-Reply-To: <20020723221142.GA15146@outpost.ds9a.nl> from "bert hubert" at Jul 24, 2 00:11:42 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > In the last command, cbq_bind_filter is called with parent==0: Damn, indeed. Congratulations! It should look like: + if (p == NULL) + p = &q->link; if (cl) { - if (p && p->level <= cl->level) + if (p->level <= cl->level) return 0; cl->filters++; Alexey From owner-netdev@oss.sgi.com Wed Jul 24 08:56:16 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6OFuGRw032067 for ; Wed, 24 Jul 2002 08:56:16 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6OFuGTS032066 for netdev-outgoing; Wed, 24 Jul 2002 08:56:16 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oldmoon.mt.lv (root@[159.148.147.198]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6OFu8Rw032052 for ; Wed, 24 Jul 2002 08:56:09 -0700 Received: from karlis.dev.mt.lv (IDENT:yymFzR8WNsioe/GSHFzsGbc0Y/IK63n8@karlis.dev.mt.lv [10.0.0.16]) by oldmoon.mt.lv (8.9.3/8.9.3) with ESMTP id RAA28621 for ; Wed, 24 Jul 2002 17:57:07 +0200 Date: Wed, 24 Jul 2002 19:04:21 +0300 From: Karlis Peisenieks To: netdev@oss.sgi.com Subject: IFF_NOARP & broadcasting Message-ID: <20020724190421.A2449@karlis> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Balsa 1.1.7 Lines: 43 X-Spam-Status: No, hits=-5.0 required=5.0 tests=UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! Is there any serious reason why when device has IFF_NOARP set, devices ll address is used as destination address even for broadcasts (and even when devices broadcast address is valid)? Currently it is impossible to send out correct broadcast over ethernet when IFF_NOARP is set. The code in question is in net/ipv4/arp.c, function arp_constructor: if (neigh->type == RTN_MULTICAST) { neigh->nud_state = NUD_NOARP; arp_mc_map(addr, neigh->ha, dev, 1); } else if (dev->flags&(IFF_NOARP|IFF_LOOPBACK)) { ^^^^^^^^^ neigh->nud_state = NUD_NOARP; memcpy(neigh->ha, dev->dev_addr, dev->addr_len); } else if (neigh->type == RTN_BROADCAST || dev->flags&IFF_POINT neigh->nud_state = NUD_NOARP; memcpy(neigh->ha, dev->broadcast, dev->addr_len); } Is it ok to apply following patch and not break anything: --- arp.c.orig Wed Jul 24 19:02:53 2002 +++ arp.c Wed Jul 24 19:01:06 2002 @@ -289,12 +289,15 @@ if (neigh->type == RTN_MULTICAST) { neigh->nud_state = NUD_NOARP; arp_mc_map(addr, neigh->ha, dev, 1); - } else if (dev->flags&(IFF_NOARP|IFF_LOOPBACK)) { + } else if (dev->flags&IFF_LOOPBACK) { neigh->nud_state = NUD_NOARP; memcpy(neigh->ha, dev->dev_addr, dev->addr_len); } else if (neigh->type == RTN_BROADCAST || dev->flags&IFF_POINTOPOINT) { neigh->nud_state = NUD_NOARP; memcpy(neigh->ha, dev->broadcast, dev->addr_len); + } else if (dev->flags & IFF_NOARP) { + neigh->nud_state = NUD_NOARP; + memcpy(neigh->ha, dev->dev_addr, dev->addr_len); } if (dev->hard_header_cache) neigh->ops = &arp_hh_ops; From owner-netdev@oss.sgi.com Wed Jul 24 09:53:04 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6OGr4Rw000553 for ; Wed, 24 Jul 2002 09:53:04 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6OGr44X000552 for netdev-outgoing; Wed, 24 Jul 2002 09:53:04 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6OGquRw000543 for ; Wed, 24 Jul 2002 09:52:57 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id UAA19057; Wed, 24 Jul 2002 20:52:56 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207241652.UAA19057@sex.inr.ac.ru> Subject: Re: IFF_NOARP & broadcasting To: karlis@mt.lv (Karlis Peisenieks) Date: Wed, 24 Jul 2002 20:52:55 +0400 (MSD) Cc: netdev@oss.sgi.com In-Reply-To: <20020724190421.A2449@karlis> from "Karlis Peisenieks" at Jul 24, 2 08:15:01 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > Is there any serious reason why when device has IFF_NOARP set, devices ll > address is used as destination address even for broadcasts (and even when > devices broadcast address is valid)? No reasons, I think. Instead of that your patch, it may be better just exchange order of tests. As I remember, ll addr is initialized to dev_addr for NOARP just to get a valid unicast address as destination for eth_type_trans() to work correctly. > Currently it is impossible to send out correct broadcast over ethernet > when IFF_NOARP is set. No, it is surely not impossible. f.e. ip neigh add 255.255.255.255 dev dummy0 lladdr ff:ff:ff:ff:ff:ff works. Alexey From owner-netdev@oss.sgi.com Wed Jul 24 10:58:03 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6OHw3Rw003433 for ; Wed, 24 Jul 2002 10:58:03 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6OHw3Qa003432 for netdev-outgoing; Wed, 24 Jul 2002 10:58:03 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oldmoon.mt.lv (root@[159.148.147.198]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6OHvtRw003420 for ; Wed, 24 Jul 2002 10:57:56 -0700 Received: from karlis.dev.mt.lv (IDENT:uXa0XIJX4NxH1M8HZAxN4fW60b9jOf2o@karlis.dev.mt.lv [10.0.0.16]) by oldmoon.mt.lv (8.9.3/8.9.3) with ESMTP id TAA31602; Wed, 24 Jul 2002 19:58:55 +0200 Date: Wed, 24 Jul 2002 21:06:08 +0300 (EEST) From: Karlis Peisenieks To: cc: Subject: Re: IFF_NOARP & broadcasting In-Reply-To: <200207241652.UAA19057@sex.inr.ac.ru> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Wed, 24 Jul 2002 kuznet@ms2.inr.ac.ru wrote: > > Is there any serious reason why when device has IFF_NOARP set, devices ll > > address is used as destination address even for broadcasts (and even when > > devices broadcast address is valid)? > > No reasons, I think. Instead of that your patch, it may be better just > exchange order of tests. As I remember, ll addr is initialized Ok, please consider the attached patch. > No, it is surely not impossible. f.e. > > ip neigh add 255.255.255.255 dev dummy0 lladdr ff:ff:ff:ff:ff:ff Umm, did not think of this. Anyway, this forces to add one neigh for each broadcast address in use on interface. Here comes the patch: --- arp.c.orig Wed Jul 24 20:43:13 2002 +++ arp.c Wed Jul 24 20:42:53 2002 @@ -289,12 +289,12 @@ if (neigh->type == RTN_MULTICAST) { neigh->nud_state = NUD_NOARP; arp_mc_map(addr, neigh->ha, dev, 1); - } else if (dev->flags&(IFF_NOARP|IFF_LOOPBACK)) { - neigh->nud_state = NUD_NOARP; - memcpy(neigh->ha, dev->dev_addr, dev->addr_len); } else if (neigh->type == RTN_BROADCAST || dev->flags&IFF_POINTOPOINT) { neigh->nud_state = NUD_NOARP; memcpy(neigh->ha, dev->broadcast, dev->addr_len); + } else if (dev->flags&(IFF_NOARP|IFF_LOOPBACK)) { + neigh->nud_state = NUD_NOARP; + memcpy(neigh->ha, dev->dev_addr, dev->addr_len); } if (dev->hard_header_cache) neigh->ops = &arp_hh_ops; Karlis From owner-netdev@oss.sgi.com Thu Jul 25 06:24:39 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6PDOdRw003241 for ; Thu, 25 Jul 2002 06:24:39 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6PDOdcO003240 for netdev-outgoing; Thu, 25 Jul 2002 06:24:39 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oldmoon.mt.lv (root@[159.148.147.198]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6PDOVRw003231 for ; Thu, 25 Jul 2002 06:24:32 -0700 Received: from karlis.dev.mt.lv (IDENT:u9/xpgQd1E4c8Etqzn9rSzTnadqr3LuB@karlis.dev.mt.lv [10.0.0.16]) by oldmoon.mt.lv (8.9.3/8.9.3) with ESMTP id PAA29353; Thu, 25 Jul 2002 15:25:04 +0200 Date: Thu, 25 Jul 2002 16:32:23 +0300 From: Karlis Peisenieks To: kuznet@ms2.inr.ac.ru Cc: netdev@oss.sgi.com Subject: Re: IFF_NOARP & broadcasting [2] Message-ID: <20020725163223.A13299@karlis> References: <20020724190421.A2449@karlis> <200207241652.UAA19057@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit In-Reply-To: <200207241652.UAA19057@sex.inr.ac.ru>; from kuznet@ms2.inr.ac.ru on Wed, Jul 24, 2002 at 19:52:55 +0300 X-Mailer: Balsa 1.1.7 Lines: 40 X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On 2002.07.24 19:52 kuznet@ms2.inr.ac.ru wrote: > No, it is surely not impossible. f.e. > > ip neigh add 255.255.255.255 dev dummy0 lladdr ff:ff:ff:ff:ff:ff Ok, but even in this case there is minor problem. And it lies in net/ethernet/eth.c - eth_header. neigh_resolve_output creates header cache with correct ll source and ll destination as in neighbour, but uses dev->hard_header to build header for first packet. And eth_header has code: if (dev->flags & (IFF_LOOPBACK|IFF_NOARP)) { memset(eth->h_dest, 0, dev->addr_len); return(dev->hard_header_len); } which explicitly sets ll destination to all 0s. For all next packets hh_cache is used and they get correct ll address (as in neighbour). Please comment on this patch :) : --- eth.c.orig Thu Jul 25 16:16:37 2002 +++ eth.c Thu Jul 25 16:16:47 2002 @@ -100,7 +100,7 @@ * Anyway, the loopback-device should never use this function... */ - if (dev->flags & (IFF_LOOPBACK|IFF_NOARP)) + if (dev->flags & IFF_LOOPBACK) { memset(eth->h_dest, 0, dev->addr_len); return(dev->hard_header_len); Karlis From owner-netdev@oss.sgi.com Thu Jul 25 07:01:39 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6PE1dRw004527 for ; Thu, 25 Jul 2002 07:01:39 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6PE1clN004526 for netdev-outgoing; Thu, 25 Jul 2002 07:01:38 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6PE1WRw004517 for ; Thu, 25 Jul 2002 07:01:33 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id SAA02033; Thu, 25 Jul 2002 18:02:18 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207251402.SAA02033@sex.inr.ac.ru> Subject: Re: IFF_NOARP & broadcasting [2] To: karlis@mt.lv (Karlis Peisenieks) Date: Thu, 25 Jul 2002 18:02:18 +0400 (MSD) Cc: netdev@oss.sgi.com In-Reply-To: <20020725163223.A13299@karlis> from "Karlis Peisenieks" at Jul 25, 2 04:32:23 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.8 required=5.0 tests=IN_REP_TO,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > Ok, but even in this case there is minor problem. And it lies in > net/ethernet/eth.c - eth_header. You have just made great discovery. :-) It was big puzzle why people blame that they see packets with zero MAC, sometimes. Apparently, this happens on the first packet, when hh cache is still not created. :-) > Please comment on this patch :) : I am not sure that this is right. Protocols using neighbour cache will work, but anothers will fail on NOARP devices. It is safer just to reorder two ifs, checking for daddr!=NULL first. Alexey From owner-netdev@oss.sgi.com Thu Jul 25 07:45:27 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6PEjRRw008329 for ; Thu, 25 Jul 2002 07:45:27 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6PEjRT6008328 for netdev-outgoing; Thu, 25 Jul 2002 07:45:27 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oldmoon.mt.lv (root@[159.148.147.198]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6PEjHRw008319 for ; Thu, 25 Jul 2002 07:45:18 -0700 Received: from karlis.dev.mt.lv (IDENT:YxoBAFFwNgS5GXZcfbxE3F3sJlVrFoNz@karlis.dev.mt.lv [10.0.0.16]) by oldmoon.mt.lv (8.9.3/8.9.3) with ESMTP id QAA00553; Thu, 25 Jul 2002 16:45:51 +0200 Date: Thu, 25 Jul 2002 17:53:10 +0300 From: Karlis Peisenieks To: kuznet@ms2.inr.ac.ru Cc: netdev@oss.sgi.com Subject: Re: IFF_NOARP & broadcasting [2] Message-ID: <20020725175310.A13694@karlis> References: <20020725163223.A13299@karlis> <200207251402.SAA02033@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit In-Reply-To: <200207251402.SAA02033@sex.inr.ac.ru>; from kuznet@ms2.inr.ac.ru on Thu, Jul 25, 2002 at 17:02:18 +0300 X-Mailer: Balsa 1.1.7 Lines: 48 X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On 2002.07.25 17:02 kuznet@ms2.inr.ac.ru wrote: > You have just made great discovery. :-) > > It was big puzzle why people blame that they see packets with zero MAC, > sometimes. Apparently, this happens on the first packet, when hh cache > is still not created. :-) Yes, this was killing me too. > I am not sure that this is right. Protocols using neighbour cache > will work, but anothers will fail on NOARP devices. > > It is safer just to reorder two ifs, checking for daddr!=NULL first. You mean like this: --- eth.c.orig Thu Jul 25 17:50:20 2002 +++ eth.c Thu Jul 25 17:50:35 2002 @@ -96,6 +96,12 @@ else memcpy(eth->h_source,dev->dev_addr,dev->addr_len); + if(daddr) + { + memcpy(eth->h_dest,daddr,dev->addr_len); + return dev->hard_header_len; + } + /* * Anyway, the loopback-device should never use this function... */ @@ -106,12 +112,6 @@ return(dev->hard_header_len); } - if(daddr) - { - memcpy(eth->h_dest,daddr,dev->addr_len); - return dev->hard_header_len; - } - return -dev->hard_header_len; } Karlis From owner-netdev@oss.sgi.com Thu Jul 25 07:59:16 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6PExGRw008886 for ; Thu, 25 Jul 2002 07:59:16 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6PExFwp008885 for netdev-outgoing; Thu, 25 Jul 2002 07:59:15 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from mail.dei.uc.pt (mail.dei.uc.pt [193.137.203.228]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6PEx5Rw008876 for ; Thu, 25 Jul 2002 07:59:09 -0700 Received: (from root@localhost) by mail.dei.uc.pt (8.11.6/8.11.6) id g6PF07W26816 for netdev@oss.sgi.com; Thu, 25 Jul 2002 16:00:07 +0100 Received: from polaris.dei.uc.pt (polaris.dei.uc.pt [10.5.0.5]) by mail.dei.uc.pt (8.11.6/8.11.6) with ESMTP id g6PF06t26808 for ; Thu, 25 Jul 2002 16:00:06 +0100 Received: from polaris.dei.uc.pt (localhost [127.0.0.1]) by polaris.dei.uc.pt (8.12.3/8.12.2/SuSE Linux 0.6) with ESMTP id g6PF02C8022584 for ; Thu, 25 Jul 2002 16:00:02 +0100 Received: from localhost (localhost [[UNIX: localhost]]) by polaris.dei.uc.pt (8.12.3/8.12.3/Submit) id g6PF01cJ022561 for netdev@oss.sgi.com; Thu, 25 Jul 2002 16:00:01 +0100 Content-Type: text/plain; charset="iso-8859-1" From: Antonio Miguel Trindade To: netdev@oss.sgi.com Subject: Status of implementations Date: Thu, 25 Jul 2002 15:59:56 +0100 User-Agent: KMail/1.4.1 MIME-Version: 1.0 Message-Id: <200207251600.00785.trindade@student.dei.uc.pt> X-Virus-Scanned: by AMaViS perl-11 X-MIME-Autoconverted: from 8bit to quoted-printable by mail.dei.uc.pt id g6PF07W26816 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id g6PExARw008877 X-Spam-Status: No, hits=-2.1 required=5.0 tests=PGP_SIGNATURE version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello all! I am finishing my graduate degree in Computer Science and the work assignment is about Multicasting over IPv6. What I would like know is, if possible, what is the status of several IPv6 implementations. I thought of using SuSE, as it already boasts a good Linux implementation, but I would like to hear from you. Thanks in advance. - -- - ---------------------------------------------------------- Antonio Miguel Ferreira Marques Trindade trindade@student.dei.uc.pt Faculdade de Ciências e Tecnologia Universidade de Coimbra PORTUGAL - ---------------------------------------------------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9QBJwBCmuJFX6u2cRAv2cAKCnPLbBXN0gSRwvFpCvJFBpUvFPvgCfQ0kl W4vrzQRRWzmdVIAZs1ywQcM= =mCLG -----END PGP SIGNATURE----- From owner-netdev@oss.sgi.com Thu Jul 25 08:04:42 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6PF4gRw009036 for ; Thu, 25 Jul 2002 08:04:42 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6PF4fG8009035 for netdev-outgoing; Thu, 25 Jul 2002 08:04:41 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from simba.xos.nl (simba.xos.nl [212.26.207.226]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6PF4aRw009026 for ; Thu, 25 Jul 2002 08:04:37 -0700 Received: from minnie.xos.nl (minnie.xos.nl [212.26.207.20]) by simba.xos.nl (8.8.6/8.8.8) with SMTP id RAA27214; Thu, 25 Jul 2002 17:05:36 +0200 Received: from minnie.xos.nl (jos@localhost [127.0.0.1]) by minnie.xos.nl (8.6.12/8.6.9) with ESMTP id RAA06891; Thu, 25 Jul 2002 17:05:36 +0200 Message-Id: <200207251505.RAA06891@minnie.xos.nl> From: Jos Vos To: Antonio Miguel Trindade cc: netdev@oss.sgi.com Subject: Re: Status of implementations In-reply-to: Your message of "Thu, 25 Jul 2002 15:59:56 BST." <200207251600.00785.trindade@student.dei.uc.pt> Date: Thu, 25 Jul 2002 17:05:35 +0200 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hi, > What I would like know is, if possible, what is the status of several IPv6 > implementations. I thought of using SuSE, as it already boasts a good Linux > implementation, but I would like to hear from you. Better don't start political discussions about "good Linux implementations" (i.e., flame wars about distributions ;-)), but you might want to look at this excellent page for IPv6 support: http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status.html Have fun, -- -- Jos Vos -- X/OS Experts in Open Systems BV | Phone: +31 20 6938364 -- Amsterdam, The Netherlands | Fax: +31 20 6948204 From owner-netdev@oss.sgi.com Thu Jul 25 08:21:37 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6PFLbRw010335 for ; Thu, 25 Jul 2002 08:21:37 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6PFLbps010334 for netdev-outgoing; Thu, 25 Jul 2002 08:21:37 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from mail.dei.uc.pt (mail.dei.uc.pt [193.137.203.228]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6PFLRRw010325 for ; Thu, 25 Jul 2002 08:21:28 -0700 Received: (from root@localhost) by mail.dei.uc.pt (8.11.6/8.11.6) id g6PFMWd28517; Thu, 25 Jul 2002 16:22:32 +0100 Received: from polaris.dei.uc.pt (polaris.dei.uc.pt [10.5.0.5]) by mail.dei.uc.pt (8.11.6/8.11.6) with ESMTP id g6PFMVt28510; Thu, 25 Jul 2002 16:22:31 +0100 Received: from polaris.dei.uc.pt (localhost [127.0.0.1]) by polaris.dei.uc.pt (8.12.3/8.12.2/SuSE Linux 0.6) with ESMTP id g6PFMRC8023124; Thu, 25 Jul 2002 16:22:27 +0100 Received: from localhost (localhost [[UNIX: localhost]]) by polaris.dei.uc.pt (8.12.3/8.12.3/Submit) id g6PFMQ5P023123; Thu, 25 Jul 2002 16:22:26 +0100 Content-Type: text/plain; charset="iso-8859-1" From: Antonio Miguel Trindade To: Jos Vos Subject: Re: Status of implementations Date: Thu, 25 Jul 2002 16:22:25 +0100 User-Agent: KMail/1.4.1 Cc: netdev@oss.sgi.com References: <200207251505.RAA06891@minnie.xos.nl> In-Reply-To: <200207251505.RAA06891@minnie.xos.nl> MIME-Version: 1.0 Message-Id: <200207251622.25958.trindade@student.dei.uc.pt> X-Virus-Scanned: by AMaViS perl-11 X-MIME-Autoconverted: from 8bit to quoted-printable by mail.dei.uc.pt id g6PFMWd28517 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id g6PFLTRw010326 X-Spam-Status: No, hits=-6.5 required=5.0 tests=IN_REP_TO,PGP_SIGNATURE version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 25 July 2002 16:05, Jos Vos wrote: > Hi, > > > What I would like know is, if possible, what is the status of several > > IPv6 implementations. I thought of using SuSE, as it already boasts a > > good Linux implementation, but I would like to hear from you. > > Better don't start political discussions about "good Linux implementations" > (i.e., flame wars about distributions ;-)), but you might want to look at > this excellent page for IPv6 support: > It isn't my intention either... What I mean by "good implementations" is "the closest possible to the specifications"... > http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status.html > Thank you very much. > Have fun, I'll try... ;-) - -- - ---------------------------------------------------------- Antonio Miguel Ferreira Marques Trindade trindade@student.dei.uc.pt Faculdade de Ciências e Tecnologia Universidade de Coimbra PORTUGAL - ---------------------------------------------------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9QBexBCmuJFX6u2cRAvG8AKCWfhFeyV8EkBg5Xnqi+els/FRHQQCgxYZW wBEHe+LRZaePgT/w4Z40oqY= =RJT+ -----END PGP SIGNATURE----- From owner-netdev@oss.sgi.com Sat Jul 27 10:14:36 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6RHETRw015936 for ; Sat, 27 Jul 2002 10:14:34 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6RHEQgv015935 for netdev-outgoing; Sat, 27 Jul 2002 10:14:26 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from deliverator.sgi.com (deliverator.SGI.COM [204.94.214.10] (may be forged)) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6RHEARw015924 for ; Sat, 27 Jul 2002 10:14:20 -0700 Received: from relay1.corp.sgi.com (spindle.corp.sgi.com [198.29.75.13]) by deliverator.sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam: SGI does not authorize the use of its proprietary systems or networks for unsolicited or bulk email from the Internet.) via ESMTP id KAA03790 for ; Sat, 27 Jul 2002 10:15:15 -0700 (PDT) mail_from (trev@corp.sgi.com) Received: from shotgun.corp.sgi.com (shotgun.corp.sgi.com [192.26.74.32]) by relay1.corp.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF) via ESMTP id KAA59568 for ; Sat, 27 Jul 2002 10:14:44 -0700 (PDT) Received: from localhost (trev@localhost) by shotgun.corp.sgi.com (SGI-8.9.3/8.9.3) with SMTP id KAA56172 for ; Sat, 27 Jul 2002 10:12:11 -0700 (PDT) X-Authentication-Warning: shotgun.corp.sgi.com: trev owned process doing -bs Date: Sat, 27 Jul 2002 10:12:11 -0700 (PDT) From: Trevor Hurst To: netdev@oss.sgi.com Subject: cisco_ipsec w/ 2.4.18-4SGI_XFS_1.1 Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=1.3 required=5.0 tests=MAY_BE_FORGED version=2.20 X-Spam-Level: * Sender: owner-netdev@oss.sgi.com Precedence: bulk Has anyone gotten the cisco vpn client 3.5.Rel-k9 to work with 2.4.18 or 2.4.18-sgi-xfs??? I have made some progress but not quite there yet.. Details: [root@fiend vpnclient]# /etc/init.d/vpnclient_init start Starting /usr/local/bin/vpnclient: /lib/modules/2.4.18-4SGI_XFS_1.1/CiscoVPN/cisco_ipsec: unresolved symbol get_fast_time /lib/modules/2.4.18-4SGI_XFS_1.1/CiscoVPN/cisco_ipsec: Hint: You are trying to load a module without a GPL compatible license and it has unresolved symbols. Contact the module supplier for assistance, only they can help you. Failed (insmod) Any ideas? Thanks! -- Trev -- Trevor Hurst Senior Systems Administrator DCO Unix Production Systems Silicon Graphics Office Ph: 650.933.6144 e-mail: trev@sgi.com pager: trev_p@pager.sgi.com -- He who pursues righteousness and love finds life, prosperity and honor. From owner-netdev@oss.sgi.com Mon Jul 29 04:03:03 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TB33Rw031883 for ; Mon, 29 Jul 2002 04:03:03 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TB33tY031882 for netdev-outgoing; Mon, 29 Jul 2002 04:03:03 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TB2sRw031872 for ; Mon, 29 Jul 2002 04:02:55 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id HAA02327; Mon, 29 Jul 2002 07:04:09 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6TAvKQ12696; Mon, 29 Jul 2002 06:57:47 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Mon, 29 Jul 2002 06:57:20 -0400 (EDT) From: jamal To: Rusty Russell @shell.cyberus.ca@shell.cyberus.ca cc: , , Subject: Re: TODO list before feature freeze In-Reply-To: <20020718093928.18BC942CD@lists.samba.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Thu, 18 Jul 2002, Rusty Russell wrote: > Hi all, > > With four months to go before the feature freeze, Really? ;-> > > Connection tracking: Fix perfomance problems with this thing. You may have seen reports of performance degradation it introduces. I was hoping to take a look at some point time hasnt been visiting this side. > > iptables: > o Change over to a netlink interface > o Back to add/delete/replace interface + commit. > o Rewrite libiptc to use netlink (to port iptables). I hope this resolves the current scheme where the whole add/delete/replace interface + commit happens in user space? If you use netlink it would make sense to do incremental updates to the kernel. cheers, jamal From owner-netdev@oss.sgi.com Mon Jul 29 04:11:34 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TBBYRw032212 for ; Mon, 29 Jul 2002 04:11:34 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TBBYcg032211 for netdev-outgoing; Mon, 29 Jul 2002 04:11:34 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from Cantor.suse.de (ns.suse.de [213.95.15.193]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TBBTRw032202 for ; Mon, 29 Jul 2002 04:11:30 -0700 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id BA2D6142F4; Mon, 29 Jul 2002 13:12:45 +0200 (MEST) Date: Mon, 29 Jul 2002 13:12:39 +0200 From: Andi Kleen To: jamal Cc: Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729131239.A5183@wotan.suse.de> References: <20020718093928.18BC942CD@lists.samba.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.22.1i X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > > > > Connection tracking: > > Fix perfomance problems with this thing. You may have seen reports of > performance degradation it introduces. I was hoping to take a look at some > point time hasnt been visiting this side. One obvious problem that it has is that it uses vmalloc to allocate its big hash table. This will likely lead to TLB thrashing on a busy box. It should try to allocate the hashtable with get_free_pages() first and only fall back to vmalloc if that fails. This way it would run with large pages. (case in point: we have at least one report that routing performance breaks down with ip_conntrack when memory size is increased over 1GB on P3s. The hash table size depends on the memory size. The problem does not occur on P4s. P4s have larger TLBs than P3s.) -Andi From owner-netdev@oss.sgi.com Mon Jul 29 04:31:01 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TBV1Rw032639 for ; Mon, 29 Jul 2002 04:31:01 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TBV003032638 for netdev-outgoing; Mon, 29 Jul 2002 04:31:00 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TBUtRw032627 for ; Mon, 29 Jul 2002 04:30:55 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id HAA10462; Mon, 29 Jul 2002 07:30:14 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6TBNnZ12759; Mon, 29 Jul 2002 07:23:53 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Mon, 29 Jul 2002 07:23:49 -0400 (EDT) From: jamal To: Andi Kleen cc: Rusty Russell , , , Subject: Re: TODO list before feature freeze In-Reply-To: <20020729131239.A5183@wotan.suse.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, 29 Jul 2002, Andi Kleen wrote: > One obvious problem that it has is that it uses vmalloc to allocate its > big hash table. This will likely lead to TLB thrashing on a busy box. It should > try to allocate the hashtable with get_free_pages() first and only fall > back to vmalloc if that fails. This way it would run with large pages. > > (case in point: we have at least one report that routing > performance breaks down with ip_conntrack when memory size is increased over > 1GB on P3s. The hash table size depends on the memory size. The problem does > not occur on P4s. P4s have larger TLBs than P3s.) > They also have a lot of problems with their per-packet computations. Robert and I spent a short time looking at "this thing that is making us look bad" (perfomance wise) and talked to Harald. Something that looked like needs improvement at first glance was the aging and hashing schemes. cheers, jamal From owner-netdev@oss.sgi.com Mon Jul 29 04:55:15 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TBtFRw000553 for ; Mon, 29 Jul 2002 04:55:15 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TBtFl2000552 for netdev-outgoing; Mon, 29 Jul 2002 04:55:15 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from Cantor.suse.de (ns.suse.de [213.95.15.193]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TBsxRw000539 for ; Mon, 29 Jul 2002 04:55:00 -0700 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id 4417F14317; Mon, 29 Jul 2002 13:56:16 +0200 (MEST) Date: Mon, 29 Jul 2002 13:56:15 +0200 From: Andi Kleen To: jamal Cc: Andi Kleen , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729135615.A20412@wotan.suse.de> References: <20020729131239.A5183@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.22.1i X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, Jul 29, 2002 at 07:23:49AM -0400, jamal wrote: > > > On Mon, 29 Jul 2002, Andi Kleen wrote: > > > One obvious problem that it has is that it uses vmalloc to allocate its > > big hash table. This will likely lead to TLB thrashing on a busy box. It should > > try to allocate the hashtable with get_free_pages() first and only fall > > back to vmalloc if that fails. This way it would run with large pages. > > > > (case in point: we have at least one report that routing > > performance breaks down with ip_conntrack when memory size is increased over > > 1GB on P3s. The hash table size depends on the memory size. The problem does > > not occur on P4s. P4s have larger TLBs than P3s.) > > > > They also have a lot of problems with their per-packet computations. > Robert and I spent a short time looking at "this thing that is making > us look bad" (perfomance wise) and talked to Harald. > Something that looked like needs improvement at first glance was the aging > and hashing schemes. Yes, some more tuning is probably needed. here is a patch for 2.4 that just makes it use get_free_pages to test the TLB theory. Another obvious improvement would be to not use list_heads for the hash table buckets - a single pointer would likely suffice and it would cut the hash table in half, saving cache, TLB and memory. -Andi --- linux-work/net/ipv4/netfilter/ip_conntrack_core.c-CONNTRACK Thu Jul 25 13:36:42 2002 +++ linux-work/net/ipv4/netfilter/ip_conntrack_core.c Mon Jul 29 13:48:33 2002 @@ -50,6 +50,7 @@ LIST_HEAD(protocol_list); static LIST_HEAD(helpers); unsigned int ip_conntrack_htable_size = 0; +static int ip_conntrack_vmalloc; static int ip_conntrack_max = 0; static atomic_t ip_conntrack_count = ATOMIC_INIT(0); struct list_head *ip_conntrack_hash; @@ -1053,6 +1054,15 @@ return 1; } +static void free_conntrack_hash(void) +{ + if (ip_conntrack_vmalloc) + vfree(ip_conntrack_hash); + else + free_pages((unsigned long)ip_conntrack_hash, + get_order(sizeof(struct list_head) * ip_conntrack_htable_size)); +} + /* Mishearing the voices in his head, our hero wonders how he's supposed to kill the mall. */ void ip_conntrack_cleanup(void) @@ -1075,7 +1085,7 @@ } kmem_cache_destroy(ip_conntrack_cachep); - vfree(ip_conntrack_hash); + free_conntrack_hash(); nf_unregister_sockopt(&so_getorigdst); } @@ -1109,8 +1119,17 @@ if (ret != 0) return ret; - ip_conntrack_hash = vmalloc(sizeof(struct list_head) - * ip_conntrack_htable_size); + /* AK: the hash table is twice as big than needed because it uses list_head. + it would be much nicer to caches to use a single pointer list head here. */ + ip_conntrack_vmalloc = 0; + ip_conntrack_hash = (void *)__get_free_pages(GFP_KERNEL, + get_order(sizeof(struct list_head) * + ip_conntrack_htable_size)); + if (!ip_conntrack_hash) { + ip_conntrack_vmalloc = 1; + printk("ip_conntrack: falling back to vmalloc. performance may be degraded.\n"); + ip_conntrack_hash = vmalloc(sizeof(struct list_head) * ip_conntrack_htable_size); + } if (!ip_conntrack_hash) { nf_unregister_sockopt(&so_getorigdst); return -ENOMEM; @@ -1121,7 +1140,7 @@ SLAB_HWCACHE_ALIGN, NULL, NULL); if (!ip_conntrack_cachep) { printk(KERN_ERR "Unable to create ip_conntrack slab cache\n"); - vfree(ip_conntrack_hash); + free_conntrack_hash(); nf_unregister_sockopt(&so_getorigdst); return -ENOMEM; } @@ -1145,7 +1164,7 @@ = register_sysctl_table(ip_conntrack_root_table, 0); if (ip_conntrack_sysctl_header == NULL) { kmem_cache_destroy(ip_conntrack_cachep); - vfree(ip_conntrack_hash); + free_conntrack_hash(); nf_unregister_sockopt(&so_getorigdst); return -ENOMEM; } From owner-netdev@oss.sgi.com Mon Jul 29 08:24:33 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TFOWRw015514 for ; Mon, 29 Jul 2002 08:24:32 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TFOWDd015513 for netdev-outgoing; Mon, 29 Jul 2002 08:24:32 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from noxmail.sandelman.ottawa.on.ca (cyphermail.sandelman.ottawa.on.ca [192.139.46.78]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TFOMRw015504 for ; Mon, 29 Jul 2002 08:24:26 -0700 Received: from sandelman.ottawa.on.ca (marajade.sandelman.ottawa.on.ca [192.139.46.20]) by noxmail.sandelman.ottawa.on.ca (8.11.6/8.11.6) with ESMTP id g6TFPXW25113 (using TLSv1/SSLv3 with cipher EDH-RSA-DES-CBC3-SHA (168 bits) verified OK); Mon, 29 Jul 2002 11:25:40 -0400 (EDT) Received: from marajade.sandelman.ottawa.on.ca (marajade [127.0.0.1]) by sandelman.ottawa.on.ca (8.12.3/8.12.3/Debian -4) with ESMTP id g6TFPWYr011563 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK); Mon, 29 Jul 2002 11:25:33 -0400 Received: from marajade.sandelman.ottawa.on.ca (mcr@localhost) by marajade.sandelman.ottawa.on.ca (8.12.3/8.12.3/Debian -4) with ESMTP id g6TFPTTu011558; Mon, 29 Jul 2002 11:25:32 -0400 Message-Id: <200207291525.g6TFPTTu011558@marajade.sandelman.ottawa.on.ca> To: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze In-reply-to: Your message of "Mon, 29 Jul 2002 13:12:39 +0200." <20020729131239.A5183@wotan.suse.de> Mime-Version: 1.0 (generated by tm-edit 1.8) Content-Type: text/plain; charset=US-ASCII Date: Mon, 29 Jul 2002 11:25:28 -0400 From: Michael Richardson X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk >>>>> "Andi" == Andi Kleen writes: Andi> (case in point: we have at least one report that routing Andi> performance breaks down with ip_conntrack when memory size is Andi> increased over 1GB on P3s. The hash table size depends on the Andi> memory size. The problem does not occur on P4s. P4s have larger Andi> TLBs than P3s.) That's a non-obvious result. I'll bet that most of the memory-size based hash tables in the kernel suffer from similar problems. A good topic for a paper, I'd say. ] Internet Security. Have encryption, will travel |1 Fish/2 Fish [ ] Michael Richardson, Sandelman Software Works, Ottawa, ON |Red F./Blow F [ ]mcr@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ |strong crypto [ ] At the far end of some dark fiber - wait that's dirt! |for everyone [ From owner-netdev@oss.sgi.com Mon Jul 29 08:39:16 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TFdGRw015719 for ; Mon, 29 Jul 2002 08:39:16 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TFdG40015718 for netdev-outgoing; Mon, 29 Jul 2002 08:39:16 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from tux.rsn.bth.se (postfix@tux.rsn.bth.se [194.47.143.135]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TFd5Rw015706 for ; Mon, 29 Jul 2002 08:39:06 -0700 Received: by tux.rsn.bth.se (Postfix, from userid 501) id BE88B3700E; Mon, 29 Jul 2002 17:40:18 +0200 (CEST) Subject: Re: TODO list before feature freeze From: Martin Josefsson To: Andi Kleen Cc: jamal , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org, Patrick Schaaf In-Reply-To: <20020729135615.A20412@wotan.suse.de> References: <20020729131239.A5183@wotan.suse.de> <20020729135615.A20412@wotan.suse.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.7 Date: 29 Jul 2002 17:40:18 +0200 Message-Id: <1027957218.12610.71.camel@tux> Mime-Version: 1.0 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, 2002-07-29 at 13:56, Andi Kleen wrote: > here is a patch for 2.4 that just makes it use get_free_pages to test the > TLB theory. Another obvious improvement would be to not use list_heads > for the hash table buckets - a single pointer would likely suffice and > it would cut the hash table in half, saving cache, TLB and memory. I think the list_heads are used for only one thing currently, for the early eviction in case of overload, then it scans backwards in the chains to find unreplied connections to evict, or so the comment in early_drop() says: /* Traverse backwards: gives us oldest, which is roughly LRU */ but then it uses the normal LIST_FIND macro which I think traverses the list in the normal forward direction. I havn't looked into the rest of the code but I can't seem to remember anything that needs list_heads. I think Patrick Schaaf is looking into conntrack as we speak. Maybe he has any ideas? I know I've had plans on rewriting the locking in conntrack which is quite frankly horrible, one giant rwlock used for almost everything (including the hashtable). One idea that has come to mind is using RCU (need to learn more about it) or maybe use one rwlock per N buckets or something. Looking at some stats from one of my routers I see that an average connection is over 130 packets long so the ratio between reads and writes is quite good. And this eviction which occurs at overload needs to be redone, we can't go around dropping one unreplied connection at a time, we need gang-eviction of unreplied connections. We've had some nasty DDoS's here in which our routers have been spending all cputime in conntrack trying to evict connections to make room for the SYN floods coming in at >130kpps. -- /Martin Never argue with an idiot. They drag you down to their level, then beat you with experience. From owner-netdev@oss.sgi.com Mon Jul 29 08:43:15 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TFhFRw015989 for ; Mon, 29 Jul 2002 08:43:15 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TFhFQf015988 for netdev-outgoing; Mon, 29 Jul 2002 08:43:15 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TFh5Rw015955 for ; Mon, 29 Jul 2002 08:43:06 -0700 Received: (qmail 764 invoked by uid 500); 29 Jul 2002 15:52:26 -0000 Date: Mon, 29 Jul 2002 17:52:26 +0200 From: Patrick Schaaf To: Michael Richardson Cc: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729175226.B570@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> <200207291525.g6TFPTTu011558@marajade.sandelman.ottawa.on.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200207291525.g6TFPTTu011558@marajade.sandelman.ottawa.on.ca>; from mcr@sandelman.ottawa.on.ca on Mon, Jul 29, 2002 at 11:25:28AM -0400 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > >>>>> "Andi" == Andi Kleen writes: > Andi> (case in point: we have at least one report that routing > Andi> performance breaks down with ip_conntrack when memory size is > Andi> increased over 1GB on P3s. The hash table size depends on the > Andi> memory size. The problem does not occur on P4s. P4s have larger > Andi> TLBs than P3s.) > > That's a non-obvious result. > > I'll bet that most of the memory-size based hash tables in the kernel > suffer from similar problems. A good topic for a paper, I'd say. That's for sure - but I don't see the relevance of TLBs. The only place where I expect any in-CPU caches to matter, is for synthetic test cases where there's a very small number of conntracks (fitting into CPU caches), and a huge load of packets (to look good in a benchmark). Under real life operation, we either have very light loads - then conntrack lookup does not matter at all - or we have high load, several 10000 packets per second. Then, things may get slow in conntrack when you don't have enough hash buckets - two times the number of concurrent connections is appropriate. Or, if that's not the problem, you will already spread lookup so far across the hash table, in a random fashion, that you'll incurr at least two TLB faults plus several cache line loads for each packet. When that point is reached, further increase in packet load should not make things worse. Andi, what report are you referring to? Any specifics I can read? In case somebody isn't aware, we have been over the hash function and hash bucket thing during the last month. See lots of mails in the netfilter-devel archive. I'm prepared to take on any presumed inefficiency in the current conntracking code. I know some things that may be relevant that I did not write about during the last weeks, but I have no real life indication that they matter - I'd love to have the opportunity to see such a situation. So if anybody got the time to work on such a perceived performance problem, please come to the netfilter-devel mailing lest, and let's talk specifics. As it were, I published a small netfilter performance counter patch over the weekend, which you can find in the archive at http://lists.netfilter.org/pipermail/netfilter-devel/2002-July/008792.html I hope to see some really worrying output from you :) best regards Patrick - From owner-netdev@oss.sgi.com Mon Jul 29 09:05:54 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TG5sRw016282 for ; Mon, 29 Jul 2002 09:05:54 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TG5slh016281 for netdev-outgoing; Mon, 29 Jul 2002 09:05:54 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TG5eRw016266 for ; Mon, 29 Jul 2002 09:05:42 -0700 Received: (qmail 793 invoked by uid 500); 29 Jul 2002 16:15:01 -0000 Date: Mon, 29 Jul 2002 18:15:01 +0200 From: Patrick Schaaf To: Martin Josefsson Cc: Andi Kleen , jamal , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org, Patrick Schaaf Subject: Re: TODO list before feature freeze Message-ID: <20020729181501.C570@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> <20020729135615.A20412@wotan.suse.de> <1027957218.12610.71.camel@tux> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1027957218.12610.71.camel@tux>; from gandalf@wlug.westbo.se on Mon, Jul 29, 2002 at 05:40:18PM +0200 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk (warning: crystal ball engaged to parse from the quoted mail snippets. Maybe missing context. I'm just reading netfilter-devel) > On Mon, 2002-07-29 at 13:56, Andi Kleen wrote: > > > here is a patch for 2.4 that just makes it use get_free_pages to test the > > TLB theory. I presume this is about the vmalloc()ed hash bucket table? If yes, it's certainly an interesting experiment to try making it allocated from an area without TLB issues. We can expect a TLB miss on every packet with the current setup, allocating the bucket table from large-TLB memory would be a clear win of one memory roundtrip. The netfilter hook statistics patch I mentioned in the other mail, should be able to show the difference. If my guess is right, you could see a 5-10% improvement on the ip_conntrack hook functions. > > Another obvious improvement would be to not use list_heads > > for the hash table buckets - a single pointer would likely suffice and > > it would cut the hash table in half, saving cache, TLB and memory. > > Martin Josefsson wrote: > I think the list_heads are used for only one thing currently, for the > early eviction in case of overload, Don't forget the nonscanning list_del(), called whenever a conntrack is unhashed at it's death. However, with a suitable bucket number, i.e. low chain lengths, the scan on conntrack removal would be OK. The early_drop() scanning, if it wants to work backward, may as well work forward, keeping a "last unreplied found" pointer, and returning that when falling off the single list end. Thus, I also think that the list could be simple. >From the top of my head, here are other fields that we could get rid off: - the ctrack backpointer in each tuple. - the protocol field in each tuple. - the 20 byte infos[] array in ip_conntrack. - we could out-of-line ip_nat_info. With the current layout, when lists must be walked on a 32-byte-cacheline box, we are sure to always read two cache lines for the skipped-over tuples. > I know I've had plans on rewriting the locking in conntrack which is > quite frankly horrible, one giant rwlock used for almost everything > (including the hashtable). I'd like to see lockmeter statistics before this change. When you split the one lock into a sectored lock: each conntrack is hashed twice, so you need to be careful with lock order when adding or removing. (well, there is another possibility, but I won't go into that now) > One idea that has come to mind is using RCU I don't see RCU solving hash link list update problems. Care to explain how that would work? > And this eviction which occurs at overload needs to be redone, we can't > go around dropping one unreplied connection at a time, we need > gang-eviction of unreplied connections. I propose to put them all on a seperate LRU list, and reap the oldest. best regards Patrick From owner-netdev@oss.sgi.com Mon Jul 29 09:17:45 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TGHjRw016595 for ; Mon, 29 Jul 2002 09:17:45 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TGHjDC016594 for netdev-outgoing; Mon, 29 Jul 2002 09:17:45 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TGHcRw016585 for ; Mon, 29 Jul 2002 09:17:39 -0700 Received: (qmail 852 invoked by uid 500); 29 Jul 2002 16:26:59 -0000 Date: Mon, 29 Jul 2002 18:26:59 +0200 From: Patrick Schaaf To: jamal Cc: Andi Kleen , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729182659.D570@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from hadi@cyberus.ca on Mon, Jul 29, 2002 at 07:23:49AM -0400 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Jamal, > They also have a lot of problems with their per-packet computations. > Robert and I spent a short time looking at "this thing that is making > us look bad" (perfomance wise) and talked to Harald. Do you have written up somewhere what kind of performance problems you were seeing, under which conditions (hash bucket count, number of tracked connections, packet load) > Something that looked like needs improvement at first glance was the aging > and hashing schemes. Regarding the hashing schemes, please see discussions on netfilter-devel over the last weeks: http://lists.netfilter.org/pipermail/netfilter-devel/2002-July/thread.html and a small presentation of various bucket sizes / hash functions for some real world scenarios: http://bei.bof.de/ex6/ This presentation, a bit terse on comments, links to a tarball which allows you to recreate the same presentation for any dump of /proc/net/ip_conntrack, varying bucket counts and hash functions. best regards Patrick From owner-netdev@oss.sgi.com Mon Jul 29 09:30:17 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TGUHRw016861 for ; Mon, 29 Jul 2002 09:30:17 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TGUG2b016860 for netdev-outgoing; Mon, 29 Jul 2002 09:30:16 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from Cantor.suse.de (ns.suse.de [213.95.15.193]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TGU5Rw016843 for ; Mon, 29 Jul 2002 09:30:06 -0700 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id AA35014896; Mon, 29 Jul 2002 18:31:22 +0200 (MEST) Date: Mon, 29 Jul 2002 18:31:16 +0200 From: Andi Kleen To: Patrick Schaaf Cc: jamal , Andi Kleen , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729183116.B27940@wotan.suse.de> References: <20020729131239.A5183@wotan.suse.de> <20020729182659.D570@oknodo.bof.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020729182659.D570@oknodo.bof.de> User-Agent: Mutt/1.3.22.1i X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > Regarding the hashing schemes, please see discussions on netfilter-devel > over the last weeks: > > http://lists.netfilter.org/pipermail/netfilter-devel/2002-July/thread.html > > and a small presentation of various bucket sizes / hash functions > for some real world scenarios: http://bei.bof.de/ex6/ > This presentation, a bit terse on comments, links to a tarball > which allows you to recreate the same presentation for any > dump of /proc/net/ip_conntrack, varying bucket counts and > hash functions. Have you done any profiling of real workloads to see where the actual overhead comes from? -Andi From owner-netdev@oss.sgi.com Mon Jul 29 09:33:24 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TGXNRw016980 for ; Mon, 29 Jul 2002 09:33:23 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TGXNBm016979 for netdev-outgoing; Mon, 29 Jul 2002 09:33:23 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TGXIRw016970 for ; Mon, 29 Jul 2002 09:33:19 -0700 Received: (qmail 898 invoked by uid 500); 29 Jul 2002 16:42:39 -0000 Date: Mon, 29 Jul 2002 18:42:39 +0200 From: Patrick Schaaf To: Andi Kleen Cc: Patrick Schaaf , jamal , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729184239.E570@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> <20020729182659.D570@oknodo.bof.de> <20020729183116.B27940@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020729183116.B27940@wotan.suse.de>; from ak@suse.de on Mon, Jul 29, 2002 at 06:31:16PM +0200 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > Have you done any profiling of real workloads to see where the actual > overhead comes from? Not yet. I've spent the last weeks learning enough about the code to make sense of profiles :) This week (probably wednesday) I'll put both my netfilter hook statistic patch, and enabled kernel profiling, onto a production box (the transproxy thing from the bucket occupation analysis). Right now I have totally undersized bucket count on that machine (7168 buckets for 10 times the tuples), so I'll first measure the "accidental long list walk" situation, and then retry with a suitable bucket size. best regards Patrick From owner-netdev@oss.sgi.com Mon Jul 29 09:36:05 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TGa5Rw017118 for ; Mon, 29 Jul 2002 09:36:05 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TGa5Sw017117 for netdev-outgoing; Mon, 29 Jul 2002 09:36:05 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TGZwRw017108 for ; Mon, 29 Jul 2002 09:35:59 -0700 Received: (qmail 918 invoked by uid 500); 29 Jul 2002 16:45:20 -0000 Date: Mon, 29 Jul 2002 18:45:20 +0200 From: Patrick Schaaf To: Patrick Schaaf Cc: Andi Kleen , jamal , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729184520.F570@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> <20020729182659.D570@oknodo.bof.de> <20020729183116.B27940@wotan.suse.de> <20020729184239.E570@oknodo.bof.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020729184239.E570@oknodo.bof.de>; from bof@bof.de on Mon, Jul 29, 2002 at 06:42:39PM +0200 X-Spam-Status: No, hits=-3.5 required=5.0 tests=IN_REP_TO,FROM_AND_TO_SAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > This week (probably wednesday) I'll put both my netfilter hook statistic > patch, and enabled kernel profiling, onto a production box (the transproxy > thing from the bucket occupation analysis). Right now I have totally > undersized bucket count on that machine (7168 buckets for 10 times > the tuples), so I'll first measure the "accidental long list walk" > situation, and then retry with a suitable bucket size. Before somebody get the wrong idea: the machine I mentioned, serves as a squid proxy for over 3000 narrowband dialup users (all web traffic), and it has no performance problems at all with that. For all I know, any optimization we may make regarding netfilter, won't make the squids on that box work perceivably better. I have permanent average and median service time monitoring to prove or disprove this assertion :-) best regards Patrick From owner-netdev@oss.sgi.com Mon Jul 29 10:11:24 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6THBORw017557 for ; Mon, 29 Jul 2002 10:11:24 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6THBOGc017556 for netdev-outgoing; Mon, 29 Jul 2002 10:11:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from tux.rsn.bth.se (postfix@tux.rsn.bth.se [194.47.143.135]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6THBCRw017546 for ; Mon, 29 Jul 2002 10:11:13 -0700 Received: by tux.rsn.bth.se (Postfix, from userid 501) id 9F39A3700E; Mon, 29 Jul 2002 19:12:31 +0200 (CEST) Subject: Re: TODO list before feature freeze From: Martin Josefsson To: Patrick Schaaf Cc: Andi Kleen , jamal , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org In-Reply-To: <20020729181501.C570@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> <20020729135615.A20412@wotan.suse.de> <1027957218.12610.71.camel@tux> <20020729181501.C570@oknodo.bof.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.7 Date: 29 Jul 2002 19:12:31 +0200 Message-Id: <1027962751.12630.92.camel@tux> Mime-Version: 1.0 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, 2002-07-29 at 18:15, Patrick Schaaf wrote: > > Martin Josefsson wrote: > > I think the list_heads are used for only one thing currently, for the > > early eviction in case of overload, > > Don't forget the nonscanning list_del(), called whenever a conntrack > is unhashed at it's death. However, with a suitable bucket number, > i.e. low chain lengths, the scan on conntrack removal would be OK. Oh I forgot about that. > The early_drop() scanning, if it wants to work backward, may as well > work forward, keeping a "last unreplied found" pointer, and returning > that when falling off the single list end. > > Thus, I also think that the list could be simple. The comment says that we are scanning backwards but the code says we are scanning forward without keeping a "last unreplied found" pointer, we just return the first unreplied found. So going to a single linked list and adding that would probably be better than the current behaviour. > > I know I've had plans on rewriting the locking in conntrack which is > > quite frankly horrible, one giant rwlock used for almost everything > > (including the hashtable). > > I'd like to see lockmeter statistics before this change. When you split > the one lock into a sectored lock: each conntrack is hashed twice, so > you need to be careful with lock order when adding or removing. > (well, there is another possibility, but I won't go into that now) The main reason is that I'd like conntrack to hold up better under attacks. I'll see if I can produce some lockmeter statistics later this week. > > One idea that has come to mind is using RCU > > I don't see RCU solving hash link list update problems. Care to explain > how that would work? Have you seen the rtcache RCU patch? it almost halved the time spent doing the lookups because of no lock bouncing between cpu's. But RCU is best suited for things that can tolerate stale data on reads, something which we can not. I've spoken to Hana Linder who is one of the RCU people and she said that the dcache RCU patch uses some techniques to solve this as the dcache can't tolerate stale data either. I havn't investigated this yet but it got my attention. But the fact is that not many routers are SMP machines. Maybe it could help some very busy SMP servers? > > And this eviction which occurs at overload needs to be redone, we can't > > go around dropping one unreplied connection at a time, we need > > gang-eviction of unreplied connections. > > I propose to put them all on a seperate LRU list, and reap the oldest. I proposed this as well and then James Morris shot me down :) What about the case where someone tries to DoS a specific chain? -- /Martin Never argue with an idiot. They drag you down to their level, then beat you with experience. From owner-netdev@oss.sgi.com Mon Jul 29 10:34:29 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6THYSRw017806 for ; Mon, 29 Jul 2002 10:34:29 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6THYSsq017805 for netdev-outgoing; Mon, 29 Jul 2002 10:34:28 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from e31.co.us.ibm.com (e31.co.us.ibm.com [32.97.110.129]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6THYMRw017796 for ; Mon, 29 Jul 2002 10:34:22 -0700 Received: from westrelay03.boulder.ibm.com (westrelay03.boulder.ibm.com [9.17.194.24]) by e31.co.us.ibm.com (8.12.2/8.12.2) with ESMTP id g6THZbXW025210; Mon, 29 Jul 2002 13:35:37 -0400 Received: from smtp.linux.ibm.com (ltc-eth1000.torolab.ibm.com [9.26.4.197]) by westrelay03.boulder.ibm.com (8.12.3/NCO/VER6.3) with ESMTP id g6THZWcI051708; Mon, 29 Jul 2002 11:35:37 -0600 Received: from imap.linux.ibm.com (imap.linux.ibm.com [9.27.103.44]) by smtp.linux.ibm.com (Postfix) with ESMTP id F31753FE06; Mon, 29 Jul 2002 13:35:31 -0400 (EDT) Received: by imap.linux.ibm.com (Postfix, from userid 99) id 39AE623C00D; Mon, 29 Jul 2002 13:35:31 -0400 (EDT) Received: from 9.47.18.15 ( [9.47.18.15]) as user niv@imap.linux.ibm.com by imap.linux.ibm.com with HTTP; Mon, 29 Jul 2002 10:35:30 -0700 Message-ID: <1027964130.3d457ce2c40e9@imap.linux.ibm.com> Date: Mon, 29 Jul 2002 10:35:30 -0700 From: Nivedita Singhvi To: Martin Josefsson Cc: Patrick Schaaf , Andi Kleen , jamal , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze References: <20020729131239.A5183@wotan.suse.de> <20020729135615.A20412@wotan.suse.de> <1027957218.12610.71.camel@tux> <20020729181501.C570@oknodo.bof.de> <1027962751.12630.92.camel@tux> In-Reply-To: <1027962751.12630.92.camel@tux> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.0 X-Originating-IP: 9.47.18.15 X-Spam-Status: No, hits=-5.1 required=5.0 tests=IN_REP_TO,RATWARE version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Quoting Martin Josefsson : > > I don't see RCU solving hash link list update problems. Care to > > explain how that would work? > > Have you seen the rtcache RCU patch? it almost halved the time > spent doing the lookups because of no lock bouncing between cpu's. > But RCU is best suited for things that can tolerate stale data > on reads, something which we can not. I've spoken to Hana Linder > who is one of the RCU people and she said that the dcache RCU patch > uses some techniques to solve this as the dcache can't tolerate > stale data either. The other environment parameter that RCU does best in is that read:write ratio is high, in order to swallow the overhead. I havent looked into netfilter code, dont have much experience in that area to suggest what your normal traffic would consist of. However, I've seen some posts and data from Dipankar and Hanna which suggest the tradeoff is at a lower ratio than we were used to (I was in Sequent's ptx/TCP/IP team where we used it heavily, but our machines were NUMA boxes with a staggering 10:1 penalty for going off quad, back in the olden days). > I havn't investigated this yet but it got my attention. > > But the fact is that not many routers are SMP machines. > Maybe it could help some very busy SMP servers? Hope so :) thanks, Nivedita From owner-netdev@oss.sgi.com Mon Jul 29 13:50:48 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TKolRw027934 for ; Mon, 29 Jul 2002 13:50:48 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TKolWR027933 for netdev-outgoing; Mon, 29 Jul 2002 13:50:47 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from Cantor.suse.de (ns.suse.de [213.95.15.193]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TKoYRw027923 for ; Mon, 29 Jul 2002 13:50:35 -0700 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id 0FC0314AA0; Mon, 29 Jul 2002 22:51:53 +0200 (MEST) Date: Mon, 29 Jul 2002 22:51:47 +0200 From: Andi Kleen To: Michael Richardson Cc: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020729225147.A24288@wotan.suse.de> References: <20020729131239.A5183@wotan.suse.de> <200207291525.g6TFPTTu011558@marajade.sandelman.ottawa.on.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200207291525.g6TFPTTu011558@marajade.sandelman.ottawa.on.ca> User-Agent: Mutt/1.3.22.1i X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, Jul 29, 2002 at 11:25:28AM -0400, Michael Richardson wrote: > > >>>>> "Andi" == Andi Kleen writes: > Andi> (case in point: we have at least one report that routing > Andi> performance breaks down with ip_conntrack when memory size is > Andi> increased over 1GB on P3s. The hash table size depends on the > Andi> memory size. The problem does not occur on P4s. P4s have larger > Andi> TLBs than P3s.) > > That's a non-obvious result. > > I'll bet that most of the memory-size based hash tables in the kernel > suffer from similar problems. A good topic for a paper, I'd say. In fact there have been papers about this like http://www.citi.umich.edu/projects/linux-scalability/reports/hash.html but the results were unfortunately not adapted. This has been discussed for a long time. Linux hash tables suffer often from poor hash functions (some are good, but others are not so great), excessive sizing to cover the poor functions and using double pointer heads when not needed (=hash table twice as big). Excessive sizing wastes memory (several MB just for hash tables on a standard system including some gems like a incredible big mount hash table that near nobody needs to manage their 5-10 mounts) I wrote a slist.h that works like the linux list.h some time ago, but uses lists instead of rings with a single pointer head to at least avoid the last problem. In the following discussion the preference was for a more generic hash table ADT instead of another list abstraction. So if you wanted to put some work into this I would: - Develop some simple and tasteful and linux like (most of the existing ones in other software packages fail at least one of these) generic hash table abstraction. - Convert all the big hash tables to this generic code. - Let it use single pointer heads. - Make it implement the sizing based on memory size in common code with a single knob to tune it per system. In fact I think it should definitely take L2 cache size in account, not only main memory. - Add generic statistics as CONFIG option so that you can see hit rates for all your hash tables and how much space they need. - Make it either use the existing hash function per table or a generic good hash function like http://burtleburtle.net/bob/hash/evahash.html Try out all these knobs and write a paper about it. - Try to get it merged with the best results as default options Unfortunately netfilter hash is a bad example for this, because its DoS handling requirements (LRU etc.) are more complex than what most other linux hash tables need and I am not sure if it would make sense to put it into generic code. On the other hand if the generic code is flexible enough it would be possible to implement it on top of it. -Andi From owner-netdev@oss.sgi.com Mon Jul 29 15:42:48 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TMgmRw029229 for ; Mon, 29 Jul 2002 15:42:48 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TMgmo5029228 for netdev-outgoing; Mon, 29 Jul 2002 15:42:48 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from tux.rsn.bth.se (postfix@tux.rsn.bth.se [194.47.143.135]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TMgZRw029219 for ; Mon, 29 Jul 2002 15:42:36 -0700 Received: by tux.rsn.bth.se (Postfix, from userid 501) id 51A1D3700E; Tue, 30 Jul 2002 00:43:52 +0200 (CEST) Subject: Re: TODO list before feature freeze From: Martin Josefsson To: Andi Kleen Cc: jamal , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org In-Reply-To: <20020729135615.A20412@wotan.suse.de> References: <20020729131239.A5183@wotan.suse.de> <20020729135615.A20412@wotan.suse.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.7 Date: 30 Jul 2002 00:43:52 +0200 Message-Id: <1027982632.12630.119.camel@tux> Mime-Version: 1.0 X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, 2002-07-29 at 13:56, Andi Kleen wrote: > here is a patch for 2.4 that just makes it use get_free_pages to test the > TLB theory. Another obvious improvement would be to not use list_heads > for the hash table buckets - a single pointer would likely suffice and > it would cut the hash table in half, saving cache, TLB and memory. ip_nat_core is also allocating it's hashtable via vmalloc and it's twice as large as the one in ip_conntrack. (or rather, it's two hashtables allocated at once, maybe they should be split up into two allocations?) diff -x *.orig -x *.rej -urN linux-2.4.19-rc3.old/net/ipv4/netfilter/ip_nat_core.c linux-2.4.19-rc3/net/ipv4/netfilter/ip_nat_core.c --- linux-2.4.19-rc3.old/net/ipv4/netfilter/ip_nat_core.c Thu Jul 25 18:26:42 2002 +++ linux-2.4.19-rc3/net/ipv4/netfilter/ip_nat_core.c Tue Jul 30 00:14:12 2002 @@ -43,6 +43,8 @@ /* Calculated at init based on memory size */ static unsigned int ip_nat_htable_size; +static int ip_nat_vmalloc; + static struct list_head *bysource; static struct list_head *byipsproto; LIST_HEAD(protos); @@ -958,8 +960,16 @@ /* Leave them the same for the moment. */ ip_nat_htable_size = ip_conntrack_htable_size; - /* One vmalloc for both hash tables */ - bysource = vmalloc(sizeof(struct list_head) * ip_nat_htable_size*2); + /* One allocation for both hash tables */ + ip_nat_vmalloc = 0; + bysource = (void *)__get_free_pages(GFP_KERNEL, + get_order(sizeof(struct list_head) * + ip_nat_htable_size * 2)); + if (!bysource) { + ip_nat_vmalloc = 1; + printk("ip_nat: falling back to vmalloc. performance may be degraded.\n"); + bysource = vmalloc(sizeof(struct list_head) * ip_nat_htable_size * 2); + } if (!bysource) { return -ENOMEM; } @@ -999,5 +1009,10 @@ { ip_ct_selective_cleanup(&clean_nat, NULL); ip_conntrack_destroyed = NULL; - vfree(bysource); + + if (ip_nat_vmalloc) + vfree(bysource); + else + free_pages((unsigned long)bysource, + get_order(sizeof(struct list_head) * ip_nat_htable_size * 2)); } -- /Martin Never argue with an idiot. They drag you down to their level, then beat you with experience. From owner-netdev@oss.sgi.com Mon Jul 29 15:44:46 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6TMikRw029302 for ; Mon, 29 Jul 2002 15:44:46 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6TMikPs029301 for netdev-outgoing; Mon, 29 Jul 2002 15:44:46 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from lists.samba.org (samba.sourceforge.net [198.186.203.85]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6TMieRw029292 for ; Mon, 29 Jul 2002 15:44:40 -0700 Received: by lists.samba.org (Postfix, from userid 1080) id 91A3A4B7F; Mon, 29 Jul 2002 15:47:24 -0700 (PDT) From: Rusty Russell To: jamal Cc: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com Subject: Re: TODO list before feature freeze In-reply-to: Your message of "Mon, 29 Jul 2002 06:57:20 -0400." Date: Tue, 30 Jul 2002 08:14:09 +1000 Message-Id: <20020729224724.91A3A4B7F@lists.samba.org> X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk In message you writ e: > > Connection tracking: > > Fix perfomance problems with this thing. You may have seen reports of > performance degradation it introduces. I was hoping to take a look at some > point time hasnt been visiting this side. There are several simple things to do here. One is to improve the hashing (fine for internet traffic, but frequently sucks under LAN conditions), which is easy. The other is to modify the one-timer-per-connection approach to a "sweep once a second, or when full" approach. Both these are simple patches, but I want to see benchmarks showing that they improve things. > > iptables: > > o Change over to a netlink interface > > o Back to add/delete/replace interface + commit. > > o Rewrite libiptc to use netlink (to port iptables). > > I hope this resolves the current scheme where the whole > add/delete/replace interface + commit happens in user space? > If you use netlink it would make sense to do incremental updates to the > kernel. Yes, that's exactly the plan. It'd be more like the old-style insert/delete (probably not replace), except with a "commit" interface, implemented by copying the rules when they start modifying. Hope that helps, Rusty. -- Anyone who quotes me in their sig is an idiot. -- Rusty Russell. From owner-netdev@oss.sgi.com Tue Jul 30 00:17:08 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6U7H8Rw002093 for ; Tue, 30 Jul 2002 00:17:08 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6U7H8P8002092 for netdev-outgoing; Tue, 30 Jul 2002 00:17:08 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6U7H0Rw002083 for ; Tue, 30 Jul 2002 00:17:01 -0700 Received: (qmail 289 invoked by uid 500); 30 Jul 2002 07:26:24 -0000 Date: Tue, 30 Jul 2002 09:26:24 +0200 From: Patrick Schaaf To: Andi Kleen Cc: netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020730092624.A263@oknodo.bof.de> References: <20020729131239.A5183@wotan.suse.de> <200207291525.g6TFPTTu011558@marajade.sandelman.ottawa.on.ca> <20020729225147.A24288@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020729225147.A24288@wotan.suse.de>; from ak@suse.de on Mon, Jul 29, 2002 at 10:51:47PM +0200 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > Unfortunately netfilter hash is a bad example for this, because its > DoS handling requirements (LRU etc.) are more complex than what most other > linux hash tables need and I am not sure if it would make sense to > put it into generic code. There is actually one issue with the current netfilter hash code: The code intentionally does not 0 out the next pointer when a conntrack is removed from the hashes; only new, never-yet-hashed conntracks have their next field be 0, and the confirm logic relies on that. Could be easily changed to use an appropriate flag bit in struct ip_conntrack. As a consequence, the single linked list I'm prototyping must be a ring list, with the hash bucket pointer within the list - same scheme as with the doubly linked list. It's oopsing on me as I type :) A non-ring implementation would be smaller, so I think we really want that flag bit for the confirmations. Rusty? All other cases could be handled by a general hash implementation with per-list-entry user supplied comparison callback, and a per-table hash function. I'm sure that any real DoS handling will work by varying constants used in the hash function. That's the result of the recent "abcd" hashing work. The thing that worries me, even with the current setup, is the idea of a general boottime sizing of all such general hash tables. The things are hard to override once loaded, so sizes must fit what's needed in the real world, and that's over a _mix_ of various tables that all play together under this or that workload. Maybe runtime rehashing is the way to go here, to make this fully adaptive. best regards Patrick From owner-netdev@oss.sgi.com Tue Jul 30 03:46:54 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UAksRw004368 for ; Tue, 30 Jul 2002 03:46:54 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UAks5l004367 for netdev-outgoing; Tue, 30 Jul 2002 03:46:54 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UAkoRw004358 for ; Tue, 30 Jul 2002 03:46:51 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id E61A244D6; Tue, 30 Jul 2002 12:48:15 +0200 (CEST) Date: Tue, 30 Jul 2002 12:48:15 +0200 From: bert hubert To: netdev@oss.sgi.com Subject: 2.4.18 userspace seeing UDP packets with bad checksum? Message-ID: <20020730104815.GA22307@outpost.ds9a.nl> Mail-Followup-To: bert hubert , netdev@oss.sgi.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-0.1 required=5.0 tests=SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk I'm under the strong impression that 2.4.18 lets userspace see packets with incorrect UDP checksums. The packet attached arrived in userspace after travelling all the way from Taiwan. Is this policy? Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Tue Jul 30 03:47:24 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UAlORw004424 for ; Tue, 30 Jul 2002 03:47:24 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UAlO6T004423 for netdev-outgoing; Tue, 30 Jul 2002 03:47:24 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UAlKRw004413 for ; Tue, 30 Jul 2002 03:47:20 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id D26D644D6; Tue, 30 Jul 2002 12:48:45 +0200 (CEST) Date: Tue, 30 Jul 2002 12:48:45 +0200 From: bert hubert To: netdev@oss.sgi.com Subject: and the packet, sorry Message-ID: <20020730104845.GB22307@outpost.ds9a.nl> Mail-Followup-To: bert hubert , netdev@oss.sgi.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="liOOAslEiF7prFVr" Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk --liOOAslEiF7prFVr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline The packet mentioned in the last message. -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO --liOOAslEiF7prFVr Content-Type: application/octet-stream Content-Disposition: attachment; filename=packet Content-Transfer-Encoding: base64 1MOyoQIABAAAAAAAAAAAANwFAAABAAAAax5GPU61BwB7AAAAewAAAADgGCGxGgDQt4L2RAgA RQAAbciCAABwEaWEPd4fzdX0qNnzmQA1AFmR+wAxKAAAAQACAAAAAAVBbXRzNQRzb20CdHcA AAYAAQpyZW5lZS1jaGVuBUFtdGVrA2NvbQJ0dwAABQD+AAAAAAAAwB4AAQABAAAAAAAEwKgC oQ== --liOOAslEiF7prFVr-- From owner-netdev@oss.sgi.com Tue Jul 30 05:03:53 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UC3rRw006275 for ; Tue, 30 Jul 2002 05:03:53 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UC3rgn006274 for netdev-outgoing; Tue, 30 Jul 2002 05:03:53 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UC3kRw006265 for ; Tue, 30 Jul 2002 05:03:47 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id IAA10441; Tue, 30 Jul 2002 08:05:10 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6UBwhg16912; Tue, 30 Jul 2002 07:58:43 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Tue, 30 Jul 2002 07:58:42 -0400 (EDT) From: jamal To: Patrick Schaaf cc: Andi Kleen , Rusty Russell , , , Subject: Re: TODO list before feature freeze In-Reply-To: <20020729182659.D570@oknodo.bof.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Mon, 29 Jul 2002, Patrick Schaaf wrote: > Jamal, > > > They also have a lot of problems with their per-packet computations. > > Robert and I spent a short time looking at "this thing that is making > > us look bad" (perfomance wise) and talked to Harald. > > Do you have written up somewhere what kind of performance problems you were > seeing, under which conditions (hash bucket count, number of tracked > connections, packet load) > Just standard setup in forwarding. Infact you only need one or two flows active to verify this -- which leads me to believe hashing may play a smaller role in the whole problem. What i have seen and reported by many people (someone seems to have gone one step further and documented numbers, but cant find his email right now). Take Linux as a router, it routes at x% of wire rate. Load conntracking and watch it go down another 25% at least. > > Something that looked like needs improvement at first glance was the aging > > and hashing schemes. > > Regarding the hashing schemes, please see discussions on netfilter-devel > over the last weeks: > I think hashing is one of the problems. What performance improvemet are you seeing? (couldnt tell from looking at your data) cheers, jamal From owner-netdev@oss.sgi.com Tue Jul 30 05:09:46 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UC9kRw006536 for ; Tue, 30 Jul 2002 05:09:46 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UC9kui006535 for netdev-outgoing; Tue, 30 Jul 2002 05:09:46 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UC9eRw006526 for ; Tue, 30 Jul 2002 05:09:40 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id IAA12508; Tue, 30 Jul 2002 08:11:06 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6UC4gk16964; Tue, 30 Jul 2002 08:04:42 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Tue, 30 Jul 2002 08:04:42 -0400 (EDT) From: jamal To: Rusty Russell cc: , Subject: Re: TODO list before feature freeze In-Reply-To: <20020729224724.91A3A4B7F@lists.samba.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002, Rusty Russell wrote: > In message you writ > e: > > > Connection tracking: > > > > Fix perfomance problems with this thing. You may have seen reports of > > performance degradation it introduces. I was hoping to take a look at some > > point time hasnt been visiting this side. > > There are several simple things to do here. One is to improve the > hashing (fine for internet traffic, but frequently sucks under LAN > conditions), which is easy. The other is to modify the > one-timer-per-connection approach to a "sweep once a second, or when > full" approach. > Thats the right direction. From code inspection, fixing the later problem would give you a lot more punch. > Both these are simple patches, but I want to see benchmarks showing > that they improve things. > Indeed. > Yes, that's exactly the plan. It'd be more like the old-style > insert/delete (probably not replace), except with a "commit" > interface, implemented by copying the rules when they start modifying. > Why not take a look at the way tc does things and emulate that? cheers, jamal From owner-netdev@oss.sgi.com Tue Jul 30 05:18:42 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UCIgRw006751 for ; Tue, 30 Jul 2002 05:18:42 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UCIgpX006750 for netdev-outgoing; Tue, 30 Jul 2002 05:18:42 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UCIXRw006740 for ; Tue, 30 Jul 2002 05:18:34 -0700 Received: (qmail 517 invoked by uid 500); 30 Jul 2002 12:27:58 -0000 Date: Tue, 30 Jul 2002 14:27:58 +0200 From: Patrick Schaaf To: jamal Cc: Patrick Schaaf , Andi Kleen , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020730142758.A492@oknodo.bof.de> References: <20020729182659.D570@oknodo.bof.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from hadi@cyberus.ca on Tue, Jul 30, 2002 at 07:58:42AM -0400 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > What i have seen and reported by many people (someone seems to have gone > one step further and documented numbers, but cant find his email right > now). Take Linux as a router, it routes at x% of wire rate. Load > conntracking and watch it go down another 25% at least. Unfortunately, this is insufficient information to pin down what was happening. As Andi Kleen mentioned, a simple kernel profile from such a test would be a good start. Most likely things leading to such a result, in no specific suborder: - skb linearization - always-defragment - ip_conntrack_lock contention - per-packet timer management I'm not personally interested in line rate routing, but I look forward to further results from such setups. I concentrate on real server work- loads, because that's where my job is. > I think hashing is one of the problems. What performance improvemet are > you seeing? (couldnt tell from looking at your data) We found that the autosizing tends to make the bucket count a multiple of two, and we found the currently used hash function does not like that, resulting in longer average bucket list lengths than neccessary. The crc32 hashes, and suitable modified abcd hashes, don't suffer from this deficiency, and they are almost identical to random (a pseudohash I used to depict the optimum). However, the "badness" of the current hash, given my datasets, results in less than one additional list element, on average. So we could save one memory roundtrip. Given that with my netfilter hook statistics patch, I see >3000 cycles (1Ghz processor) spent in ip_conntrack_in - about 10 memory round-trips - I don't think that you could measure the hash function improvement, except for artificial test cases. We can improve here, but not much. Changing the hash function is mostly interesting to make hash bucket length attacks more unlikely. The abcd hash family, with boottime chosen multipliers, could be of use here. best regards Patrick From owner-netdev@oss.sgi.com Tue Jul 30 05:21:06 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UCL6Rw006902 for ; Tue, 30 Jul 2002 05:21:06 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UCL6ZY006901 for netdev-outgoing; Tue, 30 Jul 2002 05:21:06 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UCL2Rw006892 for ; Tue, 30 Jul 2002 05:21:03 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id IAA16951; Tue, 30 Jul 2002 08:22:28 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6UCG4f17040; Tue, 30 Jul 2002 08:16:04 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Tue, 30 Jul 2002 08:16:04 -0400 (EDT) From: jamal To: bert hubert cc: Subject: Re: and the packet, sorry In-Reply-To: <20020730104845.GB22307@outpost.ds9a.nl> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Bad NIC? happens on other kernels? tcpdump lying? (not that hasnt been known to do that before) verify by looking at output of netstat -s and look at udp "packet receive errors" see if they are going up. cheers, jamal From owner-netdev@oss.sgi.com Tue Jul 30 05:34:59 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UCYxRw007137 for ; Tue, 30 Jul 2002 05:34:59 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UCYxLD007136 for netdev-outgoing; Tue, 30 Jul 2002 05:34:59 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UCYnRw007127 for ; Tue, 30 Jul 2002 05:34:49 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id IAA22512; Tue, 30 Jul 2002 08:36:14 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6UCTod17144; Tue, 30 Jul 2002 08:29:50 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Tue, 30 Jul 2002 08:29:49 -0400 (EDT) From: jamal To: Patrick Schaaf cc: Andi Kleen , Rusty Russell , , , Subject: Re: TODO list before feature freeze In-Reply-To: <20020730142758.A492@oknodo.bof.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002, Patrick Schaaf wrote: > > What i have seen and reported by many people (someone seems to have gone > > one step further and documented numbers, but cant find his email right > > now). Take Linux as a router, it routes at x% of wire rate. Load > > conntracking and watch it go down another 25% at least. > > Unfortunately, this is insufficient information to pin down what was > happening. As Andi Kleen mentioned, a simple kernel profile from such > a test would be a good start. > Dont have time -- if i did youd probably see a patch from me. I gave you the testcase, you go do it. Infact you dont even need to be forwarding to reproduce this. Marc Boucher has a small udp traffic generator; you can use that on the lo device and reproduce this. > Most likely things leading to such a result, in no specific suborder: > > - skb linearization > - always-defragment > - ip_conntrack_lock contention > - per-packet timer management > > I'm not personally interested in line rate routing, but I look forward > to further results from such setups. I concentrate on real server work- > loads, because that's where my job is. > Has nothing to do with forwarding (Marcs tool is a client-server setup) You only need one or two flows. I am almost certain that if you solve that simple case, you end up solving the larger problem. > > I think hashing is one of the problems. What performance improvemet are > > you seeing? (couldnt tell from looking at your data) > > We found that the autosizing tends to make the bucket count a multiple > of two, and we found the currently used hash function does not like > that, resulting in longer average bucket list lengths than neccessary. > The crc32 hashes, and suitable modified abcd hashes, don't suffer from > this deficiency, and they are almost identical to random (a pseudohash > I used to depict the optimum). > > However, the "badness" of the current hash, given my datasets, results > in less than one additional list element, on average. So we could save > one memory roundtrip. Given that with my netfilter hook statistics patch, > I see >3000 cycles (1Ghz processor) spent in ip_conntrack_in - about > 10 memory round-trips - I don't think that you could measure the hash > function improvement, except for artificial test cases. > > We can improve here, but not much. Changing the hash function is mostly > interesting to make hash bucket length attacks more unlikely. The abcd > hash family, with boottime chosen multipliers, could be of use here. > I think this is a good start, but insufficient; in general i think you are looking at the wrong thing. Hashing is an issue, no doubt but i dont think it is the main issue. Did you start chasing hashing because you saw some large numbers in profiles? If i was to use instinct i would say the last two items you list are probably the things you may want to chase. cheers, jamal From owner-netdev@oss.sgi.com Tue Jul 30 05:39:30 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UCdURw007372 for ; Tue, 30 Jul 2002 05:39:30 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UCdUqN007371 for netdev-outgoing; Tue, 30 Jul 2002 05:39:30 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UCdQRw007362 for ; Tue, 30 Jul 2002 05:39:27 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id QAA03021; Tue, 30 Jul 2002 16:40:38 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207301240.QAA03021@sex.inr.ac.ru> Subject: Re: 2.4.18 userspace seeing UDP packets with bad checksum? To: ahu@ds9a.NL (bert hubert) Date: Tue, 30 Jul 2002 16:40:38 +0400 (MSD) Cc: netdev@oss.sgi.com In-Reply-To: <20020730104815.GA22307@outpost.ds9a.nl> from "bert hubert" at Jul 30, 2 03:15:01 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.9 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > I'm under the strong impression that 2.4.18 lets userspace see packets with > incorrect UDP checksums. How did you get this impression? > Is this policy? This is impossible unless requested explicitly with SO_NO_CHECK or a buggy hardware incorrectly reports checksum is valid. Alexey From owner-netdev@oss.sgi.com Tue Jul 30 05:56:33 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UCuXRw007681 for ; Tue, 30 Jul 2002 05:56:33 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UCuXZH007680 for netdev-outgoing; Tue, 30 Jul 2002 05:56:33 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from Cantor.suse.de (ns.suse.de [213.95.15.193]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UCuSRw007671 for ; Tue, 30 Jul 2002 05:56:29 -0700 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id 55E5A1455D; Tue, 30 Jul 2002 14:57:50 +0200 (MEST) Date: Tue, 30 Jul 2002 14:57:48 +0200 From: Andi Kleen To: bert hubert Cc: netdev@oss.sgi.com Subject: Re: 2.4.18 userspace seeing UDP packets with bad checksum? Message-ID: <20020730145748.A11789@wotan.suse.de> References: <20020730104815.GA22307@outpost.ds9a.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020730104815.GA22307@outpost.ds9a.nl> User-Agent: Mutt/1.3.22.1i X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, Jul 30, 2002 at 12:48:15PM +0200, bert hubert wrote: > I'm under the strong impression that 2.4.18 lets userspace see packets with > incorrect UDP checksums. The packet attached arrived in userspace after > travelling all the way from Taiwan. > > Is this policy? Yes. The checksum is checked while doing the copy to user space. When the checksum fails you still have the already done copy, the kernel does not try to undo it. -Andi From owner-netdev@oss.sgi.com Tue Jul 30 05:57:20 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UCvKRw007813 for ; Tue, 30 Jul 2002 05:57:20 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UCvK80007812 for netdev-outgoing; Tue, 30 Jul 2002 05:57:20 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from oknodo.bof.de (bof.de [195.4.223.10]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UCvERw007802 for ; Tue, 30 Jul 2002 05:57:15 -0700 Received: (qmail 557 invoked by uid 500); 30 Jul 2002 13:06:39 -0000 Date: Tue, 30 Jul 2002 15:06:39 +0200 From: Patrick Schaaf To: jamal Cc: Patrick Schaaf , Andi Kleen , Rusty Russell , netfilter-devel@lists.netfilter.org, netdev@oss.sgi.com, netfilter-core@lists.netfilter.org Subject: Re: TODO list before feature freeze Message-ID: <20020730150639.B492@oknodo.bof.de> References: <20020730142758.A492@oknodo.bof.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from hadi@cyberus.ca on Tue, Jul 30, 2002 at 08:29:49AM -0400 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk > Hashing is an issue, no doubt but i dont think it is the main issue. I fully agree. I mention this all the time. > Did you start chasing hashing because you saw some large numbers > in profiles? No. I looked at the hash function and bucket sizes, because I now have machines in the field running conntrack, and I wanted to understand how I should chose an appropriate size. So I took real world conntrack snapshots on those machines, and analysed. I learned all there is to learn about the question, and present the results for others to use like they see fit. End of story. Again, I have no performance trouble with conntracking on any of my production systems. best regards Patrick -- everything is under control. (Hardware) From owner-netdev@oss.sgi.com Tue Jul 30 06:07:20 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UD7KRw008263 for ; Tue, 30 Jul 2002 06:07:20 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UD7JQL008262 for netdev-outgoing; Tue, 30 Jul 2002 06:07:19 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from tux.rsn.bth.se (postfix@tux.rsn.bth.se [194.47.143.135]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UD74Rw008219 for ; Tue, 30 Jul 2002 06:07:09 -0700 Received: by tux.rsn.bth.se (Postfix, from userid 501) id C891636FCC; Tue, 30 Jul 2002 15:08:24 +0200 (CEST) Subject: Re: TODO list before feature freeze From: Martin Josefsson To: jamal Cc: Patrick Schaaf , Andi Kleen , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.7 Date: 30 Jul 2002 15:08:24 +0200 Message-Id: <1028034504.12617.135.camel@tux> Mime-Version: 1.0 X-Spam-Status: No, hits=-9.4 required=5.0 tests=IN_REP_TO,UNIFIED_PATCH version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 2002-07-30 at 14:29, jamal wrote: > On Tue, 30 Jul 2002, Patrick Schaaf wrote: > > Most likely things leading to such a result, in no specific suborder: > > > > - skb linearization > > - always-defragment > > - ip_conntrack_lock contention > > - per-packet timer management > If i was to use instinct i would say > the last two items you list are probably the things you may want to chase. Here's two small patches. The first is a small patch to avoid updating the per-connection timer for every packet. With this patch you get one update per second per connection. Things are complicated by the fact that connections can change timeouts. This patch isn't verified for correctness, YMMV. (the pptp helper needs updating to work in combination with this patch) The second patch changes the hashtable lookup slightly so we don't hash the tuple each iteration, once is enough. I don't have any numbers for these patches and I can't find the url to the tests one of the netfilter-devel people has done. diff -x *.orig -urN linux.orig/net/ipv4/netfilter/ip_conntrack_core.c linux/net/ipv4/netfilter/ip_conntrack_core.c --- linux.orig/net/ipv4/netfilter/ip_conntrack_core.c Tue Jul 30 14:38:41 2002 +++ linux/net/ipv4/netfilter/ip_conntrack_core.c Tue Jul 30 14:40:06 2002 @@ -855,8 +855,10 @@ if (!is_confirmed(ct)) ct->timeout.expires = extra_jiffies; else { - /* Need del_timer for race avoidance (may already be dying). */ - if (del_timer(&ct->timeout)) { + /* Don't update timer for each packet, only if it's been >HZ + * ticks since last update or change is negative. + * Need del_timer for race avoidance (may already be dying). */ + if ((unsigned long)(jiffies + extra_jiffies - ct->timeout.expires) >= HZ && del_timer(&ct->timeout)) { ct->timeout.expires = jiffies + extra_jiffies; add_timer(&ct->timeout); } --- linux-2.4.19-pre10/net/ipv4/netfilter/ip_conntrack_core.c.orig Sat Jun 8 00:48:59 2002 +++ linux-2.4.19-pre10/net/ipv4/netfilter/ip_conntrack_core.c Sat Jun 8 00:49:56 2002 @@ -292,9 +292,10 @@ const struct ip_conntrack *ignored_conntrack) { struct ip_conntrack_tuple_hash *h; + size_t hash = hash_conntrack(tuple); MUST_BE_READ_LOCKED(&ip_conntrack_lock); - h = LIST_FIND(&ip_conntrack_hash[hash_conntrack(tuple)], + h = LIST_FIND(&ip_conntrack_hash[hash], conntrack_tuple_cmp, struct ip_conntrack_tuple_hash *, tuple, ignored_conntrack); -- /Martin Never argue with an idiot. They drag you down to their level, then beat you with experience. From owner-netdev@oss.sgi.com Tue Jul 30 06:13:14 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UDDERw008459 for ; Tue, 30 Jul 2002 06:13:14 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UDDEc6008458 for netdev-outgoing; Tue, 30 Jul 2002 06:13:14 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UDCxRw008441 for ; Tue, 30 Jul 2002 06:12:59 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 1D80444D6; Tue, 30 Jul 2002 15:14:25 +0200 (CEST) Date: Tue, 30 Jul 2002 15:14:25 +0200 From: bert hubert To: kuznet@ms2.inr.ac.ru Cc: netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com, becker@scyld.com Subject: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? Message-ID: <20020730131424.GA25238@outpost.ds9a.nl> Mail-Followup-To: bert hubert , kuznet@ms2.inr.ac.ru, netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com, becker@scyld.com References: <20020730104815.GA22307@outpost.ds9a.nl> <200207301240.QAA03021@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200207301240.QAA03021@sex.inr.ac.ru> User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, Jul 30, 2002 at 04:40:38PM +0400, kuznet@ms2.inr.ac.ru wrote: > Hello! > > > I'm under the strong impression that 2.4.18 lets userspace see packets with > > incorrect UDP checksums. > > How did you get this impression? The hardware: 3c59x: Donald Becker and others. www.scyld.com/network/vortex.html 01:02.0: 3Com PCI 3c905C Tornado at 0xd800. Vers LK1.1.16 01:02.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 78) The packet is subtly corrupted and contains an invalid DNS label which our nameserver tripped over (oops). It looks like a single byte error. PowerDNS lives inside a wrapper, once every second the wrapper calls wait(), to see if the child is well: Jul 30 07:04:44 knife pdns-powerdns[2983]: Our pdns instance (6595) exited after signal 11 These are the relevant packets, grouped by question/answer. 07:04:42.902162 200.171.175.165.14760 > 213.244.168.217.53: [udp sum ok] 4170 CNAME? ifm.com.br. [|domain] (ttl 112, id 41767, len 56) 07:04:42.902198 213.244.168.217.53 > 200.171.175.165.14760: [udp sum ok] 4170*- q: CNAME? ifm.com.br. 0/0/0 (28) (DF) (ttl 64, id 0, len 56) == 07:04:43.147215 202.239.113.18.56146 > 213.244.168.217.53: [udp sum ok] 32295 A? failte.powernap.org. [|domain] (ttl 241, id 11501, len 65) 07:04:43.149494 213.244.168.217.53 > 202.239.113.18.56146: [udp sum ok] 32295*- q: A? failte.powernap.org. 1/0/0 failte.powernap.org. A 213.106.2.65 (53) (DF) (ttl 64, id 0, len 81) == This is the packet I mean. Note that no answers are sent out after this one: 07:04:43.505166 61.222.31.205.62361 > 213.244.168.217.53: [bad udp cksum 25f1!] 49 op5 [2a][|domain] (ttl 112, id 51330, len 109) == 07:04:43.698853 194.25.2.147.34441 > 213.244.168.217.53: [udp sum ok] 53889 [1au] AAAA? DNS-EU1.POWERDNS.NET. . OPT UDPsize=4096 (49) (DF) (ttl 248, id 23358, len 77) == 07:04:43.699074 194.25.2.147.34441 > 213.244.168.217.53: [udp sum ok] 32420 [1au] A6 ? DNS-EU1.POWERDNS.NET. . OPT UDPsize=4096 (49) (DF) (ttl 248, id 23359, len 77) == Until a few seconds later when the parent respawns a new PowerDNS. > > Is this policy? > > This is impossible unless requested explicitly with SO_NO_CHECK > or a buggy hardware incorrectly reports checksum is valid. We don't supply SO_NO_CHECK. As the driver source mentions hardware checksumming I've cc'd in Andrew, Donald & Jeff. Regarding Andi's message, isn't it so that recvfrom() may return but in that case returns -1 and sets errno to EAGAIN? I've seen that when trying to reproduce this bug by using tcpreplay. Anything I can do to help, let me know. I get in the order of 20 of these corrupted packets each night from our Taiwanese friends at Hinet, and only at night. Netstat -s output after 81 days: Udp: 112974784 packets received 10386 packets to unknown port received. 3840 packet receive errors 112889199 packets sent Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Tue Jul 30 06:30:33 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UDUXRw008822 for ; Tue, 30 Jul 2002 06:30:33 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UDUXdg008821 for netdev-outgoing; Tue, 30 Jul 2002 06:30:33 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from sex.inr.ac.ru (sex.inr.ac.ru [193.233.7.165]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UDUQRw008811 for ; Tue, 30 Jul 2002 06:30:27 -0700 Received: (from kuznet@localhost) by sex.inr.ac.ru (8.6.13/ANK) id RAA03211; Tue, 30 Jul 2002 17:31:44 +0400 From: kuznet@ms2.inr.ac.ru Message-Id: <200207301331.RAA03211@sex.inr.ac.ru> Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? To: ahu@ds9a.nl (bert hubert) Date: Tue, 30 Jul 2002 17:31:44 +0400 (MSD) Cc: netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com, becker@scyld.com In-Reply-To: <20020730131424.GA25238@outpost.ds9a.nl> from "bert hubert" at Jul 30, 2 03:14:25 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 X-Spam-Status: No, hits=-3.9 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK,NO_REAL_NAME version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello! > Regarding Andi's message, isn't it so that recvfrom() may return but in that > case returns -1 and sets errno to EAGAIN? It should if we calculated this checksum. But 3com pretends to do this in hardware. :-) > Anything I can do to help, Well, try to prove that corrupted packet is really received by application. This is not useless work, in any case, you have to cure this place, it should not abort because of invalid data. :-) As a faster hint try to disable rx checksumming in the driver and look at the effect. I do not see module option to do this, so probably you have just to comment out the place where skb->ip_summed is set to CHECKSUM_UNNECESSARY. Alexey From owner-netdev@oss.sgi.com Tue Jul 30 06:46:17 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UDkHRw009085 for ; Tue, 30 Jul 2002 06:46:17 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UDkHQE009084 for netdev-outgoing; Tue, 30 Jul 2002 06:46:17 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UDk9Rw009073 for ; Tue, 30 Jul 2002 06:46:10 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id JAA27410; Tue, 30 Jul 2002 09:47:17 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6UDekS17496; Tue, 30 Jul 2002 09:40:46 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Tue, 30 Jul 2002 09:40:45 -0400 (EDT) From: jamal To: cc: bert hubert , , , , Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? In-Reply-To: <200207301331.RAA03211@sex.inr.ac.ru> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002 kuznet@ms2.inr.ac.ru wrote: > Hello! > > > Regarding Andi's message, isn't it so that recvfrom() may return but in that > > case returns -1 and sets errno to EAGAIN? > > It should if we calculated this checksum. But 3com pretends to do this > in hardware. :-) > > It doesnt seem like the NIC is Kaput given that he only sees the problems with the Taiwanese site (unless everyone else sends no checksums). More like what is in the data these guys send that is acivating this stuff? Certainly that will become more obvious when he comments out CHECKSUM_UNNECESSARY in the driver. BTW, It would be nice if the driver also reported checksum errors. This seems to only report checksum hits right now on close(); Is this something we need to add into generic stats? It would also be nice to see breakdown by TCP and UDP. A NIC/driver that doesnt implement that feature doesnt display those parameters. cheers, jamal From owner-netdev@oss.sgi.com Tue Jul 30 06:47:31 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UDlVRw009224 for ; Tue, 30 Jul 2002 06:47:31 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UDlVrg009223 for netdev-outgoing; Tue, 30 Jul 2002 06:47:31 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UDlORw009210 for ; Tue, 30 Jul 2002 06:47:25 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id JAA28177; Tue, 30 Jul 2002 09:48:48 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6UDgPN17513; Tue, 30 Jul 2002 09:42:25 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Tue, 30 Jul 2002 09:42:24 -0400 (EDT) From: jamal To: Patrick Schaaf cc: Andi Kleen , Rusty Russell , , , Subject: Re: TODO list before feature freeze In-Reply-To: <20020730150639.B492@oknodo.bof.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002, Patrick Schaaf wrote: > > Again, I have no performance trouble with conntracking on any of my > production systems. > Then you have embarked on a meaningless science project, i am afraid. This is where Rustys comments that he needs numbers makes a lot of sense. cheers, jamal From owner-netdev@oss.sgi.com Tue Jul 30 06:47:52 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UDlqRw009288 for ; Tue, 30 Jul 2002 06:47:52 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UDlqUd009287 for netdev-outgoing; Tue, 30 Jul 2002 06:47:52 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UDlgRw009249 for ; Tue, 30 Jul 2002 06:47:42 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 6412144D6; Tue, 30 Jul 2002 15:49:08 +0200 (CEST) Date: Tue, 30 Jul 2002 15:49:08 +0200 From: bert hubert To: kuznet@ms2.inr.ac.ru Cc: netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com, becker@scyld.com Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? Message-ID: <20020730134908.GA26100@outpost.ds9a.nl> Mail-Followup-To: bert hubert , kuznet@ms2.inr.ac.ru, netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com, becker@scyld.com References: <20020730131424.GA25238@outpost.ds9a.nl> <200207301331.RAA03211@sex.inr.ac.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200207301331.RAA03211@sex.inr.ac.ru> User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, Jul 30, 2002 at 05:31:44PM +0400, kuznet@ms2.inr.ac.ru wrote: > Well, try to prove that corrupted packet is really received by application. > This is not useless work, in any case, you have to cure this place, > it should not abort because of invalid data. :-) We fixed the bug already :-) Signed/unsigned arithmetic problems. I have six examples in my log of PowerDNS exiting just after receiving a packet with a broken checksum. Now, I know that this is particle physics kind of statistical evidence :-) but I think it is pretty solid. Furthermore, I see answers being sent out to questions with broken checksums. Even more enticing is that all bad checksums come from a small number of hosts, 61.222.31.205, 64.58.142.2 and 202.106.0.21. So this would be pretty unlikely for a tcpdump bug. Here are some answers to questions with a bad udp checksum. Note that the DNS question id (8, 9 and 8 in this case) matches over question and answer, which is pretty conclusive evidence that userspace saw the packet. 08:06:53.097420 61.222.31.205.63240 > 213.244.168.217.53: [bad udp cksum 4c83!] 8 op5 [2a][|domain] (ttl 112, id 444, len 109) 08:06:53.097693 213.244.168.217.53 > 61.222.31.205.63240: [udp sum ok] 8 op5 NotImp*- q:[|domain] (DF) (ttl 64, id 0, len 52) == 02:48:03.404865 61.222.31.205.62869 > 213.244.168.217.53: [bad udp cksum 7a20!] 9 op5 [2a][|domain] (ttl 112, id 1277, len 109) 02:48:03.405045 213.244.168.217.53 > 61.222.31.205.62869: [udp sum ok] 9 op5 NotImp*- q:[|domain] (DF) (ttl 64, id 0, len 52) == 03:20:36.514897 61.222.31.205.63268 > 213.244.168.217.53: [bad udp cksum b94d!] 8 op5 [2a][|domain] (ttl 112, id 2317, len 109) 03:20:36.515094 213.244.168.217.53 > 61.222.31.205.63268: [udp sum ok] 8 op5 NotImp*- q:[|domain] (DF) (ttl 64, id 0, len 80) > As a faster hint try to disable rx checksumming in the driver > and look at the effect. I do not see module option to do this, > so probably you have just to comment out the place where > skb->ip_summed is set to CHECKSUM_UNNECESSARY. Ok, will do when we are near to the machine again. Regards, bert hubert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Tue Jul 30 06:56:57 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UDuvRw010112 for ; Tue, 30 Jul 2002 06:56:57 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UDuuuu010111 for netdev-outgoing; Tue, 30 Jul 2002 06:56:56 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from beohost.scyld.com (pool-151-196-171-6.balt.east.verizon.net [151.196.171.6]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UDuhRw010091 for ; Tue, 30 Jul 2002 06:56:49 -0700 Received: from localhost (becker@localhost) by beohost.scyld.com (8.11.6/8.11.6) with ESMTP id g6UDvCW22700; Tue, 30 Jul 2002 09:57:13 -0400 Date: Tue, 30 Jul 2002 09:57:12 -0400 (EDT) From: Donald Becker To: kuznet@ms2.inr.ac.ru cc: bert hubert , , , Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? In-Reply-To: <200207301331.RAA03211@sex.inr.ac.ru> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002 kuznet@ms2.inr.ac.ru wrote: > Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? > > > Regarding Andi's message, isn't it so that recvfrom() may return but in that > > case returns -1 and sets errno to EAGAIN? > > It should if we calculated this checksum. But 3com pretends to do this > in hardware. :-) I've verified that (at least some) 3Com cards don't just fake the checksum test. They pass on packets with invalid checksums, but don't indicate that the checksum is correct. The driver code for this is int csum_bits = rx_status & 0xee000000; if (csum_bits && (csum_bits == (IPChksumValid | TCPChksumValid) || csum_bits == (IPChksumValid | UDPChksumValid))) { skb->ip_summed = CHECKSUM_UNNECESSARY; Note that this relies on the kernel to make the final decision that the checksum is invalid. [[ This is the correct semantics: the driver might indicate that a protocol level checksum is correct, but it should not discard packets based on its (necessarily limited) understanding of higher level protocols. ]] -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Second Generation Beowulf Clusters Annapolis MD 21403 410-990-9993 From owner-netdev@oss.sgi.com Tue Jul 30 07:07:59 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UE7xRw010540 for ; Tue, 30 Jul 2002 07:07:59 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UE7xGp010539 for netdev-outgoing; Tue, 30 Jul 2002 07:07:59 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from beohost.scyld.com (pool-151-196-171-6.balt.east.verizon.net [151.196.171.6]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UE7pRw010529 for ; Tue, 30 Jul 2002 07:07:52 -0700 Received: from localhost (becker@localhost) by beohost.scyld.com (8.11.6/8.11.6) with ESMTP id g6UE9Dh22803; Tue, 30 Jul 2002 10:09:14 -0400 Date: Tue, 30 Jul 2002 10:09:13 -0400 (EDT) From: Donald Becker To: bert hubert cc: kuznet@ms2.inr.ac.ru, , , Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? In-Reply-To: <20020730134908.GA26100@outpost.ds9a.nl> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002, bert hubert wrote: > On Tue, Jul 30, 2002 at 05:31:44PM +0400, kuznet@ms2.inr.ac.ru wrote: > > > Well, try to prove that corrupted packet is really received by application. > > This is not useless work, in any case, you have to cure this place, > > it should not abort because of invalid data. :-) > > We fixed the bug already :-) Signed/unsigned arithmetic problems. Were the arithmetic problems in your code, or the kernels checksumming? (The latter seems unlikely.) > I have six examples in my log of PowerDNS exiting just after receiving a > packet with a broken checksum. Wouldn't this have also happened with valid checksums and invalid data? This is a good time to fix your application data validity checking. Note that some network equipment will re-write the IP checksums, just as some equipment regenerates the link-level frame CRC. It's not semantically correct, but claiming that such devices don't exist doesn't make them go away. -- Donald Becker becker@scyld.com Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Second Generation Beowulf Clusters Annapolis MD 21403 410-990-9993 From owner-netdev@oss.sgi.com Tue Jul 30 07:44:37 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UEibRw011579 for ; Tue, 30 Jul 2002 07:44:37 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UEibA8011578 for netdev-outgoing; Tue, 30 Jul 2002 07:44:37 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from outpost.ds9a.nl (postfix@outpost.ds9a.nl [213.244.168.210]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UEiMRw011517 for ; Tue, 30 Jul 2002 07:44:23 -0700 Received: by outpost.ds9a.nl (Postfix, from userid 1000) id 72E8444D6; Tue, 30 Jul 2002 16:12:37 +0200 (CEST) Date: Tue, 30 Jul 2002 16:12:37 +0200 From: bert hubert To: Donald Becker Cc: kuznet@ms2.inr.ac.ru, netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? Message-ID: <20020730141237.GA26712@outpost.ds9a.nl> Mail-Followup-To: bert hubert , Donald Becker , kuznet@ms2.inr.ac.ru, netdev@oss.sgi.com, akpm@zip.com.au, jgarzik@mandrakesoft.com References: <20020730134908.GA26100@outpost.ds9a.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.28i X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, Jul 30, 2002 at 10:09:13AM -0400, Donald Becker wrote: > > We fixed the bug already :-) Signed/unsigned arithmetic problems. > > Were the arithmetic problems in your code, or the kernels checksumming? > (The latter seems unlikely.) We fixed *our* bug. I would never want to rely on checksums for input validation :-) Our code should handle everything people care to throw at it and I think that right now, it will. > This is a good time to fix your application data validity checking. Has been done. Watch freshmeat for the update :-) Regards, bert -- http://www.PowerDNS.com Versatile DNS Software & Services http://www.tk the dot in .tk http://lartc.org Linux Advanced Routing & Traffic Control HOWTO From owner-netdev@oss.sgi.com Tue Jul 30 08:53:04 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6UFr3Rw014003 for ; Tue, 30 Jul 2002 08:53:04 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6UFr3Zc014002 for netdev-outgoing; Tue, 30 Jul 2002 08:53:03 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from yuclnx5 (btbntsys4.yucom.be [212.8.180.4]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6UFqqRw013991 for ; Tue, 30 Jul 2002 08:52:53 -0700 Received: (qmail 23178 invoked from network); 30 Jul 2002 15:49:26 -0000 Received: from unknown (HELO localhost.localdomain) (62.235.14.252) by 0 with SMTP; 30 Jul 2002 15:49:26 -0000 Subject: Re: TODO list before feature freeze From: "Filip Sneppe (Cronos)" To: Martin Josefsson Cc: jamal , Patrick Schaaf , Andi Kleen , Rusty Russell , Netfilter-devel , netdev@oss.sgi.com, netfilter-core@lists.netfilter.org In-Reply-To: <1028034504.12617.135.camel@tux> References: <1028034504.12617.135.camel@tux> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.5 Date: 30 Jul 2002 17:54:20 +0200 Message-Id: <1028044460.381.127.camel@xbox> Mime-Version: 1.0 X-Spam-Status: No, hits=-4.4 required=5.0 tests=IN_REP_TO version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 2002-07-30 at 15:08, Martin Josefsson wrote: > On Tue, 2002-07-30 at 14:29, jamal wrote: > > > If i was to use instinct i would say > > the last two items you list are probably the things you may want to chase. > > Here's two small patches. > > The first is a small patch to avoid updating the per-connection timer > for every packet. With this patch you get one update per second per > connection. Things are complicated by the fact that connections can > change timeouts. This patch isn't verified for correctness, YMMV. > (the pptp helper needs updating to work in combination with this patch) > > The second patch changes the hashtable lookup slightly so we don't hash > the tuple each iteration, once is enough. > > I don't have any numbers for these patches and I can't find the url to > the tests one of the netfilter-devel people has done. > Hi Martin, These may be the patches I did some very basic testing (and readprofile profiling) on. http://www.filip.sneppe.yucom.be/linux/netfilter/performance/benchmarks.htm I don't have a lot to add to the discussion except that I can make time to test patches/ideas provided someone tells me *how* to test, what to look for, etc. For instance, a lot of the current numbers on that page with the varying mtu sizes are, in retrospect, basically stupid tests that don't reveal a lot of new stuff :-/. Regards, Filip Regards, Filip From owner-netdev@oss.sgi.com Tue Jul 30 22:04:04 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6V544Rw023697 for ; Tue, 30 Jul 2002 22:04:04 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6V544Z5023696 for netdev-outgoing; Tue, 30 Jul 2002 22:04:04 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from falcon.cdac.ernet.in (mailx.cdacindia.com [202.54.40.35]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6V53wRw023618 for ; Tue, 30 Jul 2002 22:03:59 -0700 Received: from falcon.cdac.ernet.in ([196.1.109.101]) by falcon.cdac.ernet.in (NAVGW 2.5.2.9) with SMTP id M2002073109554218387 for ; Wed, 31 Jul 2002 09:55:42 +0530 Received: from mailhub.cdac.ernet.in (mailhub.cdac.ernet.in [196.1.109.254]) by falcon.cdac.ernet.in (8.11.3/8.11.3) with ESMTP id g6V4Pfv04846 for ; Wed, 31 Jul 2002 09:55:41 +0530 (IST) Received: from cdac.ernet.in (IDENT:root@puja.hardware.cdac.ernet.in [192.168.6.14]) by mailhub.cdac.ernet.in (8.11.4/8.11.4) with ESMTP id g6V4MiG25771 for ; Wed, 31 Jul 2002 09:52:45 +0530 (IST) Message-ID: <3D4768DC.7070907@cdac.ernet.in> Date: Wed, 31 Jul 2002 10:04:36 +0530 From: puja User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4) Gecko/20011019 Netscape6/6.2 X-Accept-Language: en-us MIME-Version: 1.0 To: netdev@oss.sgi.com Subject: Help on firewall hooks Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Hello sir, I wanted to clarify on some concepts in firewall hooks. I found FW_QUEUE as a return type in firewall hook functions in some codes which use firewall hooks. I wanted to know the significance of FW_QUEUE. When is this used as a return type in firewall hook functions ?? In the tcp/ip code for kernel 2.2.20, in ip_output.c; one of the comments says that when call_out_firewall returns FW_QUEUE silently drop the skb. Can you please elaborate on this. Thanks in advance Regards Puja Puri From owner-netdev@oss.sgi.com Wed Jul 31 04:51:33 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6VBpXRw018527 for ; Wed, 31 Jul 2002 04:51:33 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6VBpXbT018526 for netdev-outgoing; Wed, 31 Jul 2002 04:51:33 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from cyberus.ca (mail.cyberus.ca [216.191.240.111]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6VBpRRw018517 for ; Wed, 31 Jul 2002 04:51:27 -0700 Received: from shell.cyberus.ca (shell [216.191.240.114]) by cyberus.ca (8.9.3/8.9.3/Cyberus Online Inc.) with ESMTP id HAA19326; Wed, 31 Jul 2002 07:52:51 -0400 (EDT) Received: from localhost (hadi@localhost) by shell.cyberus.ca (8.11.6+Sun/8.11.6) with ESMTP id g6VBkSq21227; Wed, 31 Jul 2002 07:46:28 -0400 (EDT) X-Authentication-Warning: shell.cyberus.ca: hadi owned process doing -bs Date: Wed, 31 Jul 2002 07:46:28 -0400 (EDT) From: jamal To: Donald Becker cc: , bert hubert , , , Subject: Re: 3c59x 2.4.18 userspace seeing UDP packets with bad checksum? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-4.5 required=5.0 tests=IN_REP_TO,SUBJ_ENDS_IN_Q_MARK version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk On Tue, 30 Jul 2002, Donald Becker wrote: > int csum_bits = rx_status & 0xee000000; > if (csum_bits && > (csum_bits == (IPChksumValid | TCPChksumValid) || > csum_bits == (IPChksumValid | UDPChksumValid))) { > skb->ip_summed = CHECKSUM_UNNECESSARY; > > Note that this relies on the kernel to make the final decision that the > checksum is invalid. > > [[ This is the correct semantics: the driver might indicate that a protocol > level checksum is correct, but it should not discard packets based > on its (necessarily limited) understanding of higher level protocols. > ]] > Nod. So is CHECKSUM_WRONG needed to give a hint to the stack? It is possible IPcsum is right but not the transport; Maybe ip_summed needs to be a bitmap then? You could use the information to move packets out of the stack fastpath for example. cheers, jamal From owner-netdev@oss.sgi.com Wed Jul 31 11:09:44 2002 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.12.5/8.12.5) with ESMTP id g6VI9hRw008190 for ; Wed, 31 Jul 2002 11:09:43 -0700 Received: (from majordomo@localhost) by oss.sgi.com (8.12.5/8.12.3/Submit) id g6VI9hUk008189 for netdev-outgoing; Wed, 31 Jul 2002 11:09:43 -0700 X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-netdev@oss.sgi.com using -f Received: from mg03.austin.ibm.com (mg03.austin.ibm.com [192.35.232.20]) by oss.sgi.com (8.12.5/8.12.5) with SMTP id g6VI9XRw008180 for ; Wed, 31 Jul 2002 11:09:33 -0700 Received: from austin.ibm.com (netmail1.austin.ibm.com [9.3.7.138]) by mg03.austin.ibm.com (AIX4.3/8.9.3/8.9.3) with ESMTP id NAA62086; Wed, 31 Jul 2002 13:04:53 -0500 Received: from popmail.austin.ibm.com (popmail.austin.ibm.com [9.53.247.178]) by austin.ibm.com (AIX4.3/8.9.3/8.9.3) with ESMTP id NAA31582; Wed, 31 Jul 2002 13:10:59 -0500 Received: from us.ibm.com (touki.austin.ibm.com [9.53.216.243]) by popmail.austin.ibm.com (AIX4.3/8.9.3/8.7-client1.01) with ESMTP id NAA27234; Wed, 31 Jul 2002 13:10:58 -0500 Message-ID: <3D48274E.C7294D3E@us.ibm.com> Date: Wed, 31 Jul 2002 13:07:10 -0500 From: Jon Grimm X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.5.29 i686) X-Accept-Language: en MIME-Version: 1.0 To: linux-kernel@vgr.kernel.org.sgi.com CC: linux-net@vger.kernel.org, netdev@oss.sgi.com Subject: [ANNOUNCE] new lksctp release lksctp-2_5_29-0_5_0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20 X-Spam-Level: Sender: owner-netdev@oss.sgi.com Precedence: bulk Linux Kernel SCTP Release lksctp-2_5_29-0_5_0 is now available for download. The lksctp project was created to develop a Linux kernel implementation of the SCTP transport protocol. For more information, as well as, source tarballs and patches, please visit: http://www.sourceforge.net/projects/lksctp/ The linux-2.5.29 based patch can be downloaded directly from: http://prdownloads.sourceforge.net/lksctp/lksctp-2_5_29-0_5_0.patch?download Best Regards, Jon Grimm The most recent CHANGES are as follows: lksctp-2_5_29-0_5_0: Patch 588249 misc. user header file fixes (jgrimm) lksctp-2_5_29-0_4_99: Patch 582166 sctp_peeloff() support. (samudrala) Bug 583874 sendmsg/init with bad buf. has leak (jgrimm) Patch 581963 Handle select/poll syscalls (daisyc) Bug 583798 Need GFP_ATOMIC when BH disabled (samudrala) Bug 585351 MSG_UNORDERED not set on fragmented chunks (samudrala) Patch 585474 Remove old DEFAULT_STREAM sock opt (jgrimm) Bug 585653 Fix V6INADDR_ANY to choose a saddr (jgrimm) Bug 585929 more leaks in sendmsg() on error cases. (samudrala) Patch 574420 overlapping init/restart (dajiang, jgrimm) Bug 581992 zero probe shouldn't error association (samudrala) Patch 587986 move to Linux 2.5.29 (samudrala) lksctp-2_5_24-0_4_12: Patch 569943 graceful shutdown of an individual association. (samudrala) Patch 572054 move to linux kernel 2.5.24. (samudrala) Bug 574069 bugs in fragmentation & reassembly. (samudrala) Patch 579301 check for No User Data error and testcase (jgrimm) Bug 574071 less strict rwnd check at rcvr (samudrala) Patch 579525 SCTP_AUTOCLOSE socket option. (samudrala) Patch 575712 modify sctp_darn tool to use select (daisyc) NA misc.: cleanup jiffies decl., update docs. (jgrimm) Patch 581745 getsockname needs sk->sport (jgrimm) Patch 582273 handle DATA while in SHUTDOWN-SENT (jgrimm) Bug 581997 sctp_wait_for_sndbuf fault (jgrimm) Patch 573958 Overlapping Init testcases (dajiang) Patch 582905 misc: remove md5 files. update cause code values (jgrimm)