Date: Mon, 2 Jun 2014 16:10:09 -0700 From: John-Mark Gurney <jmg@funkthat.com> To: Anuranjan Shukla <anshukla@juniper.net> Cc: "freebsd-arch@FreeBSD.org Arch" <freebsd-arch@freebsd.org>, Gleb Smirnoff <glebius@freebsd.org>, Rui Paulo <rpaulo@freebsd.org>, Marcel Moolenaar <marcel@xcllnt.net> Subject: Re: Roadmap for ifnet(9) for FreeBSD 11 Message-ID: <20140602231009.GE43976@funkthat.com> In-Reply-To: <CFB24D20.17096%anshukla@juniper.net> References: <FA49AADC-A853-49F0-B80C-F0FBA1219177@xcllnt.net> <B00C215B-F87E-4C14-AC61-4C2A0D4822B8@FreeBSD.org> <20140529040425.GT50679@glebius.int.ru> <20140602223801.GC43976@funkthat.com> <CFB24D20.17096%anshukla@juniper.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Anuranjan Shukla wrote this message on Mon, Jun 02, 2014 at 22:50 +0000: > Hi John, > The first email in this thread from Marcel has the schedule: Weird, I read the schedule twice and still missed this: > August 2014 '#define if_t void *' is removed. > 'typedef if_t struct ifnet *' is added. > actual struct ifnet is hidden. My apologies... > On 6/2/14, 3:38 PM, "John-Mark Gurney" <jmg@funkthat.com> wrote: > > >Gleb Smirnoff wrote this message on Thu, May 29, 2014 at 08:04 +0400: > >> On Wed, May 28, 2014 at 08:48:11PM -0700, Rui Paulo wrote: > >> R> On May 28, 2014, at 9:34, Marcel Moolenaar <marcel@xcllnt.net> wrote: > >> R> > >> R> > All, > >> R> > > >> R> > The ifnet structure represents a network interface. Right now it > >> R> > is known to all NIC drivers as well as to all protocols. This > >> R> > means that whenever we change the structure, we need at minimum > >> R> > recompile all drivers, but usually also change them. This severely > >> R> > slow downs the development in this area and also makes it hard, if > >> R> > not, impossible to merge things back to stable branches. > >> R> > > >> R> > There were at least 3 efforts on fixing this: > >> R> > > >> R> > 1) Juniper???s JUNOS is a FreeBSD based operating system that has > >> R> > its own (alternative) network stack, but that leverages the > >> R> > network drivers from FreeBSD. Juniper mechanically changed all > >> R> > ifnet dereferences to to accessor methods. This could have > >> R> > been incorporated as early as 2011, but lacked good follow > >> R> > through. Marcel Moolenaar was prime contact for this. > >> R> > > >> R> > 2) Andre Oppermann was sponsored in 2013 by the FreeBSD > >> R> > Foundation to make ifnet(9) opaque. This is not complete as of > >> R> > the time of this writing. > >> R> > > >> R> > 3) Gleb Smirnoff also planned to work on opaque ifnet(9), but > >> R> > that always has been delayed due to 1) and 2). > >> R> > >> R> This is indeed needed, but it would be nice to understand what would > >>happen if the community has comments about your patch. Will Juniper be > >>able to integrate back those comments? For example, I think the type > >>"if_t" should be "ifnet_t". Another comment I have is: why do you have > >>to cast if_t to (struct ifnet *) in all the accessor methods? It would > >>be better to create a private header typedef'ing if_t to struct ifnet, > >>avoiding the copy & paste casting. > >> > >> Because for now patch supports compiling unconverted drivers. This > >>requires > >> to pass 'void *' as argument. When all drivers are converted, this will > >>be > >> removed. In if_var.h we would have: > >> > >> struct ifnet; > >> typedef struct ifnet * if_t; > >> > >> All casts to (struct ifnet *) will go away. > > > >When? The schedule did not have a time frame on when this will happen.. > >Will it be this year? Next year? Next decade? > > > >-- > > John-Mark Gurney Voice: +1 415 225 5579 > > > > "All that I will do, has been done, All that I have, has not." > > _______________________________________________ > freebsd-arch@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arch > To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140602231009.GE43976>