Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package smc-tools for openSUSE:Factory 
checked in at 2025-12-11 18:40:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/smc-tools (Old)
 and      /work/SRC/openSUSE:Factory/.smc-tools.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "smc-tools"

Thu Dec 11 18:40:59 2025 rev:18 rq:1322162 version:1.8.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/smc-tools/smc-tools.changes      2025-07-09 
17:28:01.266581006 +0200
+++ /work/SRC/openSUSE:Factory/.smc-tools.new.1939/smc-tools.changes    
2025-12-11 18:43:54.755955024 +0100
@@ -1,0 +2,19 @@
+Thu Dec 11 09:17:40 UTC 2025 - Nikolay Gueorguiev <[email protected]>
+
+- Upgrade smc-tools to v1.8.6 (jsc#PED-14601)
+  * Bug fixes:
+    - man pages: Update man page for smc_pnet
+    - smc-tools: Display sndbuf/RMB stats only if supported by the kernel
+- smc-tools v1.8.5 includes
+  * Changes:
+    - smc_rnics: Add support for Network Express RNIC in smc_rnics
+    - smc_rnics: Add PFT and VF columns to smc_rnics output
+  * Bug fixes:
+    - libnetlink..: Fix function declaration to use a void prototype
+    - smc_rnics: Update smc_chk to extract PNetID from column 9
+    - man pages: Update man page for --rawids option and PFT and VF columns
+    - smc_rnics: Fix missing PPrt values in smc_rnics -r output
+- Removed obsolete patch
+  * smc-tools-gcc15.patch
+
+-------------------------------------------------------------------

Old:
----
  smc-tools-1.8.4.tar.gz
  smc-tools-gcc15.patch

New:
----
  smc-tools-1.8.6.tar.gz

----------(Old B)----------
  Old:- Removed obsolete patch
  * smc-tools-gcc15.patch
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ smc-tools.spec ++++++
--- /var/tmp/diff_new_pack.U06soN/_old  2025-12-11 18:43:55.836000403 +0100
+++ /var/tmp/diff_new_pack.U06soN/_new  2025-12-11 18:43:55.860001410 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package smc-tools
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,13 @@
 
 
 Name:           smc-tools
-Version:        1.8.4
+Version:        1.8.6
 Release:        0
 Summary:        Shared Memory Communication via RDMA
 License:        EPL-1.0
 Group:          System/Kernel
 URL:            
https://www.ibm.com/developerworks/linux/linux390/smc-tools.html
 Source:         
https://github.com/ibm-s390-linux/%{name}/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
-# https://github.com/ibm-s390-linux/smc-tools/issues/17
-Patch0:          smc-tools-gcc15.patch
-### Source:     
https://github.com/ibm-s390-linux/smc-tools/releases/tag/1.8.3.tar.gz
-
 BuildRequires:  bash-completion-devel
 BuildRequires:  libnl3-devel
 PreReq:         permissions

++++++ smc-tools-1.8.4.tar.gz -> smc-tools-1.8.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/Makefile new/smc-tools-1.8.6/Makefile
--- old/smc-tools-1.8.4/Makefile        2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/Makefile        2025-12-05 12:21:32.000000000 +0100
@@ -9,7 +9,7 @@
 # http://www.eclipse.org/legal/epl-v10.html
 #
 
-SMC_TOOLS_RELEASE = 1.8.4
+SMC_TOOLS_RELEASE = 1.8.6
 VER_MAJOR         = $(shell echo $(SMC_TOOLS_RELEASE) | cut -d '.' -f 1)
 
 ARCHTYPE = $(shell uname -m)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/README.md 
new/smc-tools-1.8.6/README.md
--- old/smc-tools-1.8.4/README.md       2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/README.md       2025-12-05 12:21:32.000000000 +0100
@@ -39,6 +39,24 @@
 Release History:
 ================
 
+* __v1.8.6 (2025-12-05)__
+
+    Bug fixes:
+    - `man pages`: Update man page for smc_pnet
+    - `smc-tools`: Display sndbuf/RMB stats only if supported by the kernel
+
+* __v1.8.5 (2025-07-16)__
+
+    Changes:
+    - `smc_rnics`: Add support for Network Express RNIC in smc_rnics
+    - `smc_rnics`: Add PFT and VF columns to smc_rnics output
+
+    Bug fixes:
+    - `libnetlink..`: Fix function declaration to use a void prototype
+    - `smc_rnics`: Update smc_chk to extract PNetID from column 9
+    - `man` pages: Update man page for --rawids option and PFT and VF columns
+    - `smc_rnics`: Fix missing PPrt values in smc_rnics -r output
+
 * __v1.8.4 (2024-12-17)__
 
     Changes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/libnetlink.c 
new/smc-tools-1.8.6/libnetlink.c
--- old/smc-tools-1.8.4/libnetlink.c    2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/libnetlink.c    2025-12-05 12:21:32.000000000 +0100
@@ -207,7 +207,7 @@
 
 /* Operations on generic netlink sockets */
 
-int gen_nl_open(char *pname)
+int gen_nl_open(void)
 {
        int rc = EXIT_FAILURE;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/libnetlink.h 
new/smc-tools-1.8.6/libnetlink.h
--- old/smc-tools-1.8.4/libnetlink.h    2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/libnetlink.h    2025-12-05 12:21:32.000000000 +0100
@@ -60,7 +60,7 @@
 void parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len);
 int sockdiag_send(int fd, unsigned char cmd);
 void set_extension(int ext);
-int gen_nl_open();
+int gen_nl_open(void);
 void gen_nl_close();
 int gen_nl_handle(int cmd, int nlmsg_flags,
                  int (*cb_handler)(struct nl_msg *msg, void *arg), void *arg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/linkgroup.c 
new/smc-tools-1.8.6/linkgroup.c
--- old/smc-tools-1.8.4/linkgroup.c     2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/linkgroup.c     2025-12-05 12:21:32.000000000 +0100
@@ -321,8 +321,12 @@
                         nla_get_string(lgr_attrs[SMC_NLA_LGR_R_PNETID]));
        if (lgr_attrs[SMC_NLA_LGR_R_SNDBUF_ALLOC])
                lgr->sndbuf_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_R_SNDBUF_ALLOC]);
+       else
+               lgr->sndbuf_alloc = SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT;
        if (lgr_attrs[SMC_NLA_LGR_R_RMB_ALLOC])
                lgr->rmb_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_R_RMB_ALLOC]);
+       else
+               lgr->rmb_alloc = SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT;
        if (lgr_attrs[SMC_NLA_LGR_R_V2_COMMON]) {
                struct nlattr *v2_lgr_attrs[SMC_NLA_LGR_V2_MAX + 1];
 
@@ -371,8 +375,12 @@
                         nla_get_string(lgr_attrs[SMC_NLA_LGR_D_PNETID]));
        if (lgr_attrs[SMC_NLA_LGR_D_SNDBUF_ALLOC])
                lgr->sndbuf_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_D_SNDBUF_ALLOC]);
+       else
+               lgr->sndbuf_alloc = SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT;
        if (lgr_attrs[SMC_NLA_LGR_D_DMB_ALLOC])
                lgr->dmb_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_D_DMB_ALLOC]);
+       else
+               lgr->dmb_alloc = SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT;
        if (lgr_attrs[SMC_NLA_LGR_D_V2_COMMON]) {
                struct nlattr *v2_lgr_attrs[SMC_NLA_LGR_V2_MAX + 1];
 
@@ -410,8 +418,10 @@
                printf("EID      : %s\n", lgr->v2_lgr_info.negotiated_eid);
        }
        printf("#Conns   : %d\n", lgr->conns_num);
-       printf("Sndbuf   : %lld B\n", lgr->sndbuf_alloc);
-       printf("RMB      : %lld B\n", lgr->rmb_alloc);
+       if (lgr->sndbuf_alloc != SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT)
+               printf("Sndbuf   : %lld B\n", lgr->sndbuf_alloc);
+       if (lgr->rmb_alloc != SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT)
+               printf("RMB      : %lld B\n", lgr->rmb_alloc);
 }
 
 static int show_lgr_smcr_info(struct nlattr **attr)
@@ -492,8 +502,10 @@
                printf("EID      : %s\n", lgr->v2_lgr_info.negotiated_eid);
        }
        printf("#Conns   : %d\n", lgr->conns_num);
