Multi-Layer Network Engineering and Optimization (MuLaNEO)
Features
- Multi-layer network visualization based on MuLaViTo
- Multi-layer exchange format import and export
- Situation-aware menus toggling entries that are not available/allowed
- Using JFreeChart for illustrations
- PlotPanel that may react on events fired by algorithms and
exports data as CSV and figure as SVG
- JUnits
- Export and import of character separated values (CSV)
- Ant-based build scripts with automatic downloads of dependencies
- Topology import/export in various formats: GML, GraphML, SNDlib (via optional plugin)
- Traffic Generators
- static and dynamic traffic
- homogeneous
- population-based
- Network design algorithms
- Network provisioning algorithms
- Path Computation Element (PCE)
- Traffic Engineering Database
- Population Generators
Requirements
Optional Extensions
- SNDlib support via SNDlibIO plugin
- Note that SNDlib's license restricts usage to academic purposes.
You will be asked to accept SNDlib's ZIB academic license
http://sndlib.zib.de/public-dist/LICENSE.txt
- Download SNDlibIO source archive
- Extract source and execute build.xml ANT script
- Place the resulting SNDlib.jar and SNDlibIO.jar in
- For use in Eclipse: In the projects root folder
- For use with JARs: In the folder where the MuLaNEO JARs are placed
Basic Structure
The Java package hierarchy of MuLaNEO is structured as follows:
- ''AUTHORS'' -- A list of contributors to this software and their affiliations
- ''COPYING'' -- The license information (GPL, LGPL)
- ''README'' -- This file
- ''TODO'' -- Further improvements
- ''src''
- ''img'' -- project images and icons
- ''mulaneo'' -- main source package
- ''algorithms'' -- routing, optimization and validating algorithms
- ''graph'' -- multi-layer data structure for project
- ''gui'' -- all components and user interfaces
- ''io'' -- Importers and Exporters
- ''model'' -- network equipment and meta data
- ''provisioning'' -- network optimization routines
- ''resilience'' -- classes for creating fail safe networks
- ''resources'' -- classes for link resources
- ''traffic'' -- modeling of traffic for a network
- ''utils'' -- everything else
- ''tests'' -- JUnit tests, usually not exported
- ''topologies'' -- physical layer topologies and meta data
- ''XML'' -- CAPEX models
- ''evaluations'' -- statistical measures
- ''build.xml'' -- ANT that creates JARs for end user execution
- ''runtest.xml'' -- Sets up and runs a given JUnit test
GUI Events
The following GUI classes subscribe specific GUI events of MuLaViTo:
- mulaneo.gui.GUI:
subscribes the Viewers event of the graphpanel
- mulaneo.gui.component.RealizationTreePanel:
subscribes LayerStack propertychange event of given graphpanel
- mulaneo.gui.component.DynamicPanel:
subscribes LayerStack propertychange event of given graphpanel
subscribes ChangeEvent of dynamic trafficmatrix by traversing
up the given layerstack
- mulaneo.gui.component.FailurePanel:
subscribes LayerStack propertychange event of given graphpanel
subscribes ChangeEvent of dynamic failurematrix by traversing
up the given layerstack
- mulaneo.gui.component.SelectionTreePanel:
subscribes LayerStack propertychange event of given graphpanel