blob: e78a0ca692975abd45d05047e6cb3719f49b27ae [file] [log] [blame]
William A. Kennington III7d6fa422021-02-08 17:04:02 -08001#!/bin/bash
2source "$(dirname "${BASH_SOURCE[0]}")"/ncsid_lib.sh
3
Patrick Williams59486672022-12-08 06:23:47 -06004function HandleDHCP6() {
5 local op="$1"
William A. Kennington III7d6fa422021-02-08 17:04:02 -08006
Patrick Williams59486672022-12-08 06:23:47 -06007 if [ "$op" = "bound" ]; then
8 echo "INTF: $interface" >&2
9 echo "IP: $ipv6/128" >&2
William A. Kennington III7d6fa422021-02-08 17:04:02 -080010
Patrick Williams59486672022-12-08 06:23:47 -060011 local disc
12 if ! disc="$(DiscoverRouter6 "$interface" 5 1000)"; then
13 echo "Failed to discover router" >&2
14 return 1
15 fi
16 local vars
17 vars="$(echo "$disc" | JSONToVars)" || return
18 eval "$vars" || return
19 echo "GW: $router_ip" >&2
20 echo "GW_MAC: $router_mac" >&2
21
22 SuppressTerm
23 local service='xyz.openbmc_project.Network'
24 local rc=0
25 SetStatic "$service" "$interface" && \
26 UpdateIP "$service" "$interface" "$ipv6" '128' && \
27 UpdateGateway "$service" "$interface" "$router_ip" && \
28 UpdateNeighbor "$service" "$interface" "$router_ip" "$router_mac" || \
29 rc=$?
30 UnsuppressTerm
31 touch /run/dhcp6.done
32 return $rc
William A. Kennington III7d6fa422021-02-08 17:04:02 -080033 fi
William A. Kennington III7d6fa422021-02-08 17:04:02 -080034}
35
Patrick Williams59486672022-12-08 06:23:47 -060036function Main() {
37 set -o nounset
38 set -o errexit
39 set -o pipefail
William A. Kennington III7d6fa422021-02-08 17:04:02 -080040
Patrick Williams59486672022-12-08 06:23:47 -060041 InitTerm
42 HandleDHCP6 "$@"
William A. Kennington III7d6fa422021-02-08 17:04:02 -080043}
44
45return 0 2>/dev/null
46Main "$@"