diff options
author | William A. Kennington III <wak@google.com> | 2022-05-20 23:30:21 +0300 |
---|---|---|
committer | Nan Zhou <nanzhoumails@gmail.com> | 2022-05-27 02:03:35 +0300 |
commit | 3b127c47a4b596c1181169e954b693b8369ed424 (patch) | |
tree | 9ec048eb1fd058b90a6b70a592fc49a80c49d469 /meta-google | |
parent | 06ff30465ea0d4234c3bd46952723d2c6e2c5510 (diff) | |
download | openbmc-3b127c47a4b596c1181169e954b693b8369ed424.tar.xz |
meta-google: gbmc-bridge: Prefer using stateful source
The stateless addr has some routing issues outside of the machine under
some ToR configs. Use the stateful address as a preference to avoid
these issues.
Change-Id: I6a30678fd95b5096ee6b3b8add1d1dd409f0db5f
Signed-off-by: William A. Kennington III <wak@google.com>
Diffstat (limited to 'meta-google')
-rw-r--r-- | meta-google/recipes-google/networking/gbmc-bridge/gbmc-br-gw-src.sh | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/meta-google/recipes-google/networking/gbmc-bridge/gbmc-br-gw-src.sh b/meta-google/recipes-google/networking/gbmc-bridge/gbmc-br-gw-src.sh index 4bd3828213..6085240ccf 100644 --- a/meta-google/recipes-google/networking/gbmc-bridge/gbmc-br-gw-src.sh +++ b/meta-google/recipes-google/networking/gbmc-bridge/gbmc-br-gw-src.sh @@ -16,7 +16,8 @@ source /usr/share/network/lib.sh || exit -gbmc_br_gw_src_ip= +gbmc_br_gw_src_ip_stateful= +gbmc_br_gw_src_ip_stateless= declare -A gbmc_br_gw_src_routes=() gbmc_br_gw_defgw= @@ -49,6 +50,7 @@ gbmc_br_set_router() { } gbmc_br_gw_src_update() { + local gbmc_br_gw_src_ip="${gbmc_br_gw_src_ip_stateful:-$gbmc_br_gw_src_ip_stateless}" [ -n "$gbmc_br_gw_src_ip" ] || return local route @@ -87,9 +89,15 @@ gbmc_br_gw_src_hook() { echo "gBMC Bridge Ensure RA Invalid IP: $ip" >&2 return 1 fi - if (( ip_bytes[8] != 0xfd || ip_bytes[9] != 0 )); then + # Ignore ULAs and non-gBMC addresses + if (( ip_bytes[0] & 0xfe == 0xfc || ip_bytes[8] != 0xfd )); then return 0 fi + if (( ip_bytes[9] != 0 )); then + local -n gbmc_br_gw_src_ip=gbmc_br_gw_src_ip_stateful + else + local -n gbmc_br_gw_src_ip=gbmc_br_gw_src_ip_stateless + fi if [ "$action" = 'add' -a "$ip" != "$gbmc_br_gw_src_ip" ]; then gbmc_br_gw_src_ip="$ip" gbmc_br_gw_src_update |