-       printf("Sndbuf   : %lld B\n", lgr->sndbuf_alloc);
-       printf("DMB      : %lld B\n", lgr->dmb_alloc);
+       if (lgr->sndbuf_alloc != SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT)
+               printf("Sndbuf   : %lld B\n", lgr->sndbuf_alloc);
+       if (lgr->dmb_alloc != SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT)
+               printf("DMB      : %lld B\n", lgr->dmb_alloc);
 }
 
 static int show_lgr_smcd_info(struct nlattr **attr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc.c new/smc-tools-1.8.6/smc.c
--- old/smc-tools-1.8.4/smc.c   2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc.c   2025-12-05 12:21:32.000000000 +0100
@@ -144,7 +144,7 @@
                argc--; argv++;
        }
 
-       if (gen_nl_open(myname))
+       if (gen_nl_open())
                exit(1);
        if (argc > 1) {
                rc = run_cmd(argv[1], argc-1, argv+1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc_chk new/smc-tools-1.8.6/smc_chk
--- old/smc-tools-1.8.4/smc_chk 2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc_chk 2025-12-05 12:21:32.000000000 +0100
@@ -2,7 +2,7 @@
 
 # Copyright IBM Corp. 2021
 
-VERSION="1.8.4";
+VERSION="1.8.6";
 
 
 function usage() {
@@ -255,7 +255,7 @@
    if [ $? -eq 0 ]; then
       # PCI device - use smc_rnics for easy PNET_ID access
       debug "PCI device, retrieve PNET ID via smc_rnics";
-      pnetid="`smc_rnics | grep -e "$1\$" | awk '{print($7)}'`";
+      pnetid="`smc_rnics | grep -e "$1\$" | awk '{print($9)}'`";
       [ "$pnetid" != "" ] && return;
    fi
    if [ -e /sys/class/net/$1/device/portno ] && [ -e 
/sys/class/net/$1/device/chpid ]; then
@@ -290,7 +290,7 @@
 function set_ism() {
    is_smcd_available "v1";
    [ $? -ne 0 ] && return;
-   ism="`smc_rnics | awk -v pn="$1" '$5 == "ISM" && $7 == pn {print($1)}' | 
sed 's/ $//'`";
+   ism="`smc_rnics | awk -v pn="$1" '$5 == "ISM" && $9 == pn {print($1)}' | 
sed 's/ $//'`";
 }
 
 # Returns all ISMv2-eligible devices (PNET ID not set or same as *some* NIC)
@@ -317,7 +317,7 @@
          [ $? -ne 0 ] && continue;
       fi
       ismv2="$ismv2 `echo $line | awk '{print($1)}'`";
-   done <<< $(smc_rnics | awk '$5 == "ISM" {print($1" "$7)}')
+   done <<< $(smc_rnics | awk '$5 == "ISM" {print($1" "$9)}')
    ismv2="`echo $ismv2`";    # strip leading blank
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc_dbg new/smc-tools-1.8.6/smc_dbg
--- old/smc-tools-1.8.4/smc_dbg 2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc_dbg 2025-12-05 12:21:32.000000000 +0100
@@ -2,7 +2,7 @@
 
 # Copyright IBM Corp. 2019
 
-VERSION="1.8.4";
+VERSION="1.8.6";
 
 
 function usage() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc_pnet.8 
new/smc-tools-1.8.6/smc_pnet.8
--- old/smc-tools-1.8.4/smc_pnet.8      2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc_pnet.8      2025-12-05 12:21:32.000000000 +0100
@@ -48,13 +48,19 @@
 The SMC protocol requires grouping of standard Ethernet and RoCE networks or 
ISM
 devices.
 Such groups are called \fIPhysical Networks\fR (PNETs). The mapping is 
configured
-within a table called \fIpnet table\fR. Any available Ethernet interface can be
-combined with an available RDMA-capable network interface card (RNIC) or a
+within a table called \fIpnet table\fR. Any Ethernet interface can be
+combined with the RDMA-capable network interface card (RNIC) or a
 DMA-capable ISM device, if they
 belong to the same Converged Ethernet fabric. To configure mapping of a RoCE 
Adapter
 port or an ISM device to a standard Ethernet interface, both devices need to 
have
 the same PNET ID; either hardware-defined or user-defined using the pnet table.
-Hardware-defined PNET IDs cannot be overwritten.
+Hardware-defined PNET IDs cannot be overwritten. The Ethernet interface or the
+RNIC or a DMA-capable ISM device may not be present while creating a pnet table
+entry. Such pnet table entries will be applied once the corresponding interface
+or device comes online. The entry will still remain in the pnet table when the
+interface or device is removed. The entire pnet table is not persistent across
+reboots.
+
 .P
 The
 .B smc_pnet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc_rnics 
new/smc-tools-1.8.6/smc_rnics
--- old/smc-tools-1.8.4/smc_rnics       2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc_rnics       2025-12-05 12:21:32.000000000 +0100
@@ -2,7 +2,7 @@
 
 # Copyright IBM Corp. 2018, 2022
 
-VERSION="1.8.4";
+VERSION="1.8.6";
 
 
 function usage() {
@@ -22,12 +22,19 @@
 }
 
 function print_header() {
-       if [ $IBdev -eq 0 ]; then
-               printf "     FID  Power  PCI_ID        PCHID  Type           
PPrt  PNET_ID            Net-Dev\n";
+        if [ $IBdev -eq 1 ] && [ $rawIDs -eq 1 ]; then
+               printf "FID   Power  PCI_ID        PCHID  Type             PFT  
 VFN  IPrt  PNET_ID            IB-Dev\n";
+               echo 
'----------------------------------------------------------------------------------------------------';
+       elif [ $IBdev -eq 1 ]; then
+               printf "FID   Power  PCI_ID        PCHID  Type             PFT  
 VF   IPrt  PNET_ID            IB-Dev\n";
+               echo 
'----------------------------------------------------------------------------------------------------';
+       elif [ $rawIDs -eq 1 ]; then
+               printf "FID   Power  PCI_ID        PCHID  Type             PFT  
 VFN  PPrt  PNET_ID            Net-Dev\n";
+               echo 
'----------------------------------------------------------------------------------------------------'
        else
-               printf "     FID  Power  PCI_ID        PCHID  Type           
IPrt  PNET_ID            IB-Dev\n";
+               printf "FID   Power  PCI_ID        PCHID  Type             PFT  
 VF   PPrt  PNET_ID            Net-Dev\n";
+               echo 
'----------------------------------------------------------------------------------------------------';
        fi
-       echo 
'------------------------------------------------------------------------------------------';
 }
 
 function get_softset_pnet_id() {
@@ -78,10 +85,35 @@
 }
 
 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";
+       if [ $rawIDs -eq 1 ]; then
+               printf "%4x  %-5s  %-12s  %-4s   %-15s  %-4s  %-3s  %-4s  %-17s 
 %s\n" \
+                       "$((16#$fid))" "$power" "$addr" "$pchid" "$dev_type" 
"$pft" "${vfn:+$((16#${vfn#0x}))}" "$port" "`get_pnet_from_port`" "$int";
+       else
+               printf "%4x  %-5s  %-12s  %-4s   %-15s  %-4s  %-3s  %-4s  %-17s 
 %s\n" \
+                       "$((16#$fid))" "$power" "$addr" "$pchid" "$dev_type" 
"$pft" "$vfn" "$port" "`get_pnet_from_port`" "$int";
+       fi
        (( printed++ ));
 }
 
+function set_RoCE_pft_and_vfn() {
+       local lpft=$1;
+       local lvfn=$((16#${2#0x}));
+
+       case "$lpft" in
+       "0x02") pft="ROC"; vfn="y";;
+       "0x05") pft="ISM"; vfn="y";;
+       "0x0a") pft="ROC2"; vfn="y";;
+       "0x0c") pft="NETH"; vfn="y";;
+       "0x0f") pft="NETD";
+               if (( $lvfn != 0 )); then
+                       vfn="y";
+               else
+                       vfn="n";
+               fi;;
+       *)
+               vfn="$lvfn";;
+       esac
+}
 function set_RoCE_dev_and_port() {
        dev_type="$1";
        if [ -e port ]; then
@@ -103,13 +135,14 @@
        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;
@@ -133,8 +166,10 @@
                        if [ $all -ne 0 ]; then
                                dev_type="";
                                pchid="";
+                               pft="";
                                pnet="";
                                port="";
+                               vfn="";
                                print_rnic;
                        fi
                        continue;
@@ -155,25 +190,30 @@
                id=`cat device`;
                vend=`cat vendor`;
                dev_type="${vend#0x}:${id#0x}";
+               pft=`cat pft`;
+               vfn=`cat vfn`;
                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;;
-                       *) [ $all -eq 0 ] && continue
-                       esac
+                       case "$pft" in
+                       "0x05") dev_type="ISM";
+                               int="n/a";
+                               set_RoCE_pft_and_vfn "$pft" "$vfn";;
+                       "0x02") dev_type="RoCE_Express";
+                               set_RoCE_pft_and_vfn "$pft" "$vfn";;
+                       "0x0a") set_by_firmware_lvl;
+                               set_RoCE_pft_and_vfn "$pft" "$vfn";;
+                       "0x0c" | \
+                       "0x0f") set_RoCE_dev_and_port "Network_Express";
+                               set_RoCE_pft_and_vfn "$pft" "$vfn";;
+                       *)
+                               # For unknown PCI vendors, determine VF flag 
based on VFN value.
+                               # This ensures consistent handling even for 
unrecognized vendor devices
+                               [ $all -eq 0 ] && continue
+                               if (( 16#${vfn#0x} != 0 )); then
+                                       vfn="y";
+                               else
+                                       vfn="n";
+                               fi;;
+               esac
                fi
                pchid="`cat pchid | sed 's/^0x//'`";
                pnetids="`cat util_string | sed 's/\x0/\x40/g' | iconv -f 
IBM-1047 -t ASCII`";
@@ -187,8 +227,9 @@
                        fi
                        # one device can have multiple interfaces (one per port)
                        for int in $interfaces; do
+                               set_RoCE_dev_and_port "$dev_type";
                                cd /sys/bus/pci/devices/$addr/net/$int;
-                               if [ "$dev_type" == "RoCE_Express" ] && [ -e 
dev_port ]; then
+                               if [ "$((pft))" -eq 2 ] && [ -e dev_port ]; then
                                        port=`cat dev_port`;
                                fi
                                print_rnic;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc_rnics.8 
new/smc-tools-1.8.6/smc_rnics.8
--- old/smc-tools-1.8.4/smc_rnics.8     2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc_rnics.8     2025-12-05 12:21:32.000000000 +0100
@@ -60,7 +60,7 @@
 Display IB device information.
 .TP
 .BR "\-r, \-\-rawids"
-Display raw PCI vendor and device codes in column. Note that this will
+Display raw PCI vendor/device, PFT, and VFN codes in columns. Note that this 
will
 also include unknown devices.
 .TP
 .BR "\-v, \-\-version"
@@ -87,6 +87,15 @@
 .B -r
 to switch to display of PCI vendor and device instead.
 
+.SS "PFT"
+PCI Function Type. Display hexadecimal value with option -r or mapped name 
with option -a.
+
+.SS "VF"
+Virtual Function. Indicates if the FID is a virtual function within the 
adapter.
+
+.SS "VFN"
+Virtual Function number. Indicates the virtual function within the adapter.
+
 .SS "PPrt"
 Corresponding physical port of an RNIC, if applicable. Starts counting at 0.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smc_run new/smc-tools-1.8.6/smc_run
--- old/smc-tools-1.8.4/smc_run 2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/smc_run 2025-12-05 12:21:32.000000000 +0100
@@ -10,7 +10,7 @@
 # http://www.eclipse.org/legal/epl-v10.html
 #
 LIB_NAME="libsmc-preload.so"
-VERSION="1.8.4";
+VERSION="1.8.6";
 
 
 function usage() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/smctools_common.h 
new/smc-tools-1.8.6/smctools_common.h
--- old/smc-tools-1.8.4/smctools_common.h       2024-12-18 11:27:51.000000000 
+0100
+++ new/smc-tools-1.8.6/smctools_common.h       2025-12-05 12:21:32.000000000 
+0100
@@ -19,7 +19,7 @@
 #define STRINGIFY_1(x)         #x
 #define STRINGIFY(x)           STRINGIFY_1(x)
 
-#define RELEASE_STRING         "1.8.4"
+#define RELEASE_STRING         "1.8.6"
 
 #define PF_SMC 43
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/stats.c new/smc-tools-1.8.6/stats.c
--- old/smc-tools-1.8.4/stats.c 2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/stats.c 2025-12-05 12:21:32.000000000 +0100
@@ -399,8 +399,10 @@
        printf("  Data transmitted (Bytes) %14llu (%s)\n",
                smc_stat.smc[tech_type].rx_bytes, temp_str);
        printf("  Total requests             %12llu\n", tech->rx_cnt);
-       get_abbreviated(smc_stat.smc[tech_type].rx_rmbuse, 6, temp_str);
-       printf("  Buffer usage (Bytes)       %12llu (%s)\n", tech->rx_rmbuse, 
temp_str);
+       if (smc_stat.smc[tech_type].rx_rmbuse != 
SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT) {
+               get_abbreviated(smc_stat.smc[tech_type].rx_rmbuse, 6, temp_str);
+               printf("  Buffer usage (Bytes)       %12llu (%s)\n", 
tech->rx_rmbuse, temp_str);
+       }
        printf("  Buffer full                %12llu (%.2f%%)\n", 
tech->rmb_rx.buf_full_cnt,
                        buf_rx_full);
        if (d_level) {
@@ -422,8 +424,10 @@
        printf("  Data transmitted (Bytes) %14llu (%s)\n",
                smc_stat.smc[tech_type].tx_bytes, temp_str);
        printf("  Total requests             %12llu\n", tech->tx_cnt);
-       get_abbreviated(smc_stat.smc[tech_type].tx_rmbuse, 6, temp_str);
-       printf("  Buffer usage (Bytes)       %12llu (%s)\n", tech->tx_rmbuse, 
temp_str);
+       if (smc_stat.smc[tech_type].tx_rmbuse != 
SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT) {
+               get_abbreviated(smc_stat.smc[tech_type].tx_rmbuse, 6, temp_str);
+               printf("  Buffer usage (Bytes)       %12llu (%s)\n", 
tech->tx_rmbuse, temp_str);
+       }
        printf("  Buffer full                %12llu (%.2f%%)\n", 
tech->rmb_tx.buf_full_cnt,
                        buf_full);
        printf("  Buffer full (remote)       %12llu (%.2f%%)\n", 
tech->rmb_tx.buf_full_peer_cnt,
@@ -629,11 +633,13 @@
        if (tech_attrs[SMC_NLA_STATS_T_RX_RMB_USAGE]) {
                trgt = 
nl_attr_get_uint(tech_attrs[SMC_NLA_STATS_T_RX_RMB_USAGE]);
                smc_stat.smc[tech_type].rx_rmbuse = trgt;
-       }
+       } else
+               smc_stat.smc[tech_type].rx_rmbuse = 
SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT;
        if (tech_attrs[SMC_NLA_STATS_T_TX_RMB_USAGE]) {
                trgt = 
nl_attr_get_uint(tech_attrs[SMC_NLA_STATS_T_TX_RMB_USAGE]);
                smc_stat.smc[tech_type].tx_rmbuse = trgt;
-       }
+       } else
+               smc_stat.smc[tech_type].tx_rmbuse = 
SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT;
        if (tech_attrs[SMC_NLA_STATS_T_RX_CNT]) {
                trgt = nla_get_u64(tech_attrs[SMC_NLA_STATS_T_RX_CNT]);
                smc_stat.smc[tech_type].rx_cnt = trgt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.4/util.h new/smc-tools-1.8.6/util.h
--- old/smc-tools-1.8.4/util.h  2024-12-18 11:27:51.000000000 +0100
+++ new/smc-tools-1.8.6/util.h  2025-12-05 12:21:32.000000000 +0100
@@ -21,7 +21,7 @@
 #define SMC_OPTION_ABS -1
 #define SMC_OPTION_DETAIL_ABS -2
 #define SMC_TYPE_STR_MAX 5
-
+#define SMC_BUFF_STATS_KERNEL_SUPPORT_ABSENT ((__u64) -1)
 
 #define NEXT_ARG() do { argv++; argc--; } while(0)
 #define NEXT_ARG_OK() (argc - 1 > 0)

Reply via email to