queue buffer size increasing howto? - solved

Banszki Gabor banszki.gabor at chello.hu
Tue Sep 7 18:30:26 CEST 2004


Hi everybody!

I solved the problem by using pthread.h

The main thread in my process is reading from the queue buffer and open
new threads for the long time tasks.

In this case I don't need to increase the buffer size of the netlink
socket.

G.




On Sat, 2004-09-04 at 10:16, Banszki Gabor wrote:
> Hi Everybody!
> 
> Thank for answer of Tobias!!
> 
> I could get the buffer size by the getsockopt (107520).
> 
> After this I was able to increase the size of buffer to 215040 by your
> suggestion:
> 
>    int size, size_len;
>    size_len = sizeof(size);
>    rv = getsockopt (fd, SOL_SOCKET, SO_RCVBUF, &size, &size_len); 
>    printf ("Oldsize of buffer: %i \n",size); { I've got 107520)
> 
>    size = 1256000;
>    rv = setsockopt (fd, SOL_SOCKET, SO_RCVBUF, &size, size_len); 
> 
>    rv = getsockopt (fd, SOL_SOCKET, SO_RCVBUF, &size, &size_len); 
>    printf ("New size of buffer: %i \n",size); ( I've got 215040 )
> 
> After this I can see the same situation with this command....
> 
>  watch -n 0 "cat /proc/net/ip_queue"
> 
> ...like earlier... 
> The maximum number is around 252 - 258, and I still get the netlink
> error message "No buffer space....."
> 
> I think it didn't help... Why?
> Maybee I should increase the SO_RCVBUF by more? But how?
> 
> Thnx..
> other tasks 
> G.
> 
> On Sun, 2004-08-22 at 16:50, Tobias DiPasquale wrote:
> > On Sun, 22 Aug 2004 15:40:16 +0200, Banszki Gabor
> > setsockopt(2):
> > 
> > int fd, rv, size = LARGE_SOCKET_BUFFER;
> > 
> > fd = socket( PF_NETLINK, SOCK_RAW, NETLINK_FIREWALL);
> > rv = setsockopt( fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof( size));
> > ...
> > 
> > > With this command: watch -n 0 "cat /proc/net/ip_queue" during my
> > > application running the biggest number of "Queue length" is 255.
> > > 
> > > I don't understand it, because the "Queue max. length" is 2048.
> > 
> > See above. You should be able to increase the size of the socket
> > receive buffer in your userspace process without changing the length
> > of ip_queue's internal packet queue, but test that out to make sure.
> > You will probably need to run the process with root privileges to
> > change your socket receive buffer size, however.
> 



More information about the netfilter mailing list