Hey Sasha,
A slight tweak to the patch. Support diffing lids and node descriptions
on remote ports (previously it diffed only local lids and node
descriptions). Also add appropriate manpage notes.
Al
On Tue, 2010-04-20 at 15:30 -0700, Al Chu wrote:
Hey Sasha,
This patch supports diffing node descriptions on remote ports
(previously diffing of just the local node description was supported).
Al
email message attachment
Forwarded Message
From: Albert Chu ch...@llnl.gov
Subject: [PATCH] support diffing nodedesc on remoteports in
ibnetdiscover
Date: Tue, 20 Apr 2010 15:09:59 -0700
Signed-off-by: Albert Chu ch...@llnl.gov
---
infiniband-diags/src/ibnetdiscover.c | 11 +++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/infiniband-diags/src/ibnetdiscover.c
b/infiniband-diags/src/ibnetdiscover.c
index 57f9625..eeb1b9f 100644
--- a/infiniband-diags/src/ibnetdiscover.c
+++ b/infiniband-diags/src/ibnetdiscover.c
@@ -720,6 +720,17 @@ static void diff_ports(ibnd_node_t * fabric1_node,
ibnd_node_t * fabric2_node,
fabric2_out++;
}
+ if (data-diff_flags DIFF_FLAG_PORT_CONNECTION
+data-diff_flags DIFF_FLAG_NODE_DESCRIPTION
+fabric1_port fabric2_port
+fabric1_port-remoteport fabric2_port-remoteport
+memcmp(fabric1_port-remoteport-node-nodedesc,
+ fabric2_port-remoteport-node-nodedesc,
+ IB_SMP_DATA_SIZE)) {
+ fabric1_out++;
+ fabric2_out++;
+ }
+
if (fabric1_out) {
diff_iter_out_header(fabric1_node, data,
out_header_flag);
--
Albert Chu
ch...@llnl.gov
Computer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory
---BeginMessage---
Signed-off-by: Albert Chu ch...@llnl.gov
---
infiniband-diags/man/ibnetdiscover.8 |5 -
infiniband-diags/src/ibnetdiscover.c | 20
2 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/infiniband-diags/man/ibnetdiscover.8
b/infiniband-diags/man/ibnetdiscover.8
index 76cfbc8..3beb70b 100644
--- a/infiniband-diags/man/ibnetdiscover.8
+++ b/infiniband-diags/man/ibnetdiscover.8
@@ -71,7 +71,10 @@ are: \fIsw\fR = switches, \fIca\fR = channel adapters,
\fIrouter\fR = routers,
\fIport\fR = port connections, \fIlid\fR = lids, \fInodedesc\fR = node
descriptions. Note that \fIport\fR, \fIlid\fR, and \fInodedesc\fR are
checked only for the node types that are specified (e.g. \fIsw\fR,
-\fIca\fR, \fIrouter\fR).
+\fIca\fR, \fIrouter\fR). If \fIport\fR is specified alongside \fIlid\fR
+or \fInodedesc\fR, remote port lids and node descriptions will also be
compared.
+
+
.TP
\fB\-p\fR, \fB\-\-ports\fR
Obtain a ports report which is a
diff --git a/infiniband-diags/src/ibnetdiscover.c
b/infiniband-diags/src/ibnetdiscover.c
index 57f9625..23e6dd4 100644
--- a/infiniband-diags/src/ibnetdiscover.c
+++ b/infiniband-diags/src/ibnetdiscover.c
@@ -720,6 +720,26 @@ static void diff_ports(ibnd_node_t * fabric1_node,
ibnd_node_t * fabric2_node,
fabric2_out++;
}
+ if (data-diff_flags DIFF_FLAG_PORT_CONNECTION
+data-diff_flags DIFF_FLAG_NODE_DESCRIPTION
+fabric1_port fabric2_port
+fabric1_port-remoteport fabric2_port-remoteport
+memcmp(fabric1_port-remoteport-node-nodedesc,
+ fabric2_port-remoteport-node-nodedesc,
+ IB_SMP_DATA_SIZE)) {
+ fabric1_out++;
+ fabric2_out++;
+ }
+
+ if (data-diff_flags DIFF_FLAG_PORT_CONNECTION
+data-diff_flags DIFF_FLAG_LID
+fabric1_port fabric2_port
+fabric1_port-remoteport fabric2_port-remoteport
+fabric1_port-remoteport-base_lid !=
fabric2_port-remoteport-base_lid) {
+ fabric1_out++;
+ fabric2_out++;
+ }
+
if (fabric1_out) {
diff_iter_out_header(fabric1_node, data,
out_header_flag);
--
1.5.4.5
---End Message---