----------------- Hegons Beta v0.4 ----------------- A HEterogeneous Grooming Optical Network Simulator (HEGONS). Supporting mixed routing & wavelength assignment algorithms and optional wavelength conversions capability on each node. Unlike many other simulators, the goal in developing Hegons is NOT to simulate the OSI model layers as they are. Such simulators mimic the behavior of say TCP/IP or GMPLS in order to provide a virtual platform for developers, learners and testers. Hegons on the other hand, aims at one thing and only one thing: The evaluation of different dynamic Routing and Wavelength Assignment (RWA) algorithms in WDM optical networks in terms of several measures such as: call blocking probability, Fairness (Variance in blocking probability), call setup time, etc. Thus Hegons is not bound to any specific protocol unless it is related to RWA algorithms, which leads to a great deal of source code reduction and optimization being possible. This fact makes Hegons work much faster in producing usable results that can help researchers in the field. -------------------- Network File Format -------------------- A complete and efficient file format is not finalized yet. The current file format (HNT: Hegons NeTwork) is simple and works fine for the time being. For a brief description of the file format view the "File_Format.gif" file. --------------- Running Hegons --------------- The simulator packages comes with both source and binaries. So you don't have to compile if you don't want to. If you type hegons -? you will get the usage info. Following are examples to begin with using Hegons: 1. The fllowing command sets the randomization seed to 700 and uses the NSFNET_2Bat.hnt network: Hegons -s:700 -nt:NSFNET_2Bat.hnt By default, it uses FAR routing with "First Fit" ordering and "First Fit" wavelength assignment since the algorithms are not given. Also, If you use -c:2 in this example, it will devide the arrival rates by 2 2. The following uses the timer as the randomizaton seed. Uses FAR routing with "random" ordering and "most used" wavelength assignment. Hegons -r -mu -nt:NSFNET_2Bat_Groom.hnt 3. if you run the Runt_0conv_FFR.bat file it will do a batch simulation on the NSFNET_10Bat_0Conv.hnt network for all four wavelength assignment algorithms that are supported. The results will be stored in CSV files that you can view in excel. All .hnt (Hegons NeTwork) files are text files that you can edit. Note: use the -vi option with the NSFNET_2Bat_new_vi.hnt file --------------------- Compiling on Windows --------------------- If you've downloaded the Windows package "Hegons-0.4.zip" Then you could simply open the Visual C++ project file "Hegons.dsw". Or did you already do that. ------------------- Compiling on Linux ------------------- There are currently 2 packages for Linux: Hegons-0.4_Linux_Eclipse.tar.gz Hegons-0.4_Linux.tar.gz The the first package has been compiled in Suse 10.2 on the Eclipse IDE. However if you had problems with Eclipse you can still compile the code under any other IDE or even manually. You need the second package. All you need are the following files: Hegons.c NDarrays.c NDarrays.h graphs.c graphs.h routing.c Copy those files to your IDE and compile them. You have to link with the -lm option for the math.h functions to work. And, remmeber that "routing.c" SHOULD NOT BE COMPILED!. This file is automatically #included in "Hegons.c". You WILL get errors if you compile it. Finally, I'm a beginer in Linux, The code has been ported from Windows with basic testing. So use at your own risk. ------------ Other Notes ------------ So far, the highest priority in the development of Hegons has been performance in terms of speed. I tried to optimized the code to make it run as fast a possible. Since there is always a tradeoff between speed and memory usage, Hegons can indeed consume a considerable amount of RAM. However, Hegons will not be memory hungry unless the network is really large (More than 100 nodes) with allot of links. Memory requirements grow exponentially with large networks as the simulator stores shortest paths from each source to each destination nodes. Finally, The project is still under development. I'm always willing to hear from interested people. Your feedback is welcome. Ammar Muqaddas www.solostuff.net cpe.kuniv.edu/users/ammarm ammar@solostuff.net