Fix to preserve the old peer router MAC when a router is updated.

Change-Id: I690c80813254b52e46f242b21afe3d6e005ee56d
(cherry picked from commit 22591604f64ba868bec2ff305c534f667d9058e2)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRouterWatcher.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRouterWatcher.java
index c346c58..58ca9f8 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRouterWatcher.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtRouterWatcher.java
@@ -28,6 +28,7 @@
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.kubevirtnetworking.api.AbstractWatcher;
+import org.onosproject.kubevirtnetworking.api.KubevirtPeerRouter;
 import org.onosproject.kubevirtnetworking.api.KubevirtRouter;
 import org.onosproject.kubevirtnetworking.api.KubevirtRouterAdminService;
 import org.onosproject.kubevirtnetworking.api.KubevirtRouterService;
@@ -244,6 +245,16 @@
                     name);
 
             KubevirtRouter router = parseKubevirtRouter(resource);
+
+            KubevirtPeerRouter oldPeerRouter = adminService.router(router.name()).peerRouter();
+            if (oldPeerRouter != null
+                    && Objects.equals(oldPeerRouter.ipAddress(), router.peerRouter().ipAddress())
+                    && oldPeerRouter.macAddress() != null
+                    && router.peerRouter().macAddress() == null) {
+
+                router = router.updatePeerRouter(oldPeerRouter);
+            }
+
             if (router != null) {
                 adminService.updateRouter(router);
             }