Hello again,
After doing some more debugging, I have come a bit closer to answering
my question. However, there is one thing still puzzling me.
I wrote a small application that uses select to multiplex between stdin
and the kernelsocket. When a netfilter-packet arrives, the packet_id is
registered in a list and the callback function returns 1. The user can
input the id of the packet he or she wants to have sent, and I use
nfq_set_verdict to allow the packet to continue its journey through the
kernel.
When using this application, the same as with the test application
occurs. If I don't allow any packets to continue through the kernel,
netfilter_queue stops delivering new packets to the application after a
little while (recv/select just blocks). However, when I input a corret
id and allow the kernel to continue sending a packet, netfilter
deliveres a new packet immideatly (where packet_id ==
prev_highest_packet_id + 1). So, my question now is, why do
netfilter_queue stop delivering new packets in the first place? I have
tried both tweaking the queue lenght (using nfnl_recv_bufsiz) and
setting it to extremely high values, and played around with the
proc-variables that control network memory consumption.
Thanks in advance for any help,
Kristian
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html