In creating this duplicate address, I found that the RTM_IFINFO messages 
do not contain the IFF_DUPLICATE flag.  Instead icfg_set_addr() and 
icfg_set_flags() (in libinetcfg) perform DAD and return ICFG_DAD_FOUND 
if duplicate address is found.

The return value from icfg_set_addr() and icfg_set_flags() are checked 
and the state transition to MAINTENANCE if it is ICFG_DAD_FOUND.  Does 
this sound reasonable?

Anurag


bugzilla at defect.opensolaris.org wrote:
> http://defect.opensolaris.org/bz/show_bug.cgi?id=10682
>
>
>
> --- Comment #2 from amaguire <alan.maguire at sun.com> 2009-08-17 16:49:43 
> UTC ---
> (In reply to comment #1)
>   
>> (In reply to comment #0)
>>     
>>> Created an attachment (id=2428) [details] [details]
>>> nwamd log
>>>
>>> Recently we ran into an issue while testing, where we were getting an IP
>>> address from the DHCP server that someone else had statically assigned to 
>>> their
>>> machine.
>>>
>>> This cause the i/f to change state constantly due to the duplicated address
>>> causing DHCP to drop it and look for another .
>>>
>>> nwamd needs to detect this situation and handle it in a way that informs the
>>> user of the problem so that they can reasonably seek admin action to resolve
>>> it.
>>>
>>> To me this would require that we communicate the duplicate address 
>>> situation,
>>> with information about the address that's causing it.
>>>       
>> it'd probably make sense for us to look out for IFF_DUPLICATE in the 
>> interface
>> flags, and if found in handling the interface state event in
>> nwamd_ncu_handle_if_state_event(), move the IP NCU into "maintenance, 
>> duplicate
>> address detected".
>>     
>
> this is easy to reproduce, just set a User-ncp ncu to use a static address
> which is already in use on your network. We see the interface flag "DUPLICATE"
> and the interface is down.
>
>   

Reply via email to