git: 0829839fd0cd - main - traceroute.8: improve the documentation of -P

From: Lexi Winter <ivy_at_FreeBSD.org>
Date: Thu, 15 May 2025 00:04:18 UTC
The branch main has been updated by ivy:

URL: https://cgit.FreeBSD.org/src/commit/?id=0829839fd0cd6046fbb5c0b6c6432b5ffe0d91e8

commit 0829839fd0cd6046fbb5c0b6c6432b5ffe0d91e8
Author:     Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2025-05-14 16:05:02 +0000
Commit:     Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2025-05-15 00:02:52 +0000

    traceroute.8: improve the documentation of -P
    
    1. -P didn't say what the argument is supposed to be; in the case of
       udplite(4), "-Pudp-lite" is not valid, one must use "-Pudplite".
    2. be more explicit about what sort of packets we generate, particularly
       for -Psctp and -Pgre.
    
    Reviewed by:    imp, tuexen, des
    Approved by:    des (mentor)
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/1657
---
 usr.sbin/traceroute/traceroute.8 | 62 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 57 insertions(+), 5 deletions(-)

diff --git a/usr.sbin/traceroute/traceroute.8 b/usr.sbin/traceroute/traceroute.8
index 203b743fb408..a97395944b2a 100644
--- a/usr.sbin/traceroute/traceroute.8
+++ b/usr.sbin/traceroute/traceroute.8
@@ -15,7 +15,7 @@
 .\"
 .\"	$Id: traceroute.8,v 1.19 2000/09/21 08:44:19 leres Exp $
 .\"
-.Dd November 17, 2023
+.Dd May 14, 2025
 .Dt TRACEROUTE 8
 .Os
 .Sh NAME
@@ -136,10 +136,62 @@ to terminate the route tracing).
 If something is listening on a port in the default range, this option can be
 used to pick an unused port range.
 .It Fl P Ar proto
-Send packets of specified IP protocol.
-The currently supported protocols
-are: UDP, UDP-Lite, TCP, SCTP, GRE and ICMP.
-Other protocols may also be specified (either by name or by number), though
+Use packets of specified IP protocol when sending probes.
+The
+.Ar proto
+argument may be one of the following:
+.Bl -tag -width Ar udplite
+.It Ar udp
+Use
+.Xr udp 4
+packets.
+This is the default.
+.It Ar icmp
+Use
+.Xr icmp 4
+.Dq echo request
+packets.
+.It Ar udplite
+Use
+.Xr udplite 4
+packets.
+.It Ar tcp
+Use
+.Xr tcp 4
+.Dq SYN
+packets.
+This will cause a successful traceroute to end with no response (i.e., a
+.Dq *
+response) since
+.Nm
+does not know how to detect the RST or SYN+ACK response from the
+destination host.
+.It Ar sctp
+Use
+.Xr sctp 4
+packets.
+The
+.Ar packetlen
+argument must be a multiple of 4.
+SCTP probes will be constructed as SCTP
+.Dq INIT
+chunks, unless the packet length is too small, in which case the probes
+will be SCTP
+.Dq SHUTDOWN-ACK
+chunks followed by zero or one
+.Dq PAD
+chunks.
+.It Ar gre
+Use
+.Xr gre 4
+packets.
+The GRE packets will be constructed as if they contain a PPTP
+(Point-to-Point Tunneling Protocol) payload.
+.El
+.Pp
+Other protocols may also be specified, either by number or by name (see
+.Xr protocols 5 ) ,
+though
 .Nm
 does not implement any special knowledge of their packet formats.
 This option is useful for determining which router along a path may be blocking