dhcpcd-discuss

RE: IPV4LL and EXPIRE

David Hauck

Mon Oct 27 18:57:34 2014

On Monday, October 27, 2014 10:05 AM, Roy Marples wrote:
> On 27/10/2014 17:02, David Hauck wrote:
>> On Monday, October 27, 2014 3:54 AM, Roy Marples wrote:
>>> On 25/10/2014 10:56, Roy Marples wrote:
>>>> On Friday 24 Oct 2014 22:44:20 David Hauck wrote:
>>>>>> I've fixed a few bugs since the initial patch and it now seems very
>>>>>> stable and reliable. Valgrind is reporting no memory errors as well.
>>>>>> 
>>>>>> The intial reported issue remains solved while allowing
>>>>>> concurrent DHCP and ARP requests :)
>>>>>> 
>>>>>> Testing of the trunk tarball would be nice at this point, just
>>>>>> incase I've missed something silly :)
>>>>>> http://roy.marples.name/projects/dhcpcd/tarball/dhcpcd-
>>>>>> trunk.tar.gz
>>>>> 
>>>>> I just ran a quick test of this.
>>>>> 
>>>>> I'm seeing is two things:
>>>>> 
>>>>> 1. When I go from a legitimately BOUND case (DHCP server assigned
>>>>> address) to a failure case (i.e., C1 unplugged, C2 plugged - i.e.,
>>>>> connected DHCP server to no connected DHCP server) I don't see
>>>>> IPV4LL being negotiated (I just see continual DISCOVER messages
>>>>> being sent). This seems to go on forever.
>>>>> 
>>>>> 2. When I'm in an IPV4LL state and then switch cables to C1
>>>>> (connected DHCP server) I see an eventually DHCP BOUND case (i.e.,
>>>>> legitimate IP address). However, what's odd about this scenario is
>>>>> that while the DHCP server is being contacted I would have thought
>>>>> the IPV4LL state machine would also be active - i.e., the old IPV4LL
>>>>> lease would be attempted. In my current configuration I have *no*
>>>>> IPV4LL addresses in my ARP cache so there can't have been any
>>>>> collisions.
>>>> 
>>>> I've done an even quicker test and I think both issues are now resolved.
>>>> However my test was with wireless, I'll try the more matching to
>>>> your issue with a wire later.
>>> 
>>> Looks fine testing with a cable as well with your scenario.
>>> Can you grab a new trunk build and test please?
>> 
>> Can I just download the previously tarball again?
> 
> Yes, that should work :)

Yup, this latest trunk seems to be working better wrt this sequence.

BTW, a couple additional questions:

1. If an IPV4LL link is established (with 169.254.239.165) and then lost in favour of a valid DHCP lease (e.g., 192.168.1.1) and then this is lost (NOCARRIER) and then an IPV4LL link is re-established (CARRIER, but to a segment without a DHCP server) I see that the original LL address is re-used (i.e., 169.254.239.165). Is this correct? Shouldn't the new LL be a newly random LL?

2. During the NOCARRIER state (and before IPV4LL or BOUND is established) I see there is no IPv4 address for the interface (which is expected), however this is an IPv6 address that continues to be associated. Why is this?
E.g.,
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
        inet6 fe80::20b:abff:fe36:1cfc  prefixlen 64  scopeid 0x20<link>
        ether 00:0b:ab:36:1c:fc  txqueuelen 1000  (Ethernet)
        RX packets 228540  bytes 21362755 (20.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 196  bytes 37719 (36.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xfd6c0000-fd6e0000

Thanks,
-David

Follow-Ups:
Re: IPV4LL and EXPIRERoy Marples
References:
IPV4LL and EXPIREDavid Hauck
Re: IPV4LL and EXPIRERoy Marples
RE: IPV4LL and EXPIREDavid Hauck
Re: IPV4LL and EXPIRERoy Marples
Re: IPV4LL and EXPIRERoy Marples
RE: IPV4LL and EXPIREDavid Hauck
Re: IPV4LL and EXPIRERoy Marples
Archive administrator: postmaster@marples.name