From owner-freebsd-net Wed Apr 28 21:39:39 1999 Delivered-To: freebsd-net@freebsd.org Received: from bubba.whistle.com (s205m7.whistle.com [207.76.205.7]) by hub.freebsd.org (Postfix) with ESMTP id DA7C21509E for ; Wed, 28 Apr 1999 21:39:37 -0700 (PDT) (envelope-from archie@whistle.com) Received: (from archie@localhost) by bubba.whistle.com (8.9.2/8.9.2) id VAA89472; Wed, 28 Apr 1999 21:39:02 -0700 (PDT) From: Archie Cobbs Message-Id: <199904290439.VAA89472@bubba.whistle.com> Subject: Re: NetGraph and PPP In-Reply-To: from Kris Kennaway at "Apr 26, 99 01:06:09 am" To: kkennawa@physics.adelaide.edu.au (Kris Kennaway) Date: Wed, 28 Apr 1999 21:39:01 -0700 (PDT) Cc: net@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL38 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Kris Kennaway writes: > I've been taking a look at the Whistle netgraph code, and it looks very > interesting. What is the status of work on the mpd code wrt netgraph > integration? > > I'm interested in doing some work on this - can anyone suggest a simple > project I can cut my teeth on? Mpd works great with netgraph, as witnessed by thousands of InterJets out in the field :-) For our ISDN driver we took some proprietary 3rd party code (that we can't donate to FreeBSD obviously) and wrapped it up in a netgraph node. It's very convenient. For example, we could do frame relay over ISDN very easily if we wanted to (though nobody does that). Actually we wrote two nodes, the ISDN device node (which has three hooks: B1, B2, and D as you might expect) and another node that represents the ISDN stack. For the ISDN stack node, control messages are used to do things like set the switch type and SPIDs, dial, answer, etc. It hooks up to the device node obviously. A great project in this area would be to take the i4b code and make it look like a netgraph node that presents the same "API", ie. an ISDN stack node. Then we already have an mpd device type that knows how to use this node for PPP (which we can donate). I can send you the node's header file if you're interested in tackling this. Then mpd will work with i4b. Also, as well as netgraphifying the "top end" of i4b, we could netgraphify the "bottom end" device drivers to make all the different hardware types supported by i4b look like netgraph nodes. Ours (for the Siemens IPAC chip in S and U interface configurations) could then plug directly into i4b. We could probably donate this too. Other ideas for netgraph nodes we've had.. 1. Convert ipfw into a netgraph node 2. Write a node type that implements DPF: http://www.pdos.lcs.mit.edu/~engler/dpf.html 3. Revamped PPP node with separate node types for compression, encryption, etc. This is probably my next project, to push all PPP data packet processing into the kernel and obliviate the need for the existing kernel PPP drivers. 4. Make the entire networking stack netgraph based, supporting dynamic loading of networking stacks such as IP, IPX, etc. Similarly, IP protocols themselves (TCP, UDP, GRE, etc) could be netgraph nodes. I think #4 is a bit of a pipe dream.. for one, it would never pass the DG filter :-) Our request to put the netgraph source into the FreeBSD tree has been rejected (so far)... so the current patch set may need tweaking to compile right now. More people using and playing with it might bring it's demand over the threshold... this is a kind of chicken-and-egg problem in itself. -Archie ___________________________________________________________________________ Archie Cobbs * Whistle Communications, Inc. * http://www.whistle.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message