Page MenuHomeFreeBSD

traceroute6: Don't keep trying on unreachables
AcceptedPublic

Authored by otis on Mon, Nov 11, 10:43 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 12, 10:47 AM
Unknown Object (File)
Tue, Nov 12, 8:13 AM
Unknown Object (File)
Tue, Nov 12, 6:20 AM
Unknown Object (File)
Tue, Nov 12, 5:43 AM
Subscribers
None

Details

Summary

Stop probing after receiving ICMP6_DST_UNREACH.

The behavior can be observed by tracing the route to
2a02:ee80:4028:1126::

Discussed with: Job Snijders, Nick Hilliard
Obtained from: OpenBSD

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 60500
Build 57384: arc lint + arc unit

Event Timeline

otis requested review of this revision.Mon, Nov 11, 10:43 PM
otis created this revision.

Not that it matters, but Linux also does this.
Thank you for the patch!

This revision is now accepted and ready to land.Tue, Nov 12, 12:52 AM

Ah... this will require an entry in traceroute6.8 (right before EXIT STATUS), but it can be done before committing, if others also accept this patch.

Print !R on route rejected error and update manual page.

This revision now requires review to proceed.Tue, Nov 12, 8:36 AM

Just a couple remarks:

usr.sbin/traceroute6/traceroute6.8
194

I still have hopes of unifying traceroute and traceroute6... while !R is not used by traceroute, ideally both should print the same annotations (they do not), or just the "common" ones.
If you and the other reviewers don't mind, I would prefer just to add a catch-all (default) case to the switch. At some point a letter for each type/code does not add more clarity IMO.
However, if you still think this should deserve its own letter, I won't object.

196
.It !<num>
ICMP unreachable code <num>.

To match traceroute(8)?

otis marked 2 inline comments as done.Tue, Nov 12, 1:53 PM
otis added inline comments.
usr.sbin/traceroute6/traceroute6.8
194

I still have hopes of unifying traceroute and traceroute6... while !R is not used by traceroute, ideally both should print the same annotations (they do not), or just the "common" ones.

This is valid point, I'll abandon !R for now, keeping !<num>. And let's do unifying both traceroutes as next step (I also considered that option).

If you and the other reviewers don't mind, I would prefer just to add a catch-all (default) case to the switch. At some point a letter for each type/code does not add more clarity IMO.
However, if you still think this should deserve its own letter, I won't object.

I'm indifferent, too.

otis marked an inline comment as done.
  • Do not print !R
  • Unify ICMPv6 to ICMP6 in manpage

Really update the manpage

This revision is now accepted and ready to land.Tue, Nov 12, 9:37 PM
usr.sbin/traceroute6/traceroute6.8
78

I thought ICMPv6 was the preferred way to express it.