First of all thanks MT for adding DHCP conflict detection. Looks like some polishing is still needed. As far as i know DHCP server trying to check IP in use or not using ICMP and ARP response before give a lease. Unfortunately DHCP server not checking idle hotspot sessions when client is disconnected but hotspot session is active until Idle timeout will kill that session. ARP has a record with DC (D - dynamic C - complete) status. That is why we having sometimes ARP with flapping MAC address (Current one and Old one from hotspot)
Can somebody fix that?
Conflict detection was always there (RFC requirement for DHCP servers). MT just added a checkbox to disable it (I am still puzzled who would need that because it breaks RFC). Hotspot is quite proprietary function, thus not covered by RFC.
If you are having issues right now, I would recommend to increase the DHCP lease time to avoid expiry before Hotspot timeout.
This will obviously use more addresses (because leases will stay reserved for longer period), but TBH - Hotspot is surely behind NAT so just use some /16 range and you will likely never run out of available addresses.
Remember that DHCP lease time counts from last DHCP REQ/ACK while hotspot timeout counts from last connection. Therefore, your lease time must accommodate enough spare time for situation, when client disconnects just shortly before renewing.
Should be, but was not working. I saw conflicts some time to time between statically assigned IP by customer (or stupid cheap router) and dynamic lease. Now since 6.47.1 i see in the log conflict detection and it is actually works.
I think you may be right. It is possible that originally they checked just by ICMP ping (compulsory by RFC) and now they are checking both ICMP and ARP (Optional by RFC). Reality is, that many devices refuse to answer ICMP on public interface so ICMP is not enough.
What makes me sad is, that I already saw a mobile phone refusing to answer ARP, unless it initiated the communication.