yselkowitz / rpms / opensm

Forked from rpms/opensm 6 years ago
Clone
b4b107c
--- opensm-3.3.17/man/opensm.8.in.orig	2014-03-17 22:57:54.510928914 +0000
b4b107c
+++ opensm-3.3.17/man/opensm.8.in	2014-03-17 22:59:18.885215712 +0000
b4b107c
@@ -11,6 +11,7 @@
fefd80b
 [\-g(uid) <GUID in hex>]
fefd80b
 [\-l(mc) <LMC>]
fefd80b
 [\-p(riority) <PRIORITY>]
fefd80b
+[\-\-subnet_prefix <PREFIX in hex>]
b4b107c
 [\-\-smkey <SM_Key>]
fefd80b
 [\-\-sm_sl <SL number>]
fefd80b
 [\-r(eassign_lids)]
b4b107c
@@ -135,6 +136,13 @@
fefd80b
 is chosen by priority and GUID.  Range goes from 0
fefd80b
 (default and lowest priority) to 15 (highest).
fefd80b
 .TP
fefd80b
+\fB\-\-subnet_prefix\fR <PREFIX in hex>
fefd80b
+This option specifies the subnet prefix to use in
fefd80b
+on the fabric.  The default prefix is
fefd80b
+0xfe80000000000000.  OpenMPI in particular requires
fefd80b
+separate fabrics plugged into different ports to
fefd80b
+have different prefixes or else it won't run.
fefd80b
+.TP
b4b107c
 \fB\-\-smkey\fR <SM_Key value>
fefd80b
 This option specifies the SM\'s SM_Key (64 bits).
fefd80b
 This will effect SM authentication.
b4b107c
--- opensm-3.3.17/opensm/main.c.orig	2014-01-29 20:50:51.000000000 +0000
b4b107c
+++ opensm-3.3.17/opensm/main.c	2014-03-17 22:57:54.513928955 +0000
b4b107c
@@ -160,6 +160,9 @@
fefd80b
 	       "          This will effect the handover cases, where master\n"
fefd80b
 	       "          is chosen by priority and GUID.  Range goes\n"
fefd80b
 	       "          from 0 (lowest priority) to 15 (highest).\n\n");
fefd80b
+	printf("--subnet_prefix <prefix>\n"
fefd80b
+	       "          Set the subnet prefix to something other than the\n"
fefd80b
+	       "          default value of 0xfe80000000000000\n\n");
fefd80b
 	printf("--smkey, -k <SM_Key>\n"
fefd80b
 	       "          This option specifies the SM's SM_Key (64 bits).\n"
fefd80b
 	       "          This will effect SM authentication.\n"
b4b107c
@@ -654,6 +657,7 @@
fefd80b
 		{"once", 0, NULL, 'o'},
fefd80b
 		{"reassign_lids", 0, NULL, 'r'},
fefd80b
 		{"priority", 1, NULL, 'p'},
b4b107c
+		{"subnet_prefix", 1, NULL, 15},
fefd80b
 		{"smkey", 1, NULL, 'k'},
fefd80b
 		{"routing_engine", 1, NULL, 'R'},
fefd80b
 		{"ucast_cache", 0, NULL, 'A'},
b4b107c
@@ -996,6 +1000,11 @@
fefd80b
 			printf(" Priority = %d\n", temp);
fefd80b
 			break;
fefd80b
 
b4b107c
+		case 15:
fefd80b
+			opt.subnet_prefix = cl_hton64(strtoull(optarg, NULL, 16));
fefd80b
+			printf(" Subnet_Prefix = <0x%" PRIx64 ">\n", cl_hton64(opt.subnet_prefix));
fefd80b
+			break;
fefd80b
+
fefd80b
 		case 'k':
fefd80b
 			sm_key = cl_hton64(strtoull(optarg, NULL, 16));
fefd80b
 			printf(" SM Key <0x%" PRIx64 ">\n", cl_hton64(sm_key));