home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / tcp / grinost / readme06.txt < prev    next >
Text File  |  1991-07-31  |  10KB  |  206 lines

  1. July 31, 1991
  2.  
  3. By Mike Bilow, N1BEE
  4.      AX.25: N1BEE @ KA1RCI.RI.USA.NA
  5.      Internet: mikebw@idsvax.ids.com
  6.      Amprnet: n1bee@n1bee.ampr.org [44.104.0.20]
  7.      Standard post: Forty Plantations, Cranston, RI 02920-5554, USA
  8.  
  9.  
  10. For GRINOS/GRINOS-S KA9Q 910618/PA0GRI 910714v1.7e/N1BEE 910731v0.60
  11.  
  12.  
  13.      All users of GRINOS/GRINOS-S are invited to join the grinos@n1bee
  14. mailing list.  This is what I use to distribute advisories and updates.
  15. There is no requirement that you actually use GRINOS in order to join the
  16. mailing list.  Just send a message to me and you will be added.  Users
  17. accessible to me via the Amprnet will receive their updates that way, and
  18. others via the conventional packet BBS forwarding system.
  19.  
  20.  
  21.      I. KA9Q/PA0GRI changes
  22.  
  23.      Aside from a minor bug fix in IP routing (which no one even noticed),
  24. there are no changes from PA0GRI 910625v1.7d to 910714v1.7e, other than an
  25. attempt to make the FTP client a little more helpful by warning if no user
  26. name or password is supplied, rather than simply disconnecting you.  The
  27. watchdog timer fix that has been in the N1BEE release for several versions
  28. has now been cycled back into the PA0GRI release, so the "official" code is
  29. now used for initializing the watchdog timer.
  30.  
  31.      The ongoing Internet discussion about the N1BEE fix for the temporary
  32. file problem in Borland C has resulted in the PA0GRI version of this fix
  33. being considered non-functional, and Gerard himself has advised that his
  34. code not be used.  Therefore, the original N1BEE code (the same as was in
  35. N1BEE 910713v0.50) has been substituted, which is the current recommended
  36. consensus from TCP-Group.
  37.  
  38.  
  39.      II.  N1BEE changes
  40.  
  41.           A.  Bug fixes and default modifications
  42.  
  43.      There are major changes in this release from N1BEE, most relating to
  44. the internals of the memory allocator, stacks, and multitasker.
  45.  
  46.  
  47.                1.  Stack sizing
  48.  
  49.      Substantial reliability improvements should be seen in this version,
  50. particularly in hosts which handle large numbers of disk accesses, such as
  51. mail servers.  The timer daemon stack has been increased from 1024 bytes to
  52. 2048 bytes, which should fix the main culprit resonsible for system crashes.
  53. The network daemon stack has been increased from 1536 bytes to 2048 bytes,
  54. and the remote server stack has been increased from 768 bytes to 1024 bytes.
  55.  
  56.  
  57.                2.  Minimum heap kludge
  58.  
  59.      A problem that has plagued GRINOS from the beginning, crashes caused
  60. by a shell making more core memory inaccessible, has a new but grossly
  61. inefficient kludge.  The problem is not really with GRINOS, but with the
  62. MS-DOS memory allocation scheme.  There is a "breakpoint" which divides
  63. the GRINOS heap (memory allocated by MS-DOS to GRINOS, whether used in
  64. GRINOS at the moment or not) and the MS-DOS core (memory unallocated by
  65. MS-DOS).  If GRINOS needs memory, it first tries to satisfy that request
  66. out of its own available heap space.  If that fails, GRINOS then makes a
  67. request to MS-DOS for more core, thereby enlarging its heap space.
  68.  
  69.      When a shell is executing (because of the GRINOS "shell"/"!" or "mail"
  70. commands), MS-DOS will deny any requests for more core, since memory after
  71. the GRINOS heap is owned by the shell.  The fix for this -- and I don't
  72. defend it -- is that GRINOS will now allocate and immediately deallocate
  73. some memory (default 12K) before shelling out, guaranteeing a minimum of
  74. available heap space while the shell is executing.  The disadvantage to
  75. this, and it is serious, is that GRINOS never returns its heap to core.
  76. If the GRINOS heap grows sufficiently fragmented, it is conceivable that
  77. successive shell actions will grab increasing amounts of core, reaching a
  78. point where no space is left to run anything (such as the mailer) when
  79. shelled out.
  80.  
  81.      Because of the two-edged nature of this situation, I have created a
  82. new command, "mem minheap", which sets the amount of memory that will be
  83. requested and immediately freed before shelling out.  I have found 12K to
  84. be fairly conservative in preventing crashes, and this is the default.
  85. I would suggest dropping this to 8K in systems which are very pressed for
  86. memory.  However, this parameter has no effect until an actual shell
  87. command is issued, and most systems, to be stable, should have at least
  88. 12K of available heap when running, anyway.
  89.  
  90.  
  91.                3.  Memory debugging
  92.  
  93.      By default, complete memory statistics are now dumped into the log on
  94. any memory allocator failure, such as "invalid free" or "invalid pointer".
  95. This should assist me in collecting reports of memory allocation problems.
  96. This feature requires that ordinary logging be enabled, or it is disabled.
  97. Dumping of memory statistics to the log can be independently disabled even
  98. if the ordinary log is enabled (although I have no idea why anyone would
  99. do this) with the new "mem debug" command.
  100.  
  101.  
  102.           B.  RSPF support
  103.  
  104.      Motivated mostly by significant interest from KC4TWU and the North
  105. Carolina group, I have been trying to get the bugs out of RSPF.  The Rhode
  106. Island group did some experiments several months ago using another version
  107. of NOS, before GRINOS was available, and grew fairly disgusted.  RSPF is a
  108. relatively complex protocol, and, while I am willing to accept that the
  109. protocol itself is sound, there are a lot of odd implementation details.
  110.  
  111.      For example, we found in testing that it is necessary to have what
  112. would otherwise be redundant manual routes.  Here is my old routing table
  113. for n1bee.ampr.org:
  114.           route add [44.104]/16 dr0a [44.104.0.2]
  115.           route add default dr0a [44.56.0.64]
  116. To run RSPF with the standard hop quality of 8, I decided to set these
  117. routes to have a metric of 12.  This works fine:
  118.           route add [44.104]/16 dr0a [44.104.0.2] 12
  119.           route add default dr0a [44.56.0.64] 12
  120. Unfortunately, kz1f.ampr.org, who was also running RSPF, has a route in
  121. his table for [44.56]/16 with a quality of 8.  After the added hop, his
  122. route showed up in my table with a quality of 16.  Since his route was a
  123. 16-bit matched route, while mine was a default (0-bit matched) route, my
  124. station would send [44.56.x.x] frames to him instead of to the switch,
  125. which I can reach directly.  I had to add the following to prevent this:
  126.           route add [44.56]/16 dr0a [44.56.0.64] 12
  127. Presumably, if the switches were also running RSPF, then this problem
  128. would have been fixed automatically, since I would have received a higher
  129. quality route from the switch RSPF broadcasts.
  130.  
  131.      Here is the RSPF installation code in my AUTOEXEC.NOS file (most
  132. users will want to change "dr0a" to "ax0"):
  133.      arp add [44.255.255.255] ax25 QST-0
  134.      route add default dr0a [44.56.0.64] 12
  135.      route add [44.56]/16 dr0a [44.56.0.64] 12
  136.      route add [44.104]/16 dr0a [44.104.0.2] 12
  137.      ifconfig dr0a broadcast [44.255.255.255]
  138.      rspf maxping 3
  139.      rspf interface dr0a 8 1
  140.      rspf rrhtimer 900
  141.      rspf timer 900
  142.      rspf suspecttimer 2000
  143.      rspf message "N1BEE testing RSPF"
  144.  
  145.      A switch or router, instead of an end user, should probably use a
  146. much larger horizon: "rspf interface dr0a 8 16", for example.  End users
  147. should stick with horizon of 1, according to the protocol.
  148.  
  149.      There is a change in the route command as of N1BEE 910731v0.60 for
  150. RSPF support at switches.  Previously, there was no way to add a direct
  151. route with a metric, other than a 32-bit match, since the metric follows
  152. the gateway field, and the gateway field is blank.  This became apparent
  153. when I was trying to write an AUTOEXEC.NOS file for switch.w1cg-9 to use
  154. RSPF.  For a 32-bit matched route, this is not a problem, since the
  155. gateway field can be filled with the host's own address, using that host
  156. as a gateway (like "route add [44.104.0.23]/32 ax0 [44.104.0.23] 12").
  157. To fix this, I have created a new keyword, "direct", which may be used as
  158. an explicit placeholder for the gateway field:
  159.      route add [44.104]/16 ax0 direct 12
  160.  
  161.      The "direct" keyword has a few complications.  First, it is case
  162. sensitive, as are most commands in NOS, and it cannot be abbreviated.  The
  163. reason for enforcing this exactness is to prevent compatibility problems
  164. if someone defined a valid hostname simlar to the keyword, like
  165. "di.princess.palace.uk" or "direction.future.plato.edu".  Second, in the
  166. unlikely event that there is an exact match for the keyword in the
  167. DOMAIN.TXT file, that match will OVERRIDE the use of the keyword, and be
  168. interpreted as a gateway address, again for compatibility reasons.  (Note
  169. that "direct.ampr.org" would be an exact match if domain suffix is set to
  170. "ampr.org.")
  171.  
  172.  
  173.            C.  RIP support
  174.  
  175.      Since no one seems to be using RIP, support for it has been removed
  176. from the small version.
  177.  
  178.  
  179.      III.  Future plans
  180.  
  181.      Although I have promised a lot of things, particularly the option to
  182. use reverse video instead of high intensity in ttylink screens for the
  183. benefit of LCD users such as Justin, KA1ULT, this just has not been as high
  184. a priority as getting the memory allocator working and the stacks tuned.
  185.  
  186.      Barring disaster, this should be the last GRINOS release for quite some
  187. time, perhaps as long as a month.  I think that GRINOS has now acheived a
  188. level of stability that makes its use very reasonable in all but the simplest
  189. systems.  The ever-growing memory size problem is becoming a concern,
  190. especially for those who want to run GRINOS is a DesqView window.  I am
  191. actively pursuing two approaches over the long term.  The first is to
  192. examine what would be involved in a DesqView-specific version of GRINOS, as
  193. suggested by K5ZC; I don't hold out very high hopes for this.  The second is
  194. to implement code overlays in NOS, which could reduce its memory requirements
  195. by half.  Overlaying code in multitasking program is very difficult, but it
  196. has been done; Roy Engehausen, AA4RE, sent me the details of how he managed
  197. to do it in Turbo Pascal for his soon-to-be-released BB program.
  198.  
  199.      I have also had some inquiries over time, the most recent from Matt,
  200. KA1THM, about accessing the second port on a dual-port Kantronics TNC.  If
  201. anyone has this running under existing versions of NOS, I would like to know
  202. about it.  If you can't get it to work, but have a need for it, I would like
  203. to know about that, too.
  204.  
  205. EOF
  206.