1*44704f69SBart Van Assche#!/bin/bash 2*44704f69SBart Van Assche# 3*44704f69SBart Van Assche# fc_wwpn_id 4*44704f69SBart Van Assche# 5*44704f69SBart Van Assche# Generates device node names links based on FC WWPN 6*44704f69SBart Van Assche# Copyright (c) 2016-2021 Hannes Reinecke, SUSE Linux GmbH 7*44704f69SBart Van Assche# 8*44704f69SBart Van Assche# This program is free software; you can redistribute it and/or modify it 9*44704f69SBart Van Assche# under the terms of the GNU General Public License as published by the 10*44704f69SBart Van Assche# Free Software Foundation version 2 of the License. 11*44704f69SBart Van Assche# 12*44704f69SBart Van Assche 13*44704f69SBart Van AsscheDEVPATH=$1 14*44704f69SBart Van AsscheSCSIPATH=$(cd -P "/sys$DEVPATH/device" || exit; echo "$PWD") 15*44704f69SBart Van Assche 16*44704f69SBart Van Assched=$SCSIPATH 17*44704f69SBart Van Assche[ -d "$d/scsi_disk" ] || exit 0 18*44704f69SBart Van Asschetarget_lun=${d##*:} 19*44704f69SBart Van Assche 20*44704f69SBart Van Asschewhile [ -n "$d" ] ; do 21*44704f69SBart Van Assche d=${d%/*} 22*44704f69SBart Van Assche e=${d##*/} 23*44704f69SBart Van Assche case "$e" in 24*44704f69SBart Van Assche rport*) 25*44704f69SBart Van Assche rport=$e 26*44704f69SBart Van Assche rport_dir="/sys/class/fc_remote_ports/$rport" 27*44704f69SBart Van Assche if [ -d "$rport_dir" ] ; then 28*44704f69SBart Van Assche rport_wwpn=$(cat "$rport_dir/port_name") 29*44704f69SBart Van Assche fi 30*44704f69SBart Van Assche ;; 31*44704f69SBart Van Assche host*) 32*44704f69SBart Van Assche host=$e 33*44704f69SBart Van Assche host_dir="/sys/class/fc_host/$host" 34*44704f69SBart Van Assche if [ -d "$host_dir" ] ; then 35*44704f69SBart Van Assche host_wwpn=$(cat "$host_dir/port_name") 36*44704f69SBart Van Assche break; 37*44704f69SBart Van Assche fi 38*44704f69SBart Van Assche esac 39*44704f69SBart Van Asschedone 40*44704f69SBart Van Assche 41*44704f69SBart Van Asscheif [ -n "$rport_wwpn" ] || [ -n "$host_wwpn" ] ; then 42*44704f69SBart Van Assche echo "FC_TARGET_LUN=$target_lun" 43*44704f69SBart Van Asschefi 44*44704f69SBart Van Assche 45*44704f69SBart Van Asscheif [ -n "$rport_wwpn" ] ; then 46*44704f69SBart Van Assche echo "FC_TARGET_WWPN=$rport_wwpn" 47*44704f69SBart Van Asschefi 48*44704f69SBart Van Assche 49*44704f69SBart Van Asscheif [ -n "$host_wwpn" ] ; then 50*44704f69SBart Van Assche echo "FC_INITIATOR_WWPN=$host_wwpn" 51*44704f69SBart Van Asschefi 52