From owner-svn-src-all@FreeBSD.ORG Wed Aug 22 20:06:33 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB8281065672; Wed, 22 Aug 2012 20:06:33 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id B00598FC26; Wed, 22 Aug 2012 20:06:33 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 20698B9B7; Wed, 22 Aug 2012 16:06:33 -0400 (EDT) From: John Baldwin To: Jan Beich Date: Wed, 22 Aug 2012 16:06:22 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p17; KDE/4.5.5; amd64; ; ) References: <201208221353.q7MDrbYB039551__4686.74262888289$1345643666$gmane$org@svn.freebsd.org> <1T4CmR-00012d-OP@internal.tormail.org> In-Reply-To: <1T4CmR-00012d-OP@internal.tormail.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201208221606.22178.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 22 Aug 2012 16:06:33 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r239564 - head/sbin/dhclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Aug 2012 20:06:34 -0000 On Wednesday, August 22, 2012 11:24:05 am Jan Beich wrote: > (mx1.freebsd.org hates my smtp relay) > > John Baldwin writes: > > > Author: jhb > > Date: Wed Aug 22 13:53:37 2012 > > New Revision: 239564 > > URL: http://svn.freebsd.org/changeset/base/239564 > > > > Log: > > Revert r239356 and use an alternate algorithm. > > Doesn't help here. It now goes into an endless cycle trying to renew IP. > > $ (pciconf -l; dmesg) | fgrep -m2 fxp0 > fxp0@pci0:5:0:0: class=0x020000 card=0xb1440e11 chip=0x12298086 rev=0x08 hdr=0x00 > fxp0: port 0xd000-0xd03f mem 0xf9100000-0xf9100fff,0xf9000000-0xf90fffff irq 20 at device 0.0 on pci5 Please try this patch relative to what is in HEAD: Index: dhcpd.h =================================================================== --- dhcpd.h (revision 239564) +++ dhcpd.h (working copy) @@ -209,6 +209,7 @@ int dead; u_int16_t index; int linkstat; + time_t linktime; }; struct timeout { Index: dhclient.c =================================================================== --- dhclient.c (revision 239564) +++ dhclient.c (working copy) @@ -285,8 +285,14 @@ ifi->linkstat ? "up" : "down", linkstat ? "up" : "down"); ifi->linkstat = linkstat; - if (linkstat) + + /* + * XXX: Hardcoded 5 second grace window on + * link flaps. + */ + if (linkstat && (cur_time - ifi->linktime) >= 5) state_reboot(ifi); + ifi->linktime = cur_time; } break; case RTM_IFANNOUNCE: @@ -441,6 +447,7 @@ fprintf(stderr, " got link\n"); } ifi->linkstat = 1; + ifi->linktime = cur_time; if ((nullfd = open(_PATH_DEVNULL, O_RDWR, 0)) == -1) error("cannot open %s: %m", _PATH_DEVNULL); -- John Baldwin