Date: Fri, 06 Aug 2004 15:07:53 -0700 From: Maksim Yevmenkin <maksim.yevmenkin@savvis.net> To: cokane@cokane.org Cc: hackers@freebsd.org Subject: Re: Network interface RUNNING and UP flags Message-ID: <41140139.5080803@savvis.net> In-Reply-To: <346a8022040806145018a5e18@mail.gmail.com> References: <346a8022040806145018a5e18@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------090001030208020407050106 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit > 2) Is there a way to set this interface flag without assigning an IPv4 > address (or any address for that matter) first? > > Mainly for number two, I would like to be able to run interfaces > bridged together without having to also give all of them addresses. please try the attached (untested!) patch. it should set iff_running flag on the interface as soon as the control device is opened. max --------------090001030208020407050106 Content-Type: text/plain; name="if_tap.c.diff.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="if_tap.c.diff.txt" --- if_tap.c.orig Fri Aug 6 15:02:06 2004 +++ if_tap.c Fri Aug 6 15:04:14 2004 @@ -336,15 +336,15 @@ tapopen(dev, flag, mode, td) struct cdev *dev; int flag; int mode; struct thread *td; { struct tap_softc *tp = NULL; - int error; + int error, s; if ((error = suser(td)) != 0) return (error); if ((dev2unit(dev) & CLONE_UNITMASK) > TAPMAXUNIT) return (ENXIO); @@ -365,14 +365,19 @@ return (EBUSY); } bcopy(tp->arpcom.ac_enaddr, tp->ether_addr, sizeof(tp->ether_addr)); tp->tap_pid = td->td_proc->p_pid; tp->tap_flags |= TAP_OPEN; mtx_unlock(&tp->tap_mtx); + + s = splimp(); + tp->tap_if.if_flags |= IFF_RUNNING; + tp->tap_if.if_flags &= ~IFF_OACTIVE; + splx(s); TAPDEBUG("%s is open. minor = %#x\n", tp->tap_if.if_xname, minor(dev)); return (0); } /* tapopen */ --------------090001030208020407050106--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41140139.5080803>