Prepare network statistics structures for migration to PCPU counters.

Use uint64_t as type for all fields of structures.

Changed structures: ahstat, arpstat, espstat, icmp6_ifstat, icmp6stat,
in6_ifstat, ip6stat, ipcompstat, ipipstat, ipsecstat, mrt6stat, mrtstat,
pfkeystat, pim6stat, pimstat, rip6stat, udpstat.

Discussed with:	arch@
This commit is contained in:
Andrey V. Elsukov 2013-07-09 09:32:06 +00:00
parent 37b8b2d4d8
commit c80211e3cf
21 changed files with 460 additions and 482 deletions

View File

@ -113,18 +113,18 @@ struct arpcom {
struct arpstat { struct arpstat {
/* Normal things that happen: */ /* Normal things that happen: */
u_long txrequests; /* # of ARP requests sent by this host. */ uint64_t txrequests; /* # of ARP requests sent by this host. */
u_long txreplies; /* # of ARP replies sent by this host. */ uint64_t txreplies; /* # of ARP replies sent by this host. */
u_long rxrequests; /* # of ARP requests received by this host. */ uint64_t rxrequests; /* # of ARP requests received by this host. */
u_long rxreplies; /* # of ARP replies received by this host. */ uint64_t rxreplies; /* # of ARP replies received by this host. */
u_long received; /* # of ARP packets received by this host. */ uint64_t received; /* # of ARP packets received by this host. */
u_long arp_spares[4]; /* For either the upper or lower half. */ uint64_t arp_spares[4]; /* For either the upper or lower half. */
/* Abnormal event and error counting: */ /* Abnormal event and error counting: */
u_long dropped; /* # of packets dropped waiting for a reply. */ uint64_t dropped; /* # of packets dropped waiting for a reply. */
u_long timeouts; /* # of times with entries removed */ uint64_t timeouts; /* # of times with entries removed */
/* due to timeout. */ /* due to timeout. */
u_long dupips; /* # of duplicate IPs detected. */ uint64_t dupips; /* # of duplicate IPs detected. */
}; };
/* /*

View File

@ -555,39 +555,39 @@ do { \
* of the internet control message protocol version 6. * of the internet control message protocol version 6.
*/ */
struct icmp6errstat { struct icmp6errstat {
u_quad_t icp6errs_dst_unreach_noroute; uint64_t icp6errs_dst_unreach_noroute;
u_quad_t icp6errs_dst_unreach_admin; uint64_t icp6errs_dst_unreach_admin;
u_quad_t icp6errs_dst_unreach_beyondscope; uint64_t icp6errs_dst_unreach_beyondscope;
u_quad_t icp6errs_dst_unreach_addr; uint64_t icp6errs_dst_unreach_addr;
u_quad_t icp6errs_dst_unreach_noport; uint64_t icp6errs_dst_unreach_noport;
u_quad_t icp6errs_packet_too_big; uint64_t icp6errs_packet_too_big;
u_quad_t icp6errs_time_exceed_transit; uint64_t icp6errs_time_exceed_transit;
u_quad_t icp6errs_time_exceed_reassembly; uint64_t icp6errs_time_exceed_reassembly;
u_quad_t icp6errs_paramprob_header; uint64_t icp6errs_paramprob_header;
u_quad_t icp6errs_paramprob_nextheader; uint64_t icp6errs_paramprob_nextheader;
u_quad_t icp6errs_paramprob_option; uint64_t icp6errs_paramprob_option;
u_quad_t icp6errs_redirect; /* we regard redirect as an error here */ uint64_t icp6errs_redirect; /* we regard redirect as an error here */
u_quad_t icp6errs_unknown; uint64_t icp6errs_unknown;
}; };
struct icmp6stat { struct icmp6stat {
/* statistics related to icmp6 packets generated */ /* statistics related to icmp6 packets generated */
u_quad_t icp6s_error; /* # of calls to icmp6_error */ uint64_t icp6s_error; /* # of calls to icmp6_error */
u_quad_t icp6s_canterror; /* no error 'cuz old was icmp */ uint64_t icp6s_canterror; /* no error 'cuz old was icmp */
u_quad_t icp6s_toofreq; /* no error 'cuz rate limitation */ uint64_t icp6s_toofreq; /* no error 'cuz rate limitation */
u_quad_t icp6s_outhist[256]; uint64_t icp6s_outhist[256];
/* statistics related to input message processed */ /* statistics related to input message processed */
u_quad_t icp6s_badcode; /* icmp6_code out of range */ uint64_t icp6s_badcode; /* icmp6_code out of range */
u_quad_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */ uint64_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */
u_quad_t icp6s_checksum; /* bad checksum */ uint64_t icp6s_checksum; /* bad checksum */
u_quad_t icp6s_badlen; /* calculated bound mismatch */ uint64_t icp6s_badlen; /* calculated bound mismatch */
/* /*
* number of responses: this member is inherited from netinet code, but * number of responses: this member is inherited from netinet code, but
* for netinet6 code, it is already available in icp6s_outhist[]. * for netinet6 code, it is already available in icp6s_outhist[].
*/ */
u_quad_t icp6s_reflect; uint64_t icp6s_reflect;
u_quad_t icp6s_inhist[256]; uint64_t icp6s_inhist[256];
u_quad_t icp6s_nd_toomanyopt; /* too many ND options */ uint64_t icp6s_nd_toomanyopt; /* too many ND options */
struct icmp6errstat icp6s_outerrhist; struct icmp6errstat icp6s_outerrhist;
#define icp6s_odst_unreach_noroute \ #define icp6s_odst_unreach_noroute \
icp6s_outerrhist.icp6errs_dst_unreach_noroute icp6s_outerrhist.icp6errs_dst_unreach_noroute
@ -607,13 +607,13 @@ struct icmp6stat {
#define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option #define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option
#define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect #define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect
#define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown #define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown
u_quad_t icp6s_pmtuchg; /* path MTU changes */ uint64_t icp6s_pmtuchg; /* path MTU changes */
u_quad_t icp6s_nd_badopt; /* bad ND options */ uint64_t icp6s_nd_badopt; /* bad ND options */
u_quad_t icp6s_badns; /* bad neighbor solicitation */ uint64_t icp6s_badns; /* bad neighbor solicitation */
u_quad_t icp6s_badna; /* bad neighbor advertisement */ uint64_t icp6s_badna; /* bad neighbor advertisement */
u_quad_t icp6s_badrs; /* bad router advertisement */ uint64_t icp6s_badrs; /* bad router advertisement */
u_quad_t icp6s_badra; /* bad router advertisement */ uint64_t icp6s_badra; /* bad router advertisement */
u_quad_t icp6s_badredirect; /* bad redirect message */ uint64_t icp6s_badredirect; /* bad redirect message */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -206,19 +206,19 @@ struct bw_upcall {
* The kernel's multicast routing statistics. * The kernel's multicast routing statistics.
*/ */
struct mrtstat { struct mrtstat {
u_long mrts_mfc_lookups; /* # forw. cache hash table hits */ uint64_t mrts_mfc_lookups; /* # forw. cache hash table hits */
u_long mrts_mfc_misses; /* # forw. cache hash table misses */ uint64_t mrts_mfc_misses; /* # forw. cache hash table misses */
u_long mrts_upcalls; /* # calls to multicast routing daemon */ uint64_t mrts_upcalls; /* # calls to multicast routing daemon */
u_long mrts_no_route; /* no route for packet's origin */ uint64_t mrts_no_route; /* no route for packet's origin */
u_long mrts_bad_tunnel; /* malformed tunnel options */ uint64_t mrts_bad_tunnel; /* malformed tunnel options */
u_long mrts_cant_tunnel; /* no room for tunnel options */ uint64_t mrts_cant_tunnel; /* no room for tunnel options */
u_long mrts_wrong_if; /* arrived on wrong interface */ uint64_t mrts_wrong_if; /* arrived on wrong interface */
u_long mrts_upq_ovflw; /* upcall Q overflow */ uint64_t mrts_upq_ovflw; /* upcall Q overflow */
u_long mrts_cache_cleanups; /* # entries with no upcalls */ uint64_t mrts_cache_cleanups; /* # entries with no upcalls */
u_long mrts_drop_sel; /* pkts dropped selectively */ uint64_t mrts_drop_sel; /* pkts dropped selectively */
u_long mrts_q_overflow; /* pkts dropped - Q overflow */ uint64_t mrts_q_overflow; /* pkts dropped - Q overflow */
u_long mrts_pkt2large; /* pkts dropped - size > BKT SIZE */ uint64_t mrts_pkt2large; /* pkts dropped - size > BKT SIZE */
u_long mrts_upq_sockfull; /* upcalls dropped - socket full */ uint64_t mrts_upq_sockfull; /* upcalls dropped - socket full */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -46,17 +46,17 @@
* PIM statistics kept in the kernel * PIM statistics kept in the kernel
*/ */
struct pimstat { struct pimstat {
u_quad_t pims_rcv_total_msgs; /* total PIM messages received */ uint64_t pims_rcv_total_msgs; /* total PIM messages received */
u_quad_t pims_rcv_total_bytes; /* total PIM bytes received */ uint64_t pims_rcv_total_bytes; /* total PIM bytes received */
u_quad_t pims_rcv_tooshort; /* rcvd with too few bytes */ uint64_t pims_rcv_tooshort; /* rcvd with too few bytes */
u_quad_t pims_rcv_badsum; /* rcvd with bad checksum */ uint64_t pims_rcv_badsum; /* rcvd with bad checksum */
u_quad_t pims_rcv_badversion; /* rcvd bad PIM version */ uint64_t pims_rcv_badversion; /* rcvd bad PIM version */
u_quad_t pims_rcv_registers_msgs; /* rcvd regs. msgs (data only) */ uint64_t pims_rcv_registers_msgs; /* rcvd regs. msgs (data only) */
u_quad_t pims_rcv_registers_bytes; /* rcvd regs. bytes (data only) */ uint64_t pims_rcv_registers_bytes; /* rcvd regs. bytes (data only) */
u_quad_t pims_rcv_registers_wrongiif; /* rcvd regs. on wrong iif */ uint64_t pims_rcv_registers_wrongiif; /* rcvd regs. on wrong iif */
u_quad_t pims_rcv_badregisters; /* rcvd invalid registers */ uint64_t pims_rcv_badregisters; /* rcvd invalid registers */
u_quad_t pims_snd_registers_msgs; /* sent regs. msgs (data only) */ uint64_t pims_snd_registers_msgs; /* sent regs. msgs (data only) */
u_quad_t pims_snd_registers_bytes; /* sent regs. bytes (data only) */ uint64_t pims_snd_registers_bytes; /* sent regs. bytes (data only) */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -75,22 +75,22 @@ struct udpcb {
struct udpstat { struct udpstat {
/* input statistics: */ /* input statistics: */
u_long udps_ipackets; /* total input packets */ uint64_t udps_ipackets; /* total input packets */
u_long udps_hdrops; /* packet shorter than header */ uint64_t udps_hdrops; /* packet shorter than header */
u_long udps_badsum; /* checksum error */ uint64_t udps_badsum; /* checksum error */
u_long udps_nosum; /* no checksum */ uint64_t udps_nosum; /* no checksum */
u_long udps_badlen; /* data length larger than packet */ uint64_t udps_badlen; /* data length larger than packet */
u_long udps_noport; /* no socket on port */ uint64_t udps_noport; /* no socket on port */
u_long udps_noportbcast; /* of above, arrived as broadcast */ uint64_t udps_noportbcast; /* of above, arrived as broadcast */
u_long udps_fullsock; /* not delivered, input socket full */ uint64_t udps_fullsock; /* not delivered, input socket full */
u_long udpps_pcbcachemiss; /* input packets missing pcb cache */ uint64_t udpps_pcbcachemiss; /* input packets missing pcb cache */
u_long udpps_pcbhashmiss; /* input packets not for hashed pcb */ uint64_t udpps_pcbhashmiss; /* input packets not for hashed pcb */
/* output statistics: */ /* output statistics: */
u_long udps_opackets; /* total output packets */ uint64_t udps_opackets; /* total output packets */
u_long udps_fastout; /* output packets on fast path */ uint64_t udps_fastout; /* output packets on fast path */
/* of no socket on port, arrived as multicast */ /* of no socket on port, arrived as multicast */
u_long udps_noportmcast; uint64_t udps_noportmcast;
u_long udps_filtermcast; /* blocked by multicast filter */ uint64_t udps_filtermcast; /* blocked by multicast filter */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -153,37 +153,37 @@ struct in6_addrpolicy {
* IPv6 interface statistics, as defined in RFC2465 Ipv6IfStatsEntry (p12). * IPv6 interface statistics, as defined in RFC2465 Ipv6IfStatsEntry (p12).
*/ */
struct in6_ifstat { struct in6_ifstat {
u_quad_t ifs6_in_receive; /* # of total input datagram */ uint64_t ifs6_in_receive; /* # of total input datagram */
u_quad_t ifs6_in_hdrerr; /* # of datagrams with invalid hdr */ uint64_t ifs6_in_hdrerr; /* # of datagrams with invalid hdr */
u_quad_t ifs6_in_toobig; /* # of datagrams exceeded MTU */ uint64_t ifs6_in_toobig; /* # of datagrams exceeded MTU */
u_quad_t ifs6_in_noroute; /* # of datagrams with no route */ uint64_t ifs6_in_noroute; /* # of datagrams with no route */
u_quad_t ifs6_in_addrerr; /* # of datagrams with invalid dst */ uint64_t ifs6_in_addrerr; /* # of datagrams with invalid dst */
u_quad_t ifs6_in_protounknown; /* # of datagrams with unknown proto */ uint64_t ifs6_in_protounknown; /* # of datagrams with unknown proto */
/* NOTE: increment on final dst if */ /* NOTE: increment on final dst if */
u_quad_t ifs6_in_truncated; /* # of truncated datagrams */ uint64_t ifs6_in_truncated; /* # of truncated datagrams */
u_quad_t ifs6_in_discard; /* # of discarded datagrams */ uint64_t ifs6_in_discard; /* # of discarded datagrams */
/* NOTE: fragment timeout is not here */ /* NOTE: fragment timeout is not here */
u_quad_t ifs6_in_deliver; /* # of datagrams delivered to ULP */ uint64_t ifs6_in_deliver; /* # of datagrams delivered to ULP */
/* NOTE: increment on final dst if */ /* NOTE: increment on final dst if */
u_quad_t ifs6_out_forward; /* # of datagrams forwarded */ uint64_t ifs6_out_forward; /* # of datagrams forwarded */
/* NOTE: increment on outgoing if */ /* NOTE: increment on outgoing if */
u_quad_t ifs6_out_request; /* # of outgoing datagrams from ULP */ uint64_t ifs6_out_request; /* # of outgoing datagrams from ULP */
/* NOTE: does not include forwrads */ /* NOTE: does not include forwrads */
u_quad_t ifs6_out_discard; /* # of discarded datagrams */ uint64_t ifs6_out_discard; /* # of discarded datagrams */
u_quad_t ifs6_out_fragok; /* # of datagrams fragmented */ uint64_t ifs6_out_fragok; /* # of datagrams fragmented */
u_quad_t ifs6_out_fragfail; /* # of datagrams failed on fragment */ uint64_t ifs6_out_fragfail; /* # of datagrams failed on fragment */
u_quad_t ifs6_out_fragcreat; /* # of fragment datagrams */ uint64_t ifs6_out_fragcreat; /* # of fragment datagrams */
/* NOTE: this is # after fragment */ /* NOTE: this is # after fragment */
u_quad_t ifs6_reass_reqd; /* # of incoming fragmented packets */ uint64_t ifs6_reass_reqd; /* # of incoming fragmented packets */
/* NOTE: increment on final dst if */ /* NOTE: increment on final dst if */
u_quad_t ifs6_reass_ok; /* # of reassembled packets */ uint64_t ifs6_reass_ok; /* # of reassembled packets */
/* NOTE: this is # after reass */ /* NOTE: this is # after reass */
/* NOTE: increment on final dst if */ /* NOTE: increment on final dst if */
u_quad_t ifs6_reass_fail; /* # of reass failures */ uint64_t ifs6_reass_fail; /* # of reass failures */
/* NOTE: may not be packet count */ /* NOTE: may not be packet count */
/* NOTE: increment on final dst if */ /* NOTE: increment on final dst if */
u_quad_t ifs6_in_mcast; /* # of inbound multicast datagrams */ uint64_t ifs6_in_mcast; /* # of inbound multicast datagrams */
u_quad_t ifs6_out_mcast; /* # of outbound multicast datagrams */ uint64_t ifs6_out_mcast; /* # of outbound multicast datagrams */
}; };
/* /*
@ -195,77 +195,77 @@ struct icmp6_ifstat {
* Input statistics * Input statistics
*/ */
/* ipv6IfIcmpInMsgs, total # of input messages */ /* ipv6IfIcmpInMsgs, total # of input messages */
u_quad_t ifs6_in_msg; uint64_t ifs6_in_msg;
/* ipv6IfIcmpInErrors, # of input error messages */ /* ipv6IfIcmpInErrors, # of input error messages */
u_quad_t ifs6_in_error; uint64_t ifs6_in_error;
/* ipv6IfIcmpInDestUnreachs, # of input dest unreach errors */ /* ipv6IfIcmpInDestUnreachs, # of input dest unreach errors */
u_quad_t ifs6_in_dstunreach; uint64_t ifs6_in_dstunreach;
/* ipv6IfIcmpInAdminProhibs, # of input administratively prohibited errs */ /* ipv6IfIcmpInAdminProhibs, # of input administratively prohibited errs */
u_quad_t ifs6_in_adminprohib; uint64_t ifs6_in_adminprohib;
/* ipv6IfIcmpInTimeExcds, # of input time exceeded errors */ /* ipv6IfIcmpInTimeExcds, # of input time exceeded errors */
u_quad_t ifs6_in_timeexceed; uint64_t ifs6_in_timeexceed;
/* ipv6IfIcmpInParmProblems, # of input parameter problem errors */ /* ipv6IfIcmpInParmProblems, # of input parameter problem errors */
u_quad_t ifs6_in_paramprob; uint64_t ifs6_in_paramprob;
/* ipv6IfIcmpInPktTooBigs, # of input packet too big errors */ /* ipv6IfIcmpInPktTooBigs, # of input packet too big errors */
u_quad_t ifs6_in_pkttoobig; uint64_t ifs6_in_pkttoobig;
/* ipv6IfIcmpInEchos, # of input echo requests */ /* ipv6IfIcmpInEchos, # of input echo requests */
u_quad_t ifs6_in_echo; uint64_t ifs6_in_echo;
/* ipv6IfIcmpInEchoReplies, # of input echo replies */ /* ipv6IfIcmpInEchoReplies, # of input echo replies */
u_quad_t ifs6_in_echoreply; uint64_t ifs6_in_echoreply;
/* ipv6IfIcmpInRouterSolicits, # of input router solicitations */ /* ipv6IfIcmpInRouterSolicits, # of input router solicitations */
u_quad_t ifs6_in_routersolicit; uint64_t ifs6_in_routersolicit;
/* ipv6IfIcmpInRouterAdvertisements, # of input router advertisements */ /* ipv6IfIcmpInRouterAdvertisements, # of input router advertisements */
u_quad_t ifs6_in_routeradvert; uint64_t ifs6_in_routeradvert;
/* ipv6IfIcmpInNeighborSolicits, # of input neighbor solicitations */ /* ipv6IfIcmpInNeighborSolicits, # of input neighbor solicitations */
u_quad_t ifs6_in_neighborsolicit; uint64_t ifs6_in_neighborsolicit;
/* ipv6IfIcmpInNeighborAdvertisements, # of input neighbor advertisements */ /* ipv6IfIcmpInNeighborAdvertisements, # of input neighbor advertisements */
u_quad_t ifs6_in_neighboradvert; uint64_t ifs6_in_neighboradvert;
/* ipv6IfIcmpInRedirects, # of input redirects */ /* ipv6IfIcmpInRedirects, # of input redirects */
u_quad_t ifs6_in_redirect; uint64_t ifs6_in_redirect;
/* ipv6IfIcmpInGroupMembQueries, # of input MLD queries */ /* ipv6IfIcmpInGroupMembQueries, # of input MLD queries */
u_quad_t ifs6_in_mldquery; uint64_t ifs6_in_mldquery;
/* ipv6IfIcmpInGroupMembResponses, # of input MLD reports */ /* ipv6IfIcmpInGroupMembResponses, # of input MLD reports */
u_quad_t ifs6_in_mldreport; uint64_t ifs6_in_mldreport;
/* ipv6IfIcmpInGroupMembReductions, # of input MLD done */ /* ipv6IfIcmpInGroupMembReductions, # of input MLD done */
u_quad_t ifs6_in_mlddone; uint64_t ifs6_in_mlddone;
/* /*
* Output statistics. We should solve unresolved routing problem... * Output statistics. We should solve unresolved routing problem...
*/ */
/* ipv6IfIcmpOutMsgs, total # of output messages */ /* ipv6IfIcmpOutMsgs, total # of output messages */
u_quad_t ifs6_out_msg; uint64_t ifs6_out_msg;
/* ipv6IfIcmpOutErrors, # of output error messages */ /* ipv6IfIcmpOutErrors, # of output error messages */
u_quad_t ifs6_out_error; uint64_t ifs6_out_error;
/* ipv6IfIcmpOutDestUnreachs, # of output dest unreach errors */ /* ipv6IfIcmpOutDestUnreachs, # of output dest unreach errors */
u_quad_t ifs6_out_dstunreach; uint64_t ifs6_out_dstunreach;
/* ipv6IfIcmpOutAdminProhibs, # of output administratively prohibited errs */ /* ipv6IfIcmpOutAdminProhibs, # of output administratively prohibited errs */
u_quad_t ifs6_out_adminprohib; uint64_t ifs6_out_adminprohib;
/* ipv6IfIcmpOutTimeExcds, # of output time exceeded errors */ /* ipv6IfIcmpOutTimeExcds, # of output time exceeded errors */
u_quad_t ifs6_out_timeexceed; uint64_t ifs6_out_timeexceed;
/* ipv6IfIcmpOutParmProblems, # of output parameter problem errors */ /* ipv6IfIcmpOutParmProblems, # of output parameter problem errors */
u_quad_t ifs6_out_paramprob; uint64_t ifs6_out_paramprob;
/* ipv6IfIcmpOutPktTooBigs, # of output packet too big errors */ /* ipv6IfIcmpOutPktTooBigs, # of output packet too big errors */
u_quad_t ifs6_out_pkttoobig; uint64_t ifs6_out_pkttoobig;
/* ipv6IfIcmpOutEchos, # of output echo requests */ /* ipv6IfIcmpOutEchos, # of output echo requests */
u_quad_t ifs6_out_echo; uint64_t ifs6_out_echo;
/* ipv6IfIcmpOutEchoReplies, # of output echo replies */ /* ipv6IfIcmpOutEchoReplies, # of output echo replies */
u_quad_t ifs6_out_echoreply; uint64_t ifs6_out_echoreply;
/* ipv6IfIcmpOutRouterSolicits, # of output router solicitations */ /* ipv6IfIcmpOutRouterSolicits, # of output router solicitations */
u_quad_t ifs6_out_routersolicit; uint64_t ifs6_out_routersolicit;
/* ipv6IfIcmpOutRouterAdvertisements, # of output router advertisements */ /* ipv6IfIcmpOutRouterAdvertisements, # of output router advertisements */
u_quad_t ifs6_out_routeradvert; uint64_t ifs6_out_routeradvert;
/* ipv6IfIcmpOutNeighborSolicits, # of output neighbor solicitations */ /* ipv6IfIcmpOutNeighborSolicits, # of output neighbor solicitations */
u_quad_t ifs6_out_neighborsolicit; uint64_t ifs6_out_neighborsolicit;
/* ipv6IfIcmpOutNeighborAdvertisements, # of output neighbor advertisements */ /* ipv6IfIcmpOutNeighborAdvertisements, # of output neighbor advertisements */
u_quad_t ifs6_out_neighboradvert; uint64_t ifs6_out_neighboradvert;
/* ipv6IfIcmpOutRedirects, # of output redirects */ /* ipv6IfIcmpOutRedirects, # of output redirects */
u_quad_t ifs6_out_redirect; uint64_t ifs6_out_redirect;
/* ipv6IfIcmpOutGroupMembQueries, # of output MLD queries */ /* ipv6IfIcmpOutGroupMembQueries, # of output MLD queries */
u_quad_t ifs6_out_mldquery; uint64_t ifs6_out_mldquery;
/* ipv6IfIcmpOutGroupMembResponses, # of output MLD reports */ /* ipv6IfIcmpOutGroupMembResponses, # of output MLD reports */
u_quad_t ifs6_out_mldreport; uint64_t ifs6_out_mldreport;
/* ipv6IfIcmpOutGroupMembReductions, # of output MLD done */ /* ipv6IfIcmpOutGroupMembReductions, # of output MLD done */
u_quad_t ifs6_out_mlddone; uint64_t ifs6_out_mlddone;
}; };
struct in6_ifreq { struct in6_ifreq {

View File

@ -121,19 +121,19 @@ struct mf6cctl {
* The kernel's multicast routing statistics. * The kernel's multicast routing statistics.
*/ */
struct mrt6stat { struct mrt6stat {
u_quad_t mrt6s_mfc_lookups; /* # forw. cache hash table hits */ uint64_t mrt6s_mfc_lookups; /* # forw. cache hash table hits */
u_quad_t mrt6s_mfc_misses; /* # forw. cache hash table misses */ uint64_t mrt6s_mfc_misses; /* # forw. cache hash table misses */
u_quad_t mrt6s_upcalls; /* # calls to multicast routing daemon */ uint64_t mrt6s_upcalls; /* # calls to multicast routing daemon */
u_quad_t mrt6s_no_route; /* no route for packet's origin */ uint64_t mrt6s_no_route; /* no route for packet's origin */
u_quad_t mrt6s_bad_tunnel; /* malformed tunnel options */ uint64_t mrt6s_bad_tunnel; /* malformed tunnel options */
u_quad_t mrt6s_cant_tunnel; /* no room for tunnel options */ uint64_t mrt6s_cant_tunnel; /* no room for tunnel options */
u_quad_t mrt6s_wrong_if; /* arrived on wrong interface */ uint64_t mrt6s_wrong_if; /* arrived on wrong interface */
u_quad_t mrt6s_upq_ovflw; /* upcall Q overflow */ uint64_t mrt6s_upq_ovflw; /* upcall Q overflow */
u_quad_t mrt6s_cache_cleanups; /* # entries with no upcalls */ uint64_t mrt6s_cache_cleanups; /* # entries with no upcalls */
u_quad_t mrt6s_drop_sel; /* pkts dropped selectively */ uint64_t mrt6s_drop_sel; /* pkts dropped selectively */
u_quad_t mrt6s_q_overflow; /* pkts dropped - Q overflow */ uint64_t mrt6s_q_overflow; /* pkts dropped - Q overflow */
u_quad_t mrt6s_pkt2large; /* pkts dropped - size > BKT SIZE */ uint64_t mrt6s_pkt2large; /* pkts dropped - size > BKT SIZE */
u_quad_t mrt6s_upq_sockfull; /* upcalls dropped - socket full */ uint64_t mrt6s_upq_sockfull; /* upcalls dropped - socket full */
}; };
#ifdef MRT6_OINIT #ifdef MRT6_OINIT

View File

@ -181,39 +181,39 @@ struct ip6_pktopts {
*/ */
struct ip6stat { struct ip6stat {
u_quad_t ip6s_total; /* total packets received */ uint64_t ip6s_total; /* total packets received */
u_quad_t ip6s_tooshort; /* packet too short */ uint64_t ip6s_tooshort; /* packet too short */
u_quad_t ip6s_toosmall; /* not enough data */ uint64_t ip6s_toosmall; /* not enough data */
u_quad_t ip6s_fragments; /* fragments received */ uint64_t ip6s_fragments; /* fragments received */
u_quad_t ip6s_fragdropped; /* frags dropped(dups, out of space) */ uint64_t ip6s_fragdropped; /* frags dropped(dups, out of space) */
u_quad_t ip6s_fragtimeout; /* fragments timed out */ uint64_t ip6s_fragtimeout; /* fragments timed out */
u_quad_t ip6s_fragoverflow; /* fragments that exceeded limit */ uint64_t ip6s_fragoverflow; /* fragments that exceeded limit */
u_quad_t ip6s_forward; /* packets forwarded */ uint64_t ip6s_forward; /* packets forwarded */
u_quad_t ip6s_cantforward; /* packets rcvd for unreachable dest */ uint64_t ip6s_cantforward; /* packets rcvd for unreachable dest */
u_quad_t ip6s_redirectsent; /* packets forwarded on same net */ uint64_t ip6s_redirectsent; /* packets forwarded on same net */
u_quad_t ip6s_delivered; /* datagrams delivered to upper level*/ uint64_t ip6s_delivered; /* datagrams delivered to upper level*/
u_quad_t ip6s_localout; /* total ip packets generated here */ uint64_t ip6s_localout; /* total ip packets generated here */
u_quad_t ip6s_odropped; /* lost packets due to nobufs, etc. */ uint64_t ip6s_odropped; /* lost packets due to nobufs, etc. */
u_quad_t ip6s_reassembled; /* total packets reassembled ok */ uint64_t ip6s_reassembled; /* total packets reassembled ok */
u_quad_t ip6s_fragmented; /* datagrams successfully fragmented */ uint64_t ip6s_fragmented; /* datagrams successfully fragmented */
u_quad_t ip6s_ofragments; /* output fragments created */ uint64_t ip6s_ofragments; /* output fragments created */
u_quad_t ip6s_cantfrag; /* don't fragment flag was set, etc. */ uint64_t ip6s_cantfrag; /* don't fragment flag was set, etc. */
u_quad_t ip6s_badoptions; /* error in option processing */ uint64_t ip6s_badoptions; /* error in option processing */
u_quad_t ip6s_noroute; /* packets discarded due to no route */ uint64_t ip6s_noroute; /* packets discarded due to no route */
u_quad_t ip6s_badvers; /* ip6 version != 6 */ uint64_t ip6s_badvers; /* ip6 version != 6 */
u_quad_t ip6s_rawout; /* total raw ip packets generated */ uint64_t ip6s_rawout; /* total raw ip packets generated */
u_quad_t ip6s_badscope; /* scope error */ uint64_t ip6s_badscope; /* scope error */
u_quad_t ip6s_notmember; /* don't join this multicast group */ uint64_t ip6s_notmember; /* don't join this multicast group */
#define IP6S_HDRCNT 256 /* headers count */ #define IP6S_HDRCNT 256 /* headers count */
u_quad_t ip6s_nxthist[IP6S_HDRCNT]; /* next header history */ uint64_t ip6s_nxthist[IP6S_HDRCNT]; /* next header history */
u_quad_t ip6s_m1; /* one mbuf */ uint64_t ip6s_m1; /* one mbuf */
#define IP6S_M2MMAX 32 #define IP6S_M2MMAX 32
u_quad_t ip6s_m2m[IP6S_M2MMAX]; /* two or more mbuf */ uint64_t ip6s_m2m[IP6S_M2MMAX]; /* two or more mbuf */
u_quad_t ip6s_mext1; /* one ext mbuf */ uint64_t ip6s_mext1; /* one ext mbuf */
u_quad_t ip6s_mext2m; /* two or more ext mbuf */ uint64_t ip6s_mext2m; /* two or more ext mbuf */
u_quad_t ip6s_exthdrtoolong; /* ext hdr are not contiguous */ uint64_t ip6s_exthdrtoolong; /* ext hdr are not contiguous */
u_quad_t ip6s_nogif; /* no match gif found */ uint64_t ip6s_nogif; /* no match gif found */
u_quad_t ip6s_toomanyhdr; /* discarded due to too many headers */ uint64_t ip6s_toomanyhdr; /* discarded due to too many headers */
/* /*
* statistics for improvement of the source address selection * statistics for improvement of the source address selection
@ -223,26 +223,26 @@ struct ip6stat {
#define IP6S_RULESMAX 16 #define IP6S_RULESMAX 16
#define IP6S_SCOPECNT 16 #define IP6S_SCOPECNT 16
/* number of times that address selection fails */ /* number of times that address selection fails */
u_quad_t ip6s_sources_none; uint64_t ip6s_sources_none;
/* number of times that an address on the outgoing I/F is chosen */ /* number of times that an address on the outgoing I/F is chosen */
u_quad_t ip6s_sources_sameif[IP6S_SCOPECNT]; uint64_t ip6s_sources_sameif[IP6S_SCOPECNT];
/* number of times that an address on a non-outgoing I/F is chosen */ /* number of times that an address on a non-outgoing I/F is chosen */
u_quad_t ip6s_sources_otherif[IP6S_SCOPECNT]; uint64_t ip6s_sources_otherif[IP6S_SCOPECNT];
/* /*
* number of times that an address that has the same scope * number of times that an address that has the same scope
* from the destination is chosen. * from the destination is chosen.
*/ */
u_quad_t ip6s_sources_samescope[IP6S_SCOPECNT]; uint64_t ip6s_sources_samescope[IP6S_SCOPECNT];
/* /*
* number of times that an address that has a different scope * number of times that an address that has a different scope
* from the destination is chosen. * from the destination is chosen.
*/ */
u_quad_t ip6s_sources_otherscope[IP6S_SCOPECNT]; uint64_t ip6s_sources_otherscope[IP6S_SCOPECNT];
/* number of times that a deprecated address is chosen */ /* number of times that a deprecated address is chosen */
u_quad_t ip6s_sources_deprecated[IP6S_SCOPECNT]; uint64_t ip6s_sources_deprecated[IP6S_SCOPECNT];
/* number of times that each rule of source selection is applied. */ /* number of times that each rule of source selection is applied. */
u_quad_t ip6s_sources_rule[IP6S_RULESMAX]; uint64_t ip6s_sources_rule[IP6S_RULESMAX];
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -42,13 +42,13 @@
#define _NETINET6_PIM6_VAR_H_ #define _NETINET6_PIM6_VAR_H_
struct pim6stat { struct pim6stat {
u_quad_t pim6s_rcv_total; /* total PIM messages received */ uint64_t pim6s_rcv_total; /* total PIM messages received */
u_quad_t pim6s_rcv_tooshort; /* received with too few bytes */ uint64_t pim6s_rcv_tooshort; /* received with too few bytes */
u_quad_t pim6s_rcv_badsum; /* received with bad checksum */ uint64_t pim6s_rcv_badsum; /* received with bad checksum */
u_quad_t pim6s_rcv_badversion; /* received bad PIM version */ uint64_t pim6s_rcv_badversion; /* received bad PIM version */
u_quad_t pim6s_rcv_registers; /* received registers */ uint64_t pim6s_rcv_registers; /* received registers */
u_quad_t pim6s_rcv_badregisters; /* received invalid registers */ uint64_t pim6s_rcv_badregisters; /* received invalid registers */
u_quad_t pim6s_snd_registers; /* sent registers */ uint64_t pim6s_snd_registers; /* sent registers */
}; };
#if (defined(KERNEL)) || (defined(_KERNEL)) #if (defined(KERNEL)) || (defined(_KERNEL))

View File

@ -37,14 +37,14 @@
* ICMPv6 stat is counted separately. see netinet/icmp6.h * ICMPv6 stat is counted separately. see netinet/icmp6.h
*/ */
struct rip6stat { struct rip6stat {
u_quad_t rip6s_ipackets; /* total input packets */ uint64_t rip6s_ipackets; /* total input packets */
u_quad_t rip6s_isum; /* input checksum computations */ uint64_t rip6s_isum; /* input checksum computations */
u_quad_t rip6s_badsum; /* of above, checksum error */ uint64_t rip6s_badsum; /* of above, checksum error */
u_quad_t rip6s_nosock; /* no matching socket */ uint64_t rip6s_nosock; /* no matching socket */
u_quad_t rip6s_nosockmcast; /* of above, arrived as multicast */ uint64_t rip6s_nosockmcast; /* of above, arrived as multicast */
u_quad_t rip6s_fullsock; /* not delivered, input socket full */ uint64_t rip6s_fullsock; /* not delivered, input socket full */
u_quad_t rip6s_opackets; /* total output packets */ uint64_t rip6s_opackets; /* total output packets */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -48,26 +48,26 @@
#define AH_ALG_MAX 16 #define AH_ALG_MAX 16
struct ahstat { struct ahstat {
u_int32_t ahs_hdrops; /* Packet shorter than header shows */ uint64_t ahs_hdrops; /* Packet shorter than header shows */
u_int32_t ahs_nopf; /* Protocol family not supported */ uint64_t ahs_nopf; /* Protocol family not supported */
u_int32_t ahs_notdb; uint64_t ahs_notdb;
u_int32_t ahs_badkcr; uint64_t ahs_badkcr;
u_int32_t ahs_badauth; uint64_t ahs_badauth;
u_int32_t ahs_noxform; uint64_t ahs_noxform;
u_int32_t ahs_qfull; uint64_t ahs_qfull;
u_int32_t ahs_wrap; uint64_t ahs_wrap;
u_int32_t ahs_replay; uint64_t ahs_replay;
u_int32_t ahs_badauthl; /* Bad authenticator length */ uint64_t ahs_badauthl; /* Bad authenticator length */
u_int32_t ahs_input; /* Input AH packets */ uint64_t ahs_input; /* Input AH packets */
u_int32_t ahs_output; /* Output AH packets */ uint64_t ahs_output; /* Output AH packets */
u_int32_t ahs_invalid; /* Trying to use an invalid TDB */ uint64_t ahs_invalid; /* Trying to use an invalid TDB */
u_int64_t ahs_ibytes; /* Input bytes */ uint64_t ahs_ibytes; /* Input bytes */
u_int64_t ahs_obytes; /* Output bytes */ uint64_t ahs_obytes; /* Output bytes */
u_int32_t ahs_toobig; /* Packet got larger than IP_MAXPACKET */ uint64_t ahs_toobig; /* Packet got larger than IP_MAXPACKET */
u_int32_t ahs_pdrops; /* Packet blocked due to policy */ uint64_t ahs_pdrops; /* Packet blocked due to policy */
u_int32_t ahs_crypto; /* Crypto processing failure */ uint64_t ahs_crypto; /* Crypto processing failure */
u_int32_t ahs_tunnel; /* Tunnel sanity check failure */ uint64_t ahs_tunnel; /* Tunnel sanity check failure */
u_int32_t ahs_hist[AH_ALG_MAX]; /* Per-algorithm op count */ uint64_t ahs_hist[AH_ALG_MAX]; /* Per-algorithm op count */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -48,27 +48,27 @@
#define ESP_ALG_MAX 256 /* NB: could be < but skipjack is 249 */ #define ESP_ALG_MAX 256 /* NB: could be < but skipjack is 249 */
struct espstat { struct espstat {
u_int32_t esps_hdrops; /* Packet shorter than header shows */ uint64_t esps_hdrops; /* Packet shorter than header shows */
u_int32_t esps_nopf; /* Protocol family not supported */ uint64_t esps_nopf; /* Protocol family not supported */
u_int32_t esps_notdb; uint64_t esps_notdb;
u_int32_t esps_badkcr; uint64_t esps_badkcr;
u_int32_t esps_qfull; uint64_t esps_qfull;
u_int32_t esps_noxform; uint64_t esps_noxform;
u_int32_t esps_badilen; uint64_t esps_badilen;
u_int32_t esps_wrap; /* Replay counter wrapped around */ uint64_t esps_wrap; /* Replay counter wrapped around */
u_int32_t esps_badenc; /* Bad encryption detected */ uint64_t esps_badenc; /* Bad encryption detected */
u_int32_t esps_badauth; /* Only valid for transforms with auth */ uint64_t esps_badauth; /* Only valid for transforms with auth */
u_int32_t esps_replay; /* Possible packet replay detected */ uint64_t esps_replay; /* Possible packet replay detected */
u_int32_t esps_input; /* Input ESP packets */ uint64_t esps_input; /* Input ESP packets */
u_int32_t esps_output; /* Output ESP packets */ uint64_t esps_output; /* Output ESP packets */
u_int32_t esps_invalid; /* Trying to use an invalid TDB */ uint64_t esps_invalid; /* Trying to use an invalid TDB */
u_int64_t esps_ibytes; /* Input bytes */ uint64_t esps_ibytes; /* Input bytes */
u_int64_t esps_obytes; /* Output bytes */ uint64_t esps_obytes; /* Output bytes */
u_int32_t esps_toobig; /* Packet got larger than IP_MAXPACKET */ uint64_t esps_toobig; /* Packet got larger than IP_MAXPACKET */
u_int32_t esps_pdrops; /* Packet blocked due to policy */ uint64_t esps_pdrops; /* Packet blocked due to policy */
u_int32_t esps_crypto; /* Crypto processing failure */ uint64_t esps_crypto; /* Crypto processing failure */
u_int32_t esps_tunnel; /* Tunnel sanity check failure */ uint64_t esps_tunnel; /* Tunnel sanity check failure */
u_int32_t esps_hist[ESP_ALG_MAX]; /* Per-algorithm op count */ uint64_t esps_hist[ESP_ALG_MAX]; /* Per-algorithm op count */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -41,27 +41,26 @@
*/ */
#define IPCOMP_ALG_MAX 8 #define IPCOMP_ALG_MAX 8
#define IPCOMPSTAT_VERSION 1 #define IPCOMPSTAT_VERSION 2
struct ipcompstat { struct ipcompstat {
u_int32_t ipcomps_hdrops; /* Packet shorter than header shows */ uint64_t ipcomps_hdrops; /* Packet shorter than header shows */
u_int32_t ipcomps_nopf; /* Protocol family not supported */ uint64_t ipcomps_nopf; /* Protocol family not supported */
u_int32_t ipcomps_notdb; uint64_t ipcomps_notdb;
u_int32_t ipcomps_badkcr; uint64_t ipcomps_badkcr;
u_int32_t ipcomps_qfull; uint64_t ipcomps_qfull;
u_int32_t ipcomps_noxform; uint64_t ipcomps_noxform;
u_int32_t ipcomps_wrap; uint64_t ipcomps_wrap;
u_int32_t ipcomps_input; /* Input IPcomp packets */ uint64_t ipcomps_input; /* Input IPcomp packets */
u_int32_t ipcomps_output; /* Output IPcomp packets */ uint64_t ipcomps_output; /* Output IPcomp packets */
u_int32_t ipcomps_invalid;/* Trying to use an invalid TDB */ uint64_t ipcomps_invalid;/* Trying to use an invalid TDB */
u_int64_t ipcomps_ibytes; /* Input bytes */ uint64_t ipcomps_ibytes; /* Input bytes */
u_int64_t ipcomps_obytes; /* Output bytes */ uint64_t ipcomps_obytes; /* Output bytes */
u_int32_t ipcomps_toobig; /* Packet got > IP_MAXPACKET */ uint64_t ipcomps_toobig; /* Packet got > IP_MAXPACKET */
u_int32_t ipcomps_pdrops; /* Packet blocked due to policy */ uint64_t ipcomps_pdrops; /* Packet blocked due to policy */
u_int32_t ipcomps_crypto; /* "Crypto" processing failure */ uint64_t ipcomps_crypto; /* "Crypto" processing failure */
u_int32_t ipcomps_hist[IPCOMP_ALG_MAX];/* Per-algorithm op count */ uint64_t ipcomps_hist[IPCOMP_ALG_MAX];/* Per-algorithm op count */
u_int32_t version; /* Version of this structure. */ uint64_t ipcomps_threshold; /* Packet < comp. algo. threshold. */
u_int32_t ipcomps_threshold; /* Packet < comp. algo. threshold. */ uint64_t ipcomps_uncompr; /* Compression was useles. */
u_int32_t ipcomps_uncompr; /* Compression was useles. */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -44,18 +44,17 @@
* Not quite all the functionality of RFC-1853, but the main idea is there. * Not quite all the functionality of RFC-1853, but the main idea is there.
*/ */
struct ipipstat struct ipipstat {
{ uint64_t ipips_ipackets; /* total input packets */
u_int32_t ipips_ipackets; /* total input packets */ uint64_t ipips_opackets; /* total output packets */
u_int32_t ipips_opackets; /* total output packets */ uint64_t ipips_hdrops; /* packet shorter than header shows */
u_int32_t ipips_hdrops; /* packet shorter than header shows */ uint64_t ipips_qfull;
u_int32_t ipips_qfull; uint64_t ipips_ibytes;
u_int64_t ipips_ibytes; uint64_t ipips_obytes;
u_int64_t ipips_obytes; uint64_t ipips_pdrops; /* packet dropped due to policy */
u_int32_t ipips_pdrops; /* packet dropped due to policy */ uint64_t ipips_spoof; /* IP spoofing attempts */
u_int32_t ipips_spoof; /* IP spoofing attempts */ uint64_t ipips_family; /* Protocol family mismatch */
u_int32_t ipips_family; /* Protocol family mismatch */ uint64_t ipips_unspec; /* Missing tunnel endpoint address */
u_int32_t ipips_unspec; /* Missing tunnel endpoint address */
}; };
#ifdef _KERNEL #ifdef _KERNEL

View File

@ -217,54 +217,54 @@ struct secspacq {
/* statistics for ipsec processing */ /* statistics for ipsec processing */
struct ipsecstat { struct ipsecstat {
u_quad_t in_success; /* succeeded inbound process */ uint64_t in_success; /* succeeded inbound process */
u_quad_t in_polvio; uint64_t in_polvio;
/* security policy violation for inbound process */ /* security policy violation for inbound process */
u_quad_t in_nosa; /* inbound SA is unavailable */ uint64_t in_nosa; /* inbound SA is unavailable */
u_quad_t in_inval; /* inbound processing failed due to EINVAL */ uint64_t in_inval; /* inbound processing failed due to EINVAL */
u_quad_t in_nomem; /* inbound processing failed due to ENOBUFS */ uint64_t in_nomem; /* inbound processing failed due to ENOBUFS */
u_quad_t in_badspi; /* failed getting a SPI */ uint64_t in_badspi; /* failed getting a SPI */
u_quad_t in_ahreplay; /* AH replay check failed */ uint64_t in_ahreplay; /* AH replay check failed */
u_quad_t in_espreplay; /* ESP replay check failed */ uint64_t in_espreplay; /* ESP replay check failed */
u_quad_t in_ahauthsucc; /* AH authentication success */ uint64_t in_ahauthsucc; /* AH authentication success */
u_quad_t in_ahauthfail; /* AH authentication failure */ uint64_t in_ahauthfail; /* AH authentication failure */
u_quad_t in_espauthsucc; /* ESP authentication success */ uint64_t in_espauthsucc; /* ESP authentication success */
u_quad_t in_espauthfail; /* ESP authentication failure */ uint64_t in_espauthfail; /* ESP authentication failure */
u_quad_t in_esphist[256]; uint64_t in_esphist[256];
u_quad_t in_ahhist[256]; uint64_t in_ahhist[256];
u_quad_t in_comphist[256]; uint64_t in_comphist[256];
u_quad_t out_success; /* succeeded outbound process */ uint64_t out_success; /* succeeded outbound process */
u_quad_t out_polvio; uint64_t out_polvio;
/* security policy violation for outbound process */ /* security policy violation for outbound process */
u_quad_t out_nosa; /* outbound SA is unavailable */ uint64_t out_nosa; /* outbound SA is unavailable */
u_quad_t out_inval; /* outbound process failed due to EINVAL */ uint64_t out_inval; /* outbound process failed due to EINVAL */
u_quad_t out_nomem; /* inbound processing failed due to ENOBUFS */ uint64_t out_nomem; /* inbound processing failed due to ENOBUFS */
u_quad_t out_noroute; /* there is no route */ uint64_t out_noroute; /* there is no route */
u_quad_t out_esphist[256]; uint64_t out_esphist[256];
u_quad_t out_ahhist[256]; uint64_t out_ahhist[256];
u_quad_t out_comphist[256]; uint64_t out_comphist[256];
u_quad_t spdcachelookup; uint64_t spdcachelookup;
u_quad_t spdcachemiss; uint64_t spdcachemiss;
u_int32_t ips_in_polvio; /* input: sec policy violation */ uint64_t ips_in_polvio; /* input: sec policy violation */
u_int32_t ips_out_polvio; /* output: sec policy violation */ uint64_t ips_out_polvio; /* output: sec policy violation */
u_int32_t ips_out_nosa; /* output: SA unavailable */ uint64_t ips_out_nosa; /* output: SA unavailable */
u_int32_t ips_out_nomem; /* output: no memory available */ uint64_t ips_out_nomem; /* output: no memory available */
u_int32_t ips_out_noroute; /* output: no route available */ uint64_t ips_out_noroute; /* output: no route available */
u_int32_t ips_out_inval; /* output: generic error */ uint64_t ips_out_inval; /* output: generic error */
u_int32_t ips_out_bundlesa; /* output: bundled SA processed */ uint64_t ips_out_bundlesa; /* output: bundled SA processed */
u_int32_t ips_mbcoalesced; /* mbufs coalesced during clone */ uint64_t ips_mbcoalesced; /* mbufs coalesced during clone */
u_int32_t ips_clcoalesced; /* clusters coalesced during clone */ uint64_t ips_clcoalesced; /* clusters coalesced during clone */
u_int32_t ips_clcopied; /* clusters copied during clone */ uint64_t ips_clcopied; /* clusters copied during clone */
u_int32_t ips_mbinserted; /* mbufs inserted during makespace */ uint64_t ips_mbinserted; /* mbufs inserted during makespace */
/* /*
* Temporary statistics for performance analysis. * Temporary statistics for performance analysis.
*/ */
/* See where ESP/AH/IPCOMP header land in mbuf on input */ /* See where ESP/AH/IPCOMP header land in mbuf on input */
u_int32_t ips_input_front; uint64_t ips_input_front;
u_int32_t ips_input_middle; uint64_t ips_input_middle;
u_int32_t ips_input_end; uint64_t ips_input_end;
}; };
/* /*

View File

@ -36,26 +36,26 @@
/* statistics for pfkey socket */ /* statistics for pfkey socket */
struct pfkeystat { struct pfkeystat {
/* kernel -> userland */ /* kernel -> userland */
u_quad_t out_total; /* # of total calls */ uint64_t out_total; /* # of total calls */
u_quad_t out_bytes; /* total bytecount */ uint64_t out_bytes; /* total bytecount */
u_quad_t out_msgtype[256]; /* message type histogram */ uint64_t out_msgtype[256]; /* message type histogram */
u_quad_t out_invlen; /* invalid length field */ uint64_t out_invlen; /* invalid length field */
u_quad_t out_invver; /* invalid version field */ uint64_t out_invver; /* invalid version field */
u_quad_t out_invmsgtype; /* invalid message type field */ uint64_t out_invmsgtype; /* invalid message type field */
u_quad_t out_tooshort; /* msg too short */ uint64_t out_tooshort; /* msg too short */
u_quad_t out_nomem; /* memory allocation failure */ uint64_t out_nomem; /* memory allocation failure */
u_quad_t out_dupext; /* duplicate extension */ uint64_t out_dupext; /* duplicate extension */
u_quad_t out_invexttype; /* invalid extension type */ uint64_t out_invexttype; /* invalid extension type */
u_quad_t out_invsatype; /* invalid sa type */ uint64_t out_invsatype; /* invalid sa type */
u_quad_t out_invaddr; /* invalid address extension */ uint64_t out_invaddr; /* invalid address extension */
/* userland -> kernel */ /* userland -> kernel */
u_quad_t in_total; /* # of total calls */ uint64_t in_total; /* # of total calls */
u_quad_t in_bytes; /* total bytecount */ uint64_t in_bytes; /* total bytecount */
u_quad_t in_msgtype[256]; /* message type histogram */ uint64_t in_msgtype[256]; /* message type histogram */
u_quad_t in_msgtarget[3]; /* one/all/registered */ uint64_t in_msgtarget[3]; /* one/all/registered */
u_quad_t in_nomem; /* memory allocation failure */ uint64_t in_nomem; /* memory allocation failure */
/* others */ /* others */
u_quad_t sockerr; /* # of socket related errors */ uint64_t sockerr; /* # of socket related errors */
}; };
#define KEY_SENDUP_ONE 0 #define KEY_SENDUP_ONE 0

View File

@ -636,8 +636,6 @@ static void
vnet_ipcomp_attach(const void *unused __unused) vnet_ipcomp_attach(const void *unused __unused)
{ {
/* XXX */
V_ipcompstat.version = IPCOMPSTAT_VERSION;
} }
VNET_SYSINIT(vnet_ipcomp_xform_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_MIDDLE, VNET_SYSINIT(vnet_ipcomp_xform_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_MIDDLE,

View File

@ -82,7 +82,7 @@ algname(int a, const struct alg algs[], int nalgs)
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
#define STAT(x,fmt) if (x) printf(fmt "\n", x) #define STAT(x,fmt) if (x) printf(fmt "\n", (uintmax_t)x)
struct ipsecstat ips; struct ipsecstat ips;
struct ahstat ahs; struct ahstat ahs;
struct espstat esps; struct espstat esps;
@ -99,8 +99,7 @@ main(int argc, char *argv[])
if (sysctlbyname("net.inet.esp.stats", &esps, &slen, NULL, NULL) < 0) if (sysctlbyname("net.inet.esp.stats", &esps, &slen, NULL, NULL) < 0)
err(1, "net.inet.esp.stats"); err(1, "net.inet.esp.stats");
#define AHSTAT(x,fmt) if (x) printf("ah " fmt ": %u\n", x) #define AHSTAT(x,fmt) if (x) printf("ah " fmt ": %ju\n", (uintmax_t)x)
#define AHSTAT64(x,fmt) if (x) printf("ah " fmt ": %llu\n", x)
AHSTAT(ahs.ahs_input, "input packets processed"); AHSTAT(ahs.ahs_input, "input packets processed");
AHSTAT(ahs.ahs_output, "output packets processed"); AHSTAT(ahs.ahs_output, "output packets processed");
AHSTAT(ahs.ahs_hdrops, "headers too short"); AHSTAT(ahs.ahs_hdrops, "headers too short");
@ -120,17 +119,15 @@ main(int argc, char *argv[])
AHSTAT(ahs.ahs_tunnel, "tunnel sanity check failures"); AHSTAT(ahs.ahs_tunnel, "tunnel sanity check failures");
for (i = 0; i < AH_ALG_MAX; i++) for (i = 0; i < AH_ALG_MAX; i++)
if (ahs.ahs_hist[i]) if (ahs.ahs_hist[i])
printf("ah packets with %s: %u\n" printf("ah packets with %s: %ju\n"
, algname(i, aalgs, N(aalgs)) , algname(i, aalgs, N(aalgs))
, ahs.ahs_hist[i] , (uintmax_t)ahs.ahs_hist[i]
); );
AHSTAT64(ahs.ahs_ibytes, "bytes received"); AHSTAT(ahs.ahs_ibytes, "bytes received");
AHSTAT64(ahs.ahs_obytes, "bytes transmitted"); AHSTAT(ahs.ahs_obytes, "bytes transmitted");
#undef AHSTAT64
#undef AHSTAT #undef AHSTAT
#define ESPSTAT(x,fmt) if (x) printf("esp " fmt ": %u\n", x) #define ESPSTAT(x,fmt) if (x) printf("esp " fmt ": %ju\n", (uintmax_t)x)
#define ESPSTAT64(x,fmt) if (x) printf("esp " fmt ": %llu\n", x)
ESPSTAT(esps.esps_input, "input packets processed"); ESPSTAT(esps.esps_input, "input packets processed");
ESPSTAT(esps.esps_output, "output packets processed"); ESPSTAT(esps.esps_output, "output packets processed");
ESPSTAT(esps.esps_hdrops, "headers too short"); ESPSTAT(esps.esps_hdrops, "headers too short");
@ -151,29 +148,30 @@ main(int argc, char *argv[])
ESPSTAT(esps.esps_tunnel, "tunnel sanity check failures"); ESPSTAT(esps.esps_tunnel, "tunnel sanity check failures");
for (i = 0; i < ESP_ALG_MAX; i++) for (i = 0; i < ESP_ALG_MAX; i++)
if (esps.esps_hist[i]) if (esps.esps_hist[i])
printf("esp packets with %s: %u\n" printf("esp packets with %s: %ju\n"
, algname(i, espalgs, N(espalgs)) , algname(i, espalgs, N(espalgs))
, esps.esps_hist[i] , (uintmax_t)esps.esps_hist[i]
); );
ESPSTAT64(esps.esps_ibytes, "bytes received"); ESPSTAT(esps.esps_ibytes, "bytes received");
ESPSTAT64(esps.esps_obytes, "bytes transmitted"); ESPSTAT(esps.esps_obytes, "bytes transmitted");
#undef ESPSTAT64
#undef ESPSTAT #undef ESPSTAT
printf("\n"); printf("\n");
if (ips.ips_in_polvio+ips.ips_out_polvio) if (ips.ips_in_polvio+ips.ips_out_polvio)
printf("policy violations: input %u output %u\n", printf("policy violations: input %ju output %ju\n",
ips.ips_in_polvio, ips.ips_out_polvio); (uintmax_t)ips.ips_in_polvio,
STAT(ips.ips_out_nosa, "no SA found %u (output)"); (uintmax_t)ips.ips_out_polvio);
STAT(ips.ips_out_nomem, "no memory available %u (output)"); STAT(ips.ips_out_nosa, "no SA found %ju (output)");
STAT(ips.ips_out_noroute, "no route available %u (output)"); STAT(ips.ips_out_nomem, "no memory available %ju (output)");
STAT(ips.ips_out_inval, "generic error %u (output)"); STAT(ips.ips_out_noroute, "no route available %ju (output)");
STAT(ips.ips_out_bundlesa, "bundled SA processed %u (output)"); STAT(ips.ips_out_inval, "generic error %ju (output)");
printf("m_clone processing: %u mbufs + %u clusters coalesced\n", STAT(ips.ips_out_bundlesa, "bundled SA processed %ju (output)");
ips.ips_mbcoalesced, ips.ips_clcoalesced); printf("m_clone processing: %ju mbufs + %ju clusters coalesced\n",
printf("m_clone processing: %u clusters copied\n", ips.ips_clcopied); (uintmax_t)ips.ips_mbcoalesced, (uintmax_t)ips.ips_clcoalesced);
printf("m_makespace: %u mbufs inserted\n", ips.ips_mbinserted); STAT(ips.ips_clcopied, "m_clone processing: %ju clusters copied\n");
printf("header position [front/middle/end]: %u/%u/%u\n", STAT(ips.ips_mbinserted, "m_makespace: %ju mbufs inserted\n");
ips.ips_input_front, ips.ips_input_middle, ips.ips_input_end); printf("header position [front/middle/end]: %ju/%ju/%ju\n",
(uintmax_t)ips.ips_input_front, (uintmax_t)ips.ips_input_middle,
(uintmax_t)ips.ips_input_end);
return 0; return 0;
} }

View File

@ -743,7 +743,7 @@ udp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
{ {
struct udpstat udpstat, zerostat; struct udpstat udpstat, zerostat;
size_t len = sizeof udpstat; size_t len = sizeof udpstat;
u_long delivered; uint64_t delivered;
#ifdef INET6 #ifdef INET6
if (udp_done != 0) if (udp_done != 0)
@ -765,19 +765,19 @@ udp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
printf("%s:\n", name); printf("%s:\n", name);
#define p(f, m) if (udpstat.f || sflag <= 1) \ #define p(f, m) if (udpstat.f || sflag <= 1) \
printf(m, udpstat.f, plural(udpstat.f)) printf("\t%ju " m, (uintmax_t)udpstat.f, plural(udpstat.f))
#define p1a(f, m) if (udpstat.f || sflag <= 1) \ #define p1a(f, m) if (udpstat.f || sflag <= 1) \
printf(m, udpstat.f) printf("\t%ju " m, (uintmax_t)udpstat.f)
p(udps_ipackets, "\t%lu datagram%s received\n"); p(udps_ipackets, "datagram%s received\n");
p1a(udps_hdrops, "\t%lu with incomplete header\n"); p1a(udps_hdrops, "with incomplete header\n");
p1a(udps_badlen, "\t%lu with bad data length field\n"); p1a(udps_badlen, "with bad data length field\n");
p1a(udps_badsum, "\t%lu with bad checksum\n"); p1a(udps_badsum, "with bad checksum\n");
p1a(udps_nosum, "\t%lu with no checksum\n"); p1a(udps_nosum, "with no checksum\n");
p1a(udps_noport, "\t%lu dropped due to no socket\n"); p1a(udps_noport, "dropped due to no socket\n");
p(udps_noportbcast, p(udps_noportbcast,
"\t%lu broadcast/multicast datagram%s undelivered\n"); "broadcast/multicast datagram%s undelivered\n");
p1a(udps_fullsock, "\t%lu dropped due to full socket buffers\n"); p1a(udps_fullsock, "dropped due to full socket buffers\n");
p1a(udpps_pcbhashmiss, "\t%lu not for hashed pcb\n"); p1a(udpps_pcbhashmiss, "not for hashed pcb\n");
delivered = udpstat.udps_ipackets - delivered = udpstat.udps_ipackets -
udpstat.udps_hdrops - udpstat.udps_hdrops -
udpstat.udps_badlen - udpstat.udps_badlen -
@ -786,11 +786,11 @@ udp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
udpstat.udps_noportbcast - udpstat.udps_noportbcast -
udpstat.udps_fullsock; udpstat.udps_fullsock;
if (delivered || sflag <= 1) if (delivered || sflag <= 1)
printf("\t%lu delivered\n", delivered); printf("\t%ju delivered\n", (uint64_t)delivered);
p(udps_opackets, "\t%lu datagram%s output\n"); p(udps_opackets, "datagram%s output\n");
/* the next statistic is cumulative in udps_noportbcast */ /* the next statistic is cumulative in udps_noportbcast */
p(udps_filtermcast, p(udps_filtermcast,
"\t%lu time%s multicast source filter matched\n"); "time%s multicast source filter matched\n");
#undef p #undef p
#undef p1a #undef p1a
} }
@ -938,18 +938,18 @@ arp_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
printf("%s:\n", name); printf("%s:\n", name);
#define p(f, m) if (arpstat.f || sflag <= 1) \ #define p(f, m) if (arpstat.f || sflag <= 1) \
printf(m, arpstat.f, plural(arpstat.f)) printf("\t%ju " m, (uintmax_t)arpstat.f, plural(arpstat.f))
#define p2(f, m) if (arpstat.f || sflag <= 1) \ #define p2(f, m) if (arpstat.f || sflag <= 1) \
printf(m, arpstat.f, pluralies(arpstat.f)) printf("\t%ju " m, (uintmax_t)arpstat.f, pluralies(arpstat.f))
p(txrequests, "\t%lu ARP request%s sent\n"); p(txrequests, "ARP request%s sent\n");
p2(txreplies, "\t%lu ARP repl%s sent\n"); p2(txreplies, "ARP repl%s sent\n");
p(rxrequests, "\t%lu ARP request%s received\n"); p(rxrequests, "ARP request%s received\n");
p2(rxreplies, "\t%lu ARP repl%s received\n"); p2(rxreplies, "ARP repl%s received\n");
p(received, "\t%lu ARP packet%s received\n"); p(received, "ARP packet%s received\n");
p(dropped, "\t%lu total packet%s dropped due to no ARP entry\n"); p(dropped, "total packet%s dropped due to no ARP entry\n");
p(timeouts, "\t%lu ARP entry%s timed out\n"); p(timeouts, "ARP entry%s timed out\n");
p(dupips, "\t%lu Duplicate IP%s seen\n"); p(dupips, "Duplicate IP%s seen\n");
#undef p #undef p
#undef p2 #undef p2
} }

View File

@ -274,7 +274,7 @@ ipsec_stats(u_long off, const char *name, int af1 __unused, int proto __unused)
} }
static void ipsec_hist_new(const u_int32_t *hist, size_t histmax, static void ipsec_hist_new(const uint64_t *hist, size_t histmax,
const struct val2str *name, const char *title); const struct val2str *name, const char *title);
static void print_ahstats(const struct ahstat *ahstat); static void print_ahstats(const struct ahstat *ahstat);
static void print_espstats(const struct espstat *espstat); static void print_espstats(const struct espstat *espstat);
@ -284,7 +284,7 @@ static void print_ipcompstats(const struct ipcompstat *ipcompstat);
* Dump IPSEC statistics structure. * Dump IPSEC statistics structure.
*/ */
static void static void
ipsec_hist_new(const u_int32_t *hist, size_t histmax, ipsec_hist_new(const uint64_t *hist, size_t histmax,
const struct val2str *name, const char *title) const struct val2str *name, const char *title)
{ {
int first; int first;
@ -304,10 +304,11 @@ ipsec_hist_new(const u_int32_t *hist, size_t histmax,
break; break;
} }
if (p && p->str) { if (p && p->str) {
printf("\t\t%s: %u\n", p->str, hist[proto]); printf("\t\t%s: %ju\n", p->str,
(uintmax_t)hist[proto]);
} else { } else {
printf("\t\t#%lu: %u\n", (unsigned long)proto, printf("\t\t#%lu: %ju\n", (unsigned long)proto,
hist[proto]); (uintmax_t)hist[proto]);
} }
} }
} }
@ -315,36 +316,33 @@ ipsec_hist_new(const u_int32_t *hist, size_t histmax,
static void static void
print_ahstats(const struct ahstat *ahstat) print_ahstats(const struct ahstat *ahstat)
{ {
#define p32(f, m) if (ahstat->f || sflag <= 1) \ #define p(f, m) if (ahstat->f || sflag <= 1) \
printf("\t%u" m, (unsigned int)ahstat->f, plural(ahstat->f))
#define p64(f, m) if (ahstat->f || sflag <= 1) \
printf("\t%ju" m, (uintmax_t)ahstat->f, plural(ahstat->f)) printf("\t%ju" m, (uintmax_t)ahstat->f, plural(ahstat->f))
#define hist(f, n, t) \ #define hist(f, n, t) \
ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t));
p32(ahs_hdrops, " packet%s shorter than header shows\n"); p(ahs_hdrops, " packet%s shorter than header shows\n");
p32(ahs_nopf, " packet%s dropped; protocol family not supported\n"); p(ahs_nopf, " packet%s dropped; protocol family not supported\n");
p32(ahs_notdb, " packet%s dropped; no TDB\n"); p(ahs_notdb, " packet%s dropped; no TDB\n");
p32(ahs_badkcr, " packet%s dropped; bad KCR\n"); p(ahs_badkcr, " packet%s dropped; bad KCR\n");
p32(ahs_qfull, " packet%s dropped; queue full\n"); p(ahs_qfull, " packet%s dropped; queue full\n");
p32(ahs_noxform, " packet%s dropped; no transform\n"); p(ahs_noxform, " packet%s dropped; no transform\n");
p32(ahs_wrap, " replay counter wrap%s\n"); p(ahs_wrap, " replay counter wrap%s\n");
p32(ahs_badauth, " packet%s dropped; bad authentication detected\n"); p(ahs_badauth, " packet%s dropped; bad authentication detected\n");
p32(ahs_badauthl, " packet%s dropped; bad authentication length\n"); p(ahs_badauthl, " packet%s dropped; bad authentication length\n");
p32(ahs_replay, " possible replay packet%s detected\n"); p(ahs_replay, " possible replay packet%s detected\n");
p32(ahs_input, " packet%s in\n"); p(ahs_input, " packet%s in\n");
p32(ahs_output, " packet%s out\n"); p(ahs_output, " packet%s out\n");
p32(ahs_invalid, " packet%s dropped; invalid TDB\n"); p(ahs_invalid, " packet%s dropped; invalid TDB\n");
p64(ahs_ibytes, " byte%s in\n"); p(ahs_ibytes, " byte%s in\n");
p64(ahs_obytes, " byte%s out\n"); p(ahs_obytes, " byte%s out\n");
p32(ahs_toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); p(ahs_toobig, " packet%s dropped; larger than IP_MAXPACKET\n");
p32(ahs_pdrops, " packet%s blocked due to policy\n"); p(ahs_pdrops, " packet%s blocked due to policy\n");
p32(ahs_crypto, " crypto processing failure%s\n"); p(ahs_crypto, " crypto processing failure%s\n");
p32(ahs_tunnel, " tunnel sanity check failure%s\n"); p(ahs_tunnel, " tunnel sanity check failure%s\n");
hist(ahstat->ahs_hist, ipsec_ahnames, "AH output"); hist(ahstat->ahs_hist, ipsec_ahnames, "AH output");
#undef p32 #undef p
#undef p64
#undef hist #undef hist
} }
@ -364,37 +362,34 @@ ah_stats(u_long off, const char *name, int family __unused, int proto __unused)
static void static void
print_espstats(const struct espstat *espstat) print_espstats(const struct espstat *espstat)
{ {
#define p32(f, m) if (espstat->f || sflag <= 1) \ #define p(f, m) if (espstat->f || sflag <= 1) \
printf("\t%u" m, (unsigned int)espstat->f, plural(espstat->f))
#define p64(f, m) if (espstat->f || sflag <= 1) \
printf("\t%ju" m, (uintmax_t)espstat->f, plural(espstat->f)) printf("\t%ju" m, (uintmax_t)espstat->f, plural(espstat->f))
#define hist(f, n, t) \ #define hist(f, n, t) \
ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t));
p32(esps_hdrops, " packet%s shorter than header shows\n"); p(esps_hdrops, " packet%s shorter than header shows\n");
p32(esps_nopf, " packet%s dropped; protocol family not supported\n"); p(esps_nopf, " packet%s dropped; protocol family not supported\n");
p32(esps_notdb, " packet%s dropped; no TDB\n"); p(esps_notdb, " packet%s dropped; no TDB\n");
p32(esps_badkcr, " packet%s dropped; bad KCR\n"); p(esps_badkcr, " packet%s dropped; bad KCR\n");
p32(esps_qfull, " packet%s dropped; queue full\n"); p(esps_qfull, " packet%s dropped; queue full\n");
p32(esps_noxform, " packet%s dropped; no transform\n"); p(esps_noxform, " packet%s dropped; no transform\n");
p32(esps_badilen, " packet%s dropped; bad ilen\n"); p(esps_badilen, " packet%s dropped; bad ilen\n");
p32(esps_wrap, " replay counter wrap%s\n"); p(esps_wrap, " replay counter wrap%s\n");
p32(esps_badenc, " packet%s dropped; bad encryption detected\n"); p(esps_badenc, " packet%s dropped; bad encryption detected\n");
p32(esps_badauth, " packet%s dropped; bad authentication detected\n"); p(esps_badauth, " packet%s dropped; bad authentication detected\n");
p32(esps_replay, " possible replay packet%s detected\n"); p(esps_replay, " possible replay packet%s detected\n");
p32(esps_input, " packet%s in\n"); p(esps_input, " packet%s in\n");
p32(esps_output, " packet%s out\n"); p(esps_output, " packet%s out\n");
p32(esps_invalid, " packet%s dropped; invalid TDB\n"); p(esps_invalid, " packet%s dropped; invalid TDB\n");
p64(esps_ibytes, " byte%s in\n"); p(esps_ibytes, " byte%s in\n");
p64(esps_obytes, " byte%s out\n"); p(esps_obytes, " byte%s out\n");
p32(esps_toobig, " packet%s dropped; larger than IP_MAXPACKET\n"); p(esps_toobig, " packet%s dropped; larger than IP_MAXPACKET\n");
p32(esps_pdrops, " packet%s blocked due to policy\n"); p(esps_pdrops, " packet%s blocked due to policy\n");
p32(esps_crypto, " crypto processing failure%s\n"); p(esps_crypto, " crypto processing failure%s\n");
p32(esps_tunnel, " tunnel sanity check failure%s\n"); p(esps_tunnel, " tunnel sanity check failure%s\n");
hist(espstat->esps_hist, ipsec_espnames, "ESP output"); hist(espstat->esps_hist, ipsec_espnames, "ESP output");
#undef p32 #undef p
#undef p64
#undef hist #undef hist
} }
@ -414,42 +409,31 @@ esp_stats(u_long off, const char *name, int family __unused, int proto __unused)
static void static void
print_ipcompstats(const struct ipcompstat *ipcompstat) print_ipcompstats(const struct ipcompstat *ipcompstat)
{ {
uint32_t version; #define p(f, m) if (ipcompstat->f || sflag <= 1) \
#define p32(f, m) if (ipcompstat->f || sflag <= 1) \
printf("\t%u" m, (unsigned int)ipcompstat->f, plural(ipcompstat->f))
#define p64(f, m) if (ipcompstat->f || sflag <= 1) \
printf("\t%ju" m, (uintmax_t)ipcompstat->f, plural(ipcompstat->f)) printf("\t%ju" m, (uintmax_t)ipcompstat->f, plural(ipcompstat->f))
#define hist(f, n, t) \ #define hist(f, n, t) \
ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t)); ipsec_hist_new((f), sizeof(f)/sizeof(f[0]), (n), (t));
#ifndef IPCOMPSTAT_VERSION p(ipcomps_hdrops, " packet%s shorter than header shows\n");
version = 0; p(ipcomps_nopf, " packet%s dropped; protocol family not supported\n");
#else p(ipcomps_notdb, " packet%s dropped; no TDB\n");
version = ipcompstat->version; p(ipcomps_badkcr, " packet%s dropped; bad KCR\n");
#endif p(ipcomps_qfull, " packet%s dropped; queue full\n");
p32(ipcomps_hdrops, " packet%s shorter than header shows\n"); p(ipcomps_noxform, " packet%s dropped; no transform\n");
p32(ipcomps_nopf, " packet%s dropped; protocol family not supported\n"); p(ipcomps_wrap, " replay counter wrap%s\n");
p32(ipcomps_notdb, " packet%s dropped; no TDB\n"); p(ipcomps_input, " packet%s in\n");
p32(ipcomps_badkcr, " packet%s dropped; bad KCR\n"); p(ipcomps_output, " packet%s out\n");
p32(ipcomps_qfull, " packet%s dropped; queue full\n"); p(ipcomps_invalid, " packet%s dropped; invalid TDB\n");
p32(ipcomps_noxform, " packet%s dropped; no transform\n"); p(ipcomps_ibytes, " byte%s in\n");
p32(ipcomps_wrap, " replay counter wrap%s\n"); p(ipcomps_obytes, " byte%s out\n");
p32(ipcomps_input, " packet%s in\n"); p(ipcomps_toobig, " packet%s dropped; larger than IP_MAXPACKET\n");
p32(ipcomps_output, " packet%s out\n"); p(ipcomps_pdrops, " packet%s blocked due to policy\n");
p32(ipcomps_invalid, " packet%s dropped; invalid TDB\n"); p(ipcomps_crypto, " crypto processing failure%s\n");
p64(ipcomps_ibytes, " byte%s in\n");
p64(ipcomps_obytes, " byte%s out\n");
p32(ipcomps_toobig, " packet%s dropped; larger than IP_MAXPACKET\n");
p32(ipcomps_pdrops, " packet%s blocked due to policy\n");
p32(ipcomps_crypto, " crypto processing failure%s\n");
hist(ipcompstat->ipcomps_hist, ipsec_compnames, "COMP output"); hist(ipcompstat->ipcomps_hist, ipsec_compnames, "COMP output");
if (version >= 1) { p(ipcomps_threshold, " packet%s sent uncompressed; size < compr. algo. threshold\n");
p32(ipcomps_threshold, " packet%s sent uncompressed; size < compr. algo. threshold\n"); p(ipcomps_uncompr, " packet%s sent uncompressed; compression was useless\n");
p32(ipcomps_uncompr, " packet%s sent uncompressed; compression was useless\n");
}
#undef p32 #undef p
#undef p64
#undef hist #undef hist
} }

View File

@ -355,24 +355,24 @@ mrt_stats(u_long mstaddr)
printf("IPv4 multicast forwarding:\n"); printf("IPv4 multicast forwarding:\n");
#define p(f, m) if (mrtstat.f || sflag <= 1) \ #define p(f, m) if (mrtstat.f || sflag <= 1) \
printf(m, mrtstat.f, plural(mrtstat.f)) printf(m, (uintmax_t)mrtstat.f, plural(mrtstat.f))
#define p2(f, m) if (mrtstat.f || sflag <= 1) \ #define p2(f, m) if (mrtstat.f || sflag <= 1) \
printf(m, mrtstat.f, plurales(mrtstat.f)) printf(m, (uintmax_t)mrtstat.f, plurales(mrtstat.f))
p(mrts_mfc_lookups, "\t%lu multicast forwarding cache lookup%s\n"); p(mrts_mfc_lookups, "\t%ju multicast forwarding cache lookup%s\n");
p2(mrts_mfc_misses, "\t%lu multicast forwarding cache miss%s\n"); p2(mrts_mfc_misses, "\t%ju multicast forwarding cache miss%s\n");
p(mrts_upcalls, "\t%lu upcall%s to multicast routing daemon\n"); p(mrts_upcalls, "\t%ju upcall%s to multicast routing daemon\n");
p(mrts_upq_ovflw, "\t%lu upcall queue overflow%s\n"); p(mrts_upq_ovflw, "\t%ju upcall queue overflow%s\n");
p(mrts_upq_sockfull, p(mrts_upq_sockfull,
"\t%lu upcall%s dropped due to full socket buffer\n"); "\t%ju upcall%s dropped due to full socket buffer\n");
p(mrts_cache_cleanups, "\t%lu cache cleanup%s\n"); p(mrts_cache_cleanups, "\t%ju cache cleanup%s\n");
p(mrts_no_route, "\t%lu datagram%s with no route for origin\n"); p(mrts_no_route, "\t%ju datagram%s with no route for origin\n");
p(mrts_bad_tunnel, "\t%lu datagram%s arrived with bad tunneling\n"); p(mrts_bad_tunnel, "\t%ju datagram%s arrived with bad tunneling\n");
p(mrts_cant_tunnel, "\t%lu datagram%s could not be tunneled\n"); p(mrts_cant_tunnel, "\t%ju datagram%s could not be tunneled\n");
p(mrts_wrong_if, "\t%lu datagram%s arrived on wrong interface\n"); p(mrts_wrong_if, "\t%ju datagram%s arrived on wrong interface\n");
p(mrts_drop_sel, "\t%lu datagram%s selectively dropped\n"); p(mrts_drop_sel, "\t%ju datagram%s selectively dropped\n");
p(mrts_q_overflow, "\t%lu datagram%s dropped due to queue overflow\n"); p(mrts_q_overflow, "\t%ju datagram%s dropped due to queue overflow\n");
p(mrts_pkt2large, "\t%lu datagram%s dropped for being too large\n"); p(mrts_pkt2large, "\t%ju datagram%s dropped for being too large\n");
#undef p2 #undef p2
#undef p #undef p