blob: 2dce4b501c5243dab5a133d08a9878387d1d30d8 [file] [log] [blame]
JP Abgrall511eca32014-02-12 13:46:45 -08001.\" Copyright (c) 1994, 1996, 1997
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that: (1) source code distributions
6.\" retain the above copyright notice and this paragraph in its entirety, (2)
7.\" distributions including binary code include the above copyright notice and
8.\" this paragraph in its entirety in the documentation or other materials
9.\" provided with the distribution, and (3) all advertising materials mentioning
10.\" features or use of this software display the following acknowledgement:
11.\" ``This product includes software developed by the University of California,
12.\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
13.\" the University nor the names of its contributors may be used to endorse
14.\" or promote products derived from this software without specific prior
15.\" written permission.
16.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19.\"
Elliott Hughes965a4b52017-05-15 10:37:39 -070020.TH PCAP_STATS 3PCAP "3 January 2014"
JP Abgrall511eca32014-02-12 13:46:45 -080021.SH NAME
22pcap_stats \- get capture statistics
23.SH SYNOPSIS
24.nf
25.ft B
26#include <pcap/pcap.h>
27.ft
28.LP
29.ft B
30int pcap_stats(pcap_t *p, struct pcap_stat *ps);
31.ft
32.fi
33.SH DESCRIPTION
34.B pcap_stats()
35fills in the
36.B struct pcap_stat
37pointed to by its second argument. The values represent
38packet statistics from the start of the run to the time of the call.
39.PP
40.B pcap_stats()
41is supported only on live captures, not on ``savefiles''; no statistics
42are stored in ``savefiles'', so no statistics are available when reading
43from a ``savefile''.
44.PP
45A
46.B struct pcap_stat
47has the following members:
48.RS
49.TP
50.B ps_recv
51number of packets received;
52.TP
53.B ps_drop
54number of packets dropped because there was no room in the operating
55system's buffer when they arrived, because packets weren't being read
56fast enough;
57.TP
58.B ps_ifdrop
59number of packets dropped by the network interface or its driver.
60.RE
61.PP
62The statistics do not behave the same way on all platforms.
63.B ps_recv
64might count packets whether they passed any filter set with
65.BR pcap_setfilter (3PCAP)
66or not, or it might count only packets that pass the filter.
67It also might, or might not, count packets dropped because there was no
68room in the operating system's buffer when they arrived.
69.B ps_drop
70is not available on all platforms; it is zero on platforms where it's
71not available. If packet filtering is done in libpcap, rather than in
72the operating system, it would count packets that don't pass the filter.
73Both
74.B ps_recv
75and
76.B ps_drop
77might, or might not, count packets not yet read from the operating
78system and thus not yet seen by the application.
79.B ps_ifdrop
80might, or might not, be implemented; if it's zero, that might mean that
81no packets were dropped by the interface, or it might mean that the
82statistic is unavailable, so it should not be treated as an indication
83that the interface did not drop any packets.
84.SH RETURN VALUE
85.B pcap_stats()
86returns 0 on success and returns \-1 if there is an error or if
87.I p
88doesn't support packet statistics.
89If \-1 is returned,
90.B pcap_geterr()
91or
92.B pcap_perror()
93may be called with
94.I p
95as an argument to fetch or display the error text.
96.SH SEE ALSO
97pcap(3PCAP), pcap_geterr(3PCAP)