git: 87fb416ac882 - main - usbdump: add -t to omit timestamps
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 12 Jul 2026 19:50:36 UTC
The branch main has been updated by kevans:
URL: https://cgit.FreeBSD.org/src/commit/?id=87fb416ac8828d07fdf23a2c0d35d88efafce2af
commit 87fb416ac8828d07fdf23a2c0d35d88efafce2af
Author: Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2026-07-12 19:50:24 +0000
Commit: Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2026-07-12 19:50:24 +0000
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
---
usr.sbin/usbdump/usbdump.8 | 9 +++++++--
usr.sbin/usbdump/usbdump.c | 35 ++++++++++++++++++++++-------------
2 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/usr.sbin/usbdump/usbdump.8 b/usr.sbin/usbdump/usbdump.8
index 96be9f738e2d..3c50f54d081e 100644
--- a/usr.sbin/usbdump/usbdump.8
+++ b/usr.sbin/usbdump/usbdump.8
@@ -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>
diff --git a/usr.sbin/usbdump/usbdump.c b/usr.sbin/usbdump/usbdump.c
index d7b084657162..36b70d3160bd 100644
--- a/usr.sbin/usbdump/usbdump.c
+++ b/usr.sbin/usbdump/usbdump.c
@@ -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);