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

Brooks Davis brooks at one-eyed-alien.net
Thu Oct 20 14:29:04 PDT 2005


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@ 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20051020/fa4d5da7/attachment.bin


More information about the freebsd-current mailing list