Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
dracut.9455
0124-40network-Update-iBFT-scanning-code-to-han...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch of Package dracut.9455
From de870b8879974927873264010b6294a70b6c7980 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <hare@suse.de> Date: Thu, 17 Jul 2014 14:09:28 +0200 Subject: 40network: Update iBFT scanning code to handle IPv6 IPv6 addresses should be specified in brackets so that the ip= scanning code doesn't get confused. References: bnc#887542 Signed-off-by: Hannes Reinecke <hare@suse.de> --- modules.d/40network/net-lib.sh | 48 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index 135c378..d41920a 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -241,23 +241,54 @@ ibft_to_cmdline() { [ -e /tmp/net.${dev}.has_ibft_config ] && continue + [ -e ${iface}/flags ] && flags=$(read a < ${iface}/flags; echo $a) + # Skip invalid interfaces + (( $flags & 1 )) || continue + # Skip interfaces not used for booting + (( $flags & 2 )) || continue [ -e ${iface}/dhcp ] && dhcp=$(read a < ${iface}/dhcp; echo $a) - - if [ -n "$dhcp" ]; then - echo "ip=$dev:dhcp" + [ -e ${iface}/origin ] && origin=$(read a < ${iface}/origin; echo $a) + [ -e ${iface}/ip-addr ] && ip=$(read a < ${iface}/ip-addr; echo $a) + + if [ -n "$ip" ] ; then + case "$ip" in + *.*.*.*) + family=ipv4 + ;; + *:*) + family=ipv6 + ;; + esac + fi + if [ -n "$dhcp" ] || [ "$origin" -eq 3 ]; then + if [ "$family" = "ipv6" ] ; then + echo "ip=$dev:dhcp6" + else + echo "ip=$dev:dhcp" + fi elif [ -e ${iface}/ip-addr ]; then - [ -e ${iface}/ip-addr ] && ip=$(read a < ${iface}/ip-addr; echo $a) # skip not assigned ip adresses [ "$ip" = "0.0.0.0" ] && continue [ -e ${iface}/gateway ] && gw=$(read a < ${iface}/gateway; echo $a) [ "$gateway" = "0.0.0.0" ] && unset $gateway [ -e ${iface}/subnet-mask ] && mask=$(read a < ${iface}/subnet-mask; echo $a) + [ -e ${iface}/prefix-len ] && prefix=$(read a < ${iface}/prefix-len; echo $a) [ -e ${iface}/primary-dns ] && dns1=$(read a < ${iface}/primary-dns; echo $a) [ "$dns1" = "0.0.0.0" ] && unset $dns1 [ -e ${iface}/secondary-dns ] && dns2=$(read a < ${iface}/secondary-dns; echo $a) [ "$dns2" = "0.0.0.0" ] && unset $dns2 [ -e ${iface}/hostname ] && hostname=$(read a < ${iface}/hostname; echo $a) - if [ -n "$ip" ] && [ -n "$mask" ]; then + if [ "$family" = "ipv6" ] ; then + if [ -n "$ip" ] ; then + [ -n "$prefix" ] || prefix=64 + ip="[${ip}/${prefix}]" + mask= + fi + if [ -n "$gw" ] ; then + gw="[${gw}]" + fi + fi + if [ -n "$ip" ] && [ -n "$mask" -o -n "$prefix" ]; then echo "ip=$ip::$gw:$mask:$hostname:$dev:none${dns1:+:$dns1}${dns2:+:$dns2}" else warn "${iface} does not contain a valid iBFT configuration" @@ -436,6 +467,13 @@ ip_to_var() { esac ;; esac + # Extract prefix length from CIDR notation + case $ip in + */*) + mask=${ip##*/} + ip=${ip%/*} + ;; + esac # ip=<ipv4-address> means anaconda-style static config argument cluster: # ip=<ip> gateway=<gw> netmask=<nm> hostname=<host> mtu=<mtu> -- 2.6.6
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor