smc-tools/1-0b965ae9b5ad.patch
Čestmír Kalina 3fae52deba smc-tools: smc_rnics is not listing the NetH/NetD cards inside the guest
Resolves: RHEL-159089

Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
2026-08-04 11:57:43 +02:00

89 lines
2.9 KiB
Diff

commit 0b965ae9b5ad1725c8a86073a594d62925031a0e
Author: Sidraya Jayagond <sidraya@linux.ibm.com>
Date: Fri Jun 27 07:39:26 2025 +0200
smc_rnics: Add support for Network Express RNIC in smc_rnics
Add support for the Network Express RDMA-capable NIC in smc_rnics,
identified by its PCI Function Type (PFT).
Reviewed-by: Wenjia Zhang <wenjia@linux.ibm.com>
Signed-off-by: Sidraya Jayagond <sidraya@linux.ibm.com>
diff --git a/smc_rnics b/smc_rnics
index db9fde7..c5d086e 100755
--- a/smc_rnics
+++ b/smc_rnics
@@ -23,9 +23,9 @@ function usage() {
function print_header() {
if [ $IBdev -eq 0 ]; then
- printf " FID Power PCI_ID PCHID Type PPrt PNET_ID Net-Dev\n";
+ printf " FID Power PCI_ID PCHID Type PPrt PNET_ID Net-Dev\n";
else
- printf " FID Power PCI_ID PCHID Type IPrt PNET_ID IB-Dev\n";
+ printf " FID Power PCI_ID PCHID Type IPrt PNET_ID IB-Dev\n";
fi
echo '------------------------------------------------------------------------------------------';
}
@@ -78,7 +78,7 @@ function get_pnet_from_port() {
}
function print_rnic() {
- printf "%8x %-5s %-12s %-4s %-14s %-4s %-17s %s\n" "$((16#$fid))" "$power" "$addr" "$pchid" "$dev_type" "$port" "`get_pnet_from_port`" "$int";
+ printf "%8x %-5s %-12s %-4s %-15s %-4s %-17s %s\n" "$((16#$fid))" "$power" "$addr" "$pchid" "$dev_type" "$port" "`get_pnet_from_port`" "$int";
(( printed++ ));
}
@@ -103,13 +103,14 @@ function set_by_firmware_lvl() {
local name;
local lvl;
- name="Mlx_$id";
which ethtool >/dev/null 2>&1;
if [ $? -eq 0 ] && [ "$int" != "n/a" ] && [ -d "net" ]; then
iface="`ls -1 net | head -1`";
lvl="`ethtool -i $iface | grep -e "^firmware-version:" | awk '{print($2)}'`";
if [ "${lvl%%.*}" == "22" ]; then
name="RoCE_Express3";
+ elif [ "${lvl%%.*}" == "14" ]; then
+ name="RoCE_Express2";
fi
fi
set_RoCE_dev_and_port $name;
@@ -155,25 +156,17 @@ function print_rnics() {
id=`cat device`;
vend=`cat vendor`;
dev_type="${vend#0x}:${id#0x}";
+ pft=`cat pft`;
if [ $rawIDs -eq 0 ]; then
- case "$vend" in
- "0x1014" ) # IBM
- case "$id" in
- "0x04ed") dev_type="ISM";
- int="n/a";;
- *)
- continue;
- esac;;
- "0x15b3" ) # Mellanox
- case "$id" in
- "0x1003" | \
- "0x1004") dev_type="RoCE_Express";;
- "0x1016") set_RoCE_dev_and_port "RoCE_Express2";;
- "0x101e") set_by_firmware_lvl;;
- *) set_RoCE_dev_and_port "Mlx_$id";;
- esac;;
+ case "$pft" in
+ "0x05") dev_type="ISM";
+ int="n/a";;
+ "0x02") dev_type="RoCE_Express";;
+ "0x0a") set_by_firmware_lvl;;
+ "0x0c" | \
+ "0x0f") set_RoCE_dev_and_port "Network_Express";;
*) [ $all -eq 0 ] && continue
- esac
+ esac
fi
pchid="`cat pchid | sed 's/^0x//'`";
pnetids="`cat util_string | sed 's/\x0/\x40/g' | iconv -f IBM-1047 -t ASCII`";