Changes between Initial Version and Version 1 of Old/OTG/FAQ


Ignore:
Timestamp:
Sep 25, 2005, 7:18:39 PM (19 years ago)
Author:
max
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Old/OTG/FAQ

    v1 v1  
     1= OTG FAQ =
     2
     3== General ==
     4
     5=== What is OTG? ===
     6
     7OTG is a software package which contains at least two executable programs in Unix/Linux environment: ''otg'' and ''otr''.
     8
     9=== Is OTG free software? ===
     10
     11OTG is open-source software and could be downloaded by everyone. However, by default, OTG/OTR
     12are supposed to be used in ORBIT testbed to take advantage of Orbit measurement framework.
     13
     14=== How can I install it? ===
     15
     16The installation of Orbit Traffic Generator is simple. On any node of Orbit Testbed, give command
     17{{{
     18apt-get install otg
     19}}}
     20three binary files "otg" "otr", "otf" will be copied to /usr/local/bin directory.
     21
     22=== Where do I get the source code? ===
     23For orbit developers, latest sourcecode of OTG software can be checked out by this command
     24{{{
     25svn co http://svn.orbit-lab.org/svn/orbit/otg/trunk otg
     26}}}
     27
     28=== Where can I find documentation of OTG/OTR? ===
     29
     30Simply saying, this FAQ and the [wiki:OTG/UserManual User Manual] is enough for ordinary users. For developer, the [wiki:OTG/ArchitectureDesign Architecture design] document and the function specifications would be important descriptive sources for understanding the whole design.
     31
     32If you want a real detailed documentation of code, it can be generated by the [http://www.doxygen.org Doxygen] tool
     33{{{
     34cd otg/doc/
     35doxygen otgdoc.cfg
     36}}}
     37Note: If Doxygen generates contradictory descriptions against Fucntion Specification, Function Sepcifiactions are actual implementation guidelines.
     38 
     39=== What is OTF? ===
     40
     41OTF is the Orbit Traffic Forwarder. It is designed in order to enable layer-2 packet forwarding by MAC address. It could be used as a means to avoid routing protocols.
     42
     43== Using OTG with NodeHandler ==
     44
     45=== Why I have to write nodeHandler scripts to use OTG? ===
     46
     47Basically, nodeHandler is a comprehensive tool to control the whole experiment in Orbit-testbed, including power on/off nodes, setup/break wire/wireless links. As OTG software can be used to test a link only after the link is eatablished. It is not a bad idea to also use "nodehandler"  to give command-line options and run-time options for OTG/OTR program.  Also, with this, users do not need to SSH to everynode and run the OTR program one by one manually.
     48
     49=== When using nodehandler, where can I find the outputs of OTG/OTR during the experiment?
     50It is the experiment log, which is put in /tmp directory of console and named with your expeiment-id.log. [[BR]]
     51Some stdout output of otg/otr could be found:
     52{{{
     532005-09-22 16:58:54 DEBUG nodeHandler::comm: process message (0): '/r_1/c_2 3 APP_EVENT STDOUT app:otg "packet size parameter is set as 1024"}'
     542005-09-22 16:58:54 DEBUG nodeHandler::NodeHandler: Process message '/r_1/c_2 3 APP_EVENT STDOUT app:otg packet size parameter is set as 1024'
     552005-09-22 16:58:54 DEBUG nodeHandler::agentCmd::APP_EVENT: STDOUT' from 'app:otg' executing on n_1_2: 'packet size parameter is set as 1024'
     562005-09-22 16:58:54 DEBUG nodeHandler::node::n_1_2: Message for app 'app:otg'
     572005-09-22 16:58:54 DEBUG nodeHandler::comm: process message (2): '/r_1/c_2 4 APP_EVENT STDOUT app:otg "Destination Hostname: 192.168.1.4"}'
     582005-09-22 16:58:54 DEBUG nodeHandler::NodeHandler: Process message '/r_1/c_2 4 APP_EVENT STDOUT app:otg Destination Hostname: 192.168.1.4'
     592005-09-22 16:58:54 DEBUG nodeHandler::agentCmd::APP_EVENT: STDOUT' from 'app:otg' executing on n_1_2: 'Destination Hostname: 192.168.1.4'
     602005-09-22 16:58:54 DEBUG nodeHandler::node::n_1_2: Message for app 'app:otg'
     612005-09-22 16:58:54 DEBUG nodeHandler::comm: process message (2): '/r_1/c_2 5 APP_EVENT STDOUT app:otg "Rate is set as 300000bps"}'
     622005-09-22 16:58:54 DEBUG nodeHandler::NodeHandler: Process message '/r_1/c_2 5 APP_EVENT STDOUT app:otg Rate is set as 300000bps'
     632005-09-22 16:58:54 DEBUG nodeHandler::agentCmd::APP_EVENT: STDOUT' from 'app:otg' executing on n_1_2: 'Rate is set as 300000bps'
     64....
     652005-09-22 16:58:54 DEBUG nodeHandler::node::n_1_1: Message for app 'app:otr'
     662005-09-22 16:58:54 DEBUG nodeHandler::comm: process message (0): '/r_1/c_1 4 APP_EVENT STDOUT app:otr "binding to port: 4000......"}'
     672005-09-22 16:58:54 DEBUG nodeHandler::NodeHandler: Process message '/r_1/c_1 4 APP_EVENT STDOUT app:otr binding to port: 4000......'
     682005-09-22 16:58:54 DEBUG nodeHandler::agentCmd::APP_EVENT: STDOUT' from 'app:otr' executing on n_1_1: 'binding to port: 4000......'
     69}}}
     70
     71=== where can I see the experimetn XML files ? ===
     72It is generated dynamically and put in the /tmp directory of the console. The naming convention for this file is "experimentname+timestamp".
     73The oml_experiment XML files are stored in /tmp directory of  the nodes participating the experiment. For example, if a node is running OTG during the experiment, an XML configuration file, which tells OTG where to send OML measuremeents, should be existing in the /tmp/ directory of that node. The name of that file consists of some random characters.
     74
     75
     76== Writing Scripts for OTG Application ==
     77
     78=== I need to specify the OTG sender port in the experiment file, what all do I need to modify? ===
     79
     80you can check if the otg.rb already list "port" as a property or not? If yes, then go to sender.rb to see if
     81the "port" property is binded to the sender object or not?
     82if both are done, you can configure this property as same as other property in your experiment script.
     83
     84== Trouble shouting ==
     85=== why the OML database for my experiment has empty tables (0 records)? ===
     86The OTG/OTR is only used to test link performance. The user has to ensure the link availabilty before running OTG/OTR programs. One plausible reason for empty table is the link does not exists at all (wrong channel setting, cell id mismatch...). This is surprisingly frequent in wireless tests. Check your experiment scripts carefully.
     87
     88=== Why I get "bind error" when starting otg/otr? ===
     89Be sure a port in one machine can only used by one program. If you run multiple OTG programs in one machine, use different "--port" settings.
     90
     91
     92=== Why I get an "rx_timestamp" earler than "tx_timestamp" ? ===
     93Timestamp shows the time offset since the program is started.
     94If you start OTR later than OTG, it is possible to see a smaller rx_timestamp than tx_timestamp.
     95
     96
     97
     98
     99