This is a FAQ for the INRIA olsrd code that was modified by NRL The latest version is nrlmod 1.0a9. ***************************** W A R N I N G *************************** ***************************** W A R N I N G *************************** Use this configuration tools at your own risk. This will change the following categories of your system. 1) /etc/pcmcia/config to use wvlan_cs.o 2) dhcp daemon, dhcp client 3) wireless configuration 4) nolsrd daemon 5) NAT (source network address translation) 6) sysctl 7) iwconfig 8) ifcfg-eth1 ***************************** W A R N I N G *************************** ***************************** W A R N I N G *************************** (1) General changes from INRIA code release NRL has modified this code to include a number of new features beyond the original INRIA code. Code Modified by Joe Macker and Ron Lee originally on July-Nov (NRL) 2001 the following was added * (1) hysteresis code for hellos * - added pending state and filter parameters * (2) parameterization of other setting * - hello intervals, * (3) added jitter functionality * (4) still don't like the polling routing used as an event handler * (5) changed gateway code so -g becomes enter a gateway address for stub * (6) added capability for deugging levels and simplified table tracing vers a4 * (7) added tos bit settings for linux kernel (use 16 for low delay) * (8) added routing links debug info ( A -> B ). * (9) removed the timeout_mult and added two new timeout_mult variables. * - neighbor_timeout_mult * - topology_timeout_mult. (2) Running the OLSRD code: The olsrd code can be run as a foreground or background process. By setting a debug level with the -d option the program will run in the foreground and produce various tracing messages to the shell. - debug level 1 prints neighbor table and status every hello interval status (0) pending (1) asym (2) sym (3) mpr - debug level 2 prints neighbor table and topology table info The command line options are as follows: olsrd [ -s ] [ -q ] [ -d ] [ -t ] [-hint ] -hjit ] [-tcint ] [-tcjit ] [-T ] [-hmult ] [tmult ] [ -i 'interface file'] [ -g ] [ -tos value ] [ 'trace file' ] (3) Parameter settings (jitter, intervals,etc) In early testing of OLSR, it became apparent that interval timers and jittering of control packets are important paraemeters to experiment with, this code adds the ability to modify those parameter values at run time. Here is a brief explanation of each parameter and its potential impact. Hello Interval: the time (secs) between successive transmission of hello packets. Hello Jitter: a jitter interval to randomize the hello transmission time, this helps further avoid protocol synchronization issues and packet collision. TC Interval: the time (secs) between successive transmission of TC messages ( a TC minimum is also included in the code which I believe is set to 1 sec). TC Jitter: a jitter interval to randomize the TC transmission time, this helps further avoid protocol synchronization issues and packet collision. Polling Rate: an interval for the select routine used in controlling the event handler (not elegant code, but by setting this short one can improve the jitter operation,etc). Holdtime multiplier: multiplication factor for the hello and tc intervals that determines the soft state timeouts for table aentries (should at least be >= 3). There is a tradeoff here between deleting stale information and deleting valid entries too early due to missed control packets. Default gateway address: (changed from INRIA code).. allows a static entry for a default gatewayfrom a stu network. When OLSR sees this address in the topology a default routing entry will also be added. (4) Hysteresis and Neighbor Sensing ---------------------------------------------------------------------------- CHANGELOG release 3 -- 2002.10.10 fixed dhcpd start scripts 1.a8 to 1.a9 -- 2002.10.02: Added some routing fixes in kernel_routes.c 1.a7 to 1.a8 -- 2002.09.30: Fixed a bug with nodes that didn't realize they were no longer listed in their neighbor's HELLO packets; thus, these nodes did not change the link status of them to their neighbor to asymmetric.