From owner-freebsd-net@FreeBSD.ORG Fri Feb 17 15:48:36 2012 Return-Path: Delivered-To: net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CA264106564A for ; Fri, 17 Feb 2012 15:48:36 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 96F348FC0A for ; Fri, 17 Feb 2012 15:48:36 +0000 (UTC) Received: from dhcp-192-168-2-14.wifi.xcllnt.net (atm.xcllnt.net [70.36.220.6]) (authenticated bits=0) by mail.xcllnt.net (8.14.5/8.14.5) with ESMTP id q1HFmUiP004045 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 17 Feb 2012 07:48:36 -0800 (PST) (envelope-from marcel@xcllnt.net) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=koi8-r From: Marcel Moolenaar In-Reply-To: <20120217135320.GJ55075@FreeBSD.org> Date: Fri, 17 Feb 2012 07:48:35 -0800 Content-Transfer-Encoding: 7bit Message-Id: References: <338757D1-6B1E-49CF-983F-5D5851066FD3@xcllnt.net> <20120217135320.GJ55075@FreeBSD.org> To: Gleb Smirnoff X-Mailer: Apple Mail (2.1257) Cc: net@FreeBSD.org Subject: Re: Abstracting struct ifnet X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Feb 2012 15:48:36 -0000 On Feb 17, 2012, at 5:53 AM, Gleb Smirnoff wrote: > M> Thoughts, feedback and suggestion are welcome, > > Is it possible to make the structure the driver points to opaque? > > Once made, that would allow us to hack on the ifnet (or on its > successor - iflogical) more aggressively without breaking ABI/API. Yes, that's the idea. Backward compatibility kinda conflicts with making struct ifnet entirely abstract, but I don't see that as a problem without solution. Only as a problem for which an acceptable solution must be found. For example: you can introduce a define that either old or new drivers use to indicate whether they need full visibility or whether an abstract type works. This then drives what is defined/declared and how it's defined/declared. -- Marcel Moolenaar marcel@xcllnt.net