Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Oct 2005 14:29:03 -0700
From:      Brooks Davis <brooks@one-eyed-alien.net>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Tom McLaughlin <tmclaugh@sdf.lonestar.org>, freebsd-current@freebsd.org
Subject:   Re: kern/87506 : [PATCH] Fix alias support on vr interfaces
Message-ID:  <20051020212903.GA7953@odin.ac.hmc.edu>
In-Reply-To: <200510201651.22346.jhb@freebsd.org>
References:  <41473.192.216.27.32.1129818223.squirrel@192.216.27.32> <200510201115.21750.jhb@freebsd.org> <200510201427.53315.mistry.7@osu.edu> <200510201651.22346.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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=3D"DHCP"
> > ifconfig_rl0_alias0=3D"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.
>=20
> Yes, it seems to be an issue with dhclient.  If I turn dhclient off and=
=20
> manually configure my NIC then the alias works fine:
> rl0: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         options=3D8<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

--=20
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

--3MwIy2ne0vdjdPXF
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFDWAwdXY6L6fI4GtQRArI3AKCUnjgBf/ePr5l9sjC5aPB7z4T5WQCfSX+9
RzhBua1iOSTCphId2JPmXeU=
=1Vtr
-----END PGP SIGNATURE-----

--3MwIy2ne0vdjdPXF--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051020212903.GA7953>