]> git.puffer.fish Git - mirror/frr.git/commitdiff
fix #752 problem: ARP is not updating if mac address changed on remote side
authortigranmartirosyan <tigran@xcloudnetworks.com>
Mon, 3 Jul 2017 19:05:58 +0000 (23:05 +0400)
committertigranmartirosyan <tigran@xcloudnetworks.com>
Mon, 3 Jul 2017 19:05:58 +0000 (23:05 +0400)
zebra/interface.c

index b8426c6890b73f0cdc6700bd9b8442dcf187fda2..e355c8831686176c5c9adbb411e21dd512fa9ba2 100644 (file)
@@ -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++;
 }