ncsid: Reduce networkd reloads
This should help to avoid race conditions with phosphor-networkd. We
still write the networkd files so that when reloads occur the
information is updated correctly.
Change-Id: I550ea04deb8de12db8c4490e9f26f0d3a04baef7
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/subprojects/ncsid/src/update_ra_gw.sh b/subprojects/ncsid/src/update_ra_gw.sh
index 2090f73..086d835 100644
--- a/subprojects/ncsid/src/update_ra_gw.sh
+++ b/subprojects/ncsid/src/update_ra_gw.sh
@@ -52,7 +52,11 @@
printf '[Network]\nGateway=%s\n[Neighbor]\nMACAddress=%s\nAddress=%s' \
"$rtr" "$mac" "$rtr" >$net_file.d/10-gateway.conf
- networkctl reload && networkctl reconfigure "$NCSI_IF" || true
+ # Don't force networkd to reload as this can break phosphor-networkd
+ # Fall back to reload only if ip link commands fail
+ (ip -6 route replace default via "$rtr" dev "$NCSI_IF" && \
+ ip -6 neigh replace "$rtr" dev "$NCSI_IF" lladdr "$mac") || \
+ (networkctl reload && networkctl reconfigure "$NCSI_IF") || true
retries=-1
old_mac="$mac"