home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / hamradio / tnet_x1h.zip / OVERVIEW.X1H < prev    next >
Text File  |  1992-11-02  |  60KB  |  1,388 lines

  1.                            TheNet X-1H
  2.  
  3.                       Overview of Operation
  4.  
  5. 1. INTRODUCTION
  6.  
  7.      This paper introduces the main features of TheNet X-1H. This 
  8.      is  an update to the previous paper on version X-1F, as  the 
  9.      only differences to X-1G were the correction of 3 bugs.
  10.  
  11.      The bugs were :
  12.  
  13.           When using a number of tncs crosslinked to a BPQ switch 
  14.           there was a small probability of lockup. This has  been 
  15.           cured.
  16.  
  17.           ICMP_ECHO would return 4 characters only rather than to 
  18.           echo all the characters in the ICMP_ECHO frame.
  19.  
  20.           The  ROUTES  list would show  incorrect  aliases  under 
  21.           certain circumstances.
  22.  
  23.      The  software is a derivative of TheNet 1.01 by  NORD><LINK. 
  24.      Additional commands and bug fixes have been included in  the 
  25.      release.
  26.  
  27.      If  your  reaction is 'What I really want is  ......',  then 
  28.      please read on anyway, especially section 6.
  29.  
  30. 2. STRUCTURE
  31.  
  32.      One  of the problems to extending TheNet is the 32  K  EPROM 
  33.      limitation  imposed by the architecture of TNC2 clones.  The 
  34.      solution to this is to implement bankswitching. For the BSX2 
  35.      TNC  and  similar TNC2 clones, this can be achieved  by  the 
  36.      addition  of  a single wire as detailed  in  the  bankswitch 
  37.      modification  file. This is at the expense of the  HIGH  and 
  38.      LOW commands, and if anyone misses those commands, a version 
  39.      is  available that implements them but required cut  &  stap 
  40.      mods to the TNC.
  41.  
  42.  
  43. 3. NEW COMMANDS
  44.  
  45.      The following commands have been added to the release
  46.  
  47.            BYE
  48.            BBS
  49.            HOST
  50.            STATS
  51.            MHEARD
  52.            MODE
  53.            MANAGER
  54.            AUDIT
  55.            TALK
  56.            CALIBRATE
  57.            LINKS
  58.            ACL
  59.            CLOSEDOWN
  60.            BTEXT
  61.            DXCLUSTER
  62.            HELP
  63.            CTEXT
  64.            ALIAS
  65.            BBSALIAS
  66.            HOSTALIAS
  67.            DXCALIAS
  68.            QUIT
  69.            IPROUTE
  70.            ARP
  71.            IPSTATS
  72.            IPADDRESS
  73.            IPBROADCAST
  74.            UI
  75.  
  76.      The following commands have been changed
  77.  
  78.            CQ
  79.            NODES
  80.            RESET
  81.            the <escape> commands
  82.            SYSOP
  83.  
  84.      The following features have been added to the code
  85.  
  86.            An Internet Router
  87.            Ability to respond to three additional aliases
  88.            A CWID keyer
  89.            The command processor has been extended
  90.            KISS mode operation on the RS232 port
  91.            HOST mode support on the RS232 port
  92.            Remote configuration of all parameters
  93.            Additional textual help messages
  94.  
  95.      In addition, a number of small changes have been implemented 
  96.      to  satisfy the needs of specialist situations such  as  the 
  97.      ability to digi beacon packets.
  98.  
  99.      Network  management  in  this context  does  not  just  mean 
  100.      'setting parameters remotely'. It means the ability to  set, 
  101.      read and  interpret various monitors and  diagnostic  tools. 
  102.      Version  X-1C  included  the  first  part  of  the   network 
  103.      management,  the  MANAGER privilege and the  AUDIT  process. 
  104.      Version   X-1D   extends   the   auditing   and   statistics 
  105.      significantly including internal CPU monitors. Version  X-1E 
  106.      includes most of the additions that are planned, and version 
  107.      2  will  complete  the functions. No  other  release  before 
  108.      version  2  was planned, but the need to produce  a  version 
  109.      with an IP router has prompted this release. The opportunity 
  110.      to  experiment with additional features has  therefore  been 
  111.      taken.  The next version will hopefully include  significant 
  112.      changes attributable to Hayden Bate G8AMD.
  113.  
  114. 3.1 BYE or QUIT
  115.  
  116.      There  are  no parameters to these commands.  When  entered, 
  117.      they terminate the session. Both commands do the same thing.
  118.  
  119. 3.2 BBS
  120.  
  121.      The syntax of the command is :
  122.  
  123.                BBS [ * | ? | callsign ]
  124.  
  125.      With  no  parameter,  the  command  connects  to  a  station 
  126.      previously   specified  by  the  sysop.  Setting   the   BBS 
  127.      destination  is  done by the use of the BBS command  with  a 
  128.      callsign  as  a second parameter. Setting the BBS  to  allow 
  129.      this  may only be done by a sysop. The '*' option  may  also 
  130.      only  be  executed  by  the sysop,  this  command  clears  a 
  131.      previously specified BBS.
  132.  
  133.      The '?' option ( or any text if not sysop ), prints out  the 
  134.      current BBS station setting.
  135.  
  136.      If no BBS is set, the command issues an error message if  it 
  137.      is invoked with no other parameters.
  138.  
  139.      The  idea  of  this command is that,  like  with  the  'bbs' 
  140.      command  of  the 'BPQ software, a user may  connect  to  the 
  141.      local BBS from the node.
  142.  
  143. 3.3 HOST
  144.  
  145.      The syntax of the command is :
  146.  
  147.                HOST [ * | ? | callsign ]
  148.  
  149.      This command is very similar to the 'BBS' command. It allows 
  150.      connection  to  a  local  host, BBS  or  other  server.  The 
  151.      difference  however,  is that as long as the TNC is  not  in 
  152.      'crosslink'  mode ( ie pin 23 on the RS232 port is  high  ), 
  153.      and if a callsign is not set, the 'host' command connects to 
  154.      the local port.
  155.  
  156.      The  idea  of  this command is that,  like  with  the  'bbs' 
  157.      command  of  the 'BPQ software, a user may  connect  to  the 
  158.      local  BBS,  another  node or server  from  this  node.  For 
  159.      example,  if  a print server were connected to the  node  in 
  160.      'host'  mode,  this command would allow connection to  it  ( 
  161.      like  the  'connect' command with no other parameter  ).  In 
  162.      KISS   mode,  setting  a  callsign  or  node  alias   allows 
  163.      connection to that system.
  164.  
  165. 3.4 STATS
  166.  
  167.      The  STATS command has no parameters. It prints a number  of 
  168.      internal TNC statistics. In this version, this is limited to 
  169.      the  level  1 stats of the radio channel  and  the  internal 
  170.      clocks,  the level 2 ( AX.25 ), 3 and 4 statistics, and  the 
  171.      CPU health checks.
  172.  
  173.      For level 1, six pairs of numbers are printed, corresponding 
  174.      to the percentage of time the transmitter was on followed by 
  175.      the percentage of time the receiver DCD was on, for each  of 
  176.      the  last six 10 minute periods. The data is presented  most 
  177.      recent period first. Two pairs of numbers are then displayed 
  178.      showing the transmitter underrun and receiver overrun. These 
  179.      are formatted as per the level 2 stats with port 0  followed 
  180.      by  port 1 for the current hour followed by the  totals  for 
  181.      the previous hour. In the case of the RS232 port,  underruns 
  182.      are  not  possible, and an additonal error (  framing  )  is 
  183.      included.  The  RX  overrun includes  overruns  and  framing 
  184.      errors.
  185.  
  186.      For level 2, the following are displayed :
  187.  
  188.            Frame checksum errors
  189.            Total packets heard
  190.            Total packets received by the node ( ie sent to it )
  191.            Total packets sent by the node
  192.            Total receiver not ready packets sent
  193.            Total reject packets sent
  194.            Total receiver not ready packets received
  195.            Total reject packets received
  196.            Total number of link timeouts
  197.  
  198.      For each of the level 2 statistics, four numbers are  shown. 
  199.      The  first two are cumulative totals over the period of  one 
  200.      hour, incrementing in real time. The last two are the totals 
  201.      for the previous hour. Each pair of numbers is the total for 
  202.      the  radio  port  followed  by the total  for  the  RS232  ( 
  203.      crosslink  )  port. 
  204.  
  205.      For  checksum  errors, port 0 shows CRC errors  and  port  1 
  206.      shows  ( when in 'crosslink' protocol mode only ),  checksum 
  207.      errors. As HDLC errors can be triggered by noise, acceptance 
  208.      of  CRC errors is conditioned by the state of the DCD  line. 
  209.      If DCD is on and an error is signalled, it will be added  to 
  210.      the  count.  This  reduces the false counts,  but  does  not 
  211.      eliminate them. Distant stations that keep the squelch  open 
  212.      ( just ) without being properly heard will result in lots of 
  213.      apparent errors.
  214.  
  215.      For level 3, the number of level 4 frames gatewayed  between 
  216.      nodes is displayed.
  217.  
  218.      For  level  4,  the  number of  transport  frames  sent  and 
  219.      received by the node are shown.
  220.  
  221.      For  level  3 and 4 statistics, two numbers are  shown.  The 
  222.      first  is the number of frames accumulating for  this  hour, 
  223.      and the second number is the total number of frames for  the 
  224.      previous hour.
  225.  
  226.      For  CPU health checking, two statistics are shown, the  CPU 
  227.      loading  and the buffer usage. Each looks like the  level  1 
  228.      stats with 6 numbers corresponding to the last six 10 minute 
  229.      periods. 
  230.  
  231.      The  CPU loading shows the number of times, divided by  100, 
  232.      that  the CPU makes it around its basic internal  scheduler. 
  233.      For a node just switched on, receiving nothing, this will be 
  234.      about  470  ish for a 4.9 MHz clock. With lots of  nodes,  a 
  235.      heard  list of 20 stations and 70-80% activity on the  radio 
  236.      channel for it to listen to, this can drop to about  350ish. 
  237.      If  it  drops  to  double figures,  worry,  as  the  CPU  is 
  238.      beginning  to  thrash.  At low double figures,  the  CPU  is 
  239.      pretty much working flatout. Time to up its clock rate !.
  240.  
  241.      The  BUFFERS  statistic  shows the minimum  number  of  free 
  242.      buffers  that  the software had available to it  during  the 
  243.      last six 10 minute period. This indicates whether the TNC is 
  244.      failing   to   deliver  data  passed  to  it   for   onwards 
  245.      transmission, as well as how much data is backed up waiting. 
  246.      Additional stats needed to analyse this properly are not yet 
  247.      being collected.
  248.  
  249.      The  display  also  shows the elapsed time  since  the  last 
  250.      warmstart  followed  by  the running  time  since  the  last 
  251.      coldstart. Each number is the number of hours of operation.
  252.  
  253. 3.5  MODE
  254.  
  255.      This command is similar to the PARAM command.
  256.  
  257.      It  allows a number of other features of the software to  be 
  258.      configured  remotely.  It removes the need for most  of  the 
  259.      host mode <escape> commands.
  260.  
  261.      The following parameters may be configured :
  262.  
  263.            The host mode
  264.            The CWID send period
  265.            The CWID keyer speed
  266.            The port nodes broadcast control
  267.            The crosslink / kiss control
  268.            The Tx delay
  269.            The full duplex flag
  270.            The rs232 port node broadcast interval
  271.            The node broadcast algorithm
  272.            The beacon period
  273.            The 'connect' redirector
  274.            The 'help message enable' flags
  275.            The 'hash' node broadcast port control
  276.            Whether the node will listen for the extra aliases
  277.  
  278.      In operation, it behaves just like the PARAM command.
  279.  
  280.      The parameters are as follows :
  281.  
  282. 3.5.1 Host mode control
  283.  
  284.      This parameter controls the 'host' mode. This is the mode of 
  285.      operation of the RS232 port when pin 23 is 'high'
  286.  
  287.      The valid values are 0 or 1.
  288.  
  289.      In  mode  0,  the port operates as  per  the  standard  node 
  290.      specification.  Mode  1 is designed to allow  connection  to 
  291.      hosts  or  modems or similar equipment that expects  a  'CD' 
  292.      type  of  signal  to signify that  an  incoming  /  outgoing 
  293.      connection is called for.
  294.  
  295.      In  mode  1,  the <escape> C and  <escape>  D  commands  are 
  296.      disabled and the other <escape> commands do not operate when 
  297.      connected. Instead, hardware handshakes are used to  control 
  298.      conections to and from the TNC.
  299.  
  300.      The TNC monitors pin 20 to determine the state of the  host, 
  301.      and  signals state changes to the host with pin 5.  When  an 
  302.      incoming  connect request is received ( by the  'c'  command 
  303.      with  no  parameters  or by the 'host' command  ),  the  TNC 
  304.      raises pin 5 to signal the connection and expects pin 20  to 
  305.      change state in response.
  306.  
  307.      When the host wishes to place connect to the TNC, it signals 
  308.      on pin 20 and the TNC responds with by changing the state of 
  309.      pin 5.
  310.  
  311.      It handles disconnects in a similar manner. Either the  node 
  312.      or the host may initiate disconnects.
  313.  
  314.      This  mode  is  experimental, changes may  be  made  to  its 
  315.      operation. It is designed for modems, print servers or hosts 
  316.      such as UNIX system tty login drivers.
  317.  
  318. 3.5.2 CWID control
  319.  
  320.      The  next two parameters control the CWID keyer.  
  321.  
  322.      The  first parameter is the CWID repeat period  in  seconds. 
  323.      Valid values are 0 to 3600. 0 disables it but do not set  it 
  324.      below 120 apart from to disable it.
  325.  
  326.      The second parameter controls the keyer speed. Specifically, 
  327.      it sets the number of 10 millisecond periods per dot and per 
  328.      inter symbol delay.
  329.  
  330.      The  speed of sending is 120/n, so setting n to 6  gives  20 
  331.      wpm. Valid values are 4 to 10, corresponding to speeds of 30 
  332.      and 12 wpm respectively.
  333.  
  334. 3.5.3 Node broadcast control
  335.  
  336.      This  parameter  allows control to be exercised  over  which 
  337.      ports nodes broadcasts are sent. Valid settings are 0 - 3.
  338.  
  339.      Value  0 disables node broadcasts. Value 3 ( the  default  ) 
  340.      works as normal. A value of 1 enables broadcasts on the HDLC 
  341.      port  only  whilst a value of 2 enables  broadcasts  on  the 
  342.      crosslink port only.
  343.  
  344. 3.5.4 Crosslink / kiss
  345.  
  346.      This parameter is used to set the communications protocol used 
  347.      on the crosslink port when pin 23 is tied low.
  348.  
  349.      The valid values are 0, 1, 2 or 3 
  350.  
  351.      Mode 0 - standard crosslink protocol enabled
  352.      Mode 1,2,3 - use KISS instead of crosslink.
  353.  
  354.      In mode 1, KISS simply replaces the crosslink protocol
  355.      In mode 2, packets received from the radio part that are not 
  356.      intended  for the node are copied to the RS232 port in  KISS 
  357.      mode. Similarly packets received on the RS232 port that  are 
  358.      not intended for the node are sent to the radio port.
  359.      In  mode 3, all packets received on one port are  copied  to 
  360.      the other port as well as being analysed by the node.
  361.  
  362.      These modes are not simply KISS implementations that replace 
  363.      the node, they run with the node.
  364.  
  365.      Mode 2 is designed to allow a KISS application and a node to 
  366.      share  a  radio without interference with  each  other.  The 
  367.      point is that the PC TCPIP system can be switched off whilst 
  368.      leaving the node running to allow others to use it.
  369.  
  370.      Mode 3 is a debugging mode. One problem when faultfinding on 
  371.      a  node  is that it is impossible to see what  the  node  is 
  372.      seeing on the channel without replacing the rom. By  setting 
  373.      this  mode, it is possible to connect a KISS application  to 
  374.      the  RS232  port  and observe what the node  is  seeing.
  375.  
  376.      Mode 3 is also designed to allow a PC running AXSTATS to  be 
  377.      connected to the RS232 port to allow logging and analysis of 
  378.      channel performance from the node itself.
  379.  
  380. 3.5.5 Tx keyup delay
  381.  
  382.      This   parameter  sets  the  TX  keyup  delay  in  10's   of 
  383.      milliseconds.  This  was  previously done  using  an  escape 
  384.      command.
  385.  
  386. 3.5.6 Full Duplex
  387.  
  388.      This parameter sets or clears the full duplex control  flag. 
  389.      This was previously done using an escape command.
  390.  
  391. 3.5.7 RS232 nodes broadcast interval
  392.  
  393.      When a crosslinked TNC is reset, it takes some time to learn 
  394.      about  the nodes that the other TNCs can hear.  Also,  nodes 
  395.      heard  by  one TNC can take an hour to be  notified  to  the 
  396.      others.
  397.  
  398.      In  order  to improve this, this parameter may  be  used  to 
  399.      change the frequency of nodes broadcasts on the RS232  port. 
  400.      When  set to 0, the node operates as normal. When set  to  a 
  401.      non  zero  value, it will broadcast the nodes on  the  RS232 
  402.      port  at that interval. Hence setting it to 600 would  cause 
  403.      nodes broadcasts at 10 minute periods. The nodes  broadcasts 
  404.      on  the radio port will continue to occur at the basic  rate 
  405.      set  by  the PARAM setting. The obsolescence count  will  be 
  406.      decremented at the basic rate, not at the faster RS232 rate.
  407.  
  408. 3.5.8 Node broadcast algorithm
  409.  
  410.      This  value  controls the algorithm used.  Bits  within  the 
  411.      value set have significance as shown below.
  412.      There  is a problem with the nodes broadcast algorithm  when 
  413.      many TNCs are crosslinked on RS232. In order to address this 
  414.      a  variation  to  the algorithm  has  been  implemented  for 
  415.      experimental purposes. Feedback on its use is requested. Bit 
  416.      zero affects the HDLC port and bit 1 affects the RS232 port. 
  417.      When  a  bit is set to 1, the node  broadcast  algorithm  is 
  418.      modified so that it will not rebroadcast on the same port  a 
  419.      node  heard on that port when the best quality neighbour  is 
  420.      on  that port. It makes little sense to use it on  the  HDLC 
  421.      port but what the heck, it is implemented for  completeness. 
  422.      The  only  settings therefore that make sense are 0  and  2. 
  423.      These  correspond  to 'normal' and 'modified  on  the  RS232 
  424.      port' respectively. Setting it to 1 or 3 will result in some 
  425.      pretty weird effects.
  426.  
  427. 3.5.9 Beacon period
  428.  
  429.      This  parameter  sets  the beacon interval  in  seconds.  In 
  430.      TheNet  1.01, this was fixed at 10 minutes ( 600 seconds  ). 
  431.      In  this  version, this parameter may be used to  change  it 
  432.      according the the prevailing license conditions.
  433.  
  434. 3.5.10 'Connect' redirector
  435.  
  436.      In TheNet 1.01, when 'connect' is given with no  destination 
  437.      callsign,  the node attempted to connect to the  local  host 
  438.      port.  In a crosslinked system, this vanished down  a  black 
  439.      hole. In previous versions of this code, the node  attempted 
  440.      to  connect  to the station set by the  HOST  command,  only 
  441.      trying  the  local host port if no destination  was  set  by 
  442.      HOST.  With  this  version, the node may  be  configured  to 
  443.      connect to the station set by the BBS, DXCLUSTER or the HOST 
  444.      command  depending  on this parameter.  When  zero,  connect 
  445.      attempts  will go to the HOST station, when set to  '1',  it 
  446.      will  attempt to connect to the BBS callsign. When set to  2 
  447.      it will attempt to connect to the DXCLUSTER callsign.
  448.  
  449. 3.5.11 'help message enable' flags
  450.  
  451.      This  word controls the sending of help messages, with  each 
  452.      bit of the word controlling a separate function.  Currently, 
  453.      only 4 bits are effective, these being as follows :
  454.  
  455.      BIT       FUNCTION
  456.      =========================
  457.      0         Whether the 'please wait, trying xxxx' operates
  458.      1         Whether all commands appear in help for sysop
  459.      2         Whether the 'goodbye' message is given
  460.      3         Whether a welcome message is enabled ( CTEXT )
  461.      4         Whether nodes are shown as 'alias:callsign'
  462.  
  463.      When  bit 0 is set, and the BBS, HOST or DXcluster  commands 
  464.      are given, then a message is sent from the node telling  the 
  465.      user  that  a connect attempt is being made. This  does  not 
  466.      affect  the 'connect' command itself, unless the command  is 
  467.      given  with no parameter as this is then equivalent  of  the 
  468.      BBS or HOST command.
  469.  
  470.      When  bit  1  is  set, and if a  sysop  gives  an  incorrect 
  471.      command,  the  help  screen  shows  all  commands  possible, 
  472.      including  those currently disabled ( as by definition  they 
  473.      are not disabled for the sysop ! ).
  474.  
  475.      When  bit 2 is set, then the use of the 'bye'  command  will 
  476.      solicit a 'goodbye' message from the node.
  477.  
  478.      Bit 3 switches on and off the 'CTEXT' message. When enabled, 
  479.      and  when  a  CTEXT message is set,  then  whenever  someone 
  480.      uplinks  to  the  node  alias, the  ctext  message  is  sent 
  481.      immediately on connect.
  482.  
  483.      Bit  4  switches the way in which nodes are shown  when  the 
  484.      ROUTES command is used. When set to '1', nodes are shown  as 
  485.      'alias:callsign'.  When  set to 0, they are  shown  only  as 
  486.      'callsign'.
  487.  
  488. 3.5.12 'hash' node port control
  489.  
  490.      In  certain  networks ( notably the American ), there  is  a 
  491.      need  to  restrict the propagation of local nodes.  This  is 
  492.      done by using node aliases that start with a hash  character 
  493.      ( # ) and instructing specific nodes not to broadcast routes 
  494.      to nodes that start with this character. This parameter does 
  495.      this  by  enabling each port to be individually  enabled  or 
  496.      disabled  in  respect  to  'hash'  node  broadcasts.  Bit  0 
  497.      controls  the radio port and bit 1 controls the RS232  port. 
  498.      When  one  of these bits is set, hash nodes  will  never  be 
  499.      broadcast on that port.
  500.  
  501. 3.5.13 Extra aliases
  502.  
  503.      If  this is set to '1', then the node will listen for (  and 
  504.      accept  uplinks to ) the aliases set in HOSTALIAS,  DXCALIAS 
  505.      and  BBSALIAS if they are set. If this parameter is  set  to 
  506.      '0',  or if the respective aliases are not set, it  will  do 
  507.      nothing. If you do not use the aliases, set it to 0 to avoid 
  508.      wasting processor time.
  509.  
  510. 3.6 MHEARD
  511.  
  512.      The  TNC can be instructed to keep a list of the  last  'nn' 
  513.      stations heard, where 'nn' is an integer between 1 and  100. 
  514.      It can also be disabled. The syntax of the command is :
  515.  
  516.                MHEARD [ nn ]
  517.  
  518.      The  parameter is optional and only operates for the  sysop. 
  519.      It  sets  the maximum length of the list.  Setting  to  zero 
  520.      disables the function.
  521.  
  522.      The  heard list uses free buffers for the list, so  a  large 
  523.      setting means less RAM for the node software.
  524.  
  525.      The  list  is  maintained  as linked  list,  with  the  most 
  526.      recently  heard station first. The display shows the  number 
  527.      of packets heard from that station and the time since it was 
  528.      last  heard, in hours minutes and seconds.  In addition,  it 
  529.      shows the port on which the station was heard together  with 
  530.      an indication as to whether the station is a node and / or a 
  531.      TCP/IP station. It does this by examining the PID byte.
  532.  
  533.      Every  hour the list is checked for stations that  have  not 
  534.      been  heard for 12 hours, and any such stations are  removed 
  535.      from the list.
  536.  
  537.      To  disable the internal updating of the list ( and  thereby 
  538.      stop  the  CPU expending effort on the function ),  set  the 
  539.      size  to  zero  rather than just disabling  the  command  as 
  540.      described  in 3.8. Note though that the node will not  clear 
  541.      the list as updates have been disabled, so it will be up  to 
  542.      12  hours before the buffers used are freed.  To  accelerate 
  543.      this  process, set the size to 1, wait until it has heard  a 
  544.      station  ( any one will do ) then set it to zero. This  will 
  545.      free up all but one buffer immediately.
  546.  
  547. 3.7 CQ
  548.  
  549.      When CQ is disabled, the command now reports  apologetically 
  550.      rather than simply ignoring the request.
  551.  
  552. 3.8  ALL COMMANDS
  553.  
  554.      There  is  often  a requirement to be able  to  disable  the 
  555.      connect  command whilst allowing level 3 relaying.  This  is 
  556.      achieved  by the use of a command qualifier, the  syntax  of 
  557.      which is :
  558.  
  559.                CONNECT [ + | - ]
  560.  
  561.      If  '-'  is entered by the sysop, then the  connect  command 
  562.      will  politely refuse to work. This can be reversed  by  the 
  563.      '+' command.
  564.  
  565.      This  has no effect of layer 3 relaying. Also, the  BBS  and 
  566.      HOST  commands  will still allow connections to be  made  if 
  567.      they are enabled and set.
  568.  
  569.      Further,  the syntax is valid for ALL commands, for  example 
  570.      the  CQ  command can also be disabled in the  same  way.  Be 
  571.      careful though. The command is only accepted from the sysop, 
  572.      so  if you disable the sysop and manager commands  you  will 
  573.      lock out remote management !.
  574.  
  575. 3.9 NODES
  576.  
  577.      When  information on a node that is not known is  requested, 
  578.      the  program prints out an error message rather than  giving 
  579.      the names of all known nodes.
  580.  
  581.      When a node entry is made by the sysop, callsign checking is 
  582.      forced  ON  rather  than being determined  by  the  callsign 
  583.      checking parameter.
  584.  
  585.      The entire contents of the node table routes may be obtained 
  586.      by the sysop or manager by the command
  587.  
  588.                NODES * *
  589.  
  590.      This  will dump info on all nodes, one node per  line,  with 
  591.      the following format:
  592.  
  593.           Alias:call   route1   route2   route3
  594.  
  595.      where  route1,  route2  and  route3  comprise  the  quality, 
  596.      obsolescense  count  and  port  followed  by  the  neighbour 
  597.      callsign  for each of the 3 route entries for that node.  If 
  598.      any  of  the routes are in use, a chevron will be  shown  by 
  599.      that route.
  600.  
  601.      The  extended  command  is only for sysop use  as  it,  like 
  602.      auditing and conferencing, causes the node to be a source of 
  603.      a  significant  amount of data ( dumping a large  number  of 
  604.      node  details can consume hundreds of buffers !!! ).  It  is 
  605.      quite possible that used indiscriminately, it could cause  a 
  606.      warmstart of the node. Be careful.
  607.  
  608. 3.10 RESET
  609.  
  610.      The syntax of the command is now 
  611.  
  612.                RESET [ anything-else ]
  613.  
  614.      Entering  the  reset command alone will do a  warmstart.  If 
  615.      any other parameter is entered, a coldstart is performed.
  616.  
  617. 3.11 MANAGER
  618.  
  619.      The MANAGER command gives the user extra privileges. In this 
  620.      version,  this  amounts  to the  ability  to  receive  audit 
  621.      messages from the node. The level of auditing is set by  the 
  622.      AUDIT command.
  623.  
  624.      The  privilege remains in force until cleared by  a  command 
  625.      that  affects  the  user  state.  Specifically,  these  are, 
  626.      entering  the  TALK  state,  executing  the  SYSOP  command, 
  627.      entering the MANAGER command and getting the password wrong, 
  628.      or  disconnecting from the node. Failing to get  the  second 
  629.      password  right when using the closedown command  will  also 
  630.      remove the manager privilege.
  631.  
  632.      If the MANAGER command is executed by a user who   connected 
  633.      to  the node by a level 4 circuit rather than by a  level  2 
  634.      circuit,  and  if the level 2 timeout is less  than  the  no 
  635.      activity  timeout, the connection will never timeout as  the 
  636.      clearing  and reconnecting of the level 2 circuit will  keep 
  637.      the process alive provided level 2 auditing is enabled. This 
  638.      allows  the operation of the node to be logged remotely  and 
  639.      continuously.  Alternatively,  if  the level  4  timeout  is 
  640.      greater  than 10 minutes, level 1 or CPU auditing will  keep 
  641.      it  alive if level 2 is switched off. NOTE : I have a  nasty 
  642.      feeling that there is something note quite right - the  link 
  643.      sometimes dies !.
  644.  
  645.      A user with MANAGER privilege also has SYSOP privilige.
  646.  
  647. 3.12 AUDIT
  648.  
  649.      The syntax of the audit command is :
  650.  
  651.                AUDIT [ new-value ]
  652.  
  653.      where  new value is an integer value. If no value is  given, 
  654.      or  the  user does not have SYSOP status, the  current  mask 
  655.      value  is displayed. Otherwise, the mask is updated and  the 
  656.      new value displayed.
  657.  
  658.      The  mask  controls the auditing of various  events  in  the 
  659.      node. Not all values are used yet, but those that are, are :
  660.  
  661.           BIT       USE
  662.      ============================================
  663.            0        Level 1 statistics on 10 minute updates
  664.            1        Level 2 connects & disconnects
  665.            2        reserved for future use
  666.            3        Level 4 connects & disconnects
  667.            4        Level 7 limited events ( use of sysop )
  668.            5        Full level 7 auditing
  669.            6        CPU auditing messages ( 10 minute updates )
  670.  
  671.      It  is suggested that the usual settings can simply be 0  or 
  672.      255.
  673.  
  674.      For level 1, messages are sent every 10 minutes showing  the 
  675.      percentage  of time that the receiver detected  carrier  and 
  676.      the percentage of time that the transmitter was on.
  677.  
  678.      At  level  2  &  4, the messages are  of  all  connects  and 
  679.      disconnects, shown in 4 different ways :
  680.  
  681.           C    Connect message received by node
  682.           CA   Connect message sent / Acknowledge received
  683.           D    Disconnect message received by node
  684.           DA   Disconnect message sent / Acknowledge received
  685.  
  686.      In  each case, 2 callsigns are shown. At level 2  these  are 
  687.      the source and destination of the AX.25 link. At level 4, it 
  688.      is the remote node callsign and user callsign. Each  message 
  689.      is  preceded by an indication of the source of the  message, 
  690.      such as "L2" or "L4".
  691.  
  692.      At  level 7, with bit 4 set and bit 5 clear, the only  event 
  693.      currently  audited is the use of the Sysop  command,  either 
  694.      directly  or via the manager command. If bit 5 is set,  then 
  695.      all  commands given to the switch are audited,  preceded  by 
  696.      the callsign of the user who entered the command.
  697.  
  698.      Bit  6  controls  CPU health check auditing.  If  set,  then 
  699.      whenever  the internal CPU statistics are updated,  messages 
  700.      are  sent  showing the CPU processor loading total  and  the 
  701.      minimum buffers level ( see STATS for more information ). 
  702.  
  703.      The  audit mask value should be set to 0 when  not  actually 
  704.      being  used.  Do not leave it set to another value  as  this 
  705.      wastes  processor  time. Note also that full auditing  on  a 
  706.      busy  node  makes  things worse. Treat  it  as  a  debugging 
  707.      feature !.
  708.  
  709. 3.13 TALK
  710.  
  711.      Talk  is  a  conferencing command. It  allows  a  number  of 
  712.      stations to hold a simultaneous conference ( a bit like  the 
  713.      CONFERENCE  command  of a DX cluster ). There  is  only  one 
  714.      conference, and stations may connect to it by connecting  to 
  715.      the  node and issuing the TALK command. It may be exited  by 
  716.      disconnecting or issuing the command '/EXIT' at the start of 
  717.      a  line.  ( /EXIT may be abbreviated to /EX, and it  is  not 
  718.      case sensitive ).
  719.  
  720.      Each line sent by a user is copied to all other users in the 
  721.      conference, preceded by the callsign of the user.
  722.  
  723.      Whenever  a new station enters the conference, or a  station 
  724.      leaves  the conference using the '/EXIT' command, the  other 
  725.      conference users get a message informing them of the  event. 
  726.      These status messages are sent with the callsign of the node 
  727.      rather than the user.
  728.  
  729.      Finally,  when entering the TALK command, a message  may  be 
  730.      sent  to all those users who are connected to the  node  but 
  731.      not  otherwise doing anything. For example if  GxABC  enters 
  732.      the line
  733.  
  734.           TALK Hello fred, can I have a chat, type 'TALK'
  735.  
  736.      Then  all other stations connected to the node,  present  in 
  737.      the USER list but idle, get the message
  738.  
  739.           GxABC>> Hello fred, can I have a chat, type 'TALK'
  740.  
  741.      displayed on their terminal.
  742.  
  743.      Note  that merely connecting to the node does not  consitute 
  744.      being  connected  to the switch. Stations connected  to  the 
  745.      switch appear in the USER list.
  746.  
  747. 3.14 SYSOP
  748.  
  749.      The SYSOP command has been enhanced to increase the level of 
  750.      security offered. One problem of the old system is that  the 
  751.      password is easily visible unless the user repeats the SYSOP 
  752.      command  a number of times. Even then,  correlation  between 
  753.      passwords is easy, so the password needs frequent  changing. 
  754.      To reduce the change period, and make it harder to discover, 
  755.      the node will accept a string of characters and scan it  for 
  756.      the password. Hence a response of, say, 30 or 40  characters 
  757.      can  be  sent,  with a random number  of  random  characters 
  758.      preceding the actual data and a random number following  it. 
  759.      This does not eliminate such attacks, but if used carefully, 
  760.      it makes it quite a bit harder to attack.
  761.  
  762. 3.15 LINKS
  763.  
  764.      This  command shows the current level 2 links to  the  node. 
  765.      Displayed one per line, the two callsigns are shown followed 
  766.      by the link state, port number and current retry count.
  767.  
  768. 3.16 CALIBRATE
  769.  
  770.      This  command  allows  remote  calibration  checks  of   the 
  771.      transmitter deviation. Its syntax is
  772.  
  773.           CALIBRATE period [ toggle ]
  774.  
  775.      The  period ( 1 to 60 seconds ), is the time for  which  the 
  776.      transmitter  will  key  up for with  constant  tone.  It  is 
  777.      undefined  as  to  which tone will be sent.  If  the  second 
  778.      parameter  is given, the node will toggle between the  tones 
  779.      every  [toggle]  seconds. The toggle must be between  1  and 
  780.      [period] seconds. If a period is not given, the user is  not 
  781.      sysop  or manager, or if it is out of range, the command  is 
  782.      ignored.  If the tone generator is busy because it is  about 
  783.      to send a CWID sequence, a 'busy' message is returned.  Note 
  784.      -  quite  often it can appear that the node  has  locked  up 
  785.      having  failed  to transmit the full  calibrate  period.  In 
  786.      fact, this is usually the hardware PTT watchdog in the  TNC. 
  787.      The  node thinks it is still sending but the hardware  timer 
  788.      has removed the PTT signal.
  789.  
  790. 3.17 DXCLUSTER
  791.  
  792.      The DXCLUSTER command operates just like the BBS command  in 
  793.      that  it may be used to effect a connection to  a  DXcluster 
  794.      (assuming there is one nearby). It should be disabled if  it 
  795.      is not intended to be used to access a cluster.
  796.  
  797.      The syntax of the command is :
  798.  
  799.                DXCLUSTER [ * | ? | callsign ]
  800.  
  801.      With  no  parameter,  the  command  connects  to  a  station 
  802.      previously  specified  by the use of the  DXCLUSTER  command 
  803.      with a callsign as a second parameter. Setting the DXCLUSTER 
  804.      to  allow this may only be done by a sysop. The  '*'  option 
  805.      may also only be executed by the sysop, this command  clears 
  806.      a previously specified DXCLUSTER.
  807.  
  808.      The '?' option ( or any text if not sysop ), prints out  the 
  809.      current DXCLUSTER station setting.
  810.  
  811.      If no DXCLUSTER is set, the command issues an error  message 
  812.      if it is invoked with no other parameters.
  813.  
  814.      The  idea  of  this command is that,  like  with  the  'bbs' 
  815.      command  of  the 'BPQ software, a user may  connect  to  the 
  816.      local DXCLUSTER from the node.
  817.  
  818.  
  819. 3.18 HELP
  820.  
  821.      The  HELP command gives a message from the ROM. In  general, 
  822.      it  is expected that the message will be designed to  assist 
  823.      new users in understanding the operation or configuration of 
  824.      the  node.  The  message may span many  lines,  and  may  be 
  825.      changed  when  the  rom  is  programmed.  As  delivered,  it 
  826.      contains  a  brief help screen detailing the main (  user  ) 
  827.      changes to the code.
  828.  
  829. 3.19 CTEXT
  830.  
  831.      The CTEXT command sets or displays a message sent to a  user 
  832.      who connects to the node by uplinking to the node's alias.
  833.  
  834.      The syntax of the command is :
  835.  
  836.           CTEXT [ message ]
  837.  
  838.      With no parameter, the current message is displayed. If  the 
  839.      user is also a sysop, and if text follows the command,  that 
  840.      text   becomes  the  new  connect  text.  When  a   '*'   is 
  841.      encountered,  the  message  is  terminated  (  it  is   also 
  842.      terminated by a newline ). Hence, to clear the message, type 
  843.      the command 'ctext *'.
  844.  
  845.      A  message is only sent if there is a ctext message set  and 
  846.      if the relevant bit is set in the mode command parameter  as 
  847.      described in section 3.5.11.
  848.  
  849. 3.20 BTEXT
  850.  
  851.      The  BTEXT  command sets or displays the  additional  beacon 
  852.      text sent along with the beacon packets.
  853.  
  854.      The syntax of the command is :
  855.  
  856.           BTEXT [ message ]
  857.  
  858.      With no parameter, the current message is displayed. If  the 
  859.      user is also a sysop, and if text follows the command,  that 
  860.      text becomes the new beacon text. When a '*' is encountered, 
  861.      the  message  is  terminated ( it is also  terminated  by  a 
  862.      newline  ).  Hence, to clear the message, type  the  command 
  863.      'btext *'.
  864.  
  865.      Normally, beacon packets are UI frames that contain the node 
  866.      callsign and alias. If a beacon message is set, the text  of 
  867.      the  message  follows the alias in the same  packet.  It  is 
  868.      strongly suggested that beacon packets be kept brief !!!.
  869.  
  870. 3.21 ACL
  871.  
  872.      This  is probably the most complex additonal command in  the 
  873.      program.  It  should be used with care, and  only  when  you 
  874.      really understand its operation - mistakes can result in the 
  875.      need  to go out to a remote site ( probably when it is  cold 
  876.      and wet ) to reconfigure the node.
  877.  
  878.      The command allows selective control, based on callsign,  of 
  879.      a  list of different events. The ACL contains two  types  of 
  880.      entry,  a default value and zero or more callsigns, each  of 
  881.      which  are  associated  with  a  value.  When  one  of   the 
  882.      controlled  events  occurs  ( such as an  incoming  level  2 
  883.      connection or a nodes broadcast ), the ACL is scanned for an 
  884.      entry that matches the callsign of the sender. If a match is 
  885.      found  (  but see below ), the value  associated  with  that 
  886.      callsign is used to determine the action the node will take. 
  887.      If no match is found, the default value is used.
  888.  
  889.      Each  bit  of the value controls a  different  function,  as 
  890.      shown below :
  891.  
  892.           BIT      OPERATION
  893.           ======================================================
  894.           0    bar incoming level 2 connection
  895.           1    bar outgoing level 2 connection ( downlink )
  896.           2    ignore nodes broadcasts from this station
  897.           3    bar gatewaying at level 3 to/from this station
  898.           4    bar incoming level 4 connections
  899.           5    bar outgoing level 4 connections
  900.           6    ignore SSID in matching an entry
  901.  
  902.      So  if for example an entry exists for a callsign G99XXX  of 
  903.      6, then the node will not allow outgoing level 2 connections 
  904.      to  the node ( downlinks ), and will ignore node  broadcasts 
  905.      from that station. Note that these commands only operate  on 
  906.      the  events  themselves  -  if  G99XXX  creates  a  level  2 
  907.      connection, the node will quite happily use it itself.
  908.  
  909.      The  'ignore ssid' bit is used to match a  callsign  without 
  910.      regard to its SSID. This makes life interesting when finding 
  911.      a  match,  so the list is scanned twice, once for  an  exact 
  912.      match, and then for a match ignoring SSID if an exact  match 
  913.      is  not found. There can only be one exact match,  but  when 
  914.      searching  for a match without using SSID, the  first  entry 
  915.      found will be used.
  916.  
  917.      The syntax of the command is as follows ( 3 versions )
  918.  
  919.           ACL * value
  920.           ACL callsign + value
  921.           ACL callsign -
  922.  
  923.      If  you  are not sysop, or if ACL is given on its  own,  the 
  924.      current contents of the ACL are shown. The first form of the 
  925.      command changes the default value, the second form makes  an 
  926.      entry  in the list, the last form removes an entry from  the 
  927.      list. It complains about syntax errors.
  928.  
  929.      A  few  moments  thought  will show  that  the  sequence  of 
  930.      commands
  931.  
  932.           connect to node
  933.           execute sysop or manager command
  934.           type the command ACL * 127
  935.           disconnect
  936.  
  937.      is  quite catastrophic. You will not be able to get back  in 
  938.      again apart from via the host port and noone will be able to 
  939.      connect  to  or from the node. If you intend  to  experiment 
  940.      with  the  command, you should start by  entering  your  own 
  941.      callsign  with  a value of zero to ensure that you  can  get 
  942.      back in again !!!.
  943.  
  944.      The  list  can be used as an 'accept' or  'reject'  list  by 
  945.      judicious use of the default. To create a list that excludes 
  946.      specific  calls,  put them into the list with  the  required 
  947.      bits set in the value. The default should be zero. To create 
  948.      an 'accept' list, put entries in with the required bits zero 
  949.      and  set the corresponding bits in the  default.  Individual 
  950.      bits  may be used to create accept or reject lists for  each 
  951.      function.
  952.  
  953.      The command steals buffers at a rate of one buffer per  four 
  954.      entries in the ACL. Also, a long ACL will slow the node down 
  955.      nicely - so think before you enter a long list.
  956.  
  957.      This command is for experimental purposes - if you find  any 
  958.      bugs,  let  me  know please ( I have not  fully  tested  the 
  959.      gateway  bit  for example ). Also, it is  not  intended  for 
  960.      malicious use but to allow fine control to be exercised over 
  961.      backbone networks. If I get lots of negative responses back, 
  962.      the command will go !
  963.  
  964. 3.22 CLOSEDOWN
  965.  
  966.      The  closedown  command  is  used  to  shut  down  the  node 
  967.      remotely.   If   successfully  executed,   the   node   will 
  968.      effectively stop operating until it is reset ( eg by a power 
  969.      up ). The node's configuration ( routes, messages etc )  are 
  970.      not destroyed - the node simply hits a HALT instruction. You 
  971.      must be sysop to execute the command.
  972.  
  973.      The syntax of the command is:
  974.  
  975.                CLOSEDOWN A
  976.  
  977.      The  node will respond with 5 numbers just as for  when  the 
  978.      sysop or manager command was executed. Yes, you guessed, the 
  979.      node  expects  another password. Give it correctly  and  the 
  980.      node closes down completely. Get it wrong and you lose  your 
  981.      sysop status. This obtuse and awkward syntax is designed  to 
  982.      make sure it is not accidentally executed.
  983.  
  984. 3.23 ALIAS
  985.  
  986.      The ALIAS command allows the node's alias to be changed. The 
  987.      syntax is :
  988.  
  989.           ALIAS [ * | new-alias ]
  990.  
  991.      If  no  parameter is given, or if the user is not  SYSOP  or 
  992.      MANAGER,  the  current alias is displayed. If the  alias  is 
  993.      deemed  to be a valid alias, the node's alias is changed  to 
  994.      the new one entered. Note that the algorithm that checks for 
  995.      the  alias  structure  is a bit queer. It  is  however,  the 
  996.      original algorithm of TheNet and I am loth to change it  for 
  997.      fear  of side effects. Note too that the companion  CALLSIGN 
  998.      command is NOT included - chaos is not something I crave. If 
  999.      the  sysop gives the parameter of '*', the node's  alias  is 
  1000.      cleared.
  1001.  
  1002. 3.24 BBSALIAS HOSTALIAS DXCALIAS
  1003.  
  1004.      These commands are used to enable the node to respond to  up 
  1005.      to three additional aliases. The syntax of each is the same, 
  1006.      and by way of example the BBSALIAS syntax is :
  1007.  
  1008.           BBSALIAS [ * | new-alias ]
  1009.  
  1010.      If  not sysop, if no new alias is specified, or if  it  does 
  1011.      not  pass the weird alias syntax checker ( see 3.23  )  then 
  1012.      the  current  alias  is  displayed. If  not,  the  alias  is 
  1013.      changed. If '*' is given, the alias is cleared.
  1014.  
  1015.      The  aliases  so entered are nothing to do with  the  node's 
  1016.      identity. If a BBS alias is set, for example to MXMBBS, then 
  1017.      the node will listen for level 2 connects to that alias.  It 
  1018.      will  respond to them and will automatically invoke the  BBS 
  1019.      command. The use will also get the optional welcome  (ctext) 
  1020.      message and 'trying to connect to ....' messages if  enabled 
  1021.      by the appropriate 'mode' parameter.
  1022.  
  1023.      The  idea is that where a node sits on a channel  that  does 
  1024.      not  have  access  to the local host, BBS  or  cluster,  the 
  1025.      normal aliases of those stations may be enabled in the  node 
  1026.      to allow consistent access to the local services. Note  that 
  1027.      the  three  stations  do  not have to be  a  BBS,  Host  and 
  1028.      cluster, it could be three BBSes or any other combination.
  1029.  
  1030. 3.25 IPSTATS
  1031.  
  1032.      The  IPstats command has the same basic syntax as the  PARMS 
  1033.      and  MODE  commands.  When invoked  without  parameters,  it 
  1034.      displays  the  current  stats. Each statistic  may  also  be 
  1035.      altered by sysop.
  1036.  
  1037.      In  addition to the standard IP MIB, there is an  additional 
  1038.      parameter  used  to set the level 2 default modes,  and  the 
  1039.      first  entry  in the MIB is used to enable  or  disable  the 
  1040.      router.
  1041.  
  1042.      The   complete  set  of  IP  MIB  stats  are  included   for 
  1043.      compatibility  with  other IP systems, but several  are  not 
  1044.      used.  Also,  the  stats  are 16 bit  counters  not  32  bit 
  1045.      counters as in NOS. Like NOS however, the stats do not reset 
  1046.      every  hour,  they must be cleared by the sysop.  They  will 
  1047.      however wrap around at zero.
  1048.  
  1049.      The entries are:
  1050.  
  1051.      1    Port default modes
  1052.      2    Enable / Disable the IP router fuctions
  1053.      3    Default IP Time To Live
  1054.      4    IP Received frames
  1055.      5    IP Header Errors
  1056.      6    IP Input Address Errors
  1057.      7    IP Forwarded Datagrams
  1058.      8    IP Unknown Protocols
  1059.      9    IP input frames Discarded
  1060.      10   IP Input frames Delivered
  1061.      11   IP Output Requests
  1062.      12   IP Output Discards
  1063.      13   IP Output No Routes errors
  1064.      14   IP Reassembly Timeout errors
  1065.      15   IP Reassembly Required errors
  1066.      16   IP Reassembly OKs
  1067.      17   IP Reassembly Fails
  1068.      18   IP Fragmentations completed OK
  1069.      19   IP Fragmentation Failures
  1070.      20   IP Fragmentation Creates
  1071.  
  1072.      The  default mode word may be set to 0, 1, 2 or 3. Each  bit 
  1073.      controls a port, with bit 0 controlling port 0 ( radio port) 
  1074.      and bit 1 controlling port 1 ( RS232 port ). When set to  1, 
  1075.      the  default  mode for that port when sending on a  level  2 
  1076.      connection  will  be Datagram. When set to 0 it will  be  by 
  1077.      Virtual  Circuit.  The default mode is used  when  no  other 
  1078.      information is given, either by the ARP table or by the  TOS 
  1079.      bits in the IP header.
  1080.  
  1081.      The enable / disable word may be set to 0 or 1. When set  to 
  1082.      0, the operation of the router is stopped, when set to 1 the 
  1083.      router functions.
  1084.  
  1085.      The  IP Time To Live ( TTL ) word is used to set the  number 
  1086.      of  routers through which an IP frame may pass before it  is 
  1087.      discarded.  It is similar to the node layer 3 TTL  word.  It 
  1088.      may  be set to any value up to 255, but values below 2  make 
  1089.      no sense and are therefore not permitted.
  1090.  
  1091.      The IP fragmentation reassembly timeout counter is not  used 
  1092.      as  the node is just a router. It is left set to 30  seconds 
  1093.      just to show which one it is !
  1094.  
  1095.      The  rest  are just statistics. The patient  user  can  have 
  1096.      hours  of fun working out which ones are not used ( or  just 
  1097.      think about it for a second or two ).
  1098.  
  1099. 3.26 IPADDRESS & IPBROADCAST
  1100.  
  1101.      These  commands are used to set or display the IP  addresses 
  1102.      used by the node. The syntax of each is (by way of example):
  1103.  
  1104.           IPADDRESS [ ipaddress ]
  1105.  
  1106.      where ipaddress is in the form 
  1107.  
  1108.           nnn.nnn.nnn.nnn 
  1109.  
  1110.      where nnn is an integer in the range 0..255
  1111.  
  1112.      So  to set the node IP broadcast address to that  used  over 
  1113.      here, the command would be :
  1114.  
  1115.           IPBROADCAST 44.131.0.0
  1116.  
  1117.      The IPADDRESS is the address that the node will respond  to. 
  1118.      It  is used only as detailed in section 7. The IP  broadcast 
  1119.      address  is  the one used to denote broadcast  packets  that 
  1120.      will  be largely ignored. Note that port addressing  is  NOT 
  1121.      currently supported. Anyone who finds this limiting, drop me 
  1122.      a line and I'll see if I can change it.
  1123.  
  1124. 3.27 IPROUTE
  1125.  
  1126.      This is one of the two main databases used by the node.  The 
  1127.      IP  Route table is used to tell the router where to  send  a 
  1128.      frame  for  a  specific detination.  It  maps  addresses  or 
  1129.      address  ranges to a gateway IP address and  to  sub-network 
  1130.      ports.  The  ARP database then tells the node  what  station 
  1131.      corresponds to that address and protocol. The node  supports 
  1132.      two subnet protocols, AX25 and Netrom.
  1133.  
  1134.      The  database  is stored in an ordered list,  in  decreasing 
  1135.      order  of  the number of relevant bits. This  is  to  permit 
  1136.      searching  of  the database when trying to find  a  specific 
  1137.      destination.  Given  an  address, it  scans  addresses  with 
  1138.      decreasing  numbers  of  bits until it finds  a  match.  The 
  1139.      syntax of the command is as follows :
  1140.  
  1141.      IPROUTE [address [ / bits ][ + port [gateway [metric]]]]
  1142.  
  1143.      or
  1144.  
  1145.      IPROUTE [address [ / bits ][ - ]]
  1146.  
  1147.      In  the first form, it makes an entry in the table,  in  the 
  1148.      second it deletes one. Only sysop or manager may effect such 
  1149.      a change. The parameters are as follows :
  1150.  
  1151.      address  The amprnet address in the form nnn.nnn.nnn.nnn
  1152.      bits     The number of significant bits (eg 44.131.0.0 / 16)
  1153.      port     The port, either 0 or 1 for AX25 or n for NETROM
  1154.      gateway  The optional gateway for this dest. nnn.nnn.nnn.nnn
  1155.      metric   Currently not used, a numeric value
  1156.  
  1157.      When  an entry is made with a specific number of  bits,  the 
  1158.      address  is  'masked  off' to that many bits,  so  enter  an 
  1159.      address  of  44.131.16.31 / 24 and it will get  entered  as 
  1160.      44.131.16.0.  The valid range for the number of bits is 1  - 
  1161.      32.
  1162.  
  1163.  
  1164. 3.28 ARP
  1165.  
  1166.      The  ARP  table  maps a pair  of  address+port  to  hardware 
  1167.      address+subnetwork mode. The address is either a destination 
  1168.      or  a gateway in the form nnn.nnn.nnn.nnn. The  protocol  is 
  1169.      either  netrom or ax25. The hardware_address is  a  callsign 
  1170.      and the subnetwork mode is DG or VC ( only has  significance 
  1171.      for level 2 links ).
  1172.  
  1173.      The syntax of the command is :
  1174.  
  1175.      ARP [ destination [ + [ P ] protocol callsign [ mode ] ] ]
  1176.  
  1177.      or
  1178.  
  1179.      ARP [ destination [ - protocol ] ]
  1180.  
  1181.      In  the  first form an entry is made in the  table,  in  the 
  1182.      second an entry is deleted. This is only permitted for sysop 
  1183.      or manager.
  1184.  
  1185.      The parameters are :
  1186.  
  1187.      destination An address of the form nnn.nnn.nnn.nnn
  1188.      P           If present, marks the entry as 'published'
  1189.      protocol    AX25 or NETROM
  1190.      callsign    A valid amateur callsign, e.g. G8KBB-5
  1191.      mode        DG or VC
  1192.  
  1193.      If  'P' is entered, then the node will publish the  address. 
  1194.      Specifically,  if an ARP request is seen by the node  for  a 
  1195.      station  with  the address given, it will  send  a  response 
  1196.      advising the caller of the callsign to be used.
  1197.  
  1198.      More details on the operation of the router are contained in 
  1199.      section 7.
  1200.  
  1201. 3.29 UI
  1202.  
  1203.      The  UI command allows a string to be sent as a Level  2  UI 
  1204.      frame. The syntax is
  1205.  
  1206.           UI dest string_of_text_ending_in_return
  1207.  
  1208.      Dest  is  a callsign like destination such as  'MAIL'.  What 
  1209.      will  happen is that a single UI frame will be sent  with  a 
  1210.      source  callsign  of  the user  who  entered  the  command,a 
  1211.      destination callsign of dest, and the rest of the string  as 
  1212.      text.
  1213.  
  1214.      It  is designed to be used in situations where a  local  BBS 
  1215.      does not have access to a common channel and wishes to  send 
  1216.      mail notification packets. Not surprisingly, the ability  to 
  1217.      do this is BBS specific.
  1218.  
  1219. 4. Other Changes
  1220.  
  1221.      This  section covers the other miscellaneous changes to  the 
  1222.      software.
  1223.  
  1224. 4.1 Command Processor
  1225.  
  1226.      The command processor has been altered. In general, but  not 
  1227.      in  all cases, commands only appear on the 'help' menu  when 
  1228.      they are enabled, so for example the 'BBS' command will  not 
  1229.      be  shown  unless  it  has been enabled  with  the  'BBS  +' 
  1230.      command.  The  exception is the sysop commands,  like  MODE, 
  1231.      LINKS  and PARAM, which are never shown to users but are  of 
  1232.      interest  to them. If the appropriate bit is set however  in 
  1233.      the  MODE  command  ( see 3.5.11 ), then for  the  sysop  or 
  1234.      manager,  all commands appear in the help prompt -  EVEN  IF 
  1235.      DISABLED.
  1236.  
  1237.      The help screen now shows commands in a combination of upper 
  1238.      and lower case characters.
  1239.  
  1240. 4.2 Beacon digi
  1241.  
  1242.      It is possible to set a digi in the address used for  beacon 
  1243.      packets.  Details  of how to do this are  contained  in  the 
  1244.      configuration  guide. Note that this is provided  for  those 
  1245.      rare occasions when there is a genuine need. This is  rarely 
  1246.      the case and should not be done unless really necessary.
  1247.  
  1248. 5. CWID keyer.
  1249.  
  1250.      The  CWID  keyer  sends  the  station  callsign  in  CW   by 
  1251.      alternating  between the two modem tones. This is  nominally 
  1252.      sent  at  20 wpm once every 30 minutes, but  the  speed  and 
  1253.      period can be changed remotely. 
  1254.  
  1255.      After  a delay of 30 minutes, the callsign is sent  appended 
  1256.      to  the  end of the next data packet that is sent  over  the 
  1257.      air.  There  is  a 500 ms delay after the end  of  the  data 
  1258.      packet before the call is sent.
  1259.  
  1260.      The program prefers to send CWIDs appended to ordinary  data 
  1261.      packets. However, if one minute after the CWID has  supposed 
  1262.      to be sent it is still pending because no data packets  have 
  1263.      been  sent, it will key up the transmitter anyway.  Persist, 
  1264.      TxDelay  and other parameters are honored, but  the  process 
  1265.      involves  changing  the  SIO  mode and  this  will  have  an 
  1266.      aggrevating  effect  on any packets being received  in  full 
  1267.      duplex mode.
  1268.  
  1269.  
  1270. 6. Version X-2.
  1271.  
  1272.      X-1 was the first release of this code. The objective is  to 
  1273.      get  some  practical feedback and test the code  before  the 
  1274.      full release, version X-2, which I hope will be very similar 
  1275.      to  this release ( X-1H ). I have been saying this for  some 
  1276.      time  now, but things keep getting added. The  next  version 
  1277.      will hopefully be a significant change with extensions  from 
  1278.      G8AMD, but this may be some time off yet...
  1279.  
  1280.      Version  X-1A added the escape-N command and the  change  to 
  1281.      the connect, nodes and reset commands. The timers were  also 
  1282.      added to the stats command.
  1283.  
  1284.      Version X-1B removed all the escape commands apart from  C,D 
  1285.      and P. It also added the MODE command and extended the + and 
  1286.      - command qualifiers to all commands.
  1287.  
  1288.      Version  X-1C  added  TALK, MANAGER  and  AUDIT.  The  SYSOP 
  1289.      command  was  enhanced and the INFO command was  altered  to 
  1290.      limit  the  length  of a message ( a  bug  in  the  original 
  1291.      version of TheNet ). The help screen was changed to  display 
  1292.      commands in a combination of upper and lower case.
  1293.  
  1294.      Version  X-1D extended the auditing and statistics to  cover 
  1295.      auditing everything but level 3, and statistics of the  CPU, 
  1296.      Level 1, Level 2 and timers.
  1297.  
  1298.      Version  X-1E  added  beacon  timer  control,  the   connect 
  1299.      redirector, the nodes dump facility, level 3 & 4  statistics 
  1300.      and the LINKS and CALIBRATE commands.
  1301.  
  1302.      Version  X-1F  added the CLOSEDOWN, DXCLUSTER,  ACL,  CTEXT, 
  1303.      HELP and BTEXT commands. Another parameter was added to  the 
  1304.      MODE command to control textual messages. The mod  suggested 
  1305.      by DF2AU to correct the DCD latchup was included. Additional 
  1306.      statistics were added covering CRC errors, receiver overrun, 
  1307.      transmitter underrun and framing errors.
  1308.  
  1309.      Version X-1G added mainly the IP router, with the  following 
  1310.      commands  to control it - IPROUTE, ARP, IPSTATS,  IPADDRESS, 
  1311.      IPBROADCAST. In addition, the ALIAS, BBSALIAS, HOSTALIAS and 
  1312.      DXCALIAS commands crept in, as did QUIT as an alternative to 
  1313.      BYE.  The  help  messages extended to enable  nodes  in  the 
  1314.      routes  list to appear as alias:callsign, and an extra  byte 
  1315.      on the MODE command allowed '#' nodes to be selectively  NOT 
  1316.      broadcast.  The order of HELP and HOST commands  changed  so 
  1317.      that  'h'  on  its  own gave help not  host.  The  code  was 
  1318.      optimised  with  some time critical parts being  recoded  in 
  1319.      assembler and a peephole optimiser being used for  additonal 
  1320.      improvements.
  1321.  
  1322.      Version X-1H fixed 3 bugs in X-1G.
  1323.  
  1324.      If  you read this and say 'Pah. it doesn't do XXXXX' or  'It 
  1325.      still  doesn't  do YYYYY' or anything of a  similar  nature, 
  1326.      don't  keep  it to yourself. Tell me. I may well do  it.  An 
  1327.      example of this is a concern raised about the way the  nodes 
  1328.      broadcast  works on a multi-tnc crosslink.
  1329.  
  1330. 7. The IP router
  1331.  
  1332.      The IP router co-exists in the node with the other software. 
  1333.      It is connected to the L2 and L3(netrom) protocol  machines, 
  1334.      and is managed from the l7 switch. It will accept data  from 
  1335.      L2  Datagrams, L2 Virtual Circuits or NOS protocol  extended 
  1336.      netrom  frames. It will output to these 3 depending  on  the 
  1337.      setting of the IProute and ARP tables.
  1338.  
  1339.      The  router supports the IP options of NOS and also does  IP 
  1340.      fragmentation.  Level  2 segmentation is not  supported.  In 
  1341.      addition,  ICMP is implemented in so far as it is needed  to 
  1342.      respond  to  errors  or PINGs. No higher  layer  support  is 
  1343.      provided,   ie  TCP  is  not  implemented,   ip_send()   and 
  1344.      ip_receive()  are  only implemented in so far  as  they  are 
  1345.      needed for ICMP. You can therefore PING it but anything else 
  1346.      will solicit an ICMP error message.
  1347.  
  1348.      It  will  respond to ARP & REV_ARP requests but  will  never 
  1349.      initialte them. The MTU is 256 for AX.25 and 236 for netrom. 
  1350.      It  will accept longer datagrams than this and fragment  the 
  1351.      output but it is not recommended as it merely wastes RAM.
  1352.      
  1353.      It is possible to be creative in the use of L2 datagram  and 
  1354.      virtual circuits by use of the port default settings and the 
  1355.      ARP table. The algorithm used is :
  1356.  
  1357.           When  a frame is to be sent, the ARP table  is  scanned 
  1358.           for  the  appropriate entry. The entry  tells  it  what 
  1359.           callsign  to use. For netrom encapsulation, it is  send 
  1360.           to the netrom protocol handler. For AX.25 encapsulation 
  1361.           the following applies. The ARP table may indicate DG or 
  1362.           VC. In this case, that mode is taken. If there is no DG 
  1363.           or  VC entry, the TOS bits are examined. If  the  delay 
  1364.           bit  is set, a datagram mode is selected. If  not,  and 
  1365.           the  reliability  bit  is  set  a  virtual  circuit  is 
  1366.           selected.  If neither bit is set, the default mode  for 
  1367.           that  port  is  used to select a  mode  (  see  IPstats 
  1368.           command, first parameter ).
  1369.  
  1370.      Port addressing is not supported at the moment.
  1371.  
  1372.      The  IP router is manually controlled - no rspf or  rip,  or 
  1373.      even arp requests. This is because 32K of RAM does not allow 
  1374.      such niceities as queueing frames whilst waiting for address 
  1375.      resolution.
  1376.  
  1377. 8. MISC
  1378.  
  1379.      Anyone  interested  in  a copy of the  program,  drop  me  a 
  1380.      message  on  GB7MXM.#36.GBR.EU  Also,  any  suggestions  for 
  1381.      change gratefully received.
  1382.  
  1383. Dave G8KBB
  1384.      7, Rowanhayes Close
  1385.      Ipswich
  1386.      IP2 9SX
  1387.      England
  1388.