rtsold

Router solicitation daemon

Syntax:

rtsold [-dDfFmu1] [-O script-name] [-p pidfile] [-R script-name] interface ...
rtsold [-dDfFmu1] [-O script-name] [-p pidfile] [-R script-name] -a
rtsold [-dDu] [-O script-name] [-R script-name] interface ...
rtsold [-dDu] [-O script-name] [-R script-name] -a

Runs on:

QNX Neutrino

Options:

-1
Perform only one probe. Send Router Solicitation packets until valid Router Advertisement packets arrive from all the interfaces, then exit.
-a
Autoprobe the outgoing interface. The rtsold daemon tries to find a non-loopback, non-point-to-point, IPv6-capable interface. If it finds multiple interfaces, rtsold exits with an error.
-D
Increase the debugging level. Also print internal timer information.
-d
Enable debugging.
-F
Explicitly configure the system to accept Router Advertisements and disable IPv6 forwarding. These settings are required for proper rtsold operation. Without this option, the current settings are obeyed; if they're incompatible with proper operation, warning messages are generated, but Router Solicitations are still sent. You can manually change the settings with sysctl and ifconfig.
-f
Prevent rtsold from becoming a daemon (foreground mode). Warning messages are generated to standard error output, instead of syslog().
-m
Enable mobility support; send probing packets to the default routers that advertised Router Advertisements when the node (re)attached to an interface. Periodically send Router Solicitation on an interface that doesn't support the SIOCGIFMEDIA ioctl() command.
-O script-name
("Oh") Specify a supplement script file to handle the Other Configuration flag of the router advertisement. When the flag changes from FALSE to TRUE, rtsold invokes script-name with a single argument of the receiving interface name, expecting the script will then start a protocol for the other configuration. The script-name must be the absolute path from root to the script file, be a regular file, and be created by the same owner who runs rtsold.
-p pidfile
Write the process ID of rtsold to pidfile instead of to the default PID file, /var/run/rtsold.pid.
-R script-name
Specify a script to run when router advertisment options RDNSS (Recursive DNS Server) or DNSSL (DNS Search List) are encountered. The information of DNS servers and DNS search domains is sent to standard input of this script. The resolv.conf script is used by default.
-u
Specify whether to add the source address of Router Advertisement messages to the interface name in an argument of the RDNSS and DNSSL script:
  • If you specify -u, the interface name in the script argument is ifname:slaac:[RA-source-address].
  • If you don't, the name is ifname:slaac.
interface
The name of the interface(s) where messages are to be sent.

Description:

The rtsold daemon sends ICMPv6 Router Solicitation messages on the specified interfaces. If a node (re)attaches to a link, rtsold sends some Router Solicitations on the link destined to the link-local scope all-routers multicast address to discover new routers and to get non-link-local addresses.

If you use rtsol, probes are transmitted from the interface specified, without becoming a daemon. It behaves the same as:

rtsold -f1 interface

The rtsold daemon sends at most three Router Solicitations on an interface after one of the following events:

Once rtsold sends a Router Solicitation, and receives a valid Router Advertisement, it refrains from sending additional solicitations on that interface, until the next time one of the above events occurs.

When sending a Router Solicitation on an interface, rtsold includes a Source Link-layer address option if the interface has its link-layer address.

When a SIGUSR1 signal is received, rtsold dumps the current internal state into /var/run/rtsold.dump.

Files:

/var/run/rtsold.pid
The pid of the currently running rtsold.
/var/run/rtsold.dump
Dump of the current internal state.

Exit status:

0
Successful completion.
Nonzero
An error occurred.

Caveats:

Before this utility will work, you need to enable the TCP/IP stack to accept route advertisements, like this:

sysctl -w net.inet6.ip6.accept_rtadv=1