Bottom: c1a3265ecb373be6114f838a6a7b82453aafd16e
-Top: ecfa4880e2ee351de7a1f30d0bafb1df221402dc
+Top: 131a3de8a72737d956e57cbdeed00328b22d8209
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2011-06-27 10:29:36 -0700
if (acm_open_devices()) {
acm_log(0, "ERROR - unable to open any devices\n");
diff --git a/src/acme.c b/src/acme.c
-index d42ba81..05d093d 100644
+index d42ba81..f3faa68 100644
--- a/src/acme.c
+++ b/src/acme.c
@@ -49,11 +49,13 @@ static char *opts_file = ACM_OPTS_FILE;
}
ret = ib_acm_resolve_ip(saddr, (struct sockaddr *) &dest,
-@@ -575,63 +581,125 @@ static char *get_dest(char *arg, char *format)
+@@ -575,63 +581,121 @@ static char *get_dest(char *arg, char *format)
*format = 'i';
return addr;
} else {
}
-static int resolve(char *program, char *dest_arg)
-+static int resolve(char *svc)
++static void resolve(char *svc)
{
- char **dest_list;
+ char **dest_list, **src_list;
dest_list = parse(dest_arg, NULL);
if (!dest_list) {
printf("Unable to parse destination argument\n");
- return -1;
- }
-
-- for (dest_addr = get_dest(dest_list[i], &dest_type); dest_addr;
-- dest_addr = get_dest(dest_list[++i], &dest_type)) {
-- printf("Destination: %s\n", dest_addr);
-- switch (dest_type) {
-- case 'i':
-- ret = resolve_ip(&path);
-- break;
-- case 'n':
-- ret = resolve_name(&path);
-- break;
-- case 'l':
-- memset(&path, 0, sizeof path);
-- ret = resolve_lid(&path);
-- break;
-- case 'g':
-- memset(&path, 0, sizeof path);
-- ret = resolve_gid(&path);
-- break;
-- default:
-- show_usage(program);
-- exit(1);
-- }
++ return;
++ }
++
+ src_list = src_arg ? parse(src_arg, NULL) : NULL;
+
+ printf("Service: %s\n", svc);
+
+ if (!ret)
+ show_path(&path);
-
-- if (!ret)
-- show_path(&path);
++
+ if (verify)
+ ret = verify_resolve(&path);
+ printf("\n");
-
-- if (verify)
-- ret = verify_resolve(&path);
-- printf("\n");
++
+ if (src_list)
+ src_addr = src_list[++s];
+ } while (src_addr);
- }
-
- free(dest_list);
-- libacm_cleanup();
-+ return ret;
++ }
++
++ free(dest_list);
+}
+
+static void query_perf(char *svc)
+ svc_list = parse(svc_arg, NULL);
+ if (!svc_list) {
+ printf("Unable to parse service list argument\n");
-+ return -1;
-+ }
-+
+ return -1;
+ }
+
+- for (dest_addr = get_dest(dest_list[i], &dest_type); dest_addr;
+- dest_addr = get_dest(dest_list[++i], &dest_type)) {
+- printf("Destination: %s\n", dest_addr);
+- switch (dest_type) {
+- case 'i':
+- ret = resolve_ip(&path);
+- break;
+- case 'n':
+- ret = resolve_name(&path);
+- break;
+- case 'l':
+- memset(&path, 0, sizeof path);
+- ret = resolve_lid(&path);
+- break;
+- case 'g':
+- memset(&path, 0, sizeof path);
+- ret = resolve_gid(&path);
+- break;
+- default:
+- show_usage(program);
+- exit(1);
+ if (perf_query) {
+ printf("Destination,Error Count,Resolve Count,No Data,Addr Query Count,"
+ "Addr Cache Count,Route Query Count,Route Cache Count\n");
+ for (i = 0; svc_list[i]; i++) {
+ ret = ib_acm_connect(svc_list[i]);
+ if (ret) {
-+ printf("%s, unable to contact service %s\n",
++ printf("%s,unable to contact service: %s\n",
+ svc_list[i], strerror(errno));
+ continue;
-+ }
-+
-+ if (dest_arg) {
-+ ret = resolve(svc_list[i]);
-+ if (ret)
-+ break;
-+ }
-+
+ }
+
+- if (!ret)
+- show_path(&path);
++ if (dest_arg)
++ resolve(svc_list[i]);
+
+- if (verify)
+- ret = verify_resolve(&path);
+- printf("\n");
+ if (perf_query)
+ query_perf(svc_list[i]);
+
+ ib_acm_disconnect();
-+ }
-+
+ }
+
+- free(dest_list);
+- libacm_cleanup();
+ free(svc_list);
return ret;
}
-@@ -648,20 +716,24 @@ char *opt_arg(int argc, char **argv)
+@@ -648,20 +712,24 @@ char *opt_arg(int argc, char **argv)
int CDECL_FUNC main(int argc, char **argv)
{
break;
case 'd':
dest_arg = optarg;
-@@ -685,23 +757,26 @@ int CDECL_FUNC main(int argc, char **argv)
+@@ -685,23 +753,26 @@ int CDECL_FUNC main(int argc, char **argv)
case 'D':
dest_dir = optarg;
break;
if (!ret && make_addr)
ret = gen_addr();
-@@ -709,8 +784,13 @@ int CDECL_FUNC main(int argc, char **argv)
+@@ -709,8 +780,13 @@ int CDECL_FUNC main(int argc, char **argv)
if (!ret && make_opts)
ret = gen_opts();
+++ /dev/null
-Bottom: ecfa4880e2ee351de7a1f30d0bafb1df221402dc
-Top: 131a3de8a72737d956e57cbdeed00328b22d8209
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2011-06-30 20:40:09 -0700
-
-Refresh of counters
-
----
-
-diff --git a/src/acme.c b/src/acme.c
-index 05d093d..f3faa68 100644
---- a/src/acme.c
-+++ b/src/acme.c
-@@ -586,7 +586,7 @@ static char *get_dest(char *arg, char *format)
- }
- }
-
--static int resolve(char *svc)
-+static void resolve(char *svc)
- {
- char **dest_list, **src_list;
- struct ibv_path_record path;
-@@ -596,7 +596,7 @@ static int resolve(char *svc)
- dest_list = parse(dest_arg, NULL);
- if (!dest_list) {
- printf("Unable to parse destination argument\n");
-- return -1;
-+ return;
- }
-
- src_list = src_arg ? parse(src_arg, NULL) : NULL;
-@@ -642,7 +642,6 @@ static int resolve(char *svc)
- }
-
- free(dest_list);
-- return ret;
- }
-
- static void query_perf(char *svc)
-@@ -682,16 +681,13 @@ static int query_svcs(void)
- for (i = 0; svc_list[i]; i++) {
- ret = ib_acm_connect(svc_list[i]);
- if (ret) {
-- printf("%s, unable to contact service %s\n",
-+ printf("%s,unable to contact service: %s\n",
- svc_list[i], strerror(errno));
- continue;
- }
-
-- if (dest_arg) {
-- ret = resolve(svc_list[i]);
-- if (ret)
-- break;
-- }
-+ if (dest_arg)
-+ resolve(svc_list[i]);
-
- if (perf_query)
- query_perf(svc_list[i]);