Date: Mon, 2 Jun 2014 22:50:25 +0000 From: Anuranjan Shukla <anshukla@juniper.net> To: John-Mark Gurney <jmg@funkthat.com>, Gleb Smirnoff <glebius@freebsd.org> Cc: Marcel Moolenaar <marcel@xcllnt.net>, Rui Paulo <rpaulo@freebsd.org>, "freebsd-arch@FreeBSD.org Arch" <freebsd-arch@freebsd.org> Subject: Re: Roadmap for ifnet(9) for FreeBSD 11 Message-ID: <CFB24D20.17096%anshukla@juniper.net> In-Reply-To: <20140602223801.GC43976@funkthat.com> References: <FA49AADC-A853-49F0-B80C-F0FBA1219177@xcllnt.net> <B00C215B-F87E-4C14-AC61-4C2A0D4822B8@FreeBSD.org> <20140529040425.GT50679@glebius.int.ru> <20140602223801.GC43976@funkthat.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi John, The first email in this thread from Marcel has the schedule: On 5/28/14, 9:34 AM, "Marcel Moolenaar" <marcel@xcllnt.net> wrote: <=8Bsnip=8B> Schedule: late May 2014 Juniper adds accessor methods. Access via void *, that inside if.c is re-casted to (struct ifnet *). This =B3ugly=B2 moment is required to keep unconverted drivers compilable and will go away shortly after. 1st week June 2014 Juniper commits few converted drivers. June - July All drivers are being converted. Gleb volunteers, but this should be done by as many hands as possible. August 2014 '#define if_t void *' is removed. 'typedef if_t struct ifnet *' is added. actual struct ifnet is hidden. 2014/2015 Better APIs developed and improved, actual ifnet representation becomes variable sized. New networking stack improvements are already unblocked at this moment. 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>=20 >> R> > All, >> R> >=20 >> 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> >=20 >> R> > There were at least 3 efforts on fixing this: >> R> >=20 >> 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> >=20 >> 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> >=20 >> 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>=20 >> 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. >>=20 >> 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: >>=20 >> struct ifnet; >> typedef struct ifnet * if_t; >>=20 >> 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? > >--=20 > 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?CFB24D20.17096%anshukla>