On Win2K which is the third platform this app must run on,
I can set the receive buffer to more or less any size I
wish, and Win2K is therefore able to survive the storm.
Any ideas on how I can change this on Linux (or Solaris
for that matter)? Will I have to recompile the kernel?
--
+------------------------+-------------------------------------------+
| Terje A. Bergesen | ter...@yahoo.com |
| Santa Monica, CA | http://terje.bivrost.com/ |
| Living it, loving it | http://ingrid.bivrost.com/ |
>I am developing an app that will received quite a few UDP
>packages over a very short period of time. The problem is
>that I am not able to do this properly on Linux (or Solaris
>for that matter) at this point in time since I can not set
>the SO_RCVBUF larger than 64K.
I believed this is governed by the Solaris ndd setting for /dev/udp
of udp_max_buf.
(ndd -set /dev/udp udp_max_buf <value>)
The default appears to be 256K.
Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
On Linux, echo the new maximum you want for the RCVBUF into
/proc/sys/net/core/rmem_max. wmem_max in the same directory is for
setting the maximum SNDBUF.
- Kevin.
Have you already tried using threads,and having one that is dedicated to
waiting on the socket and draining the buffer as quickly as possible?
--
[Trim the no-bots from my address to reply to me by email!]
[ Do NOT email-CC me on posts. Pick one or the other.]
S.1618 http://thomas.loc.gov/cgi-bin/bdquery/z?d105:SN01618:@@@D
http://www.spamlaws.com/state/ca1.html
On Linux, with a 2.4 series kernel, you can change the value of
/proc/sys/net/core/rmem_max
>I am developing an app that will received quite a few UDP
>packages over a very short period of time. The problem is
>that I am not able to do this properly on Linux (or Solaris
>for that matter) at this point in time since I can not set
>the SO_RCVBUF larger than 64K.
>..
>Any ideas on how I can change this on Linux (or Solaris
>for that matter)? Will I have to recompile the kernel?
Well, since SO_RCVBUF seems to be the buffersize for _one_ packet, it
appears that the call is checking that the size doesn't exceed the max
size of a single packet under IPv4.
Perhaps if you explained your intended technique, we could come up with
an alternate solution.
--
Lew Pitcher
Master Codewright and JOAT-in-training
Registered (Slackware) Linux User #112576 (http://counter.li.org/)
So long as the storm is short enough...
rick jones
--
Wisdom Teeth are impacted, people are affected by the effects of events.
these opinions are mine, all mine; HP might not want them anyway... :)
feel free to post, OR email to raj in cup.hp.com but NOT BOTH...