diff options
author | Samuel Tan <samueltan@google.com> | 2015-08-13 16:48:29 -0700 |
---|---|---|
committer | Samuel Tan <samueltan@google.com> | 2015-08-18 13:47:08 -0700 |
commit | 11464a5b08c94f30b5e7b59731e972b8c5bd4099 (patch) | |
tree | 5da7997a5f41dd4183437509242cd5fdf6d1191b | |
parent | 9177c6fae9fb7aecf0a0d378050788ba609a5a41 (diff) | |
download | dhcpcd-6.8.2-11464a5b08c94f30b5e7b59731e972b8c5bd4099.tar.gz |
[PATCH] Stop ARP probes when conflict is detected
Cherry-picked from
https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/
master/net-misc/dhcpcd/files/patches/dhcpcd-6.8.2-Stop-ARP-probes-when-
conflict-is-detected.patch.
Currently, an ARP state is create for each IP when performing duplicate
address detection. However, when duplicate address is detected, the ARP
state for that IP doesn't get cleanup, causing the ARP request to be
sent continuously with a random timeout. All ARP states would eventually
get cleanup when a duplicate address detection succeed.
So clean up the ARP state when duplicate address is detected to avoid
generating unnecessary traffics and causing any problems with the dhcp
state machine.
BUG: 22956197
Change-Id: I0e6a2f14eb3871872dee409b6b0c87ec19c58bed
Reviewed-on: https://chromium-review.googlesource.com/272614
-rw-r--r-- | dhcp.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -2774,6 +2774,7 @@ dhcp_arp_conflicted(struct arp_state *astate, const struct arp_msg *amsg) if (ia) ipv4_deladdr(astate->iface, &ia->addr, &ia->net); #endif + arp_close(astate->iface); eloop_timeout_delete(astate->iface->ctx->eloop, NULL, astate->iface); eloop_timeout_add_sec(astate->iface->ctx->eloop, |