From 231c6e831262246af33696132c1be7c009477a96 Mon Sep 17 00:00:00 2001
From: Patrick Talbert <ptalbert@redhat.com>
Date: Fri, 30 Nov 2018 09:28:09 +0100
Subject: [PATCH] 95fcoe: Add the rd.nofcoe option to disable the FCoE module
from the command line
Images built with the fcoe module will always run the lldpad
service as part of their pre-trigger scripts if the network
is active. This prevents network installations in
environments where, for security reasons, LLDPDU frames
cause a switchport shutdown.
Add a new rd.nofcoe option to cause dracut to skip the
lldpad.sh script and the entire 95-fcoe module.
Signed-off-by: Patrick Talbert <ptalbert@redhat.com>
(cherry picked from commit 7c6d2ad916bd536dc2f082fd96ef837a5031e497)
Resolves: #1885621
---
dracut.cmdline.7.asc | 3 +++
modules.d/95fcoe/lldpad.sh | 5 +++++
modules.d/95fcoe/parse-fcoe.sh | 5 +++++
3 files changed, 13 insertions(+)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index e220defb..bf745575 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -779,6 +779,9 @@ iscsistart -b --param node.session.timeo.replacement_timeout=30
FCoE
~~~~
+**rd.nofcoe=0**::
+ disable FCoE and lldpad
+
**fcoe=**__<edd|interface|MAC>__:__{dcb|nodcb}__:__{fabric|vn2vn}__::
Try to connect to a FCoE SAN through the NIC specified by _<interface>_ or
_<MAC>_ or EDD settings. The second argument specifies if DCB
diff --git a/modules.d/95fcoe/lldpad.sh b/modules.d/95fcoe/lldpad.sh
index d06a3bd8..c32feeed 100755
--- a/modules.d/95fcoe/lldpad.sh
+++ b/modules.d/95fcoe/lldpad.sh
@@ -1,5 +1,10 @@
#!/bin/bash
+if ! getargbool 0 rd.nofcoe ; then
+ info "rd.nofcoe=0: skipping lldpad activation"
+ exit 0
+fi
+
# 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
# between the 2 using a shm segment
diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh
index 12701cdb..7a6ff755 100755
--- a/modules.d/95fcoe/parse-fcoe.sh
+++ b/modules.d/95fcoe/parse-fcoe.sh
@@ -13,6 +13,11 @@
# fcoe=eth0:nodcb:vn2vn
# fcoe=4a:3f:4c:04:f8:d7:nodcb:fabric
+if ! getargbool 0 rd.nofcoe ; then
+ info "rd.nofcoe=0: skipping fcoe"
+ exit 0
+fi
+
[ -z "$fcoe" ] && fcoe=$(getarg fcoe=)
# If it's not set we don't continue