diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index c0f1a88..d1dd673 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -293,6 +293,12 @@ kdump_setup_netdev() { _static=$(kdump_static_ip $_netdev $_srcaddr) if [ -n "$_static" ]; then _proto=none + elif is_ipv6_address $_srcaddr; then + if is_ipv6_auto $_netdev; then + _proto=auto6 + else + _proto=dhcp6 + fi else _proto=dhcp fi diff --git a/kdump-lib.sh b/kdump-lib.sh index d981c4f..ac4dc67 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -310,6 +310,18 @@ is_atomic() grep -q "ostree" /proc/cmdline } +# fixme, try the best to decide whether the ipv6 addr is allocated by slaac or dhcp6 +is_ipv6_auto() +{ + local _netdev=$1 + local _auto=$(cat /proc/sys/net/ipv6/conf/$_netdev/autoconf) + if [ $_auto -eq 1 ]; then + return 0 + else + return 1 + fi +} + is_ipv6_address() { echo $1 | grep -q ":"