public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Doron Shohamd <dorons-smomgflXvOZWk0Htik3J/w@public.gmane.org>
To: sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: add support of reload net topology file
Date: Wed, 17 Feb 2010 16:51:02 +0200	[thread overview]
Message-ID: <4B7C0256.7080505@voltaire.com> (raw)

add new command 'reload' in order to reload net topology file

Signed-off-by: Doron Shoham <dorons-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
 ibsim/ibsim.c   |   21 ++++++++++++++++++---
 ibsim/sim_cmd.c |    6 ++++++
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/ibsim/ibsim.c b/ibsim/ibsim.c
index e720f0d..98be195 100644
--- a/ibsim/ibsim.c
+++ b/ibsim/ibsim.c
@@ -73,6 +73,8 @@ extern int ignoreduplicate;
 int ibdebug;
 int parsedebug;
 int simverb;
+FILE *infile, *outfile;
+char *netfile;
 
 static Client clients[IBSIM_MAX_CLIENTS];
 static int simctl = -1;
@@ -82,6 +84,13 @@ static int listen_to_port = IBSIM_DEFAULT_SERVER_PORT;
 static int remote_mode = 0;
 static char* socket_basename;
 
+extern int 	netnodes, netswitches, netports, netaliases;
+extern Node *nodes;
+extern Switch *switches;
+extern Port *ports;
+extern Port **lids;
+extern char (*aliases)[NODEIDLEN + NODEPREFIX + 1];	// aliases map format: "%s@%s"
+
 static size_t make_name(union name_t *name, uint32_t addr, unsigned short port,
 			const char *fmt, ...)
 {
@@ -553,8 +562,15 @@ int sim_cmd_file(FILE * f, char *s)
 	return 0;
 }
 
-static int sim_init_net(char *netconf, FILE * out)
+int sim_init_net(char *netconf, FILE * out)
 {
+	netnodes = netswitches = netports = netaliases = 0;
+	memset(nodes, 0, maxnetnodes*sizeof(*nodes));
+	memset(switches, 0, maxnetswitches*sizeof(*switches));
+	memset(ports, 0, maxnetports*sizeof(*ports));
+	memset(lids, 0, maxlinearcap*sizeof(*lids));
+	memset(aliases, 0, maxnetaliases*sizeof(*aliases));
+
 	DEBUG("reading %s", netconf);
 	if (read_netconf(netconf, out) < 0)
 		return -1;
@@ -716,8 +732,7 @@ int main(int argc, char **argv)
 {
 	extern int alloc_core(void);
 	extern void free_core(void);
-	char *outfname = 0, *netfile;
-	FILE *infile, *outfile;
+	char *outfname = 0;
 	int status;
 
 	static char const str_opts[] = "rf:dpvIsN:S:P:L:M:l:Vhu";
diff --git a/ibsim/sim_cmd.c b/ibsim/sim_cmd.c
index 6d3a893..51a407c 100644
--- a/ibsim/sim_cmd.c
+++ b/ibsim/sim_cmd.c
@@ -49,12 +49,15 @@
 #define DEBUG	if (simverb > 1 || ibdebug) IBWARN
 
 extern void free_core(void);
+extern int sim_init_net(char *, FILE *);
 
 extern Node *nodes;
 extern Switch *switches;
 extern Port *ports;
 extern Port **lids;
 extern int netnodes, netports, netswitches;
+extern char *netfile;
+extern FILE *outfile;
 
 #define NAMELEN	NODEIDLEN
 
@@ -822,6 +825,7 @@ static int dump_help(FILE * f)
 		);
 	fprintf(f,
 		"\tBaselid \"nodeid\"[port] <lid> [lmc] : change port's lid (lmc)\n");
+	fprintf(f, "\tReload : reload net topology file\n");
 	fprintf(f, "\tVerbose [newlevel] - show/set simulator verbosity\n");
 	fprintf(f, "\t\t\t0 - silent\n");
 	fprintf(f, "\t\t\t1 - debug verbose\n");
@@ -907,6 +911,8 @@ int do_cmd(char *buf, FILE *f)
 	 */
 	else if (!strncasecmp(line, "ReLink", cmd_len))
 		r = do_relink(f, line);
+	else if (!strncasecmp(line, "Reload", cmd_len))
+		r = sim_init_net(netfile, outfile);
 	else if (*line != '\n' && *line != '\0')
 		fprintf(f, "command \'%s\' unknown - skipped\n", line);
 
-- 
1.5.5

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2010-02-17 14:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-17 14:51 Doron Shohamd [this message]
     [not found] ` <4B7C0256.7080505-smomgflXvOZWk0Htik3J/w@public.gmane.org>
2010-02-27 15:22   ` add support of reload net topology file Sasha Khapyorsky
2010-03-01 15:38     ` Eli Dorfman (Voltaire)
     [not found]       ` <4B8BDF87.3020107-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-03-02 16:35         ` Sasha Khapyorsky
2010-03-08 21:51           ` Eli Dorfman
     [not found]             ` <694d48601003081351o2f661356seb17364cf5d734f9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-03-09 15:03               ` Sasha Khapyorsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B7C0256.7080505@voltaire.com \
    --to=dorons-smomgflxvozwk0htik3j/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox