|
From: Neetesh S. <nee...@ii...> - 2015-11-23 20:26:46
|
I'm using network flow example (example01), in which 4 users, 2 sender, say
user-1 and user-2 send messages to 2 receiver, say user-3 and user-4.
user-1 -> user-3 (msg)
user-3 -> user-1 (ack)
user-2 -> user-4 (msg)
user-4 -> user-2 (ack)
Now I want to connect new user5 -> user1 (msg) and user-1 -> user5 (ack).
Here is the code, I'm trying:
int num_user = 6;Router r1 = new FlowRouter("router1", trace_flag);
// router 1Router r2 = new FlowRouter("router2", trace_flag); //
router 2
String sender1 = "user1";String receipient1 = "user3";String sender2 =
"user2";String receipient2 = "user4";
// these entities are the sendersFlowNetUser user1 = new
FlowNetUser(sender1, receipient2, 5.0);FlowNetUser user2 = new
FlowNetUser(sender2, receipient1, 20.0);
String sender3 = "user5";String receipient3 = "user6";FlowNetUser
user5 = new FlowNetUser(sender3, receipient1, 50.0);
// these entities are the receipientsFlowTest user3 = new
FlowTest(receipient1, sender2);FlowTest user4 = new
FlowTest(receipient2, sender1);
// The schedulers are redundent and will be stripped out
soonFIFOScheduler userSched1 = new FIFOScheduler("NetUserSched_0");
r1.attachHost(user1, userSched1);
FIFOScheduler userSched2 = new FIFOScheduler("NetUserSched_1");
r1.attachHost(user2, userSched2);
FIFOScheduler userSched3 = new FIFOScheduler("FlowTestSched_0");
r2.attachHost(user3, userSched3);
FIFOScheduler userSched4 = new FIFOScheduler("FlowTestSched_1");
r2.attachHost(user4, userSched4;
FlowTest user6 = new FlowTest(receipient1, sender3);FIFOScheduler
userSched5 = new FIFOScheduler("NetUserSched_2");FIFOScheduler
userSched6 = new FIFOScheduler("FlowTestSched_2");
r1.attachHost(user5, userSched3);
r2.attachHost(user6, testSched3);
double baud_rate = 1572864; // bits/secdouble propDelay = 300; int
mtu = Integer.MAX_VALUE;;
Link link = new FlowLink("r1_r2_link", baud_rate, propDelay,
mtu);FIFOScheduler r1Sched = new
FIFOScheduler("r1_Sched");FIFOScheduler r2Sched = new
FIFOScheduler("r2_Sched");
r1.attachRouter(r2, link, r1Sched, r2Sched);
However, when I wish to connect
user-1 -> user-5 (msg) and
user-5 -> user-1 (ack),
the program throws NullPointerException.
java.lang.NullPointerException
at gridsim.net.flow.FlowRouter.dequeue(Unknown Source)
at gridsim.net.flow.FlowRouter.processInternalEvent(Unknown Source)
at gridsim.net.flow.FlowRouter.processEvent(Unknown Source)
at gridsim.net.Router.body(Unknown Source)
at eduni.simjava.Sim_entity.run(Sim_entity.java:605)
I wish to know how to do the same. I think there is some problem related to
scheduler. But i'm not able to figure out.
I hope you could help me.
Thanks.
|