I am building a wireless node and it currently looks like this
module Node extends NodeBase
{
parameters:
mobility.typename = default("StationaryMobility");
Physical.antenna.mobilityModule = default("^.^.mobility");
@display("bgl=8;bgb=230.31801,357.28");
*.interfaceTableModule = default(absPath(".interfaceTable"));
gates:
input radioIn @directIn;
submodules:
//Don't know what this does but need interfaceTableModule to be defined
interfaceTable: InterfaceTable {
parameters:
@display("p=125,240;is=s");
}
Physical: Ieee802154UwbIrRadio{
@display("p=41,74");
}
Link: <default("Ieee802154Mac")> like IMacProtocol {
@display("p=41,169");
}
Net: BroadcastRouting {
@display("p=41,248");
}
connections allowunconnected:
radioIn --> Physical.radioIn;
Physical.upperLayerOut --> Link.lowerLayerIn;
Physical.upperLayerIn <-- Link.lowerLayerOut;
Link.upperLayerOut --> Net.fromMac;
Link.upperLayerIn <-- Net.toMac;
}
The runtime error is produced when the simulator tries to load the LinkLayer.
Runtime Error: getContainingNicModule(): nic module not found (it should have a property named nic) for module 'network.componenet1.Link' ... during network initialisation
What I believe the function getContainingNicModule
is trying to do is look for a network interface card module that is a parent of the link layer.
I have searched for the nic
property and cannot find anything. It may be related to the interface
property but the inet.LinkLayerNodeBase
that I am mirroring off has no such property.
Why does it give this error?