Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
HPCasCode
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
hpc-team
HPCasCode
Commits
2af31e24
Commit
2af31e24
authored
8 years ago
by
Simon Michnowicz
Browse files
Options
Downloads
Patches
Plain Diff
taken from mellanox_drivers rold. Prints name of interace
parent
c594e0e8
No related branches found
No related tags found
1 merge request
!32
Simons updates
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
roles/lustre-client/files/ibdev2netdev.sh
+222
-0
222 additions, 0 deletions
roles/lustre-client/files/ibdev2netdev.sh
with
222 additions
and
0 deletions
roles/lustre-client/files/ibdev2netdev.sh
0 → 100755
+
222
−
0
View file @
2af31e24
#! /bin/bash
#
#modified by simon to print device name
#
usage
()
{
echo
"
$(
basename
$0
)
<options>"
echo
"-h, --help print help message"
echo
"-v, --verbose print more info"
}
function
find_pdev
()
{
pdevlist
=
$(
ls
/sys/bus/pci/devices
)
for
pdev
in
$pdevlist
;
do
if
[
-d
/sys/bus/pci/devices/
$pdev
/infiniband
]
;
then
ibd
=
$(
ls
/sys/bus/pci/devices/
$pdev
/infiniband/
)
if
[
"x
$ibd
"
==
"x
$1
"
]
;
then
echo
-n
$pdev
fi
fi
done
}
case
$1
in
"-h"
|
"--help"
)
usage
exit
0
;;
esac
if
((
$#
>
1
))
;
then
usage
exit
-1
fi
if
((
$#
==
1
))
&&
[
"
$1
"
!=
"-v"
]
;
then
usage
exit
-1
fi
ibdevs
=
$(
ls
/sys/class/infiniband/
)
devs
=
for
netpath
in
/sys/class/net/
*
do
if
(
grep
0x15b3
${
netpath
}
/device/vendor
>
/dev/null 2>&1
)
;
then
devs
=
"
$devs
${
netpath
##*/
}
"
fi
done
if
[
"x
$devs
"
==
"x"
]
;
then
# no relevant devices - quit immediately
exit
fi
for
d
in
$devs
;
do
if
[
-f
/sys/class/net/
$d
/dev_id
]
;
then
oldstyle
=
n
break
fi
done
if
[
"x
$oldstyle
"
==
"xn"
]
;
then
for
d
in
$ibdevs
;
do
ibrsc
=
$(
cat
/sys/class/infiniband/
$d
/device/resource
)
eths
=
$(
ls
/sys/class/net/
)
for
eth
in
$eths
;
do
filepath_resource
=
/sys/class/net/
$eth
/device/resource
if
[
-f
$filepath_resource
]
;
then
ethrsc
=
$(
cat
$filepath_resource
)
if
[
"x
$ethrsc
"
==
"x
$ibrsc
"
]
;
then
filepath_devid
=
/sys/class/net/
$eth
/dev_id
filepath_devport
=
/sys/class/net/
$eth
/dev_port
if
[
-f
$filepath_devid
]
;
then
port1
=
0
if
[
-f
$filepath_devport
]
;
then
port1
=
$(
cat
$filepath_devport
)
port1
=
$(
printf
"%d"
$port1
)
fi
port
=
$(
cat
$filepath_devid
)
port
=
$(
printf
"%d"
$port
)
if
[
$port1
-gt
$port
]
;
then
port
=
$port1
fi
port
=
$((
port
+
1
))
filepath_carrier
=
/sys/class/net/
$eth
/carrier
if
[
-f
$filepath_carrier
]
;
then
link_state
=
$(
cat
$filepath_carrier
2> /dev/null
)
if
((
link_state
==
1
))
;
then
link_state
=
"Up"
else
link_state
=
"Down"
fi
else
link_state
=
"NA"
fi
x
=
$(
find_pdev
$d
)
if
[
"
$1
"
==
"-v"
]
;
then
filepath_portstate
=
/sys/class/infiniband/
$d
/ports/
$port
/state
filepath_deviceid
=
/sys/class/infiniband/
$d
/device/device
filepath_fwver
=
/sys/class/infiniband/
$d
/fw_ver
filepath_vpd
=
/sys/class/infiniband/
$d
/device/vpd
# read port state
if
[
-f
$filepath_portstate
]
;
then
ibstate
=
$(
printf
"%-6s"
$(
cat
$filepath_portstate
| gawk
'{print $2}'
))
else
ibstate
=
"NA"
fi
# read device
if
[
-f
$filepath_deviceid
]
;
then
devid
=
$(
printf
"MT%d"
$(
cat
$filepath_deviceid
))
else
devid
=
"NA"
fi
# read FW version
if
[
-f
$filepath_fwver
]
;
then
fwver
=
$(
cat
$filepath_fwver
)
else
fwver
=
"NA"
fi
# read device description and part ID from the VPD
if
[
-f
$filepath_vpd
]
;
then
tmp
=
$IFS
IFS
=
":"
vpd_content
=
`
cat
$filepath_vpd
`
devdesc
=
$(
printf
"%-15s"
$(
echo
$vpd_content
| strings |
head
-1
))
partid
=
$(
printf
"%-11s"
$(
echo
$vpd_content
| strings |
head
-4
|
tail
-1
| gawk
'{print $1}'
))
IFS
=
$tmp
else
devdesc
=
""
partid
=
"NA"
fi
#echo "$x $d ($devid - $partid) $devdesc fw $fwver port $port ($ibstate) ==> $eth ($link_state)"
echo
-n
"
$eth
"
else
echo
-n
"
$eth
"
#echo "$d port $port ==> $eth ($link_state)"
fi
fi
fi
fi
done
done
else
##########################
### old style
##########################
function
print_line
()
{
echo
-n
"
$eth
"
# echo "$1 port $2 <===> $3"
}
function
find_guid
()
{
ibdevs
=
$(
ls
/sys/class/infiniband/
)
for
ibdev
in
$ibdevs
;
do
ports
=
$(
ls
/sys/class/infiniband/
$ibdev
/ports/
)
for
port
in
$ports
;
do
gids
=
$(
ls
/sys/class/infiniband/
$ibdev
/ports/
$port
/gids
)
for
gid
in
$gids
;
do
pguid
=
$(
cat
/sys/class/infiniband/
$ibdev
/ports/
$port
/gids/
$gid
|
cut
-b
21- |
sed
-e
's/://g'
)
if
[
x
$pguid
==
x
$1
]
;
then
print_line
$ibdev
$port
$2
fi
done
done
done
}
function
find_mac
()
{
ibdevs
=
$(
ls
/sys/class/infiniband/
)
for
ibdev
in
$ibdevs
;
do
ports
=
$(
ls
/sys/class/infiniband/
$ibdev
/ports/
)
for
port
in
$ports
;
do
gids
=
$(
ls
/sys/class/infiniband/
$ibdev
/ports/
$port
/gids
)
for
gid
in
$gids
;
do
first
=
$(
cat
/sys/class/infiniband/
$ibdev
/ports/
$port
/gids/
$gid
|
cut
-b
21-22
)
first
=
$((
first
^
2
))
first
=
$(
printf
"%02x"
$first
)
second
=
$(
cat
/sys/class/infiniband/
$ibdev
/ports/
$port
/gids/
$gid
|
cut
-b
21- |
sed
-e
's/://g'
|
cut
-b
3-6
)
third
=
$(
cat
/sys/class/infiniband/
$ibdev
/ports/
$port
/gids/
$gid
|
cut
-b
21- |
sed
-e
's/://g'
|
cut
-b
11-
)
pmac
=
$first$second$third
if
[
x
$pmac
==
x
$1
]
;
then
print_line
$ibdev
$port
$2
fi
done
done
done
}
ifcs
=
$(
ifconfig
-a
| egrep
'^eth|^ib'
| gawk
'{print $1}'
)
for
ifc
in
$ifcs
;
do
len
=
$(
cat
/sys/class/net/
$ifc
/addr_len
)
if
((
len
==
20
))
;
then
guid
=
$(
cat
/sys/class/net/
$ifc
/address |
cut
-b
37- |
sed
-e
's/://g'
)
find_guid
$guid
$ifc
elif
((
len
==
6
))
;
then
mac
=
$(
cat
/sys/class/net/
$ifc
/address |
sed
-e
's/://g'
)
find_mac
$mac
$ifc
fi
done
fi
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment