Apparent fxp regression in FreeBSD 8.4-RC3

Charles Sprickman spork at bway.net
Fri May 24 08:21:34 UTC 2013


On May 24, 2013, at 1:47 AM, YongHyeon PYUN wrote:

> On Thu, May 23, 2013 at 09:49:19PM -0700, Jeremy Chadwick wrote:
>> On Thu, May 23, 2013 at 09:40:35PM -0700, Jeremy Chadwick wrote:
>>> On Thu, May 23, 2013 at 11:42:44PM -0400, Glen Barber wrote:
>>>> On Thu, May 23, 2013 at 08:38:06PM -0700, Jeremy Chadwick wrote:
>>>>> If someone wants me to test DHCP via fxp(4) on the above system (I can
>>>>> do so with both NICs), just let me know; it should only take me half an
>>>>> hour or so.
>>>>> 
>>>>> I'll politely wait for someone to say "please do so" else won't bother.
>>>>> 
>>>> 
>>>> For the sake of completeness...
>>>> 
>>>> "Please do so."  :)
>>> 
>>> Issue reproduced 100% reliably, even within sysinstall.
>>> 
>>> {snip} 
>> 
>> Forgot to add:
>> 
>> This issue ONLY happens when using DHCP.
>> 
>> Statically assigning the IP address works fine; fxp0 goes down once,
>> up once, then stays up indefinitely.
> 
> I asked Mike to try backing out dhclient(8) change(r247336) but it
> seems he missed that. Jeremy, could you try that?
> 
> I guess dhclient(8) does not like flow-control negotiation of
> fxp(4) after link establishment.

Confirmed here that removing the linkstate stuff from r247336 fixes it.

Before:

May 24 08:00:17 fxptest dhclient: New Subnet Mask (fxp0): 255.255.255.0
May 24 08:00:17 fxptest dhclient: New Broadcast Address (fxp0): 10.3.2.255
May 24 08:00:17 fxptest dhclient: New Routers (fxp0): 10.3.2.1
May 24 08:00:19 fxptest kernel: fxp0: link state changed to UP
May 24 08:00:19 fxptest kernel: fxp0: link state changed to DOWN
May 24 08:00:19 fxptest dhclient: New IP Address (fxp0): 10.3.2.109
May 24 08:00:19 fxptest dhclient: New Subnet Mask (fxp0): 255.255.255.0
May 24 08:00:19 fxptest dhclient: New Broadcast Address (fxp0): 10.3.2.255
May 24 08:00:19 fxptest dhclient: New Routers (fxp0): 10.3.2.1
May 24 08:00:21 fxptest kernel: fxp0: link state changed to UP
May 24 08:00:21 fxptest dhclient: New IP Address (fxp0): 10.3.2.109
May 24 08:00:21 fxptest kernel: fxp0: link state changed to DOWN
May 24 08:00:21 fxptest dhclient: New Subnet Mask (fxp0): 255.255.255.0
May 24 08:00:21 fxptest dhclient: New Broadcast Address (fxp0): 10.3.2.255
May 24 08:00:21 fxptest dhclient: New Routers (fxp0): 10.3.2.1
May 24 08:00:23 fxptest kernel: fxp0: link state changed to UP
May 24 08:00:23 fxptest dhclient: New IP Address (fxp0): 10.3.2.109
May 24 08:00:23 fxptest kernel: fxp0: link state changed to DOWN

After:

May 24 08:07:05 fxptest kernel: fxp0: link state changed to DOWN
May 24 08:07:07 fxptest kernel: fxp0: link state changed to UP
May 24 08:07:12 fxptest dhclient: New IP Address (fxp0): 10.3.2.109
May 24 08:07:12 fxptest kernel: fxp0: link state changed to DOWN
May 24 08:07:12 fxptest dhclient: New Subnet Mask (fxp0): 255.255.255.0
May 24 08:07:12 fxptest dhclient: New Broadcast Address (fxp0): 10.3.2.255
May 24 08:07:12 fxptest dhclient: New Routers (fxp0): 10.3.2.1
May 24 08:07:14 fxptest kernel: fxp0: link state changed to UP
root at fxptest:/usr/home/spork # date
Fri May 24 08:10:32 UTC 2013

Note there is still a down/up/down/up transition on starting dhclient…

Am I correct that the linkstate changes are meant to allow for an automatic retry for a lease when the ethernet connection is dropped?  That doesn't seem wrong, it just seems like somewhere we should be waiting a few seconds.  It appears that each time dhclient gets a lease, even without the linkstate code, the connection briefly drops…'

Charles


More information about the freebsd-stable mailing list