I sent this is Julian a bit ago. I guess he has been too busy to look into it, so I hope someone else in the community can help! Somehow I lost the screen shot I refer to in the message below (but its trival to reproduce).
In brief, the code below is supposed to create a KLD/psuedo-device that I can pass netgraph items to, then later on have a netgraph node get them back. Thanks! --Nate ---------------------------- Original Message ---------------------------- Subject: Re: netgraph question From: "Nathanael M Van Vorst" <[EMAIL PROTECTED]> Date: Wed, July 27, 2005 11:55 am To: "Julian Elischer" <[EMAIL PROTECTED]> -------------------------------------------------------------------------- Sorry my reply has taken so long. I just got back from vacation. Thank you for taking the time to help! I am attaching a bit of code I put together. Its attached as a tar (test.tar). Please note, this is just a hack I have put together to see if I can get this concept working before I integrate this into my larger, rather complicated, project. The tar should extract into a directory named "test". "test" will have the folling structure: test |-echodev.c |-Makefile |-wireMe |-nateNode |-nate.h |-nate.c |-Makefile |-registerNode |-reg.c |-reg.h |-Makfile The tar consits of three things: 1) <nateNode>a node to receive packets, print a message to the long then drop the message, 2) <registerNode> a node that calls system module functions and passes all its items to the system module, 3) <echodev> a system module or more acturatly a psuedo-device that takes items from a node and puts them on a queue. "wireMe" just loads the correctly KLDs for me and wires up a very simple netgraph graph (which follows). <lnc0> is my ethernet device, <reg> is a registerNode and <nate> is a nateNode. <lncO> --> <reg> --> <nate> When <reg> receives the first message, it calls "setMyHook" with the destination hook to <nate>. "setMyHook" is in the echoDev and simple stores the pointer if its current pointer is NULL. After <reg> calls "setMyHook" is calls "addItem". "addItem" is also in echoDev and simply places the item at the end of the queue. Also in <reg> I have tried alot of stuff trying to see what is wrong. All the other crap is just that, crap. First, I cat echo dev. Them I cause packets to be sent to <reg> and in turn handed over to the echoDev. After I see echoDev print the syslog that it has 5 or more items, I "cat /dev/echo". cat'ing /dev/echo should case echoDev to call NG_FWD with hook that was passed in and first item that was passed in. This is where it dies. Below are the set of commands I type in the 'test' as root cd test make clean make cd nateNode make clean make cd ../registerNode make clean make cd .. ./wireme cat /dev/echo <casue packets to be send to lnc0> cat /dev/echo --then the kernel panics. The kernel core is trash so it doesnt help. I am attaching a screen shot of the panic. Thank you for all your efforts (and for netgraph)! --Nate --------------------------------------- Nathanael Van Vorst Home: [EMAIL PROTECTED] 303-274-6396 It is intuitively obvious to even the most casual of observers!
_______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"