








                 WNOS (WAMPES NOS) User Guide 


                Mike Chace (G6DHU) 21 July 1991

                     (Version 2b by DB3FL)


  A  short  user  guide  (translated from DB3FL's German text)
  concerning new features and changes in the WNOS  version  of
  the KA9Q Network Operating System.  

  You are advised to read this before using WNOS.  


  1.  StartUp File 

  The  startup  file  is  now  called  'autoexec.nos'.  It was
  thought  better  to  do  this  since  NOS  features  are  so
  dramatically different from those of NET.  


  2.  AX25 Server 

  The  complete  AX.25  server  has  been rebuilt to be WAMPES
  compatible and this means that in some cases behaviour is  a
  little different.  


  3.  Status Line 

  At  the  top  line of the screen there is now a line showing
  various pieces of system information.  The clock is  obvious
  and  also  gives a good indication as to whether the program
  is still running :-) 

  Each active session gets an entry on the status line in  the
  form of  session  number:callsign.  Incoming IP sessions (eg
  Chats), including those initiated from the  mbox  will  show
  'chat' instead of 'callsign'.  

  New  data  arriving  on  unselected  sessions  will  show as
  flashing.  The flashing is then removed when that session is 
  selected.  

  An additional field after the clock shows 'CMD' if the  user
  is  at  net>  command  level,  '*' if a session is currently
  selected and 'TRACE' if the  trace  screen  (see  below)  as
  active.  





                          21 July 1991




                             - 2 -


  4.  Session Selection 

  Note:  Session  selection  in  WNOS is by the Function keys.
  For instance if there are two active  sessions,  F1  selects
  Session 1 and F2 session 2.  

  The  default  key for return the net> command level in WNOS,
  is <ESC> rather than F10 as in most other versions.   Change
  this by setting the 'escape' command (see below).  


  5.  Trace Screen 

  WNOS  keeps  all output from the trace command in a separate
  window.  The  trace screen is selected by the  function  key
  F9. The status line then  shows 'TRACE'.  


  6.  Timers (AX25 und IP) 

  Since  the  rebuilding  of  the  AX.25  servers  for  WAMPES
  comaptibility, the range of AX25 timers has  been  extended.
  The  AX.25  timers  and their settings  are explained in the
  section - 'ax25 subcommands'.  

  Changes were also made to the IP/TCP timers.  All timer  are
  now dynamically  altered  according to link conditions.  The
  TCP round trip timer (SRTT) is aletered according  to  which
  'mode' the current connection is using.  

  If  datagram  mode (UI frames) is used, the old style timing
  is employed.  

  If connected modes (I frames - mode vc, ipcam  or  auto)  is
  used,  the  timer  is set in a 10-step mode as the frames is
  sent.  The highest step equates to about 300s. The  achieves
  two things :- 


  	1) Unnecessary Level 4/5 retransmissions are reduced when an 
             AX.25 based link layer is used.
  
  	2) If the link should be particularly poor, the 300s time will
  	   mean that the link layer connection will be restarted as soon
  	   as this time is reached.


  7.  Mailbox 

  Since   version  1k,  the  mailbox  has  been  substantially
  changed.  I suggest that users previously using KA9Q,  G1EMM
  or  PA0GRI NOS should login to the mailbox (using the 'bbs')
  command and see for themselves.  

  System prompts are returned according to the  type  of  link



                          21 July 1991




                             - 3 -


  used.  At the moment, these types are NET/ROM and everything 
  else.  

  Prompts,  commands  and  output  are  purposely  designed to
  resemble those given by the  FlexNet  system.    This  makes
  interoperation  with other (Level2) packet terminal programs
  (eg SP) much easier.  NET/ROM connections  are  prompted  in
  the TheNetNode software style.  

  A welcome  text  can  be sent to a newly arrived user.  This
  requires a file in /spool/help named 'host.hlp' containing a 
  short welcome text.  If this file does not exist,  then  the
  default text,  

       		'?' for help

  is sent.   The contents of the string in the mailbox message
  of the day string (mbox motd ... command) are then sent.  

  The next thing to be sent depends in  the  setting  of  some
  timers  since it informs the user of any inactivity timeouts
  set by the mailbox op.  If 'ax25 t3disc' is set to 1 and the 
  'ax25 t3' timer is set to something other than  0  then  the
  user will receive the text 

       		Inactivity Timeout: xx min

  Should  the  mailbox register no activity from the connected
  user after the  timeout  set,  they  will  be  automatically
  disconnected.  

  The mailbox prompt carries the form :- 

       		(<area>) <user> de <host> 

  more  useful  than  previous  NOS  prompts  because the user
  always knows the default mailbox 'area' in use.  


  8.  Mailbox Commands 


  8.1.  area 

  Select mail area.  


  8.2.  bye 

  Log off system 








                          21 July 1991




                             - 4 -


  8.3.  chat 

  Chat to sysop 


  8.4.  connect 

  Attempt AX.25 Level 2 connection to destination.   May  also
  use autorouted  paths.  


  8.5.  download 

  Download a file.  


  8.6.  escape 

  Set  the  character  to escape from sessions back to mailbox
  command mode.  


  8.7.  finger 

  Send the station finger file.  


  8.8.  help 

  Send general or command specific help.  


  8.9.  info 

  Sends the contents of the file info.hlp in  the  /spool/help
  directory.    This should contain a short description of the
  location, equipment, etc.  


  8.10.  kill 

  Erase given mail message.  


  8.11.  list 

  List mail.  


  8.12.  mheard 

  List most recently heard callsigns.  






                          21 July 1991




                             - 5 -


  8.13.  nodes 

  Displays NET/ROM nodes available from here.  


  8.14.  nconnect 

  Attempt NET/ROM connect to given node.  


  8.15.  path 

  Display autorouting path destinations or show information on 
  path to given destination.  


  8.16.  quit 

  Log off mailbox.  


  8.17.  read 

  Read given mail message.  


  8.18.  send 

  Send mail.  


  8.19.  telnet 

  Initiate connection using TCP/IP  to  given  host  (optional
  port).  


  8.20.  users 

  Who is doing what on this system.  


  8.21.  upload 

  Upload file.  


  8.22.  verbose 

  Show all mail headers on mail message.  








                          21 July 1991




                             - 6 -


  8.23.  what 

  List files available.  


  9.  DOS-Shell 

  Initial  tests  with  the  DOS  5.00  shell  (beta  version)
  suggested that  there maybe problems when used with WNOS. It 
  was also noted that DOS with XMS loaded into hi memory would 
  also cause problems.  Of course, systems runnign  WNOS  vary
  so you  may  not  see  these  problems  at  all.   If you do
  experience these problems then try setting the  multitasking
  flag  (multi  off) thereby stopping the immediate processing
  of incoming frames.  

       	Input Editing

       	CTRL-U     erases the current line
       	CTRL-W     erases the last word
       	CTRL-R     retypes the current line (before a <CR>)
       	CTRL-B     recalls the last line
       	Up Arrow   recall previous lines input
       	Down Arrow ditto


  10.  WNOS Commands and Changes 


  10.1.  arp 

  The ARP table is now built up  dynamically.    Monitored  IP
  frames  (both  connected and datagram mode) are analysed and
  stored.  The complete ARP table is saved to disk about every 
  10 minutes in the (root) file 'arproute.dat'. The saving  of
  the ARP table is only done if any new  IP frames are heard.  


  10.2.  attach 

  Buffers  should  be set to at least one quarter of the speed
  of the attached ports.  Failure to do this could  result  in
  buffer problems and crashing of the program.  If WNOS is run 
  on  a  floppy  only system, this is especially important and
  buffers should be increased as much as possible.  


  10.3.  attended 

  Syntax: attended <0|1> 

  This command allows incoming connects to be notified to  the
  console.   A  bell  alert  tone is sounded when attended and
  bell are set to 1 only.  




                          21 July 1991




                             - 7 -


  Default: 1 (The system is attended) 


  10.4.  attribute 

  Syntax: attribute <color|mono> 

  This changes the attribute of the WNOS system  status  line.
  The mono attributes are normal, inverted and blinking text.  


  10.5.  bell 

  Syntax: bell <0|1> 

  Toggles the  connect  alert  tone  on  and  off.  It is only
  sounded when bell and attended are set to 1.  

  Default: on (1) 


  10.6.  buffers 

  See "mem" command 


  10.7.  chat 

  Syntax: chat <host> 

  This  command  is  short  for  "telnet  <host>  87"  thereby
  connecting directly  to the chat port of the given host.  Of
  course, this will only work if  the  other  end  is  running
  NOS.  


  10.8.  connect 

  Syntax: connect <call>|<iface> <call> [<digis>] 

  It  is  possible to start an AX.25 Level 2 connect with only
  "c <call>" as long as the desired  call  as  stored  in  the
  AX.25 autorouting  table.    The alternative is to enter all
  information including interface and  digipeater  path.    In
  this  case,  the  given  digipeater  route  is  added to the
  autorouting table, if the destination is not already in  the
  table.  

  If   the  short  version  is  used  and  no  route  to  that
  destination exists, an error message is given.  








                          21 July 1991




                             - 8 -


  10.9.  domain dfile 

  Syntax: domain dfile <path> 

  On some systems, the time spent by the program searching the 
  domain file at startup is quite considerable.  This  command
  can  be  used  to  alter  the path locating the domain file.
  <path> must be a complete pathname.  

  Particularly useful for storing the domain file in a RAMdisk 
  on floppy only machines.  


  10.10.  escape 

  Syntax: escape <character> 

  Changes the escape character so that  for  instance,  it  is
  possible to use WA8DED style firmware on a tip session where 
  <ESC> selects WA8DED command mode.  

  Default: <ESC> 


  10.11.  mbox log 

  Syntax: mbox log <on|off> 

  Selects logging  for  the  mailbox activity.  If set on, all
  mbox activity is logged in  the  file  /spool/node.log.  The
  filename and path are fixed.  

  Default: off 


  10.12.  mbox motd 

  Syntax: mbox motd "text" 

  A short message to send connected mbox users.  The number of 
  characters  sent  should not exceed that allowed in a single
  packet (ax25 paclen).  Users should take care when using the 
  < and > characters in this text which may of  course,  cause
  problems with NTS BBS operation.  


  10.13.  mem efficient 

  Syntax: mem efficient <0|1> 

  Toggles efficient memory management mode.  Setting efficient 
  mode  on  with  "mem  eff 1" will reduce the programs memory
  useage but also  slows down the program operation, as memory 
  allocation takes longer.  




                          21 July 1991




                             - 9 -


  This parameter should be tested by experimentation  on  slow
  machines.  

  Default: 1 (efficient mode on) 


  10.14.  mem freelist 

  Syntax: mem freelist 

  Shows free memory list.  


  10.15.  mem garbage 

  Syntax: mem garbage <1> 

  Forces a garbage collection of the main memory.  An input of 
  1 makes the program attempt some memory compaction.  


  10.16.  mem ibufsize 

  Syntax: mem ibufsize <bytes> 

  Sets the size of the interrupt buffers.  

  Default: 2048 - Range: 1 .. 32768 


  10.17.  mem nibufs 

  Syntax: mem nibufs <#> 

  Sets the number of interrupt buffers (of size ibufsize).  

  Default: 5 


  10.18.  
  mem sizes 

  Syntax: mem sizes 

  Shows the size of allocated memory blocks.  


  10.19.  mem status 

  Syntax: mem status 

  Shows a summary of memory useage.  






                          21 July 1991




                             - 10 -


  10.20.  mem thresh 

  Syntax: mem thresh <bytes> 

  Sets  the  memory  threshold  at  which  the program refuses
  further incoming connections.  If there is less than  thresh
  bytes  of  memory  left, WNOS will ignore incoming frames or
  send ICMP Source Quench messages.  

  The setting of this parameter also  affects  the  number  of
  active  processes  since  they  reserve  memory for each new
  call.  

  Default: 8192 


  10.21.  mode 

  Syntax: mode <iface> [<da|vc|ipcam|auto>] 

  Sets the mode to be used over the AX.25 link layer.  

  da	Sets datagram mode where all frames are sent unconnected (UI) but
  	note the IP can force the use of connected mode according to the
  	prevailing conditions and under instruction from TCP.
  
  vc	Sets connected (virtual circuit) mode where the link layer is
  	controlled by the complete AX.25 protocol.
  
  ipcam	Causes a level 2 connection to be established but IP frames are
  	sent with PID=F0 (text) rather than PID=IP. This allows the use
  	of different transport systems (NET/ROM, FlexNet etc) for carrying
  	IP traffic.
  
  auto	Sets up a level 2 connection only if the AX.25 path has more than
  	one digipeater, else datagram (UI frames) mode is used. 
  
  
  WARNING! If mode auto is used and there is an existing AX.25 link to the
      	 given host, it will be used to send the frames upon. This can
  	 sometimes corrupt existing sessions.


  10.22.  netrom bcnodes 

  Syntax: netrom bcnodes <iface> [<call>] 

  This command has been  enhanced  to  allow  the  sending  of
  NET/ROM routing  broadcast  to  a given destination.  If the
  destination callsign is not supplied, the broadcast is  sent
  to destination NODES.  







                          21 July 1991




                             - 11 -


  10.23.  smtp batch 

  Syntax: smtp batch <0|1> 

  A  setting of 0 causes the SMTP client to wait for responses
  from the remote end.  A setting of 1  allows  the  necessary
  SMTP  commands  to  be  sent  using  the  minimum  number of
  frames.  

  WARNING! This option can cause problems when other remote end expects a
  	 traditional command sequence - especially MSYS.

  Default: 0 


  10.24.  smtp quiet 

  Syntax: smtp quiet <0|1> 

  All incoming mail is notified to the console.    smtp  quiet
  set to  1  will also add an alert tone.  Set to 0 if no tone
  should be added.  

  Default: 1 


  10.25.  smtp usemx 

  Syntax: smtp usemx <0|1> 

  The domain file (domain.txt) can include mail server records 
   (MX = Mail Exchange) for mail  routing  too.    On  sending
  mail,  the server will search domain.txt for such MX records
  if usemx is set to 1. A  setting  of  0  will  disbale  this
  search.  

  Default: 0 


  10.26.  sysop 

  Syntax: sysop <number> 

  Sets  the  password number for the remote sysop operation of
  the mbox  (the  bbs  @  command).    Five  numbers  must  be
  specified and should not include 0.  


  10.27.  tcp close 

  Syntax: tcp close <tcb> 

  Allows 'sleeping' TCP connections to be closed in an orderly 
  fashion.  




                          21 July 1991




                             - 12 -


  10.28.  tcp retry 

  Syntax: tcp retry <retries> 

  This  command  has  been  added  in  an effort to reduce the
  number of retries on  opening  TCP  connections  (especially
  SMTP). The value set will affect all TCP sessions not in the 
  ESTABLISHED state.  A value of 0 disables this feature.  

  Default: 5 


  10.29.  wrap 

  Syntax: wrap <count> 

  Sets the value at which a line should be wrapped, that is, a 
  <CR> added  and  the  next line started automatically.  This
  prevents the annoyance of forgetting to press  <CR>  at  the
  end  of  a  line  and then overflowing the line at the other
  end!  A value of 0 disables this feature.  

  Default: 70 - Range: 0 .. 132 


  10.30.  write 

  Syntax: write <socket [socket..]> <text> 

  Sends  "text"  to  all  specified  sockets  simoultaneously.
  Useful for when it's time to go to bed :-) 


  11.  ax25 Sub-commands 


  11.1.  ax25 bc 

  Syntax: ax25 bc <iface> 

  Send   a   frame   to  destination  "ID"  on  the  specified
  interface.  


  11.2.  ax25 bcinterval 

  Syntax: ax25 bcinterval <sec> 

  Sends frame to destination ID on all  interfaces  after  the
  given time has elapsed.  Disable with ax25 bcinterval 0.  

  Default: 0 






                          21 July 1991




                             - 13 -


  11.3.  ax25 bctext 

  Syntax: ax25 bctext <text> 

  Sets the text to be sent.  


  11.4.  ax25 close 

  Syntax: ax25 close <axcb> 

  Disconnect the outstanding AX.25 Level 2 link.  This is only 
  done once all outstanding frames are sent and acknowledged.  

  Useful when mode vc or ipcam is used and the TCP session has 
  closed but the link layer connection needs to be shut down.  


  11.5.  ax25 digipeat 

  Syntax: ax25 digipeat <0|1|2> 

  Controls the method of digipeating to use.  

       0 = No Digipeating 
       1 = Normal Digipeating 
       2 = Autorouting with Hop-to-Hop Acknowledgement 

  Default: 2 


  11.6.  ax25 heard 

  Syntax: ax25 heard <iface> 

  Shows the list of stations heard on the given interface.  At 
  most, 40  calls  are  stored on all interfaces.  The list is
  alphabetically sorted.  


  11.7.  ax25 idigi 

  Syntax: ax25 idigi <iface> <call> 

  Yet to be implemented.  


  11.8.  ax25 kick 

  Syntax: ax25 kick <axcb> 

  Simulates timeout of the T1 Retransmission timer.  






                          21 July 1991




                             - 14 -


  11.9.  ax25 maxframe 

  Syntax: ax25 maxframe <frames> 

  Number of outstanding unack'ed frames.  Set to  1  for  best
  performance  on busy, normal (ie not full duplex) channels.  

  Default: 2 - Range: 1 .. 7 


  11.10.  ax25 mycall 

  Syntax: ax25 mycall <call> 

  Sets the  source  callsign for AX.25 frames.  Only effective
  BEFORE an attach command.  


  11.11.  ax25 paclen 

  Syntax: ax25 paclen <length> 

  Maximum size of a I frame.  

  Default: 256 - Range: 1 .. 256 


  11.12.  ax25 pthresh 

  Syntax: ax25 pthresh <length> 

  Frames longer than <length> are retried  with  an  RR  frame
  (Poll bit  set) when the T1 timer timesout.  Shorther frames
  are retried with the whole I frame.  

  Default: 64 - Range: 1 .. 256 


  11.13.  ax25 reset 

  Syntax: ax25 reset <axcb> 

  Causes the given AX.25 control block to be deleted.  This is 
  the 'dirty' way of severing an AX.25 connection.  


  11.14.  ax25 retry 

  Syntax: ax25 retry <retries> 

  Shows  (sets)  the  number  of  retries  on  AX.25  Level  2
  connections according to the status of that connection.  

  Status                        Retries
  -----------------------------------------



                          21 July 1991




                             - 15 -


  Conn pending + Connected      retries * 2
  Disc pending                  retries / 2
  -----------------------------------------

  Default: 8 


  11.15.  ax25 route 

  Controls the AX.25 autorouting table.  

  Each  connect  attempt will cause the route to be saved in a
  table.  Every 10 minutes, these routes are saved in the file 
  'axroutes.dat' in the root directory.  Route information  is
  saved in  an internal (non ASCII) format.  This file is read
  in at startup with routes older than a given   timeout  (see
  ax25 route hold) deleted.  

  AX.25  routes  are  disassembled  in  a chained way, so that
  digipeater routes give rise to all intermediate routes  too.
  This  work  follows  the  concept  within  the German WAMPES
  packet system.  Faulty routes cannot be deleted    but  they
  can be corrected by the ax25 route add command.  


  11.15.1.  ax25 route sub-commands 


  11.15.1.1.  ax25 route add 

  Syntax:  ax25 route add [permanent] <iface> <"default"|call>
  <digi> 

  Allows manual setting of AX.25 routes.    These  routes  are
  also used  for outgoing IP sessions.  If the link is started
  with the "connect" command then the entry into  the  routing
  table is automatic.  

  The "permanent" flag, secures the route so that it cannot be 
  changed.  

       	Example:  ax25 route add permanent 144 gb7zz-2

  Judicious use  should  be made of the "perming" feature.  It
  is suggested that  one  route  on  each  interface  be  made
  permanent.  Note that the keyword permanent must be typed in 
  full.  

  The  option  "default"  indentifies  the  given interface as
  default.  All frames that do not have a route found  in  the
  routing table,  will  be  sent  over this interface.  Again,
  note that default must be typed in full.  

       	Example:  ax25 route add 144 default




                          21 July 1991




                             - 16 -


  Routes added with "ax25 route add..."  are held  in  chained
  form.  For each digipeater, a route is added :- 

       	Example: ax25 route add 144 db0wst db0gv-7 db0kt db0da

  is stored as...  

             144   db0wst v db0gv-7 db0kt db0da
             144   db0da v db0gv-7 db0kt
             144   db0kt v db0gv-7
             144   db0gv-7

  This   makes   it  possible  to  enter  only  "c  db0da"  to
  autoconnect to DB0DA.  

  Routes of the form  of  "dg8fbv  v  db3fl  db0da"  are  also
  supported.   In this case, digipeaters are also expanded and
  new routes added.  

  Suggested entries for the autoexec.nos file: 
       One interface made the "default" 
       Each interface has  a  permanent  route  marked  (to  a
       reliable neighbour) 


  11.15.1.2.  ax25 route list 

  Syntax: ax25 route list <call> [<call ...>] 

  Shows the route to the given destination callsign.  


  11.15.1.3.  ax25 route stat 

  Syntax: ax25 route stat 

  Shows the number of known routes per interface.  


  11.16.  ax25 status 

  Syntax: ax25 status <axcb> 

  Shows the  outstanding  AX.25  connections.  On specifying a
  given AX.25 control block, detailed information is shown.  

  Several changes have been made here in terms of the previuos 
  versions of NOS. After changover to the WAMPES like  system,
  various parameters  had to be altered or added.  

  New  are  a  recieve  and send Framesammler with a window of
  upto 8 frames.  This allows out of sequence AX.25 frames  to
  be saved  and  reassembled  in memory.  When the sequence is
  completed, the whole sequence is  ack'ed.    This  can  save
  multiple  retransmissions  for  the  out of sequence frames.



                          21 July 1991




                             - 17 -


  The time to wait for the next out of sequence frame  set  by
  the Reassembly timer (T5).  



  12.  AX.25 Timers 



  12.1.  ax25 t1|t2|t3|t4|t5 

  Syntax: ax25 tx <sec> - where "x" is from 1 to 5 



  12.1.1.  Timer 1: Retransmission timeout 

     	A frame is resent if this timer runs out under control of the
     	ax25 pthresh setting, which may send an RR frame rather than 
     	the I frame. The value is set according to the number of digis
     	used in the path :-
  
           Timer1 * (1 + (Number of Digis / 2). 
  
     	It is set dynamically in accordance with the AX25 SRTT and MDEV.
  
          Default: 10 - Range: 1 .. 15


  12.1.2.  Timer 2: Acknowledgement delay timeout 

     	Incoming frames are acknowledged when this T2 times out. 
  	So that the framesammler is effective, T2 should be smaller
  	than the reassembly timeout (T5), this prevents having to
  	ACK every single incoming frame.
  
          Default: 2 - Range: 1 .. 15


  12.1.3.  Timer 3: Link redundancy timer 

  	According to the setting of ax25 t3disc, T3 timeout causes either
  	immediate disconnection of the outstanding link or the sending of
  	a polled RR frame when no activity has occurred on th link.
  
  	Any queued frames are sent before disconnection. It is recommended
  	that this timer be set to a value not less than 360 seconds.
  
  	Should T3 be set to a value greater than 0 and 'ax25 t3disc' set
  	to 1, mbox users will be sent text informing them of timeout.
  
          Default: 900 - Range: 1 .. 3600






                          21 July 1991




                             - 18 -


  12.1.4.  Timer 4: Busy timeout 

  	This timer is started after receipt of an RNR frame and when timed
  	out, the other link partner is polled to check if there is any
  	change in link status.
  
          Default: 60 - Range: 1 .. 600


  12.1.5.  Timer 5: Packet assembly timeout 

  	On timeout of T5, all (unacked) queued packets are sent. They are
  	reassembled so as to make maximum use of the current paclen setting.
  
          Default: 1 - Range: 0 .. 600


  12.1.6.  ax25 t3disc 

  Syntax: ax25 t3disc <0|1> 

  In  some  situations  it  is  not  wise  to  just  sever  an
  outstanding AX.25 connection.  If ax25 t3disc is  set  to  0
  and  the  AX25  T3  timer  times  out,  the  link partner is
  polled.  

  If the setting is 1 and the AX.25 T3 timer is non-zero  then
  the  mbox  user  is sent some text informing them of timeout
  and they are then disconnected.  

  Default: 1 


  12.2.  ax25 window 

  Syntax: ax25 window <bytes> 

  Sets the maximum number of bytes in the RX queue  before  an
  RNR is sent.  

  Default: 2048 - Range: 1 .. 32767 

















                          21 July 1991


