Nrlolsr::options -i <interfacename>[-d <debuglvl>][-l <debuglogfile>][-al][-h][-v]
		 [-w <willingness>][-hna auto|<filename>|off][-b <broadaddr> <masklength>]
                 [-hi <HelloInterval>][-hj <HelloJitter>][-ht <HelloTimeoutfactor>]
                 [-tci <TCInterval>][-tcj <TCJitter>][-tct <TCTimeoutfactor>][-ipv6][-ipv4]
                 [-hnai <HNAInterval>][-hnaj <HNAJitter>][-hnat <HNATimeoutfactor>]
                 [-hys up <upvalue> | down <downvalue> | alpha <alphavalue> | on | off]
OPTIONS
	-i 	interfacename: is device name of interface that olsr is to run on. default = N/A 

	-d 	debuglvl: is value between 0-10.  default = 0

	-l 	debuglogfile: is file location/name that debugging information is logged. default is stderr

	-al	All links option.  This option is basically sets the TC_REDUNDANCY = 2 as described in v11 olsr default = off

	-h      Display usage.
	
	-v      Display version number.
	
	-b      Set broadcast address network. <broadaddr> is an ip address string and <netmask> is the mask length.  
		default(IPv4) = <broadaddr>  = 224.0.0.57     (was selected at random from un-assigned local multicast address space)
			        <masklength> = 32
		default(IPv6) = <broadaddr>  = ff05::2
			        <masklength> = 128

	-w      Willingness value between 0 and 7.  7 will always be mpr 0 will never be mpr.  default = 3

	-hna	Auto will look interfaces not defined by -i interfacename and advertize network routes.  
		filename: is the file with list of HNA network addresses to advertize in the format 
			HNA <networkaddress> <masklength>
			HNA <networkaddress> <masklength>
		off will turn sending HNAs out off
		default(IPv4) = auto
		default(IPv6) = off (IPv6 mode does not currently have auto option)	

	-hi 	HelloInterval: is hello sending interval to be used in seconds. default = .5
		(spec v8 default = 2)

	-hj	HelloJitter: is percent of HelloInterval to jitter.  Values from 0 up to 1 are valid.  default = .5
		(jitter is done in different mannor than v8 spec.  Jitter value does not effect the 
			average HelloInterval even over moderate intervals.)
	
	-ht 	HelloTimeoutfactor: is value greater than 1 which multiplied with HelloInterval defines Neighbor Hold Time.  default = 6
		(spec v8 default = 3)
		(neighbor timeouts are done according to v4 spec Vtime is not yet implemented on recieving)
		(there is an issue in how two hop neighbors are stored which makes it hard to change runtime.  As of right now two hop neighbors
		 are held for 6 seconds since last update and this value is not changed with different intervals or timeouts.  To change this 
		 you must change the value of the global variable Neighb_Hold_Time to whatever you want the hold time to be then recompile. 
		 This is being  worked on.)


	-tci	TCInterval: is TC sending interval to be used in seconds. default = 2
		(spec v8 defalut = 5)

	-tcj	TCJitter: is percent of TCInterval to jitter.  Values form 0 up to 1 are valid. default = .5
		(jitter is done in different mannor than v8 spec.  Jitter value does not effect the 
			average HelloInterval even over moderate intervals.)
	
	-tct 	TCTimeoufactor: is value greater than 1 which multiplied with TCInterval defines topology tuple hold time. default = 3

	-ipv6   OLSR will operate with ipv6 addresses.  -hna auto option does not currently work with this option.

	-ipv4   OLSR will operate with ipv4 addresses.  This is the default mode.

	-hnai 	HNAInterval: is HNA sending interval to be used in seconds. default = 15
		(spec v8 default = 5)
	
	-hnaj	HNAJitter: is percent of HNAInterval to jitter. Values from 0 up to 1 are valid. default = .1
		(jitter is done in different manner than v8 spec.  Jitter value does not effect the 
			average HelloInterval even over moderate intervals.)

	-hys	up <upvalue>: where upvalue is number between 0 and 1 that defines HYST_THRESHOLD_HIGH. default = .4

		down <downvalue>: where downvalue is number between 0 and 1 that defines HYST_THRESHOLD_LOW. default = .15
		(only values for up and down make sense when up is larger than down bad things will happen if set incorrectly)

		alpha <alphavalue>:  where alphavalue is number between 0 and 1 that defines HYST_SCALING (weight of past). default = .7
	
		on: turns hysteresis on with default values.  Is on by default.
		
		off: turns hysteresis off by setting values of up down and alpha so that it does virutally nothing.
		(will have an effect if timeout values are VERY large)

	-qos    Qos value to mark OLSR packets with.  Is off by default.

Notes:  This piece of code started in ns2 at version 4 of the olsr specifications.  It has evolved and is evolving to try and keep up.
	All underlying timers are periodic and jitter is added to this periodic ticking.  This keep Intervals at numbered values and 
	allows maximum jitter. Neighbor storage is complicated and even I don't understand half of it anymore.  It works and that 
	is all I care about right now.  certain reserved fields were used in the past to do load balancing work and the code is still in 
	there for parts of it.  MIDs as defined in version 8 and 9 of the olsr spec have not be implimented.  Though some code has been 
	added so that it may be done in the future.
	
	There is a function updateSM() which writes to shared memory at location /tmp/mprsel.  Other processes can look at this memory and
	see who has selected this node for forwarding in the olsr code at the current time.

	Because of the introduction of Vtime (validity time) in Olsr packets different nodes in the same network can function together with
	differing tc hna and hello intervals.  The hysterises function does not work with Vtime as of this release.  So if nodes are going 
	to have different hello intervals make sure to use the "-hys off" option.

	I have noticed that a good amount of cpu time is used by the code.  I will  be addressing this issue in the future.  If the cpu is
	being overworked (use top) I would recomend using a slower hello and tc timer. (v8 spec 2 and 5)  Because of this speed issue I 
	have commented out the DMSGs.  Feel free to uncomment them as you wish to get a feel for what is going on.

  Release 4.8 (ipv4 only)
	Future  work:
		I will be adding ipv6 support.  (done)
		Fix Vtime Htime and LinkCodes in packets. (Vtime is done, Htime sent but not used, LinkCodes sent correct but not finished) 
		Develop code to support windows platforms and ns2. (up next)
		Clean code?!? I don't think so! Though I will try to comment better where needed.
		I would like to link my nrlolsr directory to the protolib code instead of putting it in the directory.(done)
	
  Release 5.0 (v6 support!)
	Future work:
		Speed up the code.  Mainly by replacing the linked list with something faster.
		Get hysterises functioning with the Vtime and Htime correctly.
		Add code to automaticly find hna's when ipv6 mode is turned on.
		Maybe add MID packet support for use with more than one wireless interface.

  Release 5.1 
		small bug fixes
  Release 5.2 
		Important bug fixes.  Fixed bug in which asymetric links would sometimes not time out correctly.  Found and fixed bug in which 
		default routes added by HNAs would not update correctly when node moves away (linux only problem).  
		Added command line quality of service marking option.  Packets can now be marked with a given qos value.  How that value is used
		is the users choice.  Also included is Makefile.arm-linux.  You will need a cross compiler to make a binary.  I have only confirmed
		that it works under open zarus.  It does not work under normal zarus os.

  Release 5.3   
		More Important bug fixes.  Fixed bug in ttl and hop count fields in both hna and tc messages.  They now decrement and count up.
		Fixed problem with changing timer intervals.  Old code does not change intervals via the command line correctly.
		New feature added.  Debug lvl 2 now outputs hna information as well as link state information.  This information will be used 
		by the upcomming cmap visulization tool.  Debug lvl 1 will only output the links though both std/cmap and jmap should be able 
		to deal with the extra info.

  Release 5.4  
		Changed way hna information is outputed so that all information is outputed not just what is being used.  
  Release 6.0 
		Windows support!  Moved code over to newer protolibkit library.  Will allow for easier platform portability.  Cleaned up the 
		code a bit.  Removed older make routing table functions that were not being used. Also added a few more comments.  Found and 
		fixed bug in hystersis method which would cause unstable links in some cases.  Messages are no longer sent using broadcast 
		but a multicast address in ipv4 mode.  Broadcast support may or may not work using the command line option.  

  Release 6.1 
		Fixed minor typo bug which would cause 6.0 not start correctly when attempting to use the -ipv6 option.

  Release 7.0
		First version to support ns.  Reworked structure but core of code left untouched.
		Bugs: updated protolib does not allow ipv6 to work under linux will be fixed in 7.2
		      ns code does not forward packets correctly will work in 7.1

  Release 7.1 
		Fixed forwarding bug in ns code.

Any questions or comments please email jdean@itd.nrl.navy.mil  
Questions about protolib code please direct to adamson@itd.nrl.navy.mil
