Joe Pellegrino wrote:
OK so here it goes. I actually have two seperate questions involving
netgraph, I am new to this subject so please bare with me. If there is a
better way to achieve these goals too, please suggest them but I think
netgraph is the way to go.
The first part involves allowing a userland program to communicate with
a kernel module, similar to how netlink works in Linux. The second part
involves intercepting network packets and possibly manipulating them
before they are allowed to proceed, similar to how netfilter works. I
believe I can do both of these with the netgraph (ng_socket and possibly
ng_ether). I haven't looked closely at ng_ether yet so I'll focus on
ng_socket.
I have been able to create a ng_socket (Control and Data) using the
socket call as described in "All About NetGraphs" and the man page. I've
also been able to 'name' the node using bind. I was able to verify this
using ngctl. I know (from the man page) I should eventually be able to
send/receive using the sendto/recvfrom functions once the connection is
established. But beyond this I don't know how to proceed. So the
question is what are the next steps. For example:
Although I see a named netgraph node there are no hooks. ng_socket says
it supports an arbitrary number of hooks so how do I create the hooks?
Then of course how do I connect them.
Of course I realize that I proabably need to create a node on the kernel
side so which type of netgraph node would be suggested? How is it
created and then hooked to the ng_socket?
Again I am looking to allow some IPC between a userland program and a
kernel module similar to the Linux netlink. I've been through most man
pages and can't seem to find a lot of good documentation or example code
so I am hoping to get some pointers here. BTW If this is the wrong list
please directly to the right place to ask. Thanks in advance.
---jdp
Have you looked into how "systat -ifstat" works ?
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"