host[1].nic.parameter_a would be differnet with host[2].nic.parameter_a,
when you using number to identify the set, not using the * syntax.
2010/7/23 David_MIXIM <dlay...@gmail.com>:
> --
> You received this message because you are subscribed to the Google Groups "omnetpp" group.
> To post to this group, send email to omn...@googlegroups.com.
> To unsubscribe from this group, send email to omnetpp+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/omnetpp?hl=en.
>
>
BaseConnectionManager* cc = FindModule<BaseConnectionManager*>::findGlobalModule();
BaseConnectionManager* cc = NULL;
cModule* nic = getParentModule();
if (nic->hasPar("connectionManagerName")){
cc = dynamic_cast<BaseConnectionManager *>(simulation.getModuleByPath(nic->par("connectionManagerName").stringValue()));
} else {
cc = FindModule<BaseConnectionManager *>::findGlobalModule();
}
ccEV << "Carrier Frequency: " << carrierFrequency << endl;"base/connectionManager/ConnectionManager.cc" - changed line 8 from
ccEV << "Max. TX-Power: " << pMax << endl;
ccEV << "Min. Signal Attenuation Threshold (SAT): " << sat << endl;
ccEV << "Min. Pathloss Coefficient: " << alpha << endl;
#define ccEV (ev.isDisabled()||!coreDebug) ? ev : ev << "ConnectionManager: "to
#define ccEV (ev.isDisabled()||!coreDebug) ? ev : ev << getName() << "(CM): ""base/connectionManager/ChannelAccess.cc" - added before line 57 "if( cc == 0 ) error(..."
coreEV << "Using " << cc->getName() << " as Connection Manager." << endl;
GSMNode[0]::PhyLayer: Using GSMChannel as Conenction Manager.What exactly did you do to see that both CMs used the same (wrong) parameters?
...
GSMNode[1]::PhyLayer: Using GSMChannel as Conenction Manager.
...
ISMNode[0]::PhyLayer: Using ISMChannel as Conenction Manager.
...
ISMNode[1]::PhyLayer: Using ISMChannel as Conenction Manager.
...
Initializing module MultiConnectionManager.ISMChannel, stage 1
ISMChannel(CM): initializing BaseConnectionManager
ISMChannel(CM): Carrier Frequency: 8.68e+08
ISMChannel(CM): Max. TX-Power: 100
ISMChannel(CM): Min. Signal Attenuation Threshold (SAT): -119.5
ISMChannel(CM): Min. Pathloss Coefficient: 3
ISMChannel(CM): max interference distance:4068.12
ISMChannel(CM): using 1x1x1 grid
ISMChannel(CM): findDistance is (4068.12,4068.12,4068.12)
Initializing module MultiConnectionManager.GSMChannel, stage 1
GSMChannel(CM): initializing BaseConnectionManager
GSMChannel(CM): Carrier Frequency: 8.68e+08
GSMChannel(CM): Max. TX-Power: 20
GSMChannel(CM): Min. Signal Attenuation Threshold (SAT): -100.5
GSMChannel(CM): Min. Pathloss Coefficient: 3.5
GSMChannel(CM): max interference distance:224.493
GSMChannel(CM): using 1x1x1 grid
GSMChannel(CM): findDistance is (500,500,500)
the problem is that BaseArp is only a very simple ARP-module and not
meant to work with multiple nics. If you have multiple nics you have to
subclass your own ARP-Module from it and find a way how it assignes
addresses to the different nics.
The code you posted will make both nics have the same mac address (the
id of their host) which of course is not ideal for unique address
resolution :).
You are right as it is now it's not very robust. We'll have to either
add warnings to BaseArp if the module layout does not match its
assumptions or have to make it more robust. But it won't be able to
handle multiple nics by itself.
Multiple nics or multiple network stacks in the same host is nothing
MiXiM currently supports by itself since we hadn't time yet to really
think about the problem. In general I think it should be doable, the
main problem will be the linking the correct network stack to the
correct nic which involves changes to BaseArp, MAC layer, Network layer
and maybe the host layout.
We will be glad on every feedback from your side on this matter and can
offer you our knowledge for help with MiXiM specifics on this matter but
currently can't extend MiXiM ourself for better support on this.
Thanks for all your feedback so far!
Regards,
Karl