From c9f432d45b9282e1c773cbf1258c9438548c8b47 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Sun, 17 Nov 2013 20:37:26 +0000 Subject: [PATCH] Split network bringup out of base ramdisk init. We now run the network bringup portion of the ramdisk init from an init.d script, thus allowing image builders to inject code into the init script before that point (e.g. configure network hardware). The environment variables used by the network bringup code are retained in the base init script so they can be overridden by init.d fragments. Change-Id: I1ef0bb21e7f26c0ff3f02266f853ce5402bcb94d Closes-Bug: #1252023 --- .../init.d/{05-mellanox => 01-mellanox} | 0 elements/ramdisk/extra-data.d/scripts/init | 43 ------------------- elements/ramdisk/init.d/02-start-network | 42 ++++++++++++++++++ 3 files changed, 42 insertions(+), 43 deletions(-) rename elements/mellanox/init.d/{05-mellanox => 01-mellanox} (100%) create mode 100644 elements/ramdisk/init.d/02-start-network diff --git a/elements/mellanox/init.d/05-mellanox b/elements/mellanox/init.d/01-mellanox similarity index 100% rename from elements/mellanox/init.d/05-mellanox rename to elements/mellanox/init.d/01-mellanox diff --git a/elements/ramdisk/extra-data.d/scripts/init b/elements/ramdisk/extra-data.d/scripts/init index 9e9db7a2..760bb6bf 100644 --- a/elements/ramdisk/extra-data.d/scripts/init +++ b/elements/ramdisk/extra-data.d/scripts/init @@ -100,46 +100,3 @@ $UDEVD --daemon --resolve-names=never echo "load modules" load_modules_by_udev - -echo "starting network $BOOT_MAC_ADDRESS" -t=0 -while ! BOOT_INTERFACE=$(find_interface "$BOOT_MAC_ADDRESS"); do - t=`expr "$t" + 5` - if [ "$t" -gt 10 ]; then - break - fi - sleep 5 -done -if [ -z "$BOOT_INTERFACE" ]; then - err_msg "Could not find an interface that owns MAC: $BOOT_MAC_ADDRESS" - troubleshoot -fi - -readonly BOOT_INTERFACE - -ifconfig lo 127.0.0.1 up -ifconfig "$BOOT_INTERFACE" up -if [ $? -ne 0 ]; then - sleep 10 - ifconfig "$BOOT_INTERFACE" up - if [ $? -ne 0 ]; then - err_msg "Failed to ifconfig up $BOOT_INTERFACE" - troubleshoot - fi -fi -ifconfig "$BOOT_INTERFACE" "$BOOT_IP_ADDRESS" netmask "$BOOT_NETMASK" -route add default gw $BOOT_GATEWAY - -echo "pinging to boot server $BOOT_SERVER" -w=30 -while [ $w -gt 0 ]; do - ping -c 5 -q "$BOOT_SERVER" > /dev/null - if [ $? -eq 0 ]; then - break - fi - sleep 1 - w=`expr $w - 5` -done - -echo "network ready" - diff --git a/elements/ramdisk/init.d/02-start-network b/elements/ramdisk/init.d/02-start-network new file mode 100644 index 00000000..c5878bf7 --- /dev/null +++ b/elements/ramdisk/init.d/02-start-network @@ -0,0 +1,42 @@ +echo "starting network $BOOT_MAC_ADDRESS" +t=0 +while ! BOOT_INTERFACE=$(find_interface "$BOOT_MAC_ADDRESS"); do + t=`expr "$t" + 5` + if [ "$t" -gt 10 ]; then + break + fi + sleep 5 +done +if [ -z "$BOOT_INTERFACE" ]; then + err_msg "Could not find an interface that owns MAC: $BOOT_MAC_ADDRESS" + troubleshoot +fi + +readonly BOOT_INTERFACE + +ifconfig lo 127.0.0.1 up +ifconfig "$BOOT_INTERFACE" up +if [ $? -ne 0 ]; then + sleep 10 + ifconfig "$BOOT_INTERFACE" up + if [ $? -ne 0 ]; then + err_msg "Failed to ifconfig up $BOOT_INTERFACE" + troubleshoot + fi +fi +ifconfig "$BOOT_INTERFACE" "$BOOT_IP_ADDRESS" netmask "$BOOT_NETMASK" +route add default gw $BOOT_GATEWAY + +echo "pinging to boot server $BOOT_SERVER" +w=30 +while [ $w -gt 0 ]; do + ping -c 5 -q "$BOOT_SERVER" > /dev/null + if [ $? -eq 0 ]; then + break + fi + sleep 1 + w=`expr $w - 5` +done + +echo "network ready" +