From owner-freebsd-arch@FreeBSD.ORG Mon Jun 2 23:07:34 2014 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9733184E; Mon, 2 Jun 2014 23:07:34 +0000 (UTC) Received: from h2.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "funkthat.com", Issuer "funkthat.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 6D5012EB1; Mon, 2 Jun 2014 23:07:34 +0000 (UTC) Received: from h2.funkthat.com (localhost [127.0.0.1]) by h2.funkthat.com (8.14.3/8.14.3) with ESMTP id s52N7XLO027432 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 2 Jun 2014 16:07:33 -0700 (PDT) (envelope-from jmg@h2.funkthat.com) Received: (from jmg@localhost) by h2.funkthat.com (8.14.3/8.14.3/Submit) id s52N7X2d027431; Mon, 2 Jun 2014 16:07:33 -0700 (PDT) (envelope-from jmg) Date: Mon, 2 Jun 2014 16:07:33 -0700 From: John-Mark Gurney To: Anuranjan Shukla Subject: Re: Roadmap for ifnet(9) for FreeBSD 11 Message-ID: <20140602230733.GD43976@funkthat.com> Mail-Followup-To: Anuranjan Shukla , Gleb Smirnoff , Rui Paulo , "freebsd-arch@FreeBSD.org Arch" , Marcel Moolenaar References: <20140529040425.GT50679@glebius.int.ru> <20140602223801.GC43976@funkthat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Operating-System: FreeBSD 7.2-RELEASE i386 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.2 (h2.funkthat.com [127.0.0.1]); Mon, 02 Jun 2014 16:07:33 -0700 (PDT) Cc: Marcel Moolenaar , Gleb Smirnoff , Rui Paulo , "freebsd-arch@FreeBSD.org Arch" X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jun 2014 23:07:34 -0000 Anuranjan Shukla wrote this message on Mon, Jun 02, 2014 at 22:50 +0000: > The first email in this thread from Marcel has the schedule: > > On 5/28/14, 9:34 AM, "Marcel Moolenaar" wrote: > > > Schedule: > > late May 2014 Juniper adds accessor methods. Access via > void *, that inside if.c is re-casted to > (struct ifnet *). This ³ugly² moment is > required to keep unconverted drivers > compilable and will go away shortly after. So, shortly... My definition of shortly is three months... So, will that happen? There are an awful lot of drivers to convert and test, in a short amount of time... The reason I'm asking is that often people say, oh, it'll happen shortly w/ things like docs, code fixes, etc, and then 2 years go by and nothing happens... I know that converting ALL drivers is not a simple matter considering how many different drivers we have in the tree, so shortly seems optimistic to me... > On 6/2/14, 3:38 PM, "John-Mark Gurney" 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 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."