Dear all,
I’m relatively new to Omnet++ and I have the following problem. This is my
module definition:
module DataCenter
{
parameters:
int
numberofNodes;
int
DC_id;
int
P_Idle;
gates:
input
in;
output
out;
inout
toServer[numberofNodes];
submodules:
nodes[numberofNodes]: Server;
connections:
for i=0..numberofNodes-1 {
toServer[i] <--> nodes[i].port;
}
}
simple Server
{
parameters:
int
maxFlops;
int
P_idle;
int
P_Max;
gates:
inout
port;
}
The thing is, that when I start my simulation, it states that the (only)
DataCenter module does not have the gates connected :
Error in module cCompoundModule: Test (id=1) during network setup: Gate
TEst.F.toServer$i[0] is not connected to sibling or parent module.
Thus this means my for loop in DataCenter is not run right? I inspect the
module and the numberofNodes parm. is correct and the toServer array is
initialized... only not connected.
For ref. this is my test network setup:
network Test
{
parameters:
int
totalNumberLambdas;
int
waType; //FF
submodules:
A:
GmplsRouter {
parameters:
@display("i=block/routing;p=70,335");
address = 0;
waType = waType;
totalNumberLambdas = totalNumberLambdas;
}
B:
GmplsRouter {
parameters:
@display("i=block/routing;p=70,76");
address = 1;
waType = waType;
totalNumberLambdas = totalNumberLambdas;
}
C:
GmplsRouter {
parameters:
@display("i=block/routing;p=235,76");
address = 2;
waType = waType;
totalNumberLambdas = totalNumberLambdas;
}
D:
GmplsRouter {
parameters:
@display("i=block/routing;p=235,335");
address = 3;
waType = waType;
totalNumberLambdas = totalNumberLambdas;
}
E:
Generator {
parameters:
@display("i=block/broadcast");
address = 4;
}
F:
DataCenter {
parameters:
DC_id = 5;
@display("p=70,431");
}
connections:
A.in++
<-- { delay = 100ms; } <-- B.out++;
A.out++
--> { delay = 100ms; } --> B.in++;
B.in++
<-- { delay = 100ms; } <-- C.out++;
B.out++
--> { delay = 100ms; } --> C.in++;
C.in++
<-- { delay = 100ms; } <-- D.out++;
C.out++
--> { delay = 100ms; } --> D.in++;
D.in++
<-- { delay = 100ms; } <-- A.out++;
D.out++
--> { delay = 100ms; } --> A.in++;
A.in++
<-- { delay = 1ms; } <-- F.out;
A.out++
--> { delay = 1ms; } --> F.in;
}