Re: kern/87506 : [PATCH] Fix alias support on vr interfaces

From: Brooks Davis <brooks_at_one-eyed-alien.net>
Date: Thu, 20 Oct 2005 14:29:03 -0700
On Thu, Oct 20, 2005 at 04:51:21PM -0400, John Baldwin wrote:
> On Thursday 20 October 2005 02:27 pm, Anish Mistry wrote:
> > On Thursday 20 October 2005 11:15 am, John Baldwin wrote:
> > > On Thursday 20 October 2005 10:23 am, Tom McLaughlin wrote:
> > > > Hi, would someone be available to look at kern PR 87506?  I found
> > > > the problem while building a jail on my 6.0-RC1 box.  When
> > > > setting an alias on a vr device with ifconfig the alias address
> > > > replaces the initial address of the device.  marcus_at_ took a look
> > > > at the problem for me and provided the patch for the vr interface
> > > > which I tested and it resolved the problem. Without the patch I
> > > > can't create a jail that is network accessible.
> > > >
> > > > Marcus also notes in the PR that the rl, sis, ti, and tl may also
> > > > be affected by this bug.  If anyone has any other questions or
> > > > needs someone to test any changes to the patch just let me know.
> > > > I only have vr interfaces on my FreeBSD machines though.  Thanks.
> > > >
> > > > Tom
> > >
> > > I'm not sure that fix is really the right fix.  The patch just
> > > makes vr(4) ignore changes to if_flags while the driver is up.
> > > Probably there is a bug in vr(4)'s handling of alias addresses.  I
> > > did just reproduce this on my laptop's rl(4) interface though.
> > > I'll see if I can't figure out what is happening.
> >
> > I'm also seeing this too along with the following.
> >
> > I'm not sure if this is related, but I'm seeing the following on
> > RELENG_6 and CURRENT, but and older RELENG_5 as of ~2 months ago
> > doesn't show this problem.
> > I'm trying to setup my workstation with a normal DHCP'd address
> > and an alias IP for a jail running on the system, but the alias
> > setting wipes out all the other addresses on the interface.
> > in /etc/rc.conf:
> > ifconfig_rl0="DHCP"
> > ifconfig_rl0_alias0="inet 192.168.1.10 netmask 255.255.255.255"
> >
> > I've checked the rc boot order (on RELENG_6 and CURRENT) and it seems
> > correct:
> > netif
> > dhclient
> > netif
> >
> > I narrowed it down to:
> > dhclient rl0
> > ifconfig rl0 inet 192.168.1.11 netmask 0xffffffff alias
> > [dhclient prints a message here saying connection closed and exiting]
> >
> > All of the other addresses on the card are removed.
> > I'm also seeing this on dc.  So thinking it to be a problem in
> > ifconfig I copied over the version from my RELENG_5 box, and that did
> > the same thing...so this seems to be present several of the network
> > drivers in RELENG_6/CURRENT.
> 
> Yes, it seems to be an issue with dhclient.  If I turn dhclient off and 
> manually configure my NIC then the alias works fine:
> rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         options=8<VLAN_MTU>
>         inet6 fe80::290:f5ff:fe0e:c8e5%rl0 prefixlen 64 scopeid 0x2
>         inet 10.50.41.234 netmask 0xfffffe00 broadcast 10.50.41.255
>         inet 10.50.41.101 netmask 0xffffffff broadcast 10.50.41.101
>         ether 00:90:f5:0e:c8:e5
>         media: Ethernet autoselect (100baseTX <full-duplex>)
>         status: active

I believe the problem is that adding an address to a NIC causes a call
to ifp->if_init() which resets the media and triggers a LINK_DOWN event
in all too many cases.  Using if_init here is rather like driving
finishing nails with a sledge hammer.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

Received on Thu Oct 20 2005 - 19:29:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:46 UTC