summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zebra/interface.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index b8426c6890..e355c88316 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -782,7 +782,20 @@ if_nbr_ipv6ll_to_ipv4ll_neigh_update (struct interface *ifp,
inet_pton (AF_INET, buf, &ipv4_ll);
ipv6_ll_address_to_mac(address, (u_char *)mac);
+
+ /*
+ * Remove existed arp record for the interface,
+ * because netlink protocol does not support message for update.
+ * supported commands RTM_NEWNEIGH or RTM_DELNEIGH
+ */
+
+ kernel_neigh_update (0, ifp->ifindex, ipv4_ll.s_addr, mac, 6);
+
+ /*
+ * Add arp record
+ */
kernel_neigh_update (add, ifp->ifindex, ipv4_ll.s_addr, mac, 6);
+
zvrf->neigh_updates++;
}