From owner-freebsd-net Thu Nov 7 9:19: 2 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D206037B401; Thu, 7 Nov 2002 09:18:59 -0800 (PST) Received: from cisco.com (sword.cisco.com [161.44.208.100]) by mx1.FreeBSD.org (Postfix) with ESMTP id 03F7443E3B; Thu, 7 Nov 2002 09:18:59 -0800 (PST) (envelope-from sjt@cisco.com) Received: from sjt-u10.cisco.com (sjt-u10.cisco.com [10.85.30.63]) by cisco.com (8.8.5-Cisco.1/8.8.8) with ESMTP id MAA29653; Thu, 7 Nov 2002 12:18:58 -0500 (EST) Received: (sjt@localhost) by sjt-u10.cisco.com (8.8.5-Cisco.1/CISCO.WS.1.2) id MAA08616; Thu, 7 Nov 2002 12:18:57 -0500 (EST) Date: Thu, 7 Nov 2002 12:18:57 -0500 From: Steve Tremblett To: freebsd-net@freebsd.org, freebsd-hackers@freebsd.org Subject: input source for network application Message-ID: <20021107121857.F264@sjt-u10.cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org I've been toying with the idea of tackling a Netgraph TCP/IP implementation and want to hack out some skeleton netgraph nodes just to feel things out and play around with parsing. I'm somewhat confused on how to start. I'd like to be able to tinker as I go and I'd rather not have to write 5000 lines of code and complete a mini-stack before trying it out :) I'm in a bit of a bind. I want a sequence of ethernet frames to send up through this framework. Hooking to ng_ether will give me this but I am restricted to taking ALL frames (thus taking the machine offline) or orphaned frames (where I will have to write some sort of traffic generator to make frames of an invalid type). The third option here is to hack ng_ether to deliver frames out the lower hook as well as up into the kernel IP stack, thus giving me a complete stream without taking the box offline. I've gotten libnet which seems to fit the bill to generate any orphans I want, but making a stream of frames by hand is a pain. I've read about ng_tee but haven't had an opportunity to play with it. Could I hack together something like this for an input source? Would this allow for uninterrupted operation of the workstation while also giving a stream of test data? kernel ip_input() \ \-| |- upper hook-\ ng_ether ng_tee----> |- lower hook-/ | wire In case that diagram doesn't display in your mailer, I'm thinking of connecting ng_tee to recieve input from ng_ether's lower hook and pass it out through ng_ether's upper hook as well as into the input hook of my own netgraph node. Does anyone have any suggestions or ideas on tools or methods to assist me in starting this venture? Am I thinking about this problem from the right angle or is my head up my ass? :) Thanks all :) -- Steve Tremblett To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message