Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757270Ab0HQP6p (ORCPT ); Tue, 17 Aug 2010 11:58:45 -0400 Received: from reptilian.habets.pp.se ([193.151.93.131]:1593 "EHLO reptilian.habets.pp.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751471Ab0HQP6m (ORCPT ); Tue, 17 Aug 2010 11:58:42 -0400 Date: Tue, 17 Aug 2010 17:58:26 +0200 (CEST) From: Thomas Habets X-X-Sender: thompa@red.crap.retrofitta.se To: Eric Dumazet cc: Thomas Habets , linux-kernel@vger.kernel.org, netdev , Matt Carlson , Michael Chan Subject: Re: BUG: IPv6 stops working after a while, needs ip ne del command to reset In-Reply-To: <1282055659.2448.58.camel@edumazet-laptop> Message-ID: References: <1281953960.2524.23.camel@edumazet-laptop> <1282024802.2487.687.camel@edumazet-laptop> <1282050920.2448.47.camel@edumazet-laptop> <1282055659.2448.58.camel@edumazet-laptop> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4155 Lines: 116 On Tue, 17 Aug 2010, Eric Dumazet wrote: > Try following patch to check tg3 receives correct multicast list (its OK > for me, seen on dmesg output) > > [17162.120238] add mc_addr(ha->addr=33:33:00:00:00:01) > [17162.120270] add mc_addr(ha->addr=01:00:5e:00:00:01) > [17162.120298] add mc_addr(ha->addr=33:33:ff:87:96:ce) > [17162.120326] add mc_addr(ha->addr=33:33:ff:5c:00:02) > [17162.120355] filters=80000001 00000000 00400000 40000000 Right after boot: $ dmesg | egrep 'eth0|^add mc|^filters=' tg3 0000:03:04.0: eth0: Tigon3 [partno(N/A) rev 9003] (PCIX:133MHz:64-bit) MAC address 00:24:81:a3:44:24 tg3 0000:03:04.0: eth0: attached PHY is 5714 (10/100/1000Base-T Ethernet) (WireSpeed[1]) tg3 0000:03:04.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1] tg3 0000:03:04.0: eth0: dma_rwctrl[76148000] dma_mask[40-bit] add mc_addr(ha->addr=33:33:00:00:00:01) filters=80000000 00000000 00000000 00000000 add mc_addr(ha->addr=33:33:00:00:00:01) filters=80000000 00000000 00000000 00000000 add mc_addr(ha->addr=33:33:00:00:00:01) filters=80000000 00000000 00000000 00000000 add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) filters=80000000 00000000 00000000 40000000 ADDRCONF(NETDEV_UP): eth0: link is not ready add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) filters=80000000 00000000 00000000 40000000 add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) filters=80000000 00000000 00000000 40000000 add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) add mc_addr(ha->addr=33:33:ff:5c:00:02) filters=80000001 00000000 00000000 40000000 tg3 0000:03:04.0: eth0: Link is up at 1000 Mbps, full duplex tg3 0000:03:04.0: eth0: Flow control is off for TX and off for RX ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) add mc_addr(ha->addr=33:33:ff:5c:00:02) add mc_addr(ha->addr=33:33:ff:a3:44:24) filters=80020001 00000000 00000000 40000000 eth0: no IPv6 routers present [ ifconfig eth0 allmulti (ip l and ifconfig say ALLMULTI is on) ] add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) add mc_addr(ha->addr=33:33:ff:5c:00:02) add mc_addr(ha->addr=33:33:ff:a3:44:24) filters=80020001 00000000 00000000 40000000 [ $ sudo ifconfig eth0 -allmulti Warning: Interface eth0 still in ALLMULTI mode. (ip l and ifconfig say ALLMULTI is now off) ] add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) add mc_addr(ha->addr=33:33:ff:5c:00:02) add mc_addr(ha->addr=33:33:ff:a3:44:24) filters=80020001 00000000 00000000 40000000 [ ifconfig eth0 allmulti (same effect) ] add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) add mc_addr(ha->addr=33:33:ff:5c:00:02) add mc_addr(ha->addr=33:33:ff:a3:44:24) filters=80020001 00000000 00000000 40000000 [ $ sudo ifconfig eth0 -allmulti Warning: Interface eth0 still in ALLMULTI mode. (same effect) ] add mc_addr(ha->addr=33:33:00:00:00:01) add mc_addr(ha->addr=01:00:5e:00:00:01) add mc_addr(ha->addr=33:33:ff:5c:00:02) add mc_addr(ha->addr=33:33:ff:a3:44:24) filters=80020001 00000000 00000000 40000000 > But if problem remains even with "ifconfig eth0 allmulti" I suspect a > NIC firmware problem. (allmulti set to 1 all the 128 bits of filters) If you expected more bits set in "filters" with allmulti than without it, that doesn't seem to be the case. Applied your patch to v2.6.35. --------- typedef struct me_s { char name[] = { "Thomas Habets" }; char email[] = { "thomas@habets.pp.se" }; char kernel[] = { "Linux" }; char *pgpKey[] = { "http://www.habets.pp.se/pubkey.txt" }; char pgp[] = { "A8A3 D1DD 4AE0 8467 7FDE 0945 286A E90A AD48 E854" }; char coolcmd[] = { "echo '. ./_&. ./_'>_;. ./_" }; } me_t; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/