Date: Thu, 30 Jul 2009 22:34:04 GMT From: Gabor Pali <pgj@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 166842 for review Message-ID: <200907302234.n6UMY47h041229@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=166842 Change 166842 by pgj@petymeg-current on 2009/07/30 22:34:04 Add support for AH statistics. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#51 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#48 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#18 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#56 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#51 (text+ko) ==== @@ -89,8 +89,10 @@ #define NETSTAT_PFKEY_IN_MSGTYPE_MAX 256 #define NETSTAT_PFKEY_OUT_MSGTYPE_MAX 256 -/* ESP: */ +/* IPsec: */ #define NETSTAT_ESP_HIST_MAX ESP_ALG_MAX +#define NETSTAT_AH_HIST_MAX AH_ALG_MAX + /* Enum for TCP states: */ enum tcp_state { @@ -156,6 +158,7 @@ #ifdef IPSEC stat_pfkey, stat_ESP, + stat_AH, #endif stat_MAX, stat_Invalid, @@ -208,6 +211,7 @@ #ifdef IPSEC struct pfkey_stat; struct esp_stat; +struct ah_stat; #endif __BEGIN_DECLS @@ -974,5 +978,29 @@ u_int32_t netstat_esps_get_crypto(const struct esp_stat *); u_int32_t netstat_esps_get_tunnel(const struct esp_stat *); u_int32_t netstat_esps_get_hist(const struct esp_stat *, int); + +const struct ah_stat *netstat_get_ahstats(const struct stat_type *); +const char *netstat_ipsec_ahname(int); + +u_int32_t netstat_ahs_get_hdrops(const struct ah_stat *); +u_int32_t netstat_ahs_get_nopf(const struct ah_stat *); +u_int32_t netstat_ahs_get_notdb(const struct ah_stat *); +u_int32_t netstat_ahs_get_badkcr(const struct ah_stat *); +u_int32_t netstat_ahs_get_badauth(const struct ah_stat *); +u_int32_t netstat_ahs_get_noxform(const struct ah_stat *); +u_int32_t netstat_ahs_get_qfull(const struct ah_stat *); +u_int32_t netstat_ahs_get_wrap(const struct ah_stat *); +u_int32_t netstat_ahs_get_replay(const struct ah_stat *); +u_int32_t netstat_ahs_get_badauthl(const struct ah_stat *); +u_int32_t netstat_ahs_get_input(const struct ah_stat *); +u_int32_t netstat_ahs_get_output(const struct ah_stat *); +u_int32_t netstat_ahs_get_invalid(const struct ah_stat *); +u_int64_t netstat_ahs_get_ibytes(const struct ah_stat *); +u_int64_t netstat_ahs_get_obytes(const struct ah_stat *); +u_int32_t netstat_ahs_get_toobig(const struct ah_stat *); +u_int32_t netstat_ahs_get_pdrops(const struct ah_stat *); +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); #endif /* !IPSEC */ #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#48 (text+ko) ==== @@ -68,6 +68,7 @@ #ifdef IPSEC #include <netipsec/keysock.h> #include <netipsec/esp_var.h> +#include <netipsec/ah_var.h> #endif #include "netstat.h" @@ -380,6 +381,10 @@ struct esp_stat { struct espstat s; }; + +struct ah_stat { + struct ahstat s; +}; #endif /* Timestamp type. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#18 (text+ko) ==== @@ -89,6 +89,7 @@ #ifdef IPSEC { PFKEYSTAT_VERSION, "net.key.stats", "_pfkeystat" }, { ESPSTAT_VERSION, "net.inet.esp.stats", "_espstat" }, + { AHSTAT_VERSION, "net.inet.ah.stats", "_ahstat" }, #endif }; ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#56 (text+ko) ==== @@ -1938,6 +1938,40 @@ #undef ESP_ACC #undef ESP_ACC64 #undef ESP_ACCA + +#define AH_ACC(field) \ + STATS_ACCX(u_int32_t,ah,field,ahs_##field) + +#define AH_ACC64(field) \ + STATS_ACCX(u_int64_t,ah,field,ahs_##field) + +#define AH_ACCA(field,size) \ + STATS_ACCXA(u_int32_t,ah,field,ahs_##field,size) + +STATS_GET(ah,AH); +AH_ACC(hdrops); +AH_ACC(nopf); +AH_ACC(notdb); +AH_ACC(badkcr); +AH_ACC(badauth); +AH_ACC(noxform); +AH_ACC(qfull); +AH_ACC(wrap); +AH_ACC(replay); +AH_ACC(badauthl); +AH_ACC(input); +AH_ACC(output); +AH_ACC(invalid); +AH_ACC64(ibytes); +AH_ACC64(obytes); +AH_ACC(toobig); +AH_ACC(pdrops); +AH_ACC(crypto); +AH_ACC(tunnel); +AH_ACCA(hist,AH_ALG_MAX); +#undef AH_ACC +#undef AH_ACC64 +#undef AH_ACCA #endif /* !IPSEC */ static const char *icmpnames[ICMP_MAXTYPE + 1] = { @@ -2299,6 +2333,31 @@ { -1, NULL }, }; +static struct val2str ipsec_ahnames[] = { + { SADB_AALG_NONE, "none" }, + { SADB_AALG_MD5HMAC, "hmac-md5" }, + { SADB_AALG_SHA1HMAC, "hmac-sha1" }, + { SADB_X_AALG_MD5, "md5" }, + { SADB_X_AALG_SHA, "sha" }, + { SADB_X_AALG_NULL, "null" }, +#ifdef SADB_X_AALG_SHA2_256 + { SADB_X_AALG_SHA2_256, "hmac-sha2-256" }, +#endif +#ifdef SADB_X_AALG_SHA2_384 + { SADB_X_AALG_SHA2_512, "hmac-sha2-384" }, +#endif +#ifdef SADB_X_AALG_SHA2_512 + { SADB_X_AALG_SHA2_512, "hmac-sha2-512" }, +#endif +#ifdef SADB_X_AALG_RIPEMD160HMAC + { SADB_X_AALG_RIPEMD160HMAC, "hmac-ripemd160" }, +#endif +#ifdef SADB_X_AALG_AES_XCBC_MAC + { SADB_X_AALG_AES_XCBC_MAC, "aes-xcbc-mac" }, +#endif + { -1, NULL }, +}; + const char * resolve_val2str_name(int proto, const struct val2str *name) { @@ -2324,6 +2383,12 @@ } const char * +netstat_ipsec_ahname(int proto) +{ + return (resolve_val2str_name(proto, ipsec_ahnames)); +} + +const char * routename(in_addr_t in, int numeric) { char *cp;help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907302234.n6UMY47h041229>
