Date: Thu, 7 Nov 2002 10:36:04 -0800 (PST) From: Julian Elischer <julian@elischer.org> To: Steve Tremblett <sjt@cisco.com> Cc: freebsd-net@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: input source for network application Message-ID: <Pine.BSF.4.21.0211071028180.5860-100000@InterJet.elischer.org> In-Reply-To: <20021107121857.F264@sjt-u10.cisco.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 7 Nov 2002, Steve Tremblett wrote: > 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. Also look at ng_etf the ethertype filter.. it is designed to connect to an ether node and filter out packets with a particular ethertype. yuo could alter it to examine for a particular tcp port number too. > > 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. yes that would work.. you would get a copy of all packets entering the machine. > > 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? :) No you have the right idea. One possibility I am looking at is adding a netgraph hook onto ipfw so one could grab a packet on ipfw and force it out to a netgraph hook. > > Thanks all :) > > -- > Steve Tremblett > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0211071028180.5860-100000>