From owner-svn-src-head@freebsd.org Tue Nov 7 17:15:44 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E658E5E77C; Tue, 7 Nov 2017 17:15:44 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4A5907810A; Tue, 7 Nov 2017 17:15:43 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 2AD2010A7DB; Tue, 7 Nov 2017 12:15:42 -0500 (EST) From: John Baldwin To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r325506 - in head: sbin/ifconfig sys/net sys/sys Date: Tue, 07 Nov 2017 09:06:52 -0800 Message-ID: <2707886.I9a5Fez8At@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201711070929.vA79TFTc096109@repo.freebsd.org> References: <201711070929.vA79TFTc096109@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Tue, 07 Nov 2017 12:15:42 -0500 (EST) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Nov 2017 17:15:44 -0000 On Tuesday, November 07, 2017 09:29:15 AM Konstantin Belousov wrote: > Author: kib > Date: Tue Nov 7 09:29:14 2017 > New Revision: 325506 > URL: https://svnweb.freebsd.org/changeset/base/325506 > > Log: > Add a place for a driver to report rx timestamps in nanoseconds from > boot for the received packets. > > The rcv_tstmp field overlaps the place of Ln header length indicators, > not used by received packets. The basic pkthdr rearrangement change > in sys/mbuf.h was provided by gallatin. > > There are two accompanying M_ flags: M_TSTMP means that there is the > timestamp (and it was generated by hardware). > > Another flag M_TSTMP_HPREC indicates that the timestamp is > high-precision. Practically M_TSTMP_HPREC means that hardware > provided additional precision comparing with the stamps when the flag > is not set. E.g., for ConnectX all packets are stamped by hardware > when PCIe transaction to write out the completion descriptor is > performed, but PTP packet are stamped on port. For Intel cards, when > PTP assist is enabled, only PTP packets are stamped in the limited > number of registers, so if Intel cards ever start support this > mechanism, they would always set M_TSTMP | M_TSTMP_HPREC if hardware > timestamp is present for the given packet. > > Add IFCAP_HWRXTSTMP interface capability to indicate the support for > hardware rx timestamping, and ifconfig(8) command to toggle it. Hmm, other NICs (Chelsio T4 and later for example) support timestamps that aren't in nanoseconds but some other frequency (which are themselves useful). It would be nice to have a more flexible interface that supports not only ns timestamps. Perhaps a way to expose a direct hardware timestamp as a "number" without a specific frequency? -- John Baldwin