count select_called, multi_read_used and multi_read_exceeded
This commit is contained in:
parent
0ab682e580
commit
ddfdb8e32a
4 changed files with 20 additions and 24 deletions
28
l2tpns.c
28
l2tpns.c
|
|
@ -4,7 +4,7 @@
|
|||
// Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced
|
||||
// vim: sw=8 ts=8
|
||||
|
||||
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.72 2004-12-16 23:40:31 bodea Exp $";
|
||||
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.73 2004-12-17 00:28:00 bodea Exp $";
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <assert.h>
|
||||
|
|
@ -2367,14 +2367,11 @@ static void mainloop(void)
|
|||
int tun_pkts = 0;
|
||||
int cluster_pkts = 0;
|
||||
|
||||
INC_STAT(select_ready, n);
|
||||
|
||||
// nsctl commands
|
||||
if (FD_ISSET(controlfd, &r))
|
||||
{
|
||||
alen = sizeof(addr);
|
||||
processcontrol(buf, recvfrom(controlfd, buf, sizeof(buf), MSG_WAITALL, (void *) &addr, &alen), &addr, alen);
|
||||
STAT(select_processed);
|
||||
n--;
|
||||
}
|
||||
|
||||
|
|
@ -2386,7 +2383,6 @@ static void mainloop(void)
|
|||
if (FD_ISSET(radfds[i], &r))
|
||||
{
|
||||
processrad(buf, recv(radfds[i], buf, sizeof(buf), 0), i);
|
||||
STAT(select_processed);
|
||||
n--;
|
||||
}
|
||||
}
|
||||
|
|
@ -2406,21 +2402,17 @@ static void mainloop(void)
|
|||
else
|
||||
LOG(0, 0, 0, "accept error: %s\n", strerror(errno));
|
||||
|
||||
STAT(select_processed);
|
||||
n--;
|
||||
}
|
||||
|
||||
#ifdef BGP
|
||||
for (i = 0; i < BGP_NUM_PEERS; i++)
|
||||
{
|
||||
int isr = bgp_set[i] ? !!FD_ISSET(bgp_peers[i].sock, &r) : 0;
|
||||
int isw = bgp_set[i] ? !!FD_ISSET(bgp_peers[i].sock, &w) : 0;
|
||||
int isr = bgp_set[i] ? FD_ISSET(bgp_peers[i].sock, &r) : 0;
|
||||
int isw = bgp_set[i] ? FD_ISSET(bgp_peers[i].sock, &w) : 0;
|
||||
bgp_process(&bgp_peers[i], isr, isw);
|
||||
if (isr || isw)
|
||||
{
|
||||
INC_STAT(select_processed, isr + isw);
|
||||
n -= (isr + isw);
|
||||
}
|
||||
if (isr) n--;
|
||||
if (isw) n--;
|
||||
}
|
||||
#endif /* BGP */
|
||||
|
||||
|
|
@ -2433,7 +2425,6 @@ static void mainloop(void)
|
|||
if ((s = recvfrom(udpfd, buf, sizeof(buf), 0, (void *) &addr, &alen)) > 0)
|
||||
{
|
||||
processudp(buf, s, &addr);
|
||||
STAT(select_processed);
|
||||
udp_pkts++;
|
||||
}
|
||||
else
|
||||
|
|
@ -2449,7 +2440,6 @@ static void mainloop(void)
|
|||
if ((s = read(tunfd, buf, sizeof(buf))) > 0)
|
||||
{
|
||||
processtun(buf, s);
|
||||
STAT(select_processed);
|
||||
tun_pkts++;
|
||||
}
|
||||
else
|
||||
|
|
@ -2466,7 +2456,6 @@ static void mainloop(void)
|
|||
if ((s = recvfrom(cluster_sockfd, buf, sizeof(buf), MSG_WAITALL, (void *) &addr, &alen)) > 0)
|
||||
{
|
||||
processcluster(buf, s, addr.sin_addr.s_addr);
|
||||
STAT(select_processed);
|
||||
cluster_pkts++;
|
||||
}
|
||||
else
|
||||
|
|
@ -2477,9 +2466,16 @@ static void mainloop(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (udp_pkts > 1 || tun_pkts > 1 || cluster_pkts > 1)
|
||||
STAT(multi_read_used);
|
||||
|
||||
if (c >= config->multi_read_count)
|
||||
{
|
||||
LOG(3, 0, 0, "Reached multi_read_count (%d); processed %d udp, %d tun and %d cluster packets\n",
|
||||
config->multi_read_count, udp_pkts, tun_pkts, cluster_pkts);
|
||||
|
||||
STAT(multi_read_exceeded);
|
||||
}
|
||||
}
|
||||
|
||||
// Runs on every machine (master and slaves).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue