blob: 5ebb15a7d0a1f6cec2c4510c9ae3dc1c47f45844 [file] [log] [blame]
William A. Kennington III379b0612021-11-04 02:42:30 -07001#!/bin/bash
2# Copyright 2021 Google LLC
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16source "$(dirname "${BASH_SOURCE[0]}")"/ncsid_lib.sh
17
18UpdateRAGW() {
19 local netdev="$1"
20
21 local reqs=5
22 while true; do
23 local disc
24 if ! disc="$(RunInterruptible DiscoverRouter6 "$1" "$reqs" 360000)"; then
25 echo "Failed to discover router" >&2
26 continue
27 fi
28 # We don't want to send any requests after the initial finding
29 # Just passively listen now
30 reqs=-1
31
32 local vars
33 vars="$(echo "$disc" | JSONToVars)" || return
34 eval "$vars" || return
35 [ -n "$stateful_address" ] || continue
36 echo "GW($netdev) $router_ip MAC: $router_mac" >&2
37
38 SuppressTerm
39 local service='xyz.openbmc_project.Network'
40 local rc=0
41 UpdateGateway "$service" "$router_ip" && \
42 UpdateNeighbor "$service" "$netdev" "$router_ip" "$router_mac" || rc=$?
43 UnsuppressTerm
44 done
45}
46
47Main() {
48 set -o nounset
49 set -o errexit
50 set -o pipefail
51
52 InitTerm
53 UpdateRAGW "$@"
54}
55
56return 0 2>/dev/null
57Main "$@"