The possibility of loading library dinamically has been introduced in standard ns2 simulator, starting from release 33. By now, we will suppose that you are using this simulator or a more recent one.
In MIRACLE every modification can constitute a stand alone library and can be loaded when necessary with the
load command. In this case modifications could be rapidly intercharged, loading the appropriate library. Furtermore a modification of a library requires only to recompile the code associated to that library and it usually requires some seconds. So you can save memory space (you need only a ns2 distribution) and precious time for debugging and simulations.
A motivation for creating the MIRACLE Extension is to fill the gap between ns2 and the simulation of multi technology enviroments and provide the possibility of performing cross layer messaging. This is one of the most advanced field of research and an opportune instrument for simulation is needed. The way MIRACLE reached this goal is a generic and technology independent approach.
MIRACLE node is based on generic entities connected by each other. The protocol stack is implemented through entities called Modules. The novel idea consists in allowing presence of more than one Module per layer. Every Module is connected to another entity called Node Core. It goes off the layer ordering scheme and has the task of coordinating message exchange between modules. It also stores the node actual position in the simulation field in order to allow position-dependent calculations such those related to propagation and interference models.
There are also another kind of entities connected to the Node Core, called PlugIns. As Node Core, they don't depend on layer classification. Due to their independence from the OSI stack, the PlugIn may be exploited for node coordination functionalities (e.g., cognitive engines and multi interfaces manager) and cross layer intelligence.
Communication among different layers is provided by Service Access Points (SAP), accordingly to OSI structure. As in ns2, connections between Modules, NodeCore and PlugIns are made by Connectors, but the latter are completely reprojected to trace packets passing through them according to rules extablished by user.