Browse Source

fcoe: start with fcoemon instead of fipvlan

Chris Leech 10 years ago committed by Harald Hoyer
parent
commit
d02f522089
  1. 30
      modules.d/95fcoe/fcoe-up.sh
  2. 7
      modules.d/95fcoe/module-setup.sh
  3. 4
      modules.d/95fcoe/parse-fcoe.sh

30
modules.d/95fcoe/fcoe-up.sh

@ -20,12 +20,28 @@ type ip_to_var >/dev/null 2>&1 || . /lib/net-lib.sh @@ -20,12 +20,28 @@ type ip_to_var >/dev/null 2>&1 || . /lib/net-lib.sh

netif=$1
dcb=$2
vlan="yes"

linkup "$netif"

netdriver=$(readlink -f /sys/class/net/$netif/device/driver)
netdriver=${netdriver##*/}

write_fcoemon_cfg() {
echo FCOE_ENABLE=\"yes\" > /etc/fcoe/cfg-$netif
if [ "$dcb" = "dcb" ]; then
echo DCB_REQUIRED=\"yes\" >> /etc/fcoe/cfg-$netif
else
echo DCB_REQUIRED=\"no\" >> /etc/fcoe/cfg-$netif
fi
if [ "$vlan" = "yes" ]; then
echo AUTO_VLAN=\"yes\" >> /etc/fcoe/cfg-$netif
else
echo AUTO_VLAN=\"no\" >> /etc/fcoe/cfg-$netif
fi
echo MODE=\"fabric\" >> /etc/fcoe/cfg-$netif
}

if [ "$dcb" = "dcb" ]; then
# Note lldpad will stay running after switchroot, the system initscripts
# are to kill it and start a new lldpad to take over. Data is transfered
@ -51,6 +67,13 @@ if [ "$dcb" = "dcb" ]; then @@ -51,6 +67,13 @@ if [ "$dcb" = "dcb" ]; then
i=$(($i+1))
done

while [ $i -lt 60 ]; do
dcbtool sc "$netif" pfc e:1 a:1 w:1 && break
info "Retrying to turn dcb on"
sleep 1
i=$(($i+1))
done

while [ $i -lt 60 ]; do
dcbtool sc "$netif" app:fcoe e:1 a:1 w:1 && break
info "Retrying to turn fcoe on"
@ -60,7 +83,8 @@ if [ "$dcb" = "dcb" ]; then @@ -60,7 +83,8 @@ if [ "$dcb" = "dcb" ]; then

sleep 1

fipvlan "$netif" -c -s
write_fcoemon_cfg
fcoemon --syslog
elif [ "$netdriver" = "bnx2x" ]; then
# If driver is bnx2x, do not use /sys/module/fcoe/parameters/create but fipvlan
modprobe 8021q
@ -69,7 +93,9 @@ elif [ "$netdriver" = "bnx2x" ]; then @@ -69,7 +93,9 @@ elif [ "$netdriver" = "bnx2x" ]; then
sleep 3
fipvlan "$netif" -c -s
else
echo -n "$netif" > /sys/module/fcoe/parameters/create
vlan="no"
write_fcoemon_cfg
fcoemon --syslog
fi

need_shutdown

7
modules.d/95fcoe/module-setup.sh

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh

check() {
require_binaries dcbtool fipvlan lldpad ip readlink || return 1
require_binaries dcbtool fipvlan lldpad ip readlink fcoemon fcoeadm || return 1
return 0
}

@ -17,9 +17,12 @@ installkernel() { @@ -17,9 +17,12 @@ installkernel() {
}

install() {
inst_multiple ip dcbtool fipvlan lldpad readlink lldptool
inst_multiple ip dcbtool fipvlan lldpad readlink lldptool fcoemon fcoeadm
inst_libdir_file 'libhbalinux.so*'
inst "/etc/hba.conf" "/etc/hba.conf"

mkdir -m 0755 -p "$initdir/var/lib/lldpad"
mkdir -m 0755 -p "$initdir/etc/fcoe"

inst "$moddir/fcoe-up.sh" "/sbin/fcoe-up"
inst "$moddir/fcoe-edd.sh" "/sbin/fcoe-edd"

4
modules.d/95fcoe/parse-fcoe.sh

@ -22,13 +22,13 @@ @@ -22,13 +22,13 @@


# BRCM: Later, should check whether bnx2x is loaded first before loading bnx2fc so do not load bnx2fc when there are no Broadcom adapters
[ -e /sys/module/fcoe/parameters/create ] || modprobe -a fcoe || die "FCoE requested but kernel/initrd does not support FCoE"
[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -a fcoe || die "FCoE requested but kernel/initrd does not support FCoE"

modprobe bnx2fc >/dev/null 2>&1
udevadm settle --timeout=30

# FCoE actually supported?
[ -e /sys/module/fcoe/parameters/create ] || modprobe fcoe || die "FCoE requested but kernel/initrd does not support FCoE"
[ -e /sys/bus/fcoe/ctlr_create ] || modprobe fcoe || die "FCoE requested but kernel/initrd does not support FCoE"

parse_fcoe_opts() {
local IFS=:

Loading…
Cancel
Save