Hello, I have a machine with four network interfaces and I'm using ip=dhcp during development on it.
in ic_dynamic the procedure is the following (assuming no successful reply is received in time): timeout = 2s + random([0, 1]) s loop: send bootp on 1st dev wait 1s send bootp on 2nd dev wait 1s send bootp on 3rd dev wait 1s send bootp on 4th dev wait timeout timeout = timeout * 4 / 7 goto loop; My problem now is: The dhcp server is reachable via the first device and takes little more than 1s to respond. A reply must match the last sent request to be accepted. So the obvious questions are: Why is only the last timeout increased for each loop? Why is there a difference at all between the waits which results in a special casing of the last device? Alternatively, why not accept a reply on eth0 when eth1 has already sent a request? Then the procedure could be: timeout = 2s + random([0, 1]) s loop: send bootp on 1st dev send bootp on 2nd dev send bootp on 3rd dev send bootp on 4th dev wait timeout timeout = timeout * 4 / 7 goto loop; which looks more effective. Is there anything I missed? Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |