Date: Thu, 30 Jul 2009 23:02:35 GMT From: Gabor Pali <pgj@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 166845 for review Message-ID: <200907302302.n6UN2Zi6043263@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=166845 Change 166845 by pgj@petymeg-current on 2009/07/30 23:01:57 Add support for IPcomp statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#52 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#49 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#19 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#57 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#52 (text+ko) ==== @@ -92,6 +92,7 @@ /* IPsec: */ #define NETSTAT_ESP_HIST_MAX ESP_ALG_MAX #define NETSTAT_AH_HIST_MAX AH_ALG_MAX +#define NETSTAT_IPCOMP_HIST_MAX IPCOMP_ALG_MAX /* Enum for TCP states: */ @@ -159,6 +160,7 @@ stat_pfkey, stat_ESP, stat_AH, + stat_IPcomp, #endif stat_MAX, stat_Invalid, @@ -212,6 +214,7 @@ struct pfkey_stat; struct esp_stat; struct ah_stat; +struct ipcomp_stat; #endif __BEGIN_DECLS @@ -1002,5 +1005,25 @@ u_int32_t netstat_ahs_get_crypto(const struct ah_stat *); u_int32_t netstat_ahs_get_tunnel(const struct ah_stat *); u_int32_t netstat_ahs_get_hist(const struct ah_stat *, int); + +const struct ipcomp_stat *netstat_get_ipcompstats(const struct stat_type *); +const char *netstat_ipsec_ipcompname(int); + +u_int32_t netstat_ipcomps_get_hdrops(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_nopf(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_notdb(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_badkcr(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_qfull(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_noxform(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_wrap(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_input(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_output(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_invalid(const struct ipcomp_stat *); +u_int64_t netstat_ipcomps_get_ibytes(const struct ipcomp_stat *); +u_int64_t netstat_ipcomps_get_obytes(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_toobig(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_pdrops(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_crypto(const struct ipcomp_stat *); +u_int32_t netstat_ipcomps_get_hist(const struct ipcomp_stat *, int); #endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#49 (text+ko) ==== @@ -69,6 +69,7 @@ #include <netipsec/keysock.h> #include <netipsec/esp_var.h> #include <netipsec/ah_var.h> +#include <netipsec/ipcomp_var.h> #endif #include "netstat.h" @@ -385,6 +386,10 @@ struct ah_stat { struct ahstat s; }; + +struct ipcomp_stat { + struct ipcompstat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#19 (text+ko) ==== @@ -90,6 +90,7 @@ { PFKEYSTAT_VERSION, "net.key.stats", "_pfkeystat" }, { ESPSTAT_VERSION, "net.inet.esp.stats", "_espstat" }, { AHSTAT_VERSION, "net.inet.ah.stats", "_ahstat" }, + { IPCOMPSTAT_VERSION, "net.inet.ipcomp.stats", "_ipcompstat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#57 (text+ko) ==== @@ -1972,6 +1972,36 @@ #undef AH_ACC #undef AH_ACC64 #undef AH_ACCA + +#define IPCOMP_ACC(field) \ + STATS_ACCX(u_int32_t,ipcomp,field,ipcomps_##field) + +#define IPCOMP_ACC64(field) \ + STATS_ACCX(u_int64_t,ipcomp,field,ipcomps_##field) + +#define IPCOMP_ACCA(field,size) \ + STATS_ACCXA(u_int32_t,ipcomp,field,ipcomps_##field,size) + +STATS_GET(ipcomp,IPcomp); +IPCOMP_ACC(hdrops); +IPCOMP_ACC(nopf); +IPCOMP_ACC(notdb); +IPCOMP_ACC(badkcr); +IPCOMP_ACC(qfull); +IPCOMP_ACC(noxform); +IPCOMP_ACC(wrap); +IPCOMP_ACC(input); +IPCOMP_ACC(output); +IPCOMP_ACC(invalid); +IPCOMP_ACC64(ibytes); +IPCOMP_ACC64(obytes); +IPCOMP_ACC(toobig); +IPCOMP_ACC(pdrops); +IPCOMP_ACC(crypto); +IPCOMP_ACCA(hist,IPCOMP_ALG_MAX); +#undef IPCOMP_ACC +#undef IPCOMP_ACC64 +#undef IPCOMP_ACCA #endif /* !IPSEC */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { @@ -2358,6 +2388,14 @@ { -1, NULL }, }; +static struct val2str ipsec_ipcompnames[] = { + { SADB_X_CALG_NONE, "none" }, + { SADB_X_CALG_OUI, "oui" }, + { SADB_X_CALG_DEFLATE, "deflate" }, + { SADB_X_CALG_LZS, "lzs" }, + { -1, NULL }, +}; + const char * resolve_val2str_name(int proto, const struct val2str *name) { @@ -2389,6 +2427,12 @@ } const char * +netstat_ipsec_ipcompname(int proto) +{ + return (resolve_val2str_name(proto, ipsec_ipcompnames)); +} + +const char * routename(in_addr_t in, int numeric) { char *cp;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907302302.n6UN2Zi6043263>
