From owner-freebsd-net@FreeBSD.ORG Mon Feb 20 02:59:58 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 620AE106566C; Mon, 20 Feb 2012 02:59:58 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) by mx1.freebsd.org (Postfix) with ESMTP id 117F88FC17; Mon, 20 Feb 2012 02:59:57 +0000 (UTC) Received: from julian-mac.elischer.org (c-67-180-24-15.hsd1.ca.comcast.net [67.180.24.15]) (authenticated bits=0) by vps1.elischer.org (8.14.4/8.14.4) with ESMTP id q1K2xsO1050766 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Sun, 19 Feb 2012 18:59:56 -0800 (PST) (envelope-from julian@freebsd.org) Message-ID: <4F41B789.7050705@freebsd.org> Date: Sun, 19 Feb 2012 19:01:29 -0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.26) Gecko/20120129 Thunderbird/3.1.18 MIME-Version: 1.0 To: Marcel Moolenaar References: <338757D1-6B1E-49CF-983F-5D5851066FD3@xcllnt.net> <20120217135320.GJ55075@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit 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: Mon, 20 Feb 2012 02:59:58 -0000 On 2/17/12 7:48 AM, Marcel Moolenaar wrote: > 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. > The trouble is that core debugging is not doable via methods i.e. netstat -i | -I interface [-abdhntW] [-f address_family] [-M core] [-N system] becomes much more difficult to achieve.