lsm-autoip.so

AutoIP negotiation module for link-local addresses

Syntax:

mount -Tio-pkt [-o option,option,...] lsm-autoip.so

Runs on:

Neutrino

Options:

if=interface
Specify the interface on which the AutoIP service is started. Only one interface is supported at one time. The default is en0.
ip=address
Attempt to claim address for the link-local address. If this fails, a random address is attempted until an unused IP address is found. You can use this option to force the AutoIP module to use a certain initial IP address. By default, this is a random IP address based on the MAC address of the interface. The same initial IP address would be chosen for a specific MAC address. This option is specified in dotted numeric notation.
debug
Enable debugging in verbose mode. Debug messages are logged to slogger.
abandon
Abandon the link-local address AutoIP is using. By default, the AutoIP module attempts to defend the link-local address it's using. Therefore, it challenges other hosts on its use of the address. If the other host persists, the AutoIP module releases its IP address, and chooses another. If you use this option, the AutoIP module releases the IP address as soon as a conflict is detected.
delay=ms
Set the delay before packets are transmitted. This affects the PROBE packets only. The delay is specified in milliseconds. You can set this option for a range of 8000 to 1 ms. The default is 2000 ms. You may want to set a shorter delay if your network isn't connected with Ethernet switches.
force
Even if interface obtained is a routable IP, force a Link Local IP address. (default is to leave Link Local IP untouched. See the Caveats below)

Description:

The AutoIP module (lsm-autoip.so) configures a specified interface with a link-local IP address by negotiating with neighboring hosts. If no host on the local network is using the IP address that the module has chosen, the interface is configured with the chosen address.

The AutoIP module chooses its address from the IANA registered IP address network of 169.254/16. Some of this network is reserved for special purposes, so the available addresses are from 169.254.1.0 to 169.254.254.255.

Once an IP address is chosen and configured, the AutoIP module continues to monitor the network for address conflicts, and either defends or changes the address assigned to the interface to correct conflicts.

Only one interface can be supported at one time. The module can be loaded only once.

The interface that AutoIP is servicing, must exist before AutoIP module being loaded.

When the AutoIP module configures a TCP/IP interface with an IP address, it does so as an alias. This way, if the interface already has an IP address, it won't delete the original address; the interface is assigned both addresses. This allows the module to coexist with dhcp.client.

Examples:

These examples assume a manual configuration in combination with AutoIP.

Configuring the interface:

ifconfig en0 alias 10.0.0.1

Unconfiguring the interface:

ifconfig en0 delete 10.0.0.1

Don't execute the following:

ifconfig en0 delete

This following command line mounts the AutoIP module to service interface en0. The initial link-local IP address that it PROBEs for is 169.254.20.20; it has a 200 ms delay between PROBE packets. If an IP address conflict is detected after the interface has been configured, it releases the address immediately.

mount -T io-pkt -oif=en0,ip=169.254.20.20,debug,delay=200,abandon lsm-autoip.so

Caveats:

The dhcp.client would delete the link-local IP address on an interface, after it has configured a routable IP address on the interface. This implies that if you already have some connection to other hosts using your link-local IP address, those links will be cut off. If later on dhcp.client obtained is an routable IP address.If this is a concern, you can use the force option to force the link-local address exist.

You can manually delete your routable IP address or link-local IP address. Just make sure you pass the address you want to delete into ifconfig. If you specify the force option, then you won't be able to remove link-local address.

See also:

dhcp.client, ifconfig, netstat

QNX Neutrino Core Networking User's Guide