queue buffer size increasing howto?
Banszki Gabor
banszki.gabor at chello.hu
Sat Sep 4 10:16:14 CEST 2004
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..
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