freebsd-src/contrib
Jose Luis Duran 8aafae6639 traceroute: Implement ECN bleaching detection
Explicit Congestion Notification (ECN) is a mechanism that allows
end-to-end notification of network congestion without dropping packets
by explicitly setting the ECN code point (2 bits).

Per RFC 8087, section 3.5, network devices should not be configured to
change the ECN code point in the packets that they forward, except to
set the CE (Congestion Experienced) code point ('11') to signal
incipient congestion.

The current commit adds an -E flag to traceroute that crafts a packet
with an ECT(1) code point ('01').

If the packet is received back with a zero ECN code point ('00'), it
outputs that the hop in question erases or "bleaches" the ECN code point
values.  Bleaching may occur for various reasons (including normalizing
packets to hide which equipment supports ECN).  This policy prevents the
use of ECN by applications.

If the packet is received back with an all-ones ECN code point ('11'),
it outputs that the hop in question is experiencing "congestion".

If the packet is received back with a different ECN code point ('10'),
it outputs that the hop in question changes or "mangles" the ECN code
point values.

If the packet is received with the same ECN code point that was sent
('01'), it outputs that the hop has "passed" the ECN bits appropriately.

Inspired by:	Darwin
Reviewed by:	imp, markj
MFC after:	1 month
Pull Request:	https://github.com/freebsd/freebsd-src/pull/879
2024-01-03 12:57:54 -05:00
..
arm-optimized-routines Update the Arm Optimized Routine library to v23.01 2023-06-09 17:56:02 +01:00
atf atf-sh: fix comment typo 2023-12-26 16:24:42 -07:00
bc contrib/bc: upgrade to version 6.6.0 2023-05-25 17:55:31 +02:00
bearssl Merge commit 'd84e570b54961e8874bbd8de25635eb96be0977e' 2023-02-20 22:13:27 -08:00
bionic-x86_64-string Import bionic's x86_64 optimized string routines 2022-08-16 13:27:11 -04:00
blocklist Track upstream project rename in contrib/blocklistd 2023-11-03 16:53:04 -04:00
bmake Merge bmake-20230909 2023-09-17 18:09:37 -07:00
bsddialog bsddialog: import version 1.0 2023-10-04 18:12:03 +02:00
bsnmp bsnmp: make single bit bitfields unsigned to avoid clang 16 warning 2023-04-17 18:26:03 +02:00
byacc byacc: Adjust expected test output to match our patches. 2023-02-22 20:05:02 +01:00
bzip2 bzip2: remove locally added __FBSDID 2023-11-27 16:47:22 +00:00
capsicum-test capsicum: introduce cap_rights_is_empty Function 2023-12-11 12:15:46 +01:00
com_err
cortex-strings
dialog
diff gnu diff3: apply patch to committed src, rather than at build time 2022-11-13 21:33:40 -05:00
dma dma: use OpenSSL 1.1 init API 2023-05-11 19:03:34 -04:00
ee ee: remove locally added __FBSDID 2023-11-27 16:47:26 +00:00
elftoolchain readelf: fix -wR option, memory leaks, and -wf minor bug 2023-03-06 12:51:23 -05:00
expat MFV: expat 2.5.0 2022-11-17 22:15:00 -08:00
file (upstream) PR/386: Add newlines for consitency 2 2023-10-08 21:52:53 -07:00
flex
gdtoa
googletest Import GoogleTest 1.14.0 2023-08-10 02:32:33 -07:00
hyperv/tools hyperv/kvp: Remove set but unused variables. 2023-06-27 10:19:32 -07:00
jemalloc jemalloc: Define SWAP_RESERVE_* if not provided by the system headers 2022-09-17 01:35:35 +03:00
kyua
ldns ldns: Remove a set but unused variable. 2023-06-27 10:19:32 -07:00
ldns-host
less MFV: less v643. 2023-08-13 00:13:31 -07:00
lib9p lib9p: Remove set but unused sockets[] array from l9p_start_server. 2023-06-20 09:28:59 -07:00
libarchive Tweaks to libarchive's upgrade instructions 2023-10-20 12:12:02 -03:00
libbegemot
libc-pwcache Remove __FBSDID from netbsd libc sources 2023-11-21 00:21:11 +00:00
libc-vis Remove __FBSDID from netbsd libc sources 2023-11-21 00:21:11 +00:00
libcbor libcbor: update to 0.10.2 2023-04-21 16:10:03 -04:00
libcxxrt Merge libcxxrt commit 5d8a15823a103bbc27f1bfdcf2b5aa008fab57dd 2022-08-08 12:50:48 -04:00
libdivsufsort
libedit libedit: update to snapshot 2023-01-06 2023-02-06 14:25:06 +01:00
libevent libevent: Import libevent 2.1.12 2023-11-14 17:13:02 -08:00
libexecinfo
libfido2 libfido2: update to 1.13.0 2023-09-19 13:06:12 -04:00
libpcap libpcap: Update to 1.10.4 2023-05-05 10:56:10 -03:00
libucl
libxo Merge commit '7087c8de43b0d5d27c52da6ba2ba4957b7e336ff' into new_merge 2023-01-30 00:04:21 -05:00
llvm-project Merge commit c97a7675eea4 from llvm git (by Qiu Chaofan): 2023-12-29 20:30:45 +01:00
lua Merge LUA 5.4.6 2023-07-15 11:31:04 -06:00
lutok
mandoc mandoc: fix bootstrapping on Linux with Clang 16 2023-12-11 21:14:56 -08:00
mknod
mtree
ncurses
netbsd-tests Add expected failure for tmpfs atime test failing on FreeBSD 2023-10-22 10:58:52 -04:00
netcat netcat: add --crlf to convert LF into CRLF 2023-08-28 10:58:17 +00:00
ntp ntp: Fix build 2023-06-06 06:27:05 -07:00
nvi nvi: import version 2.2.1 2023-09-27 18:14:45 +02:00
ofed ofed: use ANSI C functions definitions in opensm/sm.c 2023-12-26 21:22:01 +02:00
one-true-awk Revert "awk: Merge upstream 2nd Edition Awk Book" 2023-11-15 15:28:05 -07:00
openbsm Remove my middle name. 2023-08-17 15:08:30 +02:00
opencsd/decoder Import OpenCSD v.1.4.0. 2023-03-27 17:03:16 +01:00
openpam openpam: Migrate from COMPAT_32BIT to generic COMPAT_libcompat 2023-07-09 18:48:17 +01:00
openresolv
pam_modules/pam_passwdqc
pf pf: Remove __FBSDID() macro use 2023-11-21 00:21:11 +00:00
pjdfstest
pnglite
pnpinfo pnpinfo: remove locally added __FBSDID 2023-11-27 16:47:30 +00:00
processor-trace
sendmail Note upgrade to sendmail 8.17.1 2023-02-01 02:22:39 +00:00
smbfs smbfs: remove locally added __FBSDID 2023-11-27 16:47:33 +00:00
spleen contrib/spleen: update to Spleen 2.0.0 2023-06-08 10:42:25 -04:00
sqlite3 sqlite3: Vendor import of sqlite3 3.44.0 2023-11-13 08:50:36 -08:00
tcp_wrappers tcp_wrappers: recognize IPv6 addresses/prefixes 2023-07-20 14:56:20 -07:00
tcpdump tcpdump: decode pfsync packets on network interfaces 2023-11-08 16:12:14 +01:00
tcsh
telnet Fix snprintf truncation in telnet 2023-12-21 23:45:52 +01:00
terminus
tnftp
traceroute traceroute: Implement ECN bleaching detection 2024-01-03 12:57:54 -05:00
tzcode Update tzcode to 2023c. 2023-04-26 11:46:21 +02:00
tzdata contrib/tzdata: import tzdata 2023d 2023-12-23 09:51:01 +08:00
unbound Unbound: Remove backup file brought in from upstream 2023-11-13 16:46:12 -08:00
unifdef unifdef: Handle redefined symbols correctly. 2023-09-06 17:11:13 +00:00
unvis
vis
wireguard-tools Merge commit '93bf91b4012a28610672d2266366dfa0a663b70f' into HEAD 2022-11-04 22:46:21 -05:00
wpa wpa: ctrl_iface set sendbuf size 2023-12-02 20:37:36 +00:00
xz MFV: xz 5.4.5 2023-11-25 17:02:59 -08:00