Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760401Ab0HQSwh (ORCPT ); Tue, 17 Aug 2010 14:52:37 -0400 Received: from reptilian.habets.pp.se ([193.151.93.131]:2729 "EHLO reptilian.habets.pp.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932977Ab0HQSwf (ORCPT ); Tue, 17 Aug 2010 14:52:35 -0400 Date: Tue, 17 Aug 2010 20:52:27 +0200 (CEST) From: Thomas Habets X-X-Sender: thompa@red.crap.retrofitta.se To: Matt Carlson cc: Thomas Habets , Eric Dumazet , "linux-kernel@vger.kernel.org" , netdev , Michael Chan Subject: Re: BUG: IPv6 stops working after a while, needs ip ne del command to reset In-Reply-To: <20100817183112.GA4351@mcarlson.broadcom.com> Message-ID: References: <1282024802.2487.687.camel@edumazet-laptop> <1282050920.2448.47.camel@edumazet-laptop> <1282055659.2448.58.camel@edumazet-laptop> <20100817171115.GA4134@mcarlson.broadcom.com> <20100817183112.GA4351@mcarlson.broadcom.com> 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: 2325 Lines: 61 On Tue, 17 Aug 2010, Matt Carlson wrote: > Thanks. I put the question out to the firmware developer. While we > wait, can you keep Eric's patch in place and give me the results along > with the output of 'ethtool -d eth0 | grep 0x047' after the problem > happens? Sure. I think the problem occurs shortly after booting, or is triggered by it Linux getting a neighbor table entry for the router. The reason it took a while for everything to actually stop working is that the router was caching and presumably updating its neighbors cache when it saw traffic. That is, maybe it only works if the router sets up its neigbor table first, and not otherwise. The problem is there now. Last output in the kernel log about this is: $ dmesg | egrep 'eth0|^add mc|^filters=' [...] 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 ethtool -d eth0 | grep 0x047 0x0470 0x80020001 0x0474 0x00000000 0x0478 0x00000000 0x047c 0x40000000 > Eric's patch shows the hash registers at the time they are programmed. > I'm interested to see if the values change (by firmware) after the > failure. Look the same. But a strange thing is that if I delete the ipv6 neighbor on the Linux box (ip ne del 2a00:800:752:1::5c:1 dev eth0) it suddenly answers a ND solicitation. I tried it just now and it "wakes it up". Nothing was written to the kernel log when I ran this command, and the ethtools -d output is the same afterwards as it was before. So unless there's another code path that changes the registers when I do "ip ne del" it may still be something else. --------- 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/