A netgraph question.

2008-11-01 Thread Joe Pellegrino


I was wondering if this was the correct list to ask a few questions 
related to netgraph. If not could someone point me to the right one?


---jdp

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


A netgraph question.

2008-11-01 Thread Joe Pellegrino


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


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: A netgraph question.

2008-11-01 Thread Bryant Eadon


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]


Re: A netgraph question.

2008-11-01 Thread Bryant Eadon


Bryant Eadon wrote:


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 ?


Whoops.  Wrong thread.  Please ignore.

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]