Address collision

The Internet module now issues a service when it detects another system on the network with the same address. Components may recover from this by reconfiguring the interface.

Service_InternetStatus 8 (Service Call &B0)
On entry
   R0 = 8 (subreason code)
   R1 = &B0 (reason code)
   R2 = pointer to interface name (eg "ea0")
   R3 = pointer to Driver Information Block for interface
   R4 = IP address duplicated (network byte order)
   R5 = pointer to hardware address of machine with duplicate IP address
On exit
   R0,R2-R5 preserved.
   R1 = 0 to claim service call, else preserved.

This service call is issued by the Internet module (version 5.08 or later) when it detects a machine using a duplicate IP address. This is normally detected when an incoming ARP packet is received with our IP address but a different hardware address.

As a probe, whenever an interface is reconfigured, the Internet module sends out an ARP request for our IP address to make any such machines reply. That will then trigger this service call.

Normally, the Internet module will shut down outright as a safety measure if this happens. However, if this service call is claimed it will continue operation. It is expected that anyone claiming this service call should take appropriate action; for example the DHCP module might remove our IP address, send a DHCPDECLINE message and go back into the DHCP INIT state.

This documentation is copyright 3QD Developments Ltd 2013 and may not be reproduced or published in any form without the copyright holders permission. RISC OS is subject to continuous development and improvement as such all information is reproduced by 3QD Developments Ltd in good faith and is believed to be correct at the time of publication E&OE. 3QD Developments Ltd cannot accept any liability for any loss or damage arising from the use of any information provided as part of the RISC OS Documentation.

HTML document version 1.03 3rd November 2015