From nobody Sat Apr 25 19:25:57 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g30DP5G8kz6NQK7 for ; Sat, 25 Apr 2026 19:25:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g30DP3Kk5z3gK9 for ; Sat, 25 Apr 2026 19:25:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777145157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LjUDFuqW0L+8UhV3LtWxyzKU9vKv40DHWyk0OSZ2wyY=; b=RczChf1i5y/Kz/FNe8ibt1FwS7iJUH4PYWxB9NEA1oEs13ktyn/0snTZWwocQfaZ7St/2M SeLveS5zUcsVpZ+cdm4MCjnTs3qpu+OssUvzMveUK+468XiHt9tlRigK7EcJrNa3wZ1HSV jyGM4KQqiVKd7wh+apdXLc4ubvLV86C9M8N3390lYIDukP9VKZPXQtkVFfaOmspC6wl3IC eZrwS0M3ELG+UjUPFOLMhY/B9p4DEdoa6QvyxZ1qlD7WFXMJnmtDCOqLOQXsIgtOBhFZ0H yxumnxVQMalLlnUmBJ4stKBYxbT3rQvc62v0PRe+uxW6ooR99gxLTXbA/I0l1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777145157; a=rsa-sha256; cv=none; b=bq3E4qR9rsQywjoCS2ffN4vAIu79DgJLX4j61wIt2FMabl4Yi5VcHp8emzuu0p/EojDcW6 VslwAIX/ggX4uVl0aSqu2rS74GT5rWhKHaINcMYTHE88d9gK5lBiI/8j1Igsw9xUFKQ8AS gnQ/ENLRlmoennp7C/zj+0KVaJ42B3WYqLzMRT3XxMuu7vAh/pXVcVTfwfDaGwVSyFtDVp 2ioYqtkHiPRCUnBZ/Xvu3aNoegSFHQru9fxKy+nzU4/UYKW7SVJbBjywBHTifFa50Izem+ Krk62DEakfFnGL2MeKICFLkmpQfvGG4yVCUc4DZ+6j9aUWMBv6DZkoX7RcZevw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777145157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LjUDFuqW0L+8UhV3LtWxyzKU9vKv40DHWyk0OSZ2wyY=; b=aXLsNqOmcby2NO88vYFYBFPKwFxJDSZwLWTjmlK62Yi4x8v/ycwhr46FeimSLlgtMXMCkk bNHWmiWGzllcGUaGG1xo7S2kkR+g1ruvz4NS6MxhgRO96DUsBNsn3BMMTb/Ww7uhbQT/VT oHIwg6ejqgZS0pjqE69+E1SQ7jCXnBQWL9+Vp1W4cPGQq4iUvlUH2E6mhT+TrY0VX3g7hb XJpfWSMHe5TS3a0wZGcv/HCD+HxafczoAvlFlNe0OoecMDZnCbYrYwyfqrLS1rMMzjgjK2 dJV+e/8I94RheE+17UaD8dZnN2CfuXwQD5JGfA05X5dgZEYJvnll2nFLWH1Bbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g30DP2SqnznSS for ; Sat, 25 Apr 2026 19:25:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26dc4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 25 Apr 2026 19:25:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Timo =?utf-8?Q?V=C3=B6lker?= From: Michael Tuexen Subject: git: c0178169207d - stable/15 - ifinfo: improve output of hwassist value List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c0178169207d5171ff52325de7f80df8e36c7fff Auto-Submitted: auto-generated Date: Sat, 25 Apr 2026 19:25:57 +0000 Message-Id: <69ed1545.26dc4.f0850bb@gitrepo.freebsd.org> The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=c0178169207d5171ff52325de7f80df8e36c7fff commit c0178169207d5171ff52325de7f80df8e36c7fff Author: Timo Völker AuthorDate: 2026-02-08 20:02:58 +0000 Commit: Michael Tuexen CommitDate: 2026-04-25 19:24:21 +0000 ifinfo: improve output of hwassist value In addition to print the hexadecimal number hwassist, also print the symbolic names of the corresponding CSUM_* flags. Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D55055 Event: Wiesbaden Hackathon 2026 (cherry picked from commit d84870d90bafe75eb87759df0ab41ff0214c866e) --- tools/tools/ifinfo/ifinfo.c | 48 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/tools/tools/ifinfo/ifinfo.c b/tools/tools/ifinfo/ifinfo.c index 89d17f0c75fa..e8837de0b383 100644 --- a/tools/tools/ifinfo/ifinfo.c +++ b/tools/tools/ifinfo/ifinfo.c @@ -30,6 +30,7 @@ #include /* for PF_LINK */ #include #include +#include #include #include @@ -38,6 +39,8 @@ #include #include #include +#include +#include #include #include @@ -149,6 +152,47 @@ main(int argc, char **argv) return retval; } +/* code after this line copied or based on code from src/sys/kern/subr_prf.c */ +static inline bool +isbitpos(char c) +{ + return (c != '\0' && (c <= ' ' || (c & 0x80) != 0)); +} + +static inline bool +isprintnospace(char c) +{ + return (isprint(c) && c != ' '); +} + +static void +print_bits(uintmax_t num, const char *bitstring) +{ + bool first; + const char *c; + int shift; + + c = ++bitstring; + first = true; + while (isbitpos(*c)) { + if ((*c & 0x80) != 0) + shift = *c++ & 0x7f; + else + shift = *c++ - 1; + if (num & (1ULL << shift)) { + putchar(first ? (first = false, '<') : ','); + for (; isprintnospace(*c); ++c) + putchar(*c); + } else + for (; isprintnospace(*c); ++c) + continue; + } + if (!first) { + putchar('>'); + } +} +/* code before this line copied or based on code from src/sys/kern/subr_prf.c */ + static void printit(const struct ifmibdata *ifmd, const char *dname) { @@ -182,8 +226,10 @@ printit(const struct ifmibdata *ifmd, const char *dname) printf("\tinput queue drops: %lu\n", ifmd->ifmd_data.ifi_iqdrops); printf("\tpackets for unknown protocol: %lu\n", ifmd->ifmd_data.ifi_noproto); - printf("\tHW offload capabilities: 0x%lx\n", + printf("\tHW offload capabilities: 0x%lx", ifmd->ifmd_data.ifi_hwassist); + print_bits(ifmd->ifmd_data.ifi_hwassist, CSUM_BITS); + printf("\n"); printf("\tuptime at attach or stat reset: %lu\n", ifmd->ifmd_data.ifi_epoch); #ifdef notdef