freebsd-skq/lib/libc
Maxim Sobolev 339efd75a4 Add a new socket option SO_TS_CLOCK to pick from several different clock
sources to return timestamps when SO_TIMESTAMP is enabled. Two additional
clock sources are:

o nanosecond resolution realtime clock (equivalent of CLOCK_REALTIME);
o nanosecond resolution monotonic clock (equivalent of CLOCK_MONOTONIC).

In addition to this, this option provides unified interface to get bintime
(equivalent of using SO_BINTIME), except it also supported with IPv6 where
SO_BINTIME has never been supported. The long term plan is to depreciate
SO_BINTIME and move everything to using SO_TS_CLOCK.

Idea for this enhancement has been briefly discussed on the Net session
during dev summit in Ottawa last June and the general input was positive.

This change is believed to benefit network benchmarks/profiling as well
as other scenarios where precise time of arrival measurement is necessary.

There are two regression test cases as part of this commit: one extends unix
domain test code (unix_cmsg) to test new SCM_XXX types and another one
implementis totally new test case which exchanges UDP packets between two
processes using both conventional methods (i.e. calling clock_gettime(2)
before recv(2) and after send(2)), as well as using setsockopt()+recv() in
receive path. The resulting delays are checked for sanity for all supported
clock types.

Reviewed by:    adrian, gnn
Differential Revision:  https://reviews.freebsd.org/D9171
2017-01-16 17:46:38 +00:00
..
aarch64 Attach the cortex strings library to the build. Only a subset of functions 2016-09-19 15:08:03 +00:00
amd64 Reduce duplicate NOASM and PSEUDO definitions 2016-09-08 22:38:20 +00:00
arm Reduce duplicate NOASM and PSEUDO definitions 2016-09-08 22:38:20 +00:00
capability
compat-43
db Sync ^/vendor/NetBSD/tests/dist with upstream 2017-01-12 07:26:39 +00:00
gdtoa
gen Sync ^/vendor/NetBSD/tests/dist with upstream 2017-01-12 07:26:39 +00:00
gmon Replace the last non-optional use of sbrk() in the tree with mmap(). 2016-01-21 18:17:19 +00:00
i386 Reduce duplicate NOASM and PSEUDO definitions 2016-09-08 22:38:20 +00:00
iconv citrus: Remove redundant code in _citrus_esdb_get_list(). 2016-06-02 17:28:39 +00:00
include Export __cxa_thread_atexit_impl as an alias for __cxa_thread_atexit. 2017-01-07 16:05:19 +00:00
inet Update ^/vendor/NetBSD/tests/dist to a more recent snapshot 2016-08-12 01:05:07 +00:00
isc libc: do not include <sys/types.h> where <sys/param.h> was already included 2016-04-18 21:05:15 +00:00
locale Move __hidden attribute towards the end of the declaration. 2016-12-31 15:30:00 +00:00
md
mips Add full softfloat and hardfloat support for MIPS. 2016-10-31 15:33:58 +00:00
nameser libc: spelling fixes. 2016-04-30 01:24:24 +00:00
net Sync ^/vendor/NetBSD/tests/dist with upstream 2017-01-12 07:26:39 +00:00
nls Use current locale (f.e. set by thread). It was global locale always 2016-08-24 16:44:27 +00:00
posix1e libc: spelling fixes. 2016-04-30 01:24:24 +00:00
powerpc Fix a typo which broke the build for powerpc. 2016-10-25 01:32:35 +00:00
powerpc64 Reduce duplicate NOASM and PSEUDO definitions 2016-09-08 22:38:20 +00:00
powerpcspe Fix a copy&paste-o causing a segfault with sigsetjmp. 2016-10-29 01:22:55 +00:00
quad
regex Sync ^/vendor/NetBSD/tests/dist with upstream 2017-01-12 07:26:39 +00:00
resolv Don't leak addrinfo if ai->ai_addrlen <= minsiz test fails. 2016-06-08 09:40:06 +00:00
riscv Add full softfloat and hardfloat support for RISC-V. 2016-11-16 15:21:32 +00:00
rpc Sync ^/vendor/NetBSD/tests/dist with upstream 2017-01-12 07:26:39 +00:00
secure libc: do not include <sys/types.h> where <sys/param.h> was already included 2016-04-18 21:05:15 +00:00
softfloat Add full softfloat and hardfloat support for RISC-V. 2016-11-16 15:21:32 +00:00
sparc64 Reduce duplicate NOASM and PSEUDO definitions 2016-09-08 22:38:20 +00:00
stdio Revert r310138 2016-12-22 22:30:42 +00:00
stdlib Export __cxa_thread_atexit_impl as an alias for __cxa_thread_atexit. 2017-01-07 16:05:19 +00:00
stdtime 1) For already non-standard %z extension implement GNU compatible formats: 2016-09-21 15:47:40 +00:00
string Commit updates accepted upstream (NetBSD) 2017-01-12 07:21:56 +00:00
sys Add a new socket option SO_TS_CLOCK to pick from several different clock 2017-01-16 17:46:38 +00:00
tests Upgrade NetBSD tests to 01.11.2017_23.20 snapshot 2017-01-13 03:33:57 +00:00
uuid libc: replace 0 with NULL for pointers. 2016-04-10 19:33:58 +00:00
x86/sys __vdso_gettc(): be extra careful with /dev/hpet mappings, never unmap 2017-01-04 16:10:52 +00:00
xdr libc/xdr: unsign some loop indexes. 2016-05-06 16:03:40 +00:00
yp Use on crypto.x and rpc.x from the source tree. 2016-06-28 19:53:16 +00:00
libc_nossp.ldscript Add different libc ldscript: the one without libssp -- 2016-10-12 13:19:21 +00:00
libc.ldscript
Makefile Add full softfloat and hardfloat support for RISC-V. 2016-11-16 15:21:32 +00:00
Makefile.depend DIRDEPS_BUILD: Regenerate without local dependencies. 2016-02-24 17:20:11 +00:00
Versions.def Create namespace for the symbols added during 12-CURRENT cycle. 2016-08-06 13:28:58 +00:00