On Linux, dhcpcd we have sometimes an incorrect DHCP ClientID when a Wi-Fi interface temporarily reports an all-zero hardware address during initialization or reassociation.
Example log:
wlan0: using ClientID 01:00:00:00:00:00:00
The Wi-Fi adapter already had a valid MAC address at that time, but dhcpcd used an all-zero address to build the ClientID. As a result, the DHCP request is sent with an incorrect ClientID and the client may fail to obtain or renew its lease.
The log shows:
wlan0: carrier acquired
wlan0: using ClientID 01:00:00:00:00:00:00
wlan0: soliciting a DHCP lease
I think we should use a valid MAC address
Weshould wait for a valid hardware address or ignore transient invalid netlink notifications.
In if-linux.c, hardware-address changes were only processed when the interface was down:
if (!(ifi->ifi_flags & IFF_UP))
I have made the following patch
dhcpcd.patch
Is this patch correct ?
On Linux, dhcpcd we have sometimes an incorrect DHCP ClientID when a Wi-Fi interface temporarily reports an all-zero hardware address during initialization or reassociation.
Example log:
wlan0: using ClientID 01:00:00:00:00:00:00
The Wi-Fi adapter already had a valid MAC address at that time, but dhcpcd used an all-zero address to build the ClientID. As a result, the DHCP request is sent with an incorrect ClientID and the client may fail to obtain or renew its lease.
The log shows:
wlan0: carrier acquired
wlan0: using ClientID 01:00:00:00:00:00:00
wlan0: soliciting a DHCP lease
I think we should use a valid MAC address
Weshould wait for a valid hardware address or ignore transient invalid netlink notifications.
In if-linux.c, hardware-address changes were only processed when the interface was down:
if (!(ifi->ifi_flags & IFF_UP))
I have made the following patch
dhcpcd.patch
Is this patch correct ?