mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 20:04:11 +00:00
Set the RCVBUF and SNDBUF sizes to the maximum possible amount to
handle traffic under duress. Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com> Reviewed-by: Ayan Banerjee <ayan@cumulusnetworks.com>
This commit is contained in:
parent
d06ccd4768
commit
a78d75b04c
@ -165,6 +165,9 @@ ospf_sock_init (void)
|
||||
{
|
||||
int ospf_sock;
|
||||
int ret, hincl = 1;
|
||||
int bufsize = (8 * 1024 * 1024);
|
||||
int optval;
|
||||
socklen_t optlen = sizeof(optval);
|
||||
|
||||
if ( ospfd_privs.change (ZPRIVS_RAISE) )
|
||||
zlog_err ("ospf_sock_init: could not raise privs, %s",
|
||||
@ -224,6 +227,39 @@ ospf_sock_init (void)
|
||||
safe_strerror (errno) );
|
||||
}
|
||||
|
||||
if ((ret = setsockopt (ospf_sock, SOL_SOCKET, SO_RCVBUF,
|
||||
&bufsize, sizeof (bufsize))) < 0)
|
||||
{
|
||||
zlog_err ("Couldn't increase raw rbuf size: %s\n", safe_strerror(errno));
|
||||
}
|
||||
|
||||
if ((ret = getsockopt (ospf_sock, SOL_SOCKET, SO_RCVBUF,
|
||||
&optval, &optlen)) < 0)
|
||||
{
|
||||
zlog_err("getsockopt of SO_RCVBUF failed with error %s\n", safe_strerror(errno));
|
||||
}
|
||||
if (optval < bufsize)
|
||||
{
|
||||
zlog_err("Unable to SO_RCVBUF to %d, set to %d\n", bufsize, optval);
|
||||
}
|
||||
|
||||
|
||||
if ((ret = setsockopt (ospf_sock, SOL_SOCKET, SO_SNDBUF,
|
||||
&bufsize, sizeof (bufsize))) < 0)
|
||||
{
|
||||
zlog_err ("Couldn't increase raw wbuf size: %s\n", safe_strerror(errno));
|
||||
}
|
||||
|
||||
if ((ret = getsockopt (ospf_sock, SOL_SOCKET, SO_SNDBUF,
|
||||
&optval, &optlen)) < 0)
|
||||
{
|
||||
zlog_err ("getsockopt of SO_SNDBUF failed with error %s\n", safe_strerror(errno));
|
||||
}
|
||||
if (optval < bufsize)
|
||||
{
|
||||
zlog_err ("Unable to SO_SNDBUF to %d, set to %d\n", bufsize, optval);
|
||||
}
|
||||
|
||||
return ospf_sock;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user