From patchwork Mon Jan 23 14:16:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tim Coote X-Patchwork-Id: 718599 X-Patchwork-Delegate: blogic@openwrt.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3v6YKL0hyPz9srY for ; Tue, 24 Jan 2017 01:16:54 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=coote.org header.i=@coote.org header.b="GMLJfh6t"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=coote.org header.i=@coote.org header.b="LcIFiISK"; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id A33EBB90CF3; Mon, 23 Jan 2017 15:16:46 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP; Mon, 23 Jan 2017 15:16:46 +0100 (CET) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 331F3B90BC3 for ; Mon, 23 Jan 2017 15:16:45 +0100 (CET) X-policyd-weight: using cached result; rate: -6.1 Received: from mercury.coote.org (575185b4.skybroadband.com [87.81.133.180]) by arrakis.dune.hu (Postfix) with ESMTP for ; Mon, 23 Jan 2017 15:16:45 +0100 (CET) Received: by mercury.coote.org (Postfix, from userid 1000) id 5F5B716C12FF; Mon, 23 Jan 2017 14:16:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.10.3 mercury.coote.org 5F5B716C12FF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=coote.org; s=default; t=1485181004; bh=BH1DwwYLp7Uqef3ENmboS1eQboPBZuFZbZqJTAaFCTA=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=GMLJfh6tUqQEvuoTbRKnPdHWtPkOhJalOfxGt30Cw8EyZOBzRL4WCzPi8oumKYTEB G4RSyIbgU7OnvGS/Re/UnVACFLTsd3o5il6JTXUopLFTn3PqstWw+gGZN7hUqlhLN/ bOfKf/jj/GLfrqlmAQo/90I49xHBmCNmrTK8vRJk= X-Original-To: openwrt-devel@lists.openwrt.org Received: from [127.0.0.1] (localhost [127.0.0.1]) by mercury.coote.org (Postfix) with ESMTP id BE87016C122B; Mon, 23 Jan 2017 14:16:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.10.3 mercury.coote.org BE87016C122B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=coote.org; s=default; t=1485181003; bh=BH1DwwYLp7Uqef3ENmboS1eQboPBZuFZbZqJTAaFCTA=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=LcIFiISKsT41Qh8+tx6TRJ6hs1bhLbdAhDJSVICbBAtIp2bE2fIglHGWu9w3Tcxio +kdZDZbhD9JTXj0AFNW2nFu5g4ljKnbBAZuBWZ1Mv1pl55bvKSGB4WoFZYUmAWf51B gVrjQm8XVVPY2NmcNo6LaAYjJdxPgBb2O+f3vAE8= Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) From: Tim Coote In-Reply-To: <2150529.Ji2JxF2SvY@linux-5g1g> Date: Mon, 23 Jan 2017 14:16:43 +0000 Message-Id: <4D2DC961-2FDD-4A13-8ABF-9CBA5FDBC2A5@coote.org> References: <677D9B61-C3A3-4BF2-A6BF-64D704193AA0@coote.org> <2150529.Ji2JxF2SvY@linux-5g1g> To: Hans Dedecker X-Mailer: Apple Mail (2.2104) X-Spambayes-Classification: ham; 0.00 Subject: Re: [OpenWrt-Devel] Loss of connectivity on ADSL reset X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: openwrt-devel@lists.openwrt.org Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" > On 12 Jan 2017, at 21:24, Hans Dedecker wrote: > > On Thursday, 12 January 2017 10:24:45 CET Tim Coote wrote: >> >> config interface 'e0' >> option ifname 'eth0' >> option proto 'pppoe' >> option username ‘' >> option password ‘' >> >> config interface 'e0ext' >> option ifname 'pppoe-e0' > You need to configure the ifname as an aliased interface of interface e0; eg > option ifname @e0 > > Hans The advice worked. Thanks. However, when I updated trunk, I found that ipv6 refreshes weren’t happening. I created an Issue on github, but I’m not sure that was the best approach. I can see the ppp interface issuing a renew message for its prefix, and getting a response from the ISP. However, after the update, IPv6 addresses become deprecated after an hour, rather than being renewed after 30 mins. Using git bisect, and a very small hack, I believe that I’ve identified the commits that broke using ipv6 over pppoe with hnet, but I’m also sure that I don’t understand the design anything like well enough to confirm that I’ve found a real issue with the code (as opposed to how I’ve set it up), or a reasonable fix. On openwrt: # first bad commit: [0b394dd2f5133466ac0920d3ab4ca7f66c42ac98] netifd: bump to 2016-12-09 That bump included quite a few changes, so I had to bisect that too: # first bad commit: [b8ef742bd04ebef324ae11aee56c6e1d2cb7e0ad] interface: Fix triggering of interface update event The relevant change seems to be: Putting in some logging, I found that there seem to be no calls with iface->updated for any interface with any value other than 0 (within a 30-60 minute test window). If I remove the test on iface->updated in the first inserted line, updates do seem to propagate and the ipv6 addresses on other interfaces get updated valid_lft and preferred_lft values get reset to 2 and 1 hours respectively after 30 mins. I have no idea what the impact of calling interface_event is for interface updates on other interfaces, but since that was the previous behaviour, presumably there’s some issue with doing that. Is there anything that I can do to help with this? regards Tim Coote --- a/interface.c +++ b/interface.c @@ -693,7 +693,8 @@ interface_proto_event_cb(struct interface_proto_state *state, enum interface_pro switch (ev) { case IFPEV_UP: if (iface->state != IFS_SETUP) { - interface_event(iface, IFEV_UPDATE); + if (iface->state == IFS_UP && iface->updated) + interface_event(iface, IFEV_UPDATE); return; }