ping6: Rename options for better consistency with ping
Now equivalent options have the same flags, and nonequivalent options have different flags. This is a prelude to merging the two commands. Submitted by: Ján Sučan <sucanjan@gmail.com> MFC: Never Sponsored by: Google LLC (Google Summer of Code 2019) Differential Revision: https://reviews.freebsd.org/D21345
This commit is contained in:
parent
5469a751a2
commit
208ae7b7b4
5
UPDATING
5
UPDATING
@ -26,6 +26,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
disable the most expensive debugging functionality run
|
||||
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
|
||||
|
||||
20190823:
|
||||
Several of ping6's options have been renamed for better consistency
|
||||
with ping. If you use any of -ARWXaghmrtwx, you must update your
|
||||
scripts. See ping6(8) for details.
|
||||
|
||||
20190727:
|
||||
The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls
|
||||
and the "-o sync_unmount" and "-o init_backgrounded" mount options have
|
||||
|
@ -29,7 +29,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd September 22, 2014
|
||||
.Dd August 22, 2019
|
||||
.Dt PING6 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -40,23 +40,17 @@ packets to network hosts
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.\" without ipsec, or new ipsec
|
||||
.Op Fl DdfHmnNoqrRtvwW
|
||||
.Op Fl aAdDfHnNoOquvyY
|
||||
.\" old ipsec
|
||||
.\" .Op Fl ADdEfmnNqRtvwW
|
||||
.Bk -words
|
||||
.Op Fl a Ar addrtype
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl b Ar bufsiz
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl c Ar count
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl g Ar gateway
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl h Ar hoplimit
|
||||
.Op Fl e Ar gateway
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl I Ar interface
|
||||
@ -65,15 +59,15 @@ packets to network hosts
|
||||
.Op Fl i Ar wait
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl x Ar waittime
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl X Ar timeout
|
||||
.Op Fl k Ar addrtype
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl l Ar preload
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl m Ar hoplimit
|
||||
.Ek
|
||||
.Bk -words
|
||||
.\" new ipsec
|
||||
.Op Fl P Ar policy
|
||||
.Ek
|
||||
@ -87,6 +81,12 @@ packets to network hosts
|
||||
.Op Fl s Ar packetsize
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl t Ar timeout
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Fl W Ar waittime
|
||||
.Ek
|
||||
.Bk -words
|
||||
.Op Ar hops ...
|
||||
.Ek
|
||||
.Bk -words
|
||||
@ -110,10 +110,10 @@ header formatted as documented in RFC2463.
|
||||
The options are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.\" old ipsec
|
||||
.\" .It Fl A
|
||||
.\" .It Fl Z
|
||||
.\" Enables transport-mode IPsec authentication header
|
||||
.\" (experimental).
|
||||
.It Fl a Ar addrtype
|
||||
.It Fl k Ar addrtype
|
||||
Generate ICMPv6 Node Information Node Addresses query, rather than echo-request.
|
||||
.Ar addrtype
|
||||
must be a string constructed of the following characters.
|
||||
@ -172,7 +172,7 @@ Only the super-user may use this option.
|
||||
.Bf -emphasis
|
||||
This can be very hard on a network and should be used with caution.
|
||||
.Ef
|
||||
.It Fl g Ar gateway
|
||||
.It Fl e Ar gateway
|
||||
Specifies to use
|
||||
.Ar gateway
|
||||
as the next hop to the destination.
|
||||
@ -182,7 +182,7 @@ Specifies to try reverse-lookup of IPv6 addresses.
|
||||
The
|
||||
.Nm
|
||||
utility does not try reverse-lookup unless the option is specified.
|
||||
.It Fl h Ar hoplimit
|
||||
.It Fl m Ar hoplimit
|
||||
Set the IPv6 hoplimit.
|
||||
.It Fl I Ar interface
|
||||
Source packets with the given interface address.
|
||||
@ -197,12 +197,12 @@ The default is to wait for one second between each packet.
|
||||
This option is incompatible with the
|
||||
.Fl f
|
||||
option.
|
||||
.It Fl x Ar waittime
|
||||
.It Fl W Ar waittime
|
||||
Time in milliseconds to wait for a reply for each packet sent.
|
||||
If a reply arrives later,
|
||||
the packet is not printed as replied,
|
||||
but considered as replied when calculating statistics.
|
||||
.It Fl X Ar timeout
|
||||
.It Fl t Ar timeout
|
||||
Specify a timeout,
|
||||
in seconds,
|
||||
before ping exits regardless of how many packets have been received.
|
||||
@ -214,12 +214,12 @@ is specified,
|
||||
sends that many packets as fast as possible before falling into its normal
|
||||
mode of behavior.
|
||||
Only the super-user may use this option.
|
||||
.It Fl m
|
||||
.It Fl u
|
||||
By default,
|
||||
.Nm
|
||||
asks the kernel to fragment packets to fit into the minimum IPv6 MTU.
|
||||
The
|
||||
.Fl m
|
||||
.Fl u
|
||||
option
|
||||
will suppress the behavior in the following two levels:
|
||||
when the option is specified once, the behavior will be disabled for
|
||||
@ -270,13 +270,13 @@ specifies IPsec policy to be used for the probe.
|
||||
Quiet output.
|
||||
Nothing is displayed except the summary lines at startup time and
|
||||
when finished.
|
||||
.It Fl r
|
||||
.It Fl a
|
||||
Audible.
|
||||
Include a bell
|
||||
.Tn ( ASCII
|
||||
0x07)
|
||||
character in the output when any packet is received.
|
||||
.It Fl R
|
||||
.It Fl A
|
||||
Audible.
|
||||
Output a bell
|
||||
.Tn ( ASCII
|
||||
@ -301,12 +301,12 @@ header data.
|
||||
You may need to specify
|
||||
.Fl b
|
||||
as well to extend socket buffer size.
|
||||
.It Fl t
|
||||
.It Fl O
|
||||
Generate ICMPv6 Node Information supported query types query,
|
||||
rather than echo-request.
|
||||
.Fl s
|
||||
has no effect if
|
||||
.Fl t
|
||||
.Fl O
|
||||
is specified.
|
||||
.It Fl v
|
||||
Verbose output.
|
||||
@ -314,20 +314,20 @@ Verbose output.
|
||||
packets other than
|
||||
.Tn ECHO_RESPONSE
|
||||
that are received are listed.
|
||||
.It Fl w
|
||||
.It Fl y
|
||||
Generate ICMPv6 Node Information DNS Name query, rather than echo-request.
|
||||
.Fl s
|
||||
has no effect if
|
||||
.Fl w
|
||||
.Fl y
|
||||
is specified.
|
||||
.It Fl W
|
||||
.It Fl Y
|
||||
Same as
|
||||
.Fl w ,
|
||||
.Fl y ,
|
||||
but with old packet format based on 03 draft.
|
||||
This option is present for backward compatibility.
|
||||
.Fl s
|
||||
has no effect if
|
||||
.Fl w
|
||||
.Fl y
|
||||
is specified.
|
||||
.It Ar hops
|
||||
IPv6 addresses for intermediate nodes,
|
||||
|
@ -347,14 +347,14 @@ main(int argc, char *argv[])
|
||||
#ifdef IPSEC_POLICY_IPSEC
|
||||
#define ADDOPTS "P:"
|
||||
#else
|
||||
#define ADDOPTS "AE"
|
||||
#define ADDOPTS "ZE"
|
||||
#endif /*IPSEC_POLICY_IPSEC*/
|
||||
#endif
|
||||
while ((ch = getopt(argc, argv,
|
||||
"a:b:c:DdfHg:h:I:i:l:mnNop:qrRS:s:tvwWx:X:" ADDOPTS)) != -1) {
|
||||
"k:b:c:DdfHe:m:I:i:l:unNop:qaAS:s:OvyYW:t:" ADDOPTS)) != -1) {
|
||||
#undef ADDOPTS
|
||||
switch (ch) {
|
||||
case 'a':
|
||||
case 'k':
|
||||
{
|
||||
char *cp;
|
||||
|
||||
@ -431,13 +431,13 @@ main(int argc, char *argv[])
|
||||
options |= F_FLOOD;
|
||||
setbuf(stdout, (char *)NULL);
|
||||
break;
|
||||
case 'g':
|
||||
case 'e':
|
||||
gateway = optarg;
|
||||
break;
|
||||
case 'H':
|
||||
options |= F_HOSTNAME;
|
||||
break;
|
||||
case 'h': /* hoplimit */
|
||||
case 'm': /* hoplimit */
|
||||
hoplimit = strtol(optarg, &e, 10);
|
||||
if (*optarg == '\0' || *e != '\0')
|
||||
errx(1, "illegal hoplimit %s", optarg);
|
||||
@ -481,7 +481,7 @@ main(int argc, char *argv[])
|
||||
if (preload < 0 || *optarg == '\0' || *e != '\0')
|
||||
errx(1, "illegal preload value -- %s", optarg);
|
||||
break;
|
||||
case 'm':
|
||||
case 'u':
|
||||
#ifdef IPV6_USE_MIN_MTU
|
||||
mflag++;
|
||||
break;
|
||||
@ -506,10 +506,10 @@ main(int argc, char *argv[])
|
||||
case 'q':
|
||||
options |= F_QUIET;
|
||||
break;
|
||||
case 'r':
|
||||
case 'a':
|
||||
options |= F_AUDIBLE;
|
||||
break;
|
||||
case 'R':
|
||||
case 'A':
|
||||
options |= F_MISSED;
|
||||
break;
|
||||
case 'S':
|
||||
@ -543,22 +543,22 @@ main(int argc, char *argv[])
|
||||
MAXDATALEN);
|
||||
}
|
||||
break;
|
||||
case 't':
|
||||
case 'O':
|
||||
options &= ~F_NOUSERDATA;
|
||||
options |= F_SUPTYPES;
|
||||
break;
|
||||
case 'v':
|
||||
options |= F_VERBOSE;
|
||||
break;
|
||||
case 'w':
|
||||
case 'y':
|
||||
options &= ~F_NOUSERDATA;
|
||||
options |= F_FQDN;
|
||||
break;
|
||||
case 'W':
|
||||
case 'Y':
|
||||
options &= ~F_NOUSERDATA;
|
||||
options |= F_FQDNOLD;
|
||||
break;
|
||||
case 'x':
|
||||
case 'W':
|
||||
t = strtod(optarg, &e);
|
||||
if (*e || e == optarg || t > (double)INT_MAX)
|
||||
err(EX_USAGE, "invalid timing interval: `%s'",
|
||||
@ -566,7 +566,7 @@ main(int argc, char *argv[])
|
||||
options |= F_WAITTIME;
|
||||
waittime = (int)t;
|
||||
break;
|
||||
case 'X':
|
||||
case 't':
|
||||
alarmtimeout = strtoul(optarg, &e, 0);
|
||||
if ((alarmtimeout < 1) || (alarmtimeout == ULONG_MAX))
|
||||
errx(EX_USAGE, "invalid timeout: `%s'",
|
||||
@ -590,7 +590,7 @@ main(int argc, char *argv[])
|
||||
errx(1, "invalid security policy");
|
||||
break;
|
||||
#else
|
||||
case 'A':
|
||||
case 'Z':
|
||||
options |= F_AUTHHDR;
|
||||
break;
|
||||
case 'E':
|
||||
@ -1835,7 +1835,7 @@ pr_exthdrs(struct msghdr *mhdr)
|
||||
|
||||
bufsize = CONTROLLEN - ((caddr_t)CMSG_DATA(cm) - (caddr_t)bufp);
|
||||
if (bufsize <= 0)
|
||||
continue;
|
||||
continue;
|
||||
switch (cm->cmsg_type) {
|
||||
case IPV6_HOPOPTS:
|
||||
printf(" HbH Options: ");
|
||||
@ -2783,7 +2783,7 @@ nigroup(char *name, int nig_oldmcprefix)
|
||||
}
|
||||
if (valid != 1)
|
||||
return NULL; /*XXX*/
|
||||
|
||||
|
||||
if (nig_oldmcprefix) {
|
||||
/* draft-ietf-ipngwg-icmp-name-lookup */
|
||||
bcopy(digest, &in6.s6_addr[12], 4);
|
||||
@ -2803,27 +2803,27 @@ usage(void)
|
||||
{
|
||||
(void)fprintf(stderr,
|
||||
#if defined(IPSEC) && !defined(IPSEC_POLICY_IPSEC)
|
||||
"A"
|
||||
"Z"
|
||||
#endif
|
||||
"usage: ping6 [-"
|
||||
"Dd"
|
||||
"aADd"
|
||||
#if defined(IPSEC) && !defined(IPSEC_POLICY_IPSEC)
|
||||
"E"
|
||||
#endif
|
||||
"fH"
|
||||
"fHnNoOq"
|
||||
#ifdef IPV6_USE_MIN_MTU
|
||||
"m"
|
||||
"u"
|
||||
#endif
|
||||
"nNoqrRtvwW] "
|
||||
"[-a addrtype] [-b bufsiz] [-c count] [-g gateway]\n"
|
||||
" [-h hoplimit] [-I interface] [-i wait] [-l preload]"
|
||||
"vyY] "
|
||||
"[-b bufsiz] [-c count] [-e gateway]\n"
|
||||
" [-I interface] [-i wait] [-k addrtype] [-l preload] "
|
||||
"[-m hoplimit]\n"
|
||||
" [-p pattern]"
|
||||
#if defined(IPSEC) && defined(IPSEC_POLICY_IPSEC)
|
||||
" [-P policy]"
|
||||
#endif
|
||||
"\n"
|
||||
" [-p pattern] [-S sourceaddr] [-s packetsize] "
|
||||
"[-x waittime]\n"
|
||||
" [-X timeout] [hops ...] host\n");
|
||||
" [-S sourceaddr] [-s packetsize]\n"
|
||||
" [-t timeout] [-W waittime] [hops ...] host\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,6 @@
|
||||
PACKAGE= tests
|
||||
|
||||
ATF_TESTS_SH+= ping6_test
|
||||
${PACKAGE}FILES+= ping6_c1_s8_X1.out
|
||||
${PACKAGE}FILES+= ping6_c1_s8_t1.out
|
||||
|
||||
.include <bsd.test.mk>
|
||||
|
@ -27,21 +27,21 @@
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
atf_test_case ping6_c1_s8_X1
|
||||
ping6_c1_s8_X1_head() {
|
||||
atf_test_case ping6_c1_s8_t1
|
||||
ping6_c1_s8_t1_head() {
|
||||
atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet"
|
||||
}
|
||||
ping6_c1_s8_X1_body() {
|
||||
ping6_c1_s8_t1_body() {
|
||||
if ! getaddrinfo -f inet6 localhost 1>/dev/null 2>&1; then
|
||||
atf_skip "IPv6 is not configured"
|
||||
fi
|
||||
atf_check -s exit:0 -o save:std.out -e empty \
|
||||
ping6 -c 1 -s 8 -X 1 localhost
|
||||
check_ping_statistics std.out $(atf_get_srcdir)/ping6_c1_s8_X1.out
|
||||
ping6 -c 1 -s 8 -t 1 localhost
|
||||
check_ping_statistics std.out $(atf_get_srcdir)/ping6_c1_s8_t1.out
|
||||
}
|
||||
|
||||
atf_init_test_cases() {
|
||||
atf_add_test_case ping6_c1_s8_X1
|
||||
atf_add_test_case ping6_c1_s8_t1
|
||||
}
|
||||
|
||||
check_ping_statistics() {
|
||||
|
Loading…
Reference in New Issue
Block a user