summaryrefslogtreecommitdiffstats
path: root/modules.d/95znet/parse-ccw.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/95znet/parse-ccw.sh')
-rwxr-xr-xmodules.d/95znet/parse-ccw.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules.d/95znet/parse-ccw.sh b/modules.d/95znet/parse-ccw.sh
new file mode 100755
index 0000000..d895360
--- /dev/null
+++ b/modules.d/95znet/parse-ccw.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+for ccw_arg in $(getargs rd.ccw -d 'rd_CCW=') $(getargs rd.znet -d 'rd_ZNET='); do
+ echo "$ccw_arg" >> /etc/ccw.conf
+done
+
+for ifname in $(getargs rd.znet_ifname); do
+ IFS=: read -r ifname_if ifname_subchannels _rest <<< "$ifname"
+ if [ -z "$ifname_if" ] || [ -z "$ifname_subchannels" ] || [ -n "$_rest" ]; then
+ warn "Invalid arguments for rd.znet_ifname="
+ else
+ {
+ ifname_subchannels=${ifname_subchannels//,/|}
+
+ echo 'ACTION!="add|change", GOTO="ccw_ifname_end"'
+ echo 'ATTR{type}!="1", GOTO="ccw_ifname_end"'
+ echo 'SUBSYSTEM!="net", GOTO="ccw_ifname_end"'
+ echo "SUBSYSTEMS==\"ccwgroup\", KERNELS==\"$ifname_subchannels\", DRIVERS==\"?*\" NAME=\"$ifname_if\""
+ echo 'LABEL="ccw_ifname_end"'
+
+ } > /etc/udev/rules.d/81-ccw-ifname.rules
+ fi
+done
+
+znet_cio_free