Skip site navigation (1)Skip section navigation (2)
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>