Date: Fri, 13 Oct 2006 15:21:03 +0300 (EEST) From: Ari Suutari <ari.suutari@syncrontech.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/104377: CARP interface doesn't go up on VmWare Message-ID: <200610131221.k9DCL3DR014155@guinness.syncrontech.com> Resent-Message-ID: <200610131230.k9DCUNtO023593@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 104377 >Category: kern >Synopsis: CARP interface doesn't go up on VmWare >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Oct 13 12:30:20 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Ari Suutari >Release: FreeBSD 6.2-PRERELEASE i386 >Organization: Syncron Tech Oy >Environment: FreeBSD glass.syncrontech.com 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Fri Oct 13 14:23:21 EEST 2006 asu@glass.syncrontech.com:/usr/src/sys/i386/compile/CARP_GENERIC i386 >Description: When using CARP on system where physical network interface doesn't support link stat reporting, carp device doesn't go up during boot. One can manually up it, but it requires a additional script to be run during boot. This is problem at least under VmWare, but should occur also with older network cards. >How-To-Repeat: Put following lines into /etc/rc.conf on VmWare guest machine: cloned_interfaces="carp0" ifconfig_carp0="inet 192.168.5.59/24 vhid 55 pass xxx123" Reboot the machine. After machine is up, run ifconfig carp0. It displays that interface is not up, and it is in INIT state. >Fix: Apply following patch. It changes the bahaviour of CARP so that it assumes that link is UP unless specifically told by physical interface that it is down (ie. handle LINK_STATE_UNKNOWN more gracefully). I tested this under VmWare (ie. lnc interface) and under real machine (fxp ethernet interface - supports link state reporting, as far as I understad). Both worked ok. Index: ip_carp.c =================================================================== RCS file: /opt/freebsd-cvs/src/sys/netinet/ip_carp.c,v retrieving revision 1.27.2.8 diff -c -r1.27.2.8 ip_carp.c *** ip_carp.c 25 Sep 2006 13:01:59 -0000 1.27.2.8 --- ip_carp.c 13 Oct 2006 11:11:08 -0000 *************** *** 2116,2122 **** { CARP_SCLOCK_ASSERT(sc); ! if (sc->sc_carpdev->if_link_state != LINK_STATE_UP || !(sc->sc_carpdev->if_flags & IFF_UP)) { sc->sc_flags_backup = SC2IFP(sc)->if_flags; SC2IFP(sc)->if_flags &= ~IFF_UP; --- 2116,2122 ---- { CARP_SCLOCK_ASSERT(sc); ! if (sc->sc_carpdev->if_link_state == LINK_STATE_DOWN || !(sc->sc_carpdev->if_flags & IFF_UP)) { sc->sc_flags_backup = SC2IFP(sc)->if_flags; SC2IFP(sc)->if_flags &= ~IFF_UP; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610131221.k9DCL3DR014155>