mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-11-07 04:36:52 -10:00
usbdump: add -t to omit timestamps
Matches tcpdump naming, but without getting more intense as you add more -t. This slightly reduces the post-processing needed on usbdump output to diff two transactions. Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D58196
This commit is contained in:
1 parent
ad91d47db3
commit
87fb416ac8
2 files changed
+29
-15
No files matched your search
@@ -23,7 +23,7 @@
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd May 14, 2021
|
||||
.Dd July 12, 2026
|
||||
.Dt USBDUMP 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@@ -37,6 +37,7 @@
|
||||
.Op Fl i Ar ifname
|
||||
.Op Fl r Ar file
|
||||
.Op Fl s Ar snaplen
|
||||
.Op Fl t
|
||||
.Op Fl u
|
||||
.Op Fl v
|
||||
.Op Fl w Ar file
|
||||
@@ -90,6 +91,8 @@ This option also works with the -f option.
|
||||
Snapshot
|
||||
.Ar snaplen
|
||||
bytes from each packet.
|
||||
.It Fl t
|
||||
Do not print packet timestamps.
|
||||
.It Fl u
|
||||
Unbuffered output.
|
||||
.It Fl v
|
||||
@@ -140,7 +143,9 @@ is as follows:
|
||||
The meaning of the output format elements is as follows:
|
||||
.Bl -tag -width "<xfertype>"
|
||||
.It <time>
|
||||
A timestamp preceding all output lines.
|
||||
A timestamp preceding all output lines, unless the
|
||||
.Fl t
|
||||
option is used.
|
||||
The timestamp has the format "hh:mm:ss.frac" and is as accurate as
|
||||
the kernel's clock.
|
||||
.It <bus>
|
||||
|
||||
+22
-13
@@ -45,6 +45,7 @@
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
@@ -108,6 +109,7 @@ struct header_32 {
|
||||
|
||||
static int doexit;
|
||||
static int pkt_captured;
|
||||
static bool print_time = true;
|
||||
static int verbose;
|
||||
static int uf_minor;
|
||||
static char *i_arg;
|
||||
@@ -459,13 +461,9 @@ hexdump(const uint8_t *region, uint32_t len)
|
||||
static void
|
||||
print_apacket(const struct header_32 *hdr, const uint8_t *ptr, int ptr_len)
|
||||
{
|
||||
struct tm *tm;
|
||||
struct usbpf_pkthdr up_temp;
|
||||
struct usbpf_pkthdr *up;
|
||||
struct timeval tv;
|
||||
size_t len;
|
||||
uint32_t x;
|
||||
char buf[64];
|
||||
|
||||
ptr += USBPF_HDR_LEN;
|
||||
ptr_len -= USBPF_HDR_LEN;
|
||||
@@ -494,15 +492,22 @@ print_apacket(const struct header_32 *hdr, const uint8_t *ptr, int ptr_len)
|
||||
if (!match_filter(up->up_address, up->up_endpoint))
|
||||
return;
|
||||
|
||||
tv.tv_sec = hdr->ts_sec;
|
||||
tv.tv_usec = hdr->ts_usec;
|
||||
tm = localtime(&tv.tv_sec);
|
||||
|
||||
len = strftime(buf, sizeof(buf), "%H:%M:%S", tm);
|
||||
|
||||
if (verbose >= 0) {
|
||||
printf("%.*s.%06ld usbus%d.%d %s-%s-EP=%08x,SPD=%s,NFR=%d,SLEN=%d,IVAL=%d%s%s\n",
|
||||
(int)len, buf, tv.tv_usec,
|
||||
if (print_time) {
|
||||
struct timeval tv;
|
||||
char buf[64];
|
||||
struct tm *tm;
|
||||
size_t len;
|
||||
|
||||
tv.tv_sec = hdr->ts_sec;
|
||||
tv.tv_usec = hdr->ts_usec;
|
||||
tm = localtime(&tv.tv_sec);
|
||||
|
||||
len = strftime(buf, sizeof(buf), "%H:%M:%S", tm);
|
||||
printf("%.*s.%06ld ", (int)len, buf, tv.tv_usec);
|
||||
}
|
||||
|
||||
printf("usbus%d.%d %s-%s-EP=%08x,SPD=%s,NFR=%d,SLEN=%d,IVAL=%d%s%s\n",
|
||||
(int)up->up_busunit, (int)up->up_address,
|
||||
(up->up_type == USBPF_XFERTAP_SUBMIT) ? "SUBM" : "DONE",
|
||||
usb_xferstr(up->up_xfertype),
|
||||
@@ -784,6 +789,7 @@ usage(void)
|
||||
fprintf(stderr, FMT, "-f <unit[.endpoint]>", "Specify a device and endpoint filter");
|
||||
fprintf(stderr, FMT, "-r <file>", "Read the raw packets from file");
|
||||
fprintf(stderr, FMT, "-s <snaplen>", "Snapshot bytes from each packet");
|
||||
fprintf(stderr, FMT, "-t", "Do not print packet timestamps");
|
||||
fprintf(stderr, FMT, "-v", "Increase the verbose level");
|
||||
fprintf(stderr, FMT, "-b <file>", "Save raw version of all recorded data to file");
|
||||
fprintf(stderr, FMT, "-w <file>", "Write the raw packets to file");
|
||||
@@ -811,7 +817,7 @@ main(int argc, char *argv[])
|
||||
const char *optstring;
|
||||
char *pp;
|
||||
|
||||
optstring = "b:d:hi:r:s:uvw:f:";
|
||||
optstring = "b:d:hi:r:s:tuvw:f:";
|
||||
while ((o = getopt(argc, argv, optstring)) != -1) {
|
||||
switch (o) {
|
||||
case 'b':
|
||||
@@ -881,6 +887,9 @@ main(int argc, char *argv[])
|
||||
if (snapshot == 0)
|
||||
snapshot = -1;
|
||||
break;
|
||||
case 't':
|
||||
print_time = false;
|
||||
break;
|
||||
case 'u':
|
||||
setbuf(stdout, NULL);
|
||||
setbuf(stderr, NULL);
|
||||
|
||||
Reference in new issue
Block a user