From owner-freebsd-net@FreeBSD.ORG Sat Nov 2 19:50:54 2013 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B195C335; Sat, 2 Nov 2013 19:50:54 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7E70B257E; Sat, 2 Nov 2013 19:50:54 +0000 (UTC) Received: from Julian-MBP3.local ([12.157.112.67]) (authenticated bits=0) by vps1.elischer.org (8.14.7/8.14.7) with ESMTP id rA2Johgn037781 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Sat, 2 Nov 2013 12:50:44 -0700 (PDT) (envelope-from julian@freebsd.org) Message-ID: <5275578E.40000@freebsd.org> Date: Sat, 02 Nov 2013 12:50:38 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: Andre Oppermann , Luigi Rizzo , Adrian Chadd , Navdeep Parhar , Randall Stewart , "freebsd-net@freebsd.org" Subject: Re: [long] Network stack -> NIC flow (was Re: MQ Patch.) References: <40948D79-E890-4360-A3F2-BEC34A389C7E@lakerest.net> <526FFED9.1070704@freebsd.org> <52701D8B.8050907@freebsd.org> <527022AC.4030502@FreeBSD.org> <527027CE.5040806@freebsd.org> <5270309E.5090403@FreeBSD.org> <5270462B.8050305@freebsd.org> <20131030050056.GA84368@onelab2.iet.unipi.it> <52717A62.7040600@freebsd.org> In-Reply-To: <52717A62.7040600@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Nov 2013 19:50:54 -0000 On 10/30/13, 2:30 PM, Andre Oppermann wrote: > > Now ifnet has become very complex and large and should be brought > back to its original purpose of the being the logical layer 3 interface > abstraction. There isn't necessarily a 1:1 mapping from one ifnet > instance to one hardware interface. In fact there are pure logical > ifnets (gre, tun, ...), direct hardware ifnets (simple network > interfaces > like fxp(4)), and multiple logic interfaces on top a single hardware > (vlan, lagg, ...). Depending on the ifnets purpose the backend can > be very different. Thus I want to decouple the current implicit > notion of ifnet==hardware with associated queuing and such. Instead > it should become a layer 3 abstraction inside the kernel again and > delegate all lower layers to appropriate protocol, layer 2, and > hardware specific implementations. I have thought for a long time that the 'if' should be split in two.. the top half really is just common for everything.. it is basically what tun is.. (or ng_iface for that matter)