Task #4638
open
Allow manual specification of experiment module in ExperimentManager
Added by Alexander Lane over 6 years ago.
Updated over 6 years ago.
Description
Presently, ExperimentManager is hard coded to only check the ndn.experiments module for experiments, which combined with the fact it cannot be easily inherited from increases the amount of unnecessary duplication in derivative code. The module should be restructured such that this can be changed at runtime.
Is this issue related to porting nfd integration tests? I don't see usage on the gerrit change.
Another thing is that result directory is made specifically for NLSR experiments - we should also remove that to make mini-ndn more general.
Ashlesh Gawande wrote:
Is this issue related to porting nfd integration tests? I don't see usage on the gerrit change.
Another thing is that result directory is made specifically for NLSR experiments - we should also remove that to make mini-ndn more general.
This is actually something which effects Mini-NDN-Wifi most directly, although now that you mention it would be excellent to use it with the NFD integration tests.
And agreed, I'll tweak that.
How is this used Mini-NDN-Wifi?
Can't we just store all the experiments in sub folders within ndn.experiments and recurse through it?
Where will the experiment manager be set - in bin/minindn? Would it be set from a command line argument?
Ashlesh Gawande wrote:
How is this used Mini-NDN-Wifi?
Can't we just store all the experiments in sub folders within ndn.experiments and recurse through it?
Where will the experiment manager be set - in bin/minindn? Would it be set from a command line argument?
In order to accomplish the task of separating out the Mini-NDN-Wifi and Mini-NDN libraries, which will decrease maintenance time significantly, we would necessarily need to have the Mini-NDN-Wifi files in a separate module which does not overlap with that of Mini-NDN. The downside is that experiment_manger presently hardcodes imports to be from Mini-NDN (https://github.com/named-data/mini-ndn/blob/master/ndn/experiment_manager.py#L42), which means that we are forced to create a duplicate (or wrapper class) in Mini-NDN-Wifi to change this one line. This adds maintenance burden for any changes made to experiment_manager or any other derivative code.
In regards to your second point, this would require redistributing Mini-NDN-Wifi experiments with vanilla Mini-NDN or redistributing modified Mini-NDN code with Mini-NDN-wifi (egg module files are compressed and cannot be easily altered).
To your third point, the former seems most likely. A command line option would be doable potentially but would need to be structured so it didn't cause regressions when interacting with other arguments.
Also available in: Atom
PDF