I will have to do a better job of reviewing the suggestions for the updated
code.  I disabled too much and the autoip wouldn't increment the IP address
at all with multiple targets.  I put it back to the way it was and it works
great, but I still see the IP address getting re-assigned when boot jumps
to main or main jumps to boot.  But I think you have the right idea, I just
have to implement it better.

On Fri, Jun 19, 2015 at 1:28 PM, Robert Deschambault <
[email protected]> wrote:

> Thanks for reminding me of the automatic increment of the IP address.  I
> was reviewing the code from v1.4.1 and the master branch and we are using
> v1.3.2.  I noticed that the newer code base no longer increments the IP
> address.  I had updated the code in the boot loader not to increment but
> had forgotten to make the same fix in the main program (I know they should
> be using the same code base ... ).  So now when I unplug the cable in main,
> it does not increment the IP address.  All is wonderful for one target.  I
> will move on to a multiple target situation.
>
> On Fri, Jun 19, 2015 at 12:26 PM, Zach Smith <[email protected]>
> wrote:
>
>>  Here is what I can tell you. The targets are auto configuring
>> themselves in the range you define. In the default (RFC compliant) range
>> there are 254*256 possibilities. So it is highly unlikely that 2 nodes will
>> choose the same one. But if so, then yes they discover each other by use of
>> ARP. If a conflict is found, the host increments its address and tries
>> again. I think you are right that there is no lease time concept. Once the
>> host chooses and auto ip address and determines it is available then it
>> keeps it.
>>
>>
>>
>> DHCP will continue to run sending DHCP discover messages periodically.
>> So, if a dhcp server comes on line then eventually the host will get a new
>> IP address assigned by the DHCP server and abandon the autoip
>> self-configured address.
>>
>>
>>
>> Regarding the Ethernet link, every time the Ethernet link changes you
>> should call netif_set_link_down() or up() which I believe restarts the
>> whole thing. I think when the network link comes back up, autoip starts at
>> the next incremented address (It might be more desirable to restart at the
>> original address. This may be a source of a possible improvement that could
>> be made to source code?)
>>
>>
>>
>> Have a look at the struct autoip member tried_llipaddr in source code.
>> This is what increments every time an autoip address is tried. On boot up
>> it will be 0 and therefore the initial address tried should be the same
>> every time. Not sure I get exactly what you are describing in number 2
>> there but regardless, have a look at netif->autoip->tried_llipaddr
>> throughout the source code and you should be able to figure out what is
>> causing it.
>>
>>
>>
>>
>> --
> Bob Deschambault
>
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to