aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2005-07-01 23:35:35 +0000
committerRoland Dreier <rolandd@cisco.com>2006-11-09 11:35:56 -0800
commite57ddb4763af5a77a1f13c6a7bacd504742f2e5f (patch)
treea300f1c5f2fc2360f3f037ff673d02286538bdb5
parent6f0125274010c9fa45324cc08694771bf4ac16ba (diff)
downloadlibibverbs-e57ddb4763af5a77a1f13c6a7bacd504742f2e5f.tar.gz
Add port info dump to devinfo program
Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--examples/devinfo.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/examples/devinfo.c b/examples/devinfo.c
index ae69fe8..0238ec7 100644
--- a/examples/devinfo.c
+++ b/examples/devinfo.c
@@ -54,6 +54,8 @@ int main(int argc, char *argv[])
struct ibv_device *ib_dev;
struct ibv_context *context;
struct ibv_device_attr attr;
+ struct ibv_port_attr pattr;
+ int i;
dev_list = ibv_get_devices();
@@ -86,5 +88,23 @@ int main(int argc, char *argv[])
printf("\tMax PDs:\t%d\n", attr.max_pd);
printf("\tMax AHs:\t%d\n", attr.max_ah);
+ for (i = 1; i <= attr.phys_port_cnt; i++) {
+ if(ibv_query_port(context, i, &pattr)) {
+ fprintf(stderr, "Couldn't query port %d\n", i);
+ continue;
+ }
+
+ printf("\n\tPort %d properties:\n", i);
+ printf("\t\tState:\t\t\t%d\n", pattr.state);
+ printf("\t\tLID:\t\t\t%d\n", pattr.lid);
+ printf("\t\tMax MTU:\t\t%d\n", pattr.max_mtu);
+ printf("\t\tActive MTU:\t\t%d\n", pattr.active_mtu);
+ printf("\t\tGID table length:\t%d\n", pattr.gid_tbl_len);
+ printf("\t\tPort cap flags:\t\t0x%08x\n", pattr.port_cap_flags);
+ printf("\t\tActive width:\t\t%u\n", pattr.active_width);
+ printf("\t\tActive speed:\t\t%u\n", pattr.active_speed);
+ printf("\t\tPhys state:\t\t%u\n", pattr.phys_state);
+ }
+
return 0;
}