[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [task #13508] Implement IPv4 Address Conflict Detection
From: |
Jasper Verschueren |
Subject: |
[lwip-devel] [task #13508] Implement IPv4 Address Conflict Detection |
Date: |
Mon, 10 Sep 2018 09:50:37 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 |
Follow-up Comment #9, task #13508 (project lwip):
First of all are the patches I sent good? Or do you have any comments?
We discussed topic 4 from comment #5 with our Ethernet test consultant.
The acd module should indeed be running on both autoip and dhcp but we cannot
announce the LL address once a valid dhcp address is present. In the
implementation from before my patches, the ongoing conflict detection was just
stopped once a routable address was obtained. But the netif kept listening to
this unmaintained address. That is not acceptable. In the comments it's said
that we MUST continue to listen to the LL address and that we MUST keep open
connections, this is actually not true. These are a should and a may, not
musts. I do think they are a good practice so they should be implemented in a
good way.
I would like to make the module so that it acts logically and as proposed in
the RFC (see comment #6).
My proposal:
* Add a function to etharp so we can send a probe or announce message
independent of netif->ip_addr. This will enable us to send a probe message for
a new routable address while the Link Local address is still active. We will
not need to put the netif->ip_addr to ANY.
* As Simon already asked we will indeed need to add the ACD module to both
autoip and dhcp but some changes will need to be done to the acd module so
only the address used by the netif is announced/defended.
* We need to update the acd module to accommodate following user case: so the
interface was previously configured with an IPv4 LL address and now has a
routable address. We want the LL address still active and it should keep doing
conflict detection. But once a conflict is seen, it should not defend it's
address it should just stop listening to the LL address and stop all open tcp
pcb's. We will change the behavior of the autoip_accept_packet function. Once
a conflict is found on the LL address and we have a valid routable address, we
will not select a new LL address.
I will start with the changes today. When these changes are implemented the
acd module should be perfectly in accordance with the RFC and should be
working nicely with autoip and dhcp.
If you have any comments to my proposal or the already sent patches please let
me know.
_______________________________________________________
Reply to this item at:
<https://savannah.nongnu.org/task/?13508>
_______________________________________________
Message sent via Savannah
https://savannah.nongnu.org/