PERFORCE change 82719 for review
Victor Cruceru
soc-victor at FreeBSD.org
Sun Aug 28 17:52:16 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=82719
Change 82719 by soc-victor at soc-victor_82.76.158.176 on 2005/08/28 17:17:29
Finished the preparations for implementing RFC 4113 (combined v4 & v6 UDP-MIB):
- deactivated the old code for RFC 2013 (v4 only UDP-MIB, obsoleted by RFC 4113)
- added the boilerplate code for the new UDP-MIB.
Affected files ...
.. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII.c#5 edit
.. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tree.def#4 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile#3 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/Makefile#3 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp46_snmp.c#3 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp_udp46.h#1 add
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp_udp46_common.c#1 add
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp_udp46_tree.def#2 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/udp46_snmp.c#1 add
Differences ...
==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII.c#5 (text+ko) ====
@@ -58,7 +58,10 @@
static u_int ifmib_reg;
static u_int ipmib_reg;
+#if 0
static u_int udpmib_reg;
+#endif /*0*/
+
static u_int ipForward_reg;
/*****************************/
@@ -112,7 +115,9 @@
static const struct asn_oid oid_ifMIB = OIDX_ifMIB;
static const struct asn_oid oid_ipMIB = OIDX_ipMIB;
+#if 0
static const struct asn_oid oid_udpMIB = OIDX_udpMIB;
+#endif /*0*/
static const struct asn_oid oid_ipForward = OIDX_ipForward;
static const struct asn_oid oid_linkDown = OIDX_linkDown;
static const struct asn_oid oid_linkUp = OIDX_linkUp;
@@ -1441,9 +1446,10 @@
"The MIB module for managing IP and ICMP implementations, but "
"excluding their management of IP routes.", module);
-
+#if 0
udpmib_reg = or_register(&oid_udpMIB,
"The MIB module for managing UDP implementations.", module);
+#endif /*0*/
ipForward_reg = or_register(&oid_ipForward,
"The MIB module for the display of CIDR multipath IP Routes.",
@@ -1501,8 +1507,9 @@
/* XXX free memory */
or_unregister(ipForward_reg);
+#if 0
or_unregister(udpmib_reg);
-
+#endif
or_unregister(ipmib_reg);
or_unregister(ifmib_reg);
==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tree.def#4 (text+ko) ====
@@ -148,17 +148,17 @@
(25 icmpOutAddrMasks COUNTER op_icmpstat GET)
(26 icmpOutAddrMaskReps COUNTER op_icmpstat GET)
)
- (7 udp
- (1 udpInDatagrams COUNTER op_udp GET)
- (2 udpNoPorts COUNTER op_udp GET)
- (3 udpInErrors COUNTER op_udp GET)
- (4 udpOutDatagrams COUNTER op_udp GET)
- (5 udpTable
- (1 udpEntry : IPADDRESS INTEGER op_udptable
- (1 udpLocalAddress IPADDRESS GET)
- (2 udpLocalPort INTEGER GET)
- ))
- )
+# (7 udp
+# (1 udpInDatagrams COUNTER op_udp GET)
+# (2 udpNoPorts COUNTER op_udp GET)
+# (3 udpInErrors COUNTER op_udp GET)
+# (4 udpOutDatagrams COUNTER op_udp GET)
+# (5 udpTable
+# (1 udpEntry : IPADDRESS INTEGER op_udptable
+# (1 udpLocalAddress IPADDRESS GET)
+# (2 udpLocalPort INTEGER GET)
+# ))
+# )
(31 ifMIB
(1 ifMIBObjects
(1 ifXTable
@@ -201,10 +201,8 @@
)
(48 ipMIB
)
- (49 tcpMIB
- )
- (50 udpMIB
- )
+# (50 udpMIB
+# )
))
(6 snmpV2
(3 snmpModules
==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile#3 (text+ko) ====
@@ -8,8 +8,8 @@
MOD= mibII
SRCS= mibII.c mibII_ifmib.c mibII_ip.c mibII_interfaces.c \
mibII_ipaddr.c mibII_ifstack.c mibII_rcvaddr.c \
- mibII_nettomedia.c mibII_udp.c mibII_route.c
-XSYM= ipAddrTable ifTable ifRcvAddressEntry ifMIB ipMIB udpMIB \
+ mibII_nettomedia.c mibII_route.c
+XSYM= ipAddrTable ifTable ifRcvAddressEntry ifMIB ipMIB \
ipForward ifIndex linkDown linkUp
MAN= snmp_mibII.3
==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/Makefile#3 (text+ko) ====
@@ -30,17 +30,19 @@
MOD= tcp_udp46
-SRCS= tcp46_snmp.c
+SRCS= tcp_udp46_common.c \
+ tcp46_snmp.c \
+ udp46_snmp.c
WARNS?= 6
#Not having NDEBUG defined will enable assertions and a lot of output on stderr
CFLAGS+= -DNDEBUG
-XSYM= tcpMIB
+XSYM= tcpMIB udpMIB
DEFS= ${MOD}_tree.def
-BMIBS= TCP-MIB.txt INET-ADDRESS-MIB.txt
+BMIBS= TCP-MIB.txt UDP-MIB.txt INET-ADDRESS-MIB.txt
.include <bsd.lib.mk>
==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp46_snmp.c#3 (text+ko) ====
@@ -85,9 +85,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include "asn1.h"
-#include "snmp.h"
-#include "snmpmod.h"
+#include "tcp_udp46.h"
#include "tcp_udp46_oid.h"
#include "tcp_udp46_tree.h"
#include <stdio.h>
@@ -101,7 +99,6 @@
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
-
#include <string.h>
#include <stdlib.h>
#include <assert.h>
@@ -109,34 +106,10 @@
#include <sys/sysctl.h>
#include <sys/file.h>
-/*forward declaration*/
-static int
-fetch_tcp(void);
-/*a debug macro*/
-#ifndef NDEBUG
-#define TCP46_DPRINTF(ARGS) do { \
- fprintf(stderr, "TCP46_DEBUG: "); \
- fprintf ARGS; \
- } while (0)
-#else
-#define TCP46_DPRINTF(ARGS)
-#endif /*NDEBUG*/
-
-/*internal id got after we'll register this module with the agent */
-static
-u_int tcp46_registration_id = 0;
-
-/* this our tcp46 module */
-static
-struct lmodule *tcp46_module;
-
-static
-const struct asn_oid oid_tcp46 = OIDX_tcpMIB; /*see the generated file tcp46_oid.h*/
-
enum TCP_ConnState {
TCPS_closed = 1,
TCPS_listen = 2,
@@ -162,11 +135,6 @@
};
-struct tcp_index {
- struct asn_oid index;
- struct xtcpcb *tp;
- pid_t so_pgid;
-};
static int
tcp_compare(const void *p1, const void *p2)
@@ -188,192 +156,14 @@
}
-struct tcp46_state {
- struct clockinfo clock_info;
- uint64_t tcp_tick; /*agent tick when this struct was last updated*/
- struct tcpstat tcpstat; /*holder for tcp stats*/
- struct xinpgen *xinpgen; /*holder for data get via sysctl; malloc'd*/
- size_t xinpgen_len; /*the allocated len of the above vector */
- u_int tcp_estab_count; /*value for the scalar named tcpCurrEstab*/
- u_int tcp4_total; /*the number of tcp4 entries*/
- u_int all_tcp_total; /*the number of tcp4 and tcp6 entries (without listeners)*/
- u_int listen_tcp_total; /*the number of tcp4 and tcp6 entries in listen state*/
-
- struct tcp_index *tcp4oids; /*snmp vector for the tcp4 table; malloc'd*/
- size_t tcp4oids_len; /*the allocated len of the above vector */
-
- struct tcp_index *all_tcpoids; /*snmp vector for the unified v4 and v6 tcp table; malloc'd*/
- size_t all_tcpoids_len; /*the allocated len of the above vector */
-
- struct tcp_index *listen_tcpoids; /*snmp vector for the unified v4 and v6 listners tcp table; malloc'd*/
- size_t listen_tcpoids_len; /*the allocated len of the above vector */
-
- struct xfile *xfiles;
- size_t xfiles_len;
- u_int xfiles_total;
-
-
-};
-
-/*
- * Global variable used to hold all the data
- * related to this SNMP module
- */
static
-struct tcp46_state tcp46_state_g;
-
-
-
-/*
- * TCP mib module initialization hook.
- * Returns 0 on success, < 0 on error
- */
-static
-int tcp46_init(struct lmodule * mod, int argc __unused, char *argv[] __unused) {
- tcp46_module = mod;
- int len = 0;
- memset(&tcp46_state_g, 0, sizeof(struct tcp46_state));
-
- len = sizeof(tcp46_state_g.clock_info);
- if (sysctlbyname("kern.clockrate", &tcp46_state_g.clock_info, &len, NULL, 0) == -1) {
- syslog(LOG_ERR, "kern.clockrate: %m");
- return (-1);
- }
- if (len != sizeof(tcp46_state_g.clock_info)) {
- syslog(LOG_ERR, "kern.clockrate: wrong size");
- return (-1);
- }
- TCP46_DPRINTF((stderr, "[%s] done.\n", __func__));
- return (0);
-}
-
-/*
- * TCP mib module finalization hook.
- * Returns 0 on success, < 0 on error
- */
-static
-int tcp46_fini(void) {
- if (tcp46_state_g.tcp4oids != NULL && tcp46_state_g.tcp4oids_len > 0) {
- free(tcp46_state_g.tcp4oids);
- tcp46_state_g.tcp4oids = NULL;
- tcp46_state_g.tcp4oids_len = 0;
- }
-
- if (tcp46_state_g.all_tcpoids != NULL && tcp46_state_g.all_tcpoids_len > 0) {
- free(tcp46_state_g.all_tcpoids);
- tcp46_state_g.all_tcpoids = NULL;
- tcp46_state_g.all_tcpoids_len = 0;
- }
-
- if (tcp46_state_g.listen_tcpoids != NULL && tcp46_state_g.listen_tcpoids_len > 0) {
- free(tcp46_state_g.listen_tcpoids);
- tcp46_state_g.listen_tcpoids = NULL;
- tcp46_state_g.listen_tcpoids_len = 0;
- }
-
- if (tcp46_state_g.xinpgen != NULL && tcp46_state_g.xinpgen_len > 0) {
- free(tcp46_state_g.xinpgen);
- tcp46_state_g.xinpgen = NULL;
- tcp46_state_g.xinpgen_len = 0;
- }
-
- if (tcp46_state_g.xfiles != NULL && tcp46_state_g.xfiles_len > 0 ) {
- free(tcp46_state_g.xfiles);
- tcp46_state_g.xfiles = NULL;
- tcp46_state_g.xfiles_len = 0;
- }
-
- if (tcp46_registration_id > 0) {
- or_unregister(tcp46_registration_id);
- }
-
-
- TCP46_DPRINTF((stderr, "[%s] done.\n", __func__));
- return (0);
-
-}
-
-/*
- * TCP mib module dump function
- * returns nothing
- */
-static
-void tcp46_dump_v(void) {
- /*nothing iteresting here for the time being*/
- TCP46_DPRINTF((stderr, "[%s] done.\n ", __func__));
-}
-
-/*
- * TCP mib module reconfiguration function
- * returns nothing
-*/
-static
-void tcp46_config_v(void) {
- /*nothing iteresting here for the time being*/
- TCP46_DPRINTF((stderr, "[%s] done.\n ", __func__));
-}
-
-
-
-static
-void tcp46_loading_v(const struct lmodule *mod __unused, int loaded)
-{
- /*nothing iteresting here for the time being*/
- if ( loaded == 1 ) {
- goto LABEL_RETURN;
- }
-LABEL_RETURN:;
- TCP46_DPRINTF((stderr,"[%s] done.\n ", __func__));
-
-}
-
-/*
- * TCP mib module start operation
- * returns nothing
- */
-static
-void tcp46_start_v(void) {
- tcp46_registration_id = or_register(&oid_tcp46,
- "The MIB module for TCP (rfc 4022).",
- tcp46_module);
- if (tcp46_registration_id == 0) {
- syslog(LOG_ERR, "Failed to register the tcp46 module." );
- return;
- }
- if (fetch_tcp() == -1) {
- syslog(LOG_ERR, "Failed to fetch the TCP data in tcp46 module." );
- }
-
- TCP46_DPRINTF((stderr, "[%s] done.\n ", __func__));
-}
-
-/*
- * This identifies the TCP mib module
- * inside the agent
- */
-const struct snmp_module config = {
- "This module implements the TCP_MIB (rfc 4022)",
- tcp46_init,
- tcp46_fini,
- NULL, /*idle function, do not use it*/
- tcp46_dump_v,
- tcp46_config_v,
- tcp46_start_v,
- NULL, /* proxy a PDU */
- tcp_udp46_ctree, /* see the generated tcp46_tree.h */
- tcp_udp46_CTREE_SIZE, /* see the generated tcp46_tree.h */
- tcp46_loading_v
-};
-
-
-static
pid_t
get_socket_pid(struct xtcpcb *tp) {
struct xfile *xf = NULL;
u_int n = 0;
assert(tp != NULL);
- for (xf = tcp46_state_g.xfiles, n = 0; n < tcp46_state_g.xfiles_total; ++n, ++xf) {
+ for (xf = tcp_udp46_state_g.xfiles, n = 0; n < tcp_udp46_state_g.xfiles_total; ++n, ++xf) {
if (xf->xf_data == NULL) {
continue;
}
@@ -482,7 +272,7 @@
static
uint32_t zero_ip6[] ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
- if (tcp46_state_g.listen_tcpoids_len == 0) {
+ if (tcp_udp46_state_g.listen_tcpoids_len == 0) {
/*empty list, no duplicates*/
return 0;
}
@@ -496,8 +286,8 @@
ntohs(tp->xt_inp.inp_lport)));
- for (_oid = tcp46_state_g.listen_tcpoids;
- _oid != listener_oid && i < tcp46_state_g.listen_tcpoids_len;
+ for (_oid = tcp_udp46_state_g.listen_tcpoids;
+ _oid != listener_oid && i < tcp_udp46_state_g.listen_tcpoids_len;
i++, _oid++ )
{
if ( _oid->index.subs[0] == IAT_ipv6 ) {
@@ -535,7 +325,7 @@
static
uint32_t zero_ip4[] = { 0, 0, 0, 0 };
- if (tcp46_state_g.listen_tcpoids_len == 0) {
+ if (tcp_udp46_state_g.listen_tcpoids_len == 0) {
/*empty list, no duplicates*/
return 0;
}
@@ -548,8 +338,8 @@
__func__,
ntohs(tp->xt_inp.in6p_lport)));
- for (_oid = tcp46_state_g.listen_tcpoids;
- _oid != listener_oid && i < tcp46_state_g.listen_tcpoids_len;
+ for (_oid = tcp_udp46_state_g.listen_tcpoids;
+ _oid != listener_oid && i < tcp_udp46_state_g.listen_tcpoids_len;
i++, _oid++ )
{
if ( _oid->index.subs[0] == IAT_ipv4 ) {
@@ -651,39 +441,39 @@
}
-static int
+int
fetch_xfiles(void) {
size_t xfilesize = 0;
struct xfile *ptr = NULL;
- tcp46_state_g.xfiles_total = 0;
+ tcp_udp46_state_g.xfiles_total = 0;
/* Get the xfiles */
if (sysctlbyname("kern.file", NULL, &xfilesize, NULL, 0)) {
syslog(LOG_ERR, "sysctlbyname(kern.file) failed: %m");
return (-1);
}
- if (xfilesize > tcp46_state_g.xfiles_len) {
- if ((ptr = realloc(tcp46_state_g.xfiles, xfilesize)) == NULL) {
+ if (xfilesize > tcp_udp46_state_g.xfiles_len) {
+ if ((ptr = realloc(tcp_udp46_state_g.xfiles, xfilesize)) == NULL) {
syslog(LOG_ERR, "%zu: %m", xfilesize);
return (-1);
}
- tcp46_state_g.xfiles = ptr;
- tcp46_state_g.xfiles_len = xfilesize;
+ tcp_udp46_state_g.xfiles = ptr;
+ tcp_udp46_state_g.xfiles_len = xfilesize;
}
- if (sysctlbyname("kern.file", tcp46_state_g.xfiles, &xfilesize, NULL, 0) < 0) {
+ if (sysctlbyname("kern.file", tcp_udp46_state_g.xfiles, &xfilesize, NULL, 0) < 0) {
syslog(LOG_ERR, "sysctlbyname(kern.file) failed: %m");
return (-1);
}
- tcp46_state_g.xfiles_total = xfilesize / sizeof(struct xfile);
+ tcp_udp46_state_g.xfiles_total = xfilesize / sizeof(struct xfile);
return 0;
}
-static int
+int
fetch_tcp(void)
{
size_t len;
@@ -692,12 +482,12 @@
struct tcp_index *oid = NULL, *all_oid = NULL, *listen_oid = NULL;
- len = sizeof(tcp46_state_g.tcpstat);
- if (sysctlbyname("net.inet.tcp.stats", &tcp46_state_g.tcpstat, &len, NULL, 0) == -1) {
+ len = sizeof(tcp_udp46_state_g.tcpstat);
+ if (sysctlbyname("net.inet.tcp.stats", &tcp_udp46_state_g.tcpstat, &len, NULL, 0) == -1) {
syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.stats) failed: %m");
return (-1);
}
- if (len != sizeof(tcp46_state_g.tcpstat)) {
+ if (len != sizeof(tcp_udp46_state_g.tcpstat)) {
syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.stats) error: wrong size");
return (-1);
}
@@ -707,32 +497,32 @@
syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.pcblist) failed: %m");
return (-1);
}
- if (len > tcp46_state_g.xinpgen_len) {
- if ((ptr = realloc(tcp46_state_g.xinpgen, len)) == NULL) {
+ if (len > tcp_udp46_state_g.xinpgen_len) {
+ if ((ptr = realloc(tcp_udp46_state_g.xinpgen, len)) == NULL) {
syslog(LOG_ERR, "%zu: %m", len);
return (-1);
}
- tcp46_state_g.xinpgen = ptr;
- tcp46_state_g.xinpgen_len = len;
+ tcp_udp46_state_g.xinpgen = ptr;
+ tcp_udp46_state_g.xinpgen_len = len;
}
- if (sysctlbyname("net.inet.tcp.pcblist", tcp46_state_g.xinpgen, &len, NULL, 0) == -1) {
+ if (sysctlbyname("net.inet.tcp.pcblist", tcp_udp46_state_g.xinpgen, &len, NULL, 0) == -1) {
syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.pcblist) failed: %m");
return (-1);
}
- tcp46_state_g.tcp_tick = get_ticks();
+ tcp_udp46_state_g.tcp_tick = get_ticks();
- tcp46_state_g.tcp_estab_count = 0;
- tcp46_state_g.tcp4_total = 0;
- tcp46_state_g.all_tcp_total = 0;
- tcp46_state_g.listen_tcp_total = 0;
+ tcp_udp46_state_g.tcp_estab_count = 0;
+ tcp_udp46_state_g.tcp4_total = 0;
+ tcp_udp46_state_g.all_tcp_total = 0;
+ tcp_udp46_state_g.listen_tcp_total = 0;
if (fetch_xfiles() != 0) {
TCP46_DPRINTF((stderr, "[%s] Failed to fetch the xfiles\n ", __func__ ));
}
/*First count the endpoints*/
- for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len);
+ for (ptr = (struct xinpgen *)(void *)((char *)tcp_udp46_state_g.xinpgen + tcp_udp46_state_g.xinpgen->xig_len);
ptr->xig_len > sizeof(struct xinpgen);
ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) {
tp = (struct xtcpcb *)ptr;
@@ -749,7 +539,7 @@
}
/* Ignore PCBs which were freed during copyout. */
- if (tp->xt_inp.inp_gencnt > tcp46_state_g.xinpgen->xig_gen ) {
+ if (tp->xt_inp.inp_gencnt > tcp_udp46_state_g.xinpgen->xig_gen ) {
TCP46_DPRINTF((stderr, "[%s] One tcp4 conn. ignored (freed during copyout)\n ",
__func__
));
@@ -759,84 +549,84 @@
if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) {
- tcp46_state_g.tcp4_total++;
+ tcp_udp46_state_g.tcp4_total++;
}
if ((tp->xt_inp.inp_vflag & (INP_IPV6 | INP_IPV6PROTO | INP_IPV4)) != 0 ) {
/*for connection in listen state we have a separate table*/
if ( tp->xt_tp.t_state != TCPS_LISTEN ) {
- tcp46_state_g.all_tcp_total++;
+ tcp_udp46_state_g.all_tcp_total++;
} else {
- tcp46_state_g.listen_tcp_total++;
+ tcp_udp46_state_g.listen_tcp_total++;
}
}
if (tp->xt_tp.t_state == TCPS_ESTABLISHED ||
tp->xt_tp.t_state == TCPS_CLOSE_WAIT) {
- tcp46_state_g.tcp_estab_count++;
+ tcp_udp46_state_g.tcp_estab_count++;
}
}
TCP46_DPRINTF((stderr, "[%s] Got %d tcp4 connections, %d tcp{4,6} connections, %d tcp{4,6} listeners.\n ",
__func__,
- tcp46_state_g.tcp4_total,
- tcp46_state_g.all_tcp_total,
- tcp46_state_g.listen_tcp_total));
+ tcp_udp46_state_g.tcp4_total,
+ tcp_udp46_state_g.all_tcp_total,
+ tcp_udp46_state_g.listen_tcp_total));
/*Then reallocate the SNMP holder for v4 if needed*/
- if (tcp46_state_g.tcp4oids_len < tcp46_state_g.tcp4_total) {
- oid = realloc(tcp46_state_g.tcp4oids,
- tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0]));
+ if (tcp_udp46_state_g.tcp4oids_len < tcp_udp46_state_g.tcp4_total) {
+ oid = realloc(tcp_udp46_state_g.tcp4oids,
+ tcp_udp46_state_g.tcp4_total * sizeof(tcp_udp46_state_g.tcp4oids[0]));
if (oid == NULL) {
- free(tcp46_state_g.tcp4oids);
- tcp46_state_g.tcp4oids_len = 0;
+ free(tcp_udp46_state_g.tcp4oids);
+ tcp_udp46_state_g.tcp4oids_len = 0;
return (0);
}
- tcp46_state_g.tcp4oids = oid;
- tcp46_state_g.tcp4oids_len = tcp46_state_g.tcp4_total;
+ tcp_udp46_state_g.tcp4oids = oid;
+ tcp_udp46_state_g.tcp4oids_len = tcp_udp46_state_g.tcp4_total;
}
/*Then reallocate the SNMP holder for v4 & v6 if needed*/
- if (tcp46_state_g.all_tcpoids_len < tcp46_state_g.all_tcp_total) {
- all_oid = realloc(tcp46_state_g.all_tcpoids,
- tcp46_state_g.all_tcp_total * sizeof(tcp46_state_g.all_tcpoids[0]));
+ if (tcp_udp46_state_g.all_tcpoids_len < tcp_udp46_state_g.all_tcp_total) {
+ all_oid = realloc(tcp_udp46_state_g.all_tcpoids,
+ tcp_udp46_state_g.all_tcp_total * sizeof(tcp_udp46_state_g.all_tcpoids[0]));
if (all_oid == NULL) {
- free(tcp46_state_g.all_tcpoids);
- tcp46_state_g.all_tcpoids_len = 0;
+ free(tcp_udp46_state_g.all_tcpoids);
+ tcp_udp46_state_g.all_tcpoids_len = 0;
return (0);
}
- tcp46_state_g.all_tcpoids = all_oid;
- tcp46_state_g.all_tcpoids_len = tcp46_state_g.all_tcp_total;
+ tcp_udp46_state_g.all_tcpoids = all_oid;
+ tcp_udp46_state_g.all_tcpoids_len = tcp_udp46_state_g.all_tcp_total;
}
/*Then reallocate the SNMP holder for v4 & v6 listeners if needed*/
- if (tcp46_state_g.listen_tcpoids_len < tcp46_state_g.listen_tcp_total) {
- listen_oid = realloc(tcp46_state_g.listen_tcpoids,
- tcp46_state_g.listen_tcp_total * sizeof(tcp46_state_g.listen_tcpoids[0]));
+ if (tcp_udp46_state_g.listen_tcpoids_len < tcp_udp46_state_g.listen_tcp_total) {
+ listen_oid = realloc(tcp_udp46_state_g.listen_tcpoids,
+ tcp_udp46_state_g.listen_tcp_total * sizeof(tcp_udp46_state_g.listen_tcpoids[0]));
if (listen_oid == NULL) {
- free(tcp46_state_g.listen_tcpoids);
- tcp46_state_g.listen_tcpoids_len = 0;
+ free(tcp_udp46_state_g.listen_tcpoids);
+ tcp_udp46_state_g.listen_tcpoids_len = 0;
return (0);
}
- tcp46_state_g.listen_tcpoids = listen_oid;
- tcp46_state_g.listen_tcpoids_len = tcp46_state_g.listen_tcp_total;
+ tcp_udp46_state_g.listen_tcpoids = listen_oid;
+ tcp_udp46_state_g.listen_tcpoids_len = tcp_udp46_state_g.listen_tcp_total;
}
/*Finally fill in the SNMP indexes*/
- memset(tcp46_state_g.tcp4oids, 0,
- tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0]) );
+ memset(tcp_udp46_state_g.tcp4oids, 0,
+ tcp_udp46_state_g.tcp4_total * sizeof(tcp_udp46_state_g.tcp4oids[0]) );
- memset(tcp46_state_g.all_tcpoids, 0,
- tcp46_state_g.all_tcp_total * sizeof(tcp46_state_g.all_tcpoids[0]) );
+ memset(tcp_udp46_state_g.all_tcpoids, 0,
+ tcp_udp46_state_g.all_tcp_total * sizeof(tcp_udp46_state_g.all_tcpoids[0]) );
- memset(tcp46_state_g.listen_tcpoids, 0,
- tcp46_state_g.listen_tcp_total * sizeof(tcp46_state_g.listen_tcpoids[0]) );
+ memset(tcp_udp46_state_g.listen_tcpoids, 0,
+ tcp_udp46_state_g.listen_tcp_total * sizeof(tcp_udp46_state_g.listen_tcpoids[0]) );
- oid = tcp46_state_g.tcp4oids;
- all_oid = tcp46_state_g.all_tcpoids;
- listen_oid = tcp46_state_g.listen_tcpoids;
+ oid = tcp_udp46_state_g.tcp4oids;
+ all_oid = tcp_udp46_state_g.all_tcpoids;
+ listen_oid = tcp_udp46_state_g.listen_tcpoids;
- for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len);
+ for (ptr = (struct xinpgen *)(void *)((char *)tcp_udp46_state_g.xinpgen + tcp_udp46_state_g.xinpgen->xig_len);
ptr->xig_len > sizeof(struct xinpgen);
ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) {
tp = (struct xtcpcb *)ptr;
@@ -847,7 +637,7 @@
}
/* Ignore PCBs which were freed during copyout. */
- if (tp->xt_inp.inp_gencnt > tcp46_state_g.xinpgen->xig_gen ) {
+ if (tp->xt_inp.inp_gencnt > tcp_udp46_state_g.xinpgen->xig_gen ) {
continue;
}
if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) {
@@ -870,8 +660,8 @@
listen_oid++;
} else {
/*this was a duplicate one*/
- assert(tcp46_state_g.listen_tcp_total > 1);
- tcp46_state_g.listen_tcp_total--;
+ assert(tcp_udp46_state_g.listen_tcp_total > 1);
+ tcp_udp46_state_g.listen_tcp_total--;
}
}
@@ -890,8 +680,8 @@
listen_oid++;
} else {
/*this was a duplicate one*/
- assert(tcp46_state_g.listen_tcp_total > 1);
- tcp46_state_g.listen_tcp_total--;
+ assert(tcp_udp46_state_g.listen_tcp_total > 1);
+ tcp_udp46_state_g.listen_tcp_total--;
}
}
@@ -901,23 +691,23 @@
TCP46_DPRINTF((stderr, "[%s] Got %d tcp{4,6} DISTINCT listeners.\n ",
__func__,
- tcp46_state_g.listen_tcp_total));
+ tcp_udp46_state_g.listen_tcp_total));
/*Keep the lists sorted ins SNMP index ordering*/
- qsort( tcp46_state_g.tcp4oids,
- tcp46_state_g.tcp4_total,
- sizeof(tcp46_state_g.tcp4oids[0]),
+ qsort( tcp_udp46_state_g.tcp4oids,
+ tcp_udp46_state_g.tcp4_total,
+ sizeof(tcp_udp46_state_g.tcp4oids[0]),
tcp_compare);
- qsort( tcp46_state_g.all_tcpoids,
- tcp46_state_g.all_tcp_total,
- sizeof(tcp46_state_g.all_tcpoids[0]),
+ qsort( tcp_udp46_state_g.all_tcpoids,
+ tcp_udp46_state_g.all_tcp_total,
+ sizeof(tcp_udp46_state_g.all_tcpoids[0]),
tcp_compare);
- qsort( tcp46_state_g.listen_tcpoids,
- tcp46_state_g.listen_tcp_total,
- sizeof(tcp46_state_g.listen_tcpoids[0]),
+ qsort( tcp_udp46_state_g.listen_tcpoids,
+ tcp_udp46_state_g.listen_tcp_total,
+ sizeof(tcp_udp46_state_g.listen_tcpoids[0]),
tcp_compare);
@@ -1166,7 +956,7 @@
}
}
- if (tcp46_state_g.tcp_tick < this_tick)
+ if (tcp_udp46_state_g.tcp_tick < this_tick)
if (fetch_tcp() == -1)
return (SNMP_ERR_GENERR);
@@ -1176,7 +966,7 @@
value->v.integer = 4; /* Van Jacobson */
break;
-#define hz (tcp46_state_g.clock_info.hz)
+#define hz (tcp_udp46_state_g.clock_info.hz)
case LEAF_tcpRtoMin:
value->v.integer = 1000 * TCPTV_MIN / hz;
@@ -1191,42 +981,42 @@
break;
case LEAF_tcpActiveOpens:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_connattempt;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_connattempt;
break;
case LEAF_tcpPassiveOpens:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_accepts;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_accepts;
break;
case LEAF_tcpAttemptFails:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_conndrops;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_conndrops;
break;
case LEAF_tcpEstabResets:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_drops;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_drops;
break;
case LEAF_tcpCurrEstab:
- value->v.uint32 = tcp46_state_g.tcp_estab_count;
+ value->v.uint32 = tcp_udp46_state_g.tcp_estab_count;
break;
case LEAF_tcpInSegs:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_rcvtotal;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_rcvtotal;
break;
case LEAF_tcpOutSegs:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_sndtotal -
- tcp46_state_g.tcpstat.tcps_sndrexmitpack;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_sndtotal -
+ tcp_udp46_state_g.tcpstat.tcps_sndrexmitpack;
break;
case LEAF_tcpRetransSegs:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_sndrexmitpack;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_sndrexmitpack;
break;
case LEAF_tcpInErrs:
- value->v.uint32 = tcp46_state_g.tcpstat.tcps_rcvbadsum +
- tcp46_state_g.tcpstat.tcps_rcvbadoff +
- tcp46_state_g.tcpstat.tcps_rcvshort;
+ value->v.uint32 = tcp_udp46_state_g.tcpstat.tcps_rcvbadsum +
+ tcp_udp46_state_g.tcpstat.tcps_rcvbadoff +
+ tcp_udp46_state_g.tcpstat.tcps_rcvshort;
break;
case LEAF_tcpOutRsts:
@@ -1234,12 +1024,12 @@
break;
case LEAF_tcpHCInSegs:
- value->v.counter64 = tcp46_state_g.tcpstat.tcps_rcvtotal;
+ value->v.counter64 = tcp_udp46_state_g.tcpstat.tcps_rcvtotal;
break;
case LEAF_tcpHCOutSegs:
- value->v.counter64 = tcp46_state_g.tcpstat.tcps_sndtotal -
- tcp46_state_g.tcpstat.tcps_sndrexmitpack;
+ value->v.counter64 = tcp_udp46_state_g.tcpstat.tcps_sndtotal -
+ tcp_udp46_state_g.tcpstat.tcps_sndrexmitpack;
break;
default :
@@ -1260,26 +1050,26 @@
{
u_int i;
- if (tcp46_state_g.tcp_tick < this_tick)
+ if (tcp_udp46_state_g.tcp_tick < this_tick)
if (fetch_tcp() == -1)
return (SNMP_ERR_GENERR);
switch (op) {
case SNMP_OP_GETNEXT:
- for (i = 0; i < tcp46_state_g.tcp4_total; i++)
- if (index_compare(&value->var, sub, &tcp46_state_g.tcp4oids[i].index) < 0)
+ for (i = 0; i < tcp_udp46_state_g.tcp4_total; i++)
+ if (index_compare(&value->var, sub, &tcp_udp46_state_g.tcp4oids[i].index) < 0)
break;
- if (i == tcp46_state_g.tcp4_total)
+ if (i == tcp_udp46_state_g.tcp4_total)
return (SNMP_ERR_NOSUCHNAME);
- index_append(&value->var, sub, &tcp46_state_g.tcp4oids[i].index);
+ index_append(&value->var, sub, &tcp_udp46_state_g.tcp4oids[i].index);
break;
case SNMP_OP_GET:
- for (i = 0; i < tcp46_state_g.tcp4_total; i++)
- if (index_compare(&value->var, sub, &tcp46_state_g.tcp4oids[i].index) == 0)
+ for (i = 0; i < tcp_udp46_state_g.tcp4_total; i++)
+ if (index_compare(&value->var, sub, &tcp_udp46_state_g.tcp4oids[i].index) == 0)
break;
- if (i == tcp46_state_g.tcp4_total)
+ if (i == tcp_udp46_state_g.tcp4_total)
return (SNMP_ERR_NOSUCHNAME);
break;
@@ -1291,15 +1081,15 @@
return (SNMP_ERR_WRONG_VALUE);
}
- for (i = 0; i < tcp46_state_g.tcp4_total; i++)
+ for (i = 0; i < tcp_udp46_state_g.tcp4_total; i++)
if (index_compare(&value->var, sub,
- &tcp46_state_g.tcp4oids[i].index) == 0)
+ &tcp_udp46_state_g.tcp4oids[i].index) == 0)
break;
- if (i == tcp46_state_g.tcp4_total)
+ if (i == tcp_udp46_state_g.tcp4_total)
return (SNMP_ERR_NOSUCHNAME);
- if (drop_tcp_conn(&tcp46_state_g.tcp4oids[i].index, 1) != 0) {
+ if (drop_tcp_conn(&tcp_udp46_state_g.tcp4oids[i].index, 1) != 0) {
return (SNMP_ERR_NOSUCHNAME);
}
return (SNMP_ERR_NOERROR);
@@ -1317,7 +1107,7 @@
switch (value->var.subs[sub - 1]) {
case LEAF_tcpConnState:
- switch (tcp46_state_g.tcp4oids[i].tp->xt_tp.t_state) {
+ switch (tcp_udp46_state_g.tcp4oids[i].tp->xt_tp.t_state) {
case TCPS_CLOSED:
value->v.integer = TCPS_closed;
@@ -1358,28 +1148,28 @@
}
break;
- assert(tcp46_state_g.tcp4oids[i].index.len == 10);
+ assert(tcp_udp46_state_g.tcp4oids[i].index.len == 10);
case LEAF_tcpConnLocalAddress:
- value->v.ipaddress[0] = tcp46_state_g.tcp4oids[i].index.subs[0];
- value->v.ipaddress[1] = tcp46_state_g.tcp4oids[i].index.subs[1];
- value->v.ipaddress[2] = tcp46_state_g.tcp4oids[i].index.subs[2];
- value->v.ipaddress[3] = tcp46_state_g.tcp4oids[i].index.subs[3];
+ value->v.ipaddress[0] = tcp_udp46_state_g.tcp4oids[i].index.subs[0];
+ value->v.ipaddress[1] = tcp_udp46_state_g.tcp4oids[i].index.subs[1];
+ value->v.ipaddress[2] = tcp_udp46_state_g.tcp4oids[i].index.subs[2];
+ value->v.ipaddress[3] = tcp_udp46_state_g.tcp4oids[i].index.subs[3];
break;
case LEAF_tcpConnLocalPort:
- value->v.integer = tcp46_state_g.tcp4oids[i].index.subs[4];
+ value->v.integer = tcp_udp46_state_g.tcp4oids[i].index.subs[4];
break;
case LEAF_tcpConnRemAddress:
- value->v.ipaddress[0] = tcp46_state_g.tcp4oids[i].index.subs[5];
- value->v.ipaddress[1] = tcp46_state_g.tcp4oids[i].index.subs[6];
- value->v.ipaddress[2] = tcp46_state_g.tcp4oids[i].index.subs[7];
- value->v.ipaddress[3] = tcp46_state_g.tcp4oids[i].index.subs[8];
+ value->v.ipaddress[0] = tcp_udp46_state_g.tcp4oids[i].index.subs[5];
+ value->v.ipaddress[1] = tcp_udp46_state_g.tcp4oids[i].index.subs[6];
+ value->v.ipaddress[2] = tcp_udp46_state_g.tcp4oids[i].index.subs[7];
+ value->v.ipaddress[3] = tcp_udp46_state_g.tcp4oids[i].index.subs[8];
break;
case LEAF_tcpConnRemPort:
- value->v.integer = tcp46_state_g.tcp4oids[i].index.subs[9];
+ value->v.integer = tcp_udp46_state_g.tcp4oids[i].index.subs[9];
break;
}
return (SNMP_ERR_NOERROR);
@@ -1395,31 +1185,31 @@
{
u_int i;
- if (tcp46_state_g.tcp_tick < this_tick)
+ if (tcp_udp46_state_g.tcp_tick < this_tick)
if (fetch_tcp() == -1)
return (SNMP_ERR_GENERR);
switch (op) {
case SNMP_OP_GETNEXT:
- for (i = 0; i < tcp46_state_g.all_tcp_total; i++)
+ for (i = 0; i < tcp_udp46_state_g.all_tcp_total; i++)
if (index_compare(&value->var, sub,
- &tcp46_state_g.all_tcpoids[i].index) < 0)
+ &tcp_udp46_state_g.all_tcpoids[i].index) < 0)
break;
- if (i == tcp46_state_g.all_tcp_total)
+ if (i == tcp_udp46_state_g.all_tcp_total)
return (SNMP_ERR_NOSUCHNAME);
index_append(&value->var, sub,
- &tcp46_state_g.all_tcpoids[i].index);
+ &tcp_udp46_state_g.all_tcpoids[i].index);
break;
case SNMP_OP_GET:
- for (i = 0; i < tcp46_state_g.all_tcp_total; i++)
+ for (i = 0; i < tcp_udp46_state_g.all_tcp_total; i++)
if (index_compare(&value->var, sub,
- &tcp46_state_g.all_tcpoids[i].index) == 0)
+ &tcp_udp46_state_g.all_tcpoids[i].index) == 0)
break;
- if (i == tcp46_state_g.all_tcp_total)
+ if (i == tcp_udp46_state_g.all_tcp_total)
return (SNMP_ERR_NOSUCHNAME);
break;
@@ -1431,15 +1221,15 @@
return (SNMP_ERR_WRONG_VALUE);
}
- for (i = 0; i < tcp46_state_g.all_tcp_total; i++)
+ for (i = 0; i < tcp_udp46_state_g.all_tcp_total; i++)
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list