3.1.6.3 Remove an IP Address

When an IP address is to be deleted, the server MUST check whether the address is a member of the address list in any row of the table of connected subnets. If not, the notification is ignored.

Otherwise, the server MUST remove the address from the list for that row. The server SHOULD then increment its metadata version.<15>

If the list contains other addresses, the server SHOULD send a Hello message to update the address list, as specified in [WS-Discovery] section 4.1.<16> If the list contains no other addresses, then the server MUST delete the row from the table. The server MAY send a Bye message to the subnet of the deleted address, using the current instance GUID for the /s:Body/d:Bye/a:EndpointReference/a:Address child element, as specified in [WS-Discovery] section 4.2.

When a Hello message is sent, the server MUST send the message to the subnet whose address list changed, implying that the /s:Envelope/s:Body/d:Hello/d:XAddrs element MUST contain the server addresses in that subnet from the table of connected subnets. The server SHOULD send the message only to that subnet, in which case it SHOULD NOT contain addresses in other subnets.<17>

If the server sends the Hello message to multiple connected subnets, the /s:Envelope/s:Body/d:Hello/d:XAddrs element MUST contain the server addresses in each of those subnets.