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