home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / hamradio / nos20l.zip / 20LDOC.ZIP / GG920725.TXT
Text File  |  1992-07-29  |  175KB  |  4,555 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                           Network Operating System
  11.                              User Reference Manual
  12.  
  13.  
  14.                                Phil Karn, KA9Q
  15.                                        and
  16.                        Gerard van der Grinten, PA0GRI
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.                This manual reflects version 911229 of NOS 2.0l
  48.                      as released to the public by PA0GRI
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                     - 2 -
  69.  
  70.  
  71.  
  72.  
  73.  
  74. 1.  The NOS.EXE Program
  75.  
  76. The MS-DOS executable file NOS.EXE (Further  called  Nos)  provides  Internet
  77. (TCP/IP),  NET/ROM  and  AX.25 facilities.  Because it has an internal multi-
  78. tasking operating system, Nos can act simultaneously as a  client,  a  server
  79. and  a  packet switch for all three sets of protocols. That is, while a local
  80. user accesses remote services, the system can also provide  those  same  ser-
  81. vices  to remote users while also switching IP, NET/ROM and AX.25 packets and
  82. frames between other client and server nodes.
  83.  
  84. The keyboard and display is used by the local operator to control  both  host
  85. and gateway level functions, for which a number of commands are provided.
  86.  
  87. 1.1.  Startup
  88.  
  89. nos [-b] [-s <#sockets>] [-d </directory>] [-v] [<startup file>]
  90.  
  91. When Nos is  executed  without  arguments,  it  attempts  to  open  the  file
  92. autoexec.nos in the root directory of the current drive.  If it exists, it is
  93. read and executed as though its contents were typed on the  console  as  com-
  94. mands.  This feature is useful for attaching communication interfaces, confi-
  95. guring network addresses, and starting the various services.
  96.  
  97. Four command-line options are accepted:
  98.  
  99. 1.1.1.  -b
  100.  
  101. The -b option specifies the use of BIOS for console output; the default is to
  102. write  directly  to the video display buffer. Use this option if you are run-
  103. ning under a  windowing  package  and  have  trouble  with  output  "bleeding
  104. through" on top of other windows.
  105.  
  106. 1.1.2.  -s <no_of_sockets>
  107.  
  108. The -s option specifies the size of the socket array to be  allocated  within
  109. Nos.  This limits the number of network connections that may exist simultane-
  110. ously; the default is 40.
  111.  
  112. 1.1.3.  -d </directory>
  113.  
  114. The -d option allows the user to specify a "root" directory  for  the  confi-
  115. guration and spool files; it defaults to the root directory of the system.
  116.  
  117. 1.1.4.  -v
  118.  
  119. The -v option allows the user to view command execution during the startup of
  120. Nos.  It  lets  the commands read from autoexec.nos echo before they are exe-
  121. cuted. This is a nice help if Nos stops (hangs) during initialization.
  122.  
  123. After all command line options, the name of a alternate startup file  may  be
  124. specified. This file is then opened and read instead of autoexec.nos.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.                                     - 3 -
  135. 1.2.  DOS environement variables.
  136.  
  137. The following DOS environement variables can be used  to  specify  things  to
  138. NOS.
  139.  
  140. 1.2.1.  TZ
  141.  
  142. The TZ variable should be set to the local timezone. Default is UTC.  This is
  143. used on the timestamp in smtp.
  144.  
  145. 1.2.2.  MAILER
  146.  
  147. The MAILER specifies what program should be started when the mail command  is
  148. entered. Default is BM.EXE.
  149.  
  150. 1.2.3.  COMSPEC
  151.  
  152. The COMSPEC specifies what command shell will be used to shell  out  of  Nos.
  153. This  is  normaly  set  by  MS-DOS  startup  to COMMAND.COM.  Default is also
  154. COMMAND.COM.
  155.  
  156. 1.2.4.  TMP
  157.  
  158. The TMP variable is used to create a spot where temporary files are  created.
  159. Without  TMP  being  set the temp files are created in the root directory.  A
  160. sample is "set TMP=C:\tmp\".
  161.  
  162. 1.2.5.  USER
  163.  
  164. The USER variable is used by ftp and Rlogin to set the username for the  rlo-
  165. gin  daemon on the remote system. The default when not setting USER is guest.
  166. Guess you don't like it, but that's life.  With ftp the user is suggested  in
  167. the  user name prompt. If a cr only is given the suggested name is used, oth-
  168. erwise the given name.
  169.  
  170. 2.  Console modes
  171.  
  172. The console may be in one of two modes: command mode and converse  mode.   In
  173. command  mode, the prompt net> is displayed and any of the commands described
  174. in the Commands chapter may be entered.  In converse mode, keyboard input  is
  175. processed according to the current session.
  176.  
  177. Sessions come in many types: Telnet, Ttylink, Rlogin, FTP, AX25, Finger, Com-
  178. mand, NETROM, Ping, More, Dial, Dir, PPP PAP, Hopcheck and Tip.
  179.  
  180. In a Telnet, Ttylink, AX25, NETROM, Rlogin, or Tip session, keyboard input is
  181. sent  to the remote system and any output from the remote system is displayed
  182. on the console.  In an FTP session, keyboard input is first examined  to  see
  183. if  it is a known local command; if so it is executed locally.  If not, it is
  184. "passed through"  to  the  remote  FTP  server.   (See  the  FTP  Subcommands
  185. chapter).   In a Ping session the user may test the path to a remote site, in
  186. a More session, the user may examine a local file. A Hopcheck session is used
  187. to trace the path taken by packets to reach a specified destination. A Finger
  188. session is used to peek at a remote system for its users (and what  they  are
  189. doing  on  some  extended  responses from UNIX systems). PPP PAP is used as a
  190. link setup like slip between two systems.
  191.  
  192. The keyboard also has cooked and raw  states.   In  cooked  state,  input  is
  193. line-at-a-time;  the  user may use the line editing characters ^U, ^R, ^B, ^W
  194. and backspace to erase the line, redisplay the line, redisplay the  remainder
  195. of  the  previous  line,  erase  last  word  and  erase  the  last character,
  196.  
  197.  
  198.  
  199.  
  200.                                     - 4 -
  201. respectively.  Hitting either return or line feed passes the complete line up
  202. to the application.  In raw mode, each character is immediately passed to the
  203. application as it is typed.  The keyboard is always in cooked state  in  com-
  204. mand  mode.   It  is  also cooked in converse mode on an AX25, FTP or NET/ROM
  205. session.  In a Telnet or Ttylink session it depends on whether the remote end
  206. has  issued  (and  the  local  end has accepted) the Telnet WILL ECHO option.
  207. (See the echo command).
  208.  
  209. On the IBM-PC, the user may escape back to command mode by  hitting  the  F10
  210. key  or  the  escape  key.   On other systems, the user must enter the escape
  211. character, which is by default control-] (hex 1d, ASCII GS). (Note that  this
  212. is  distinct from the ASCII character of the same name). The escape character
  213. can be changed (see the escape command). The F10 key can  be  redefined  with
  214. the  fkey  command  so the user is now warned to leave one escape possibility
  215. open for himself.  Setting both F10 and escape to unreachable codes renders a
  216. system unescapable and the user hung in a session.
  217.  
  218. In the IBM PC version, each session (including the command "session") has its
  219. own  screen.   When a new session is created, the command display is saved in
  220. memory and the screen is cleared.  When the command escape key  (usually  F10
  221. or  ^]) is hit, the current session screen is saved and the command screen is
  222. restored.  When a session is resumed, its screen is restored  exactly  as  it
  223. appeared  when  it was last current.  NosFp expects that the driver NANSY.SYS
  224. is loaded to support the screen and terminal emulation routines. ANSY.SYS has
  225. many problems and should NOT been used. Version 24 of nansy.sys (nan24hyc.zip
  226. on download systems) should be used  for  best  results.  Users  of  DeskView
  227. should  be  ok  with dvansy.sys as it has been reported that tab expansion is
  228. all right under DV.
  229.  
  230. 3.  Commands
  231.  
  232. This section describes the commands recognized in command mode, or  within  a
  233. startup  file  such  as autoexec.nos.  These are given in the following nota-
  234. tion:
  235.  
  236.         command
  237.         command literal_parameter
  238.         command subcommand <parameter>
  239.         command [<optional_parameter>]
  240.         command a | b
  241.  
  242.  
  243. Many commands take subcommands  or  parameters,  which  may  be  optional  or
  244. required.  In  general,  if a required subcommand or parameter is omitted, an
  245. error message will summarize the available subcommands  or  required  parame-
  246. ters.   (Giving  a '?' in place of the subcommand will also generate the mes-
  247. sage.  This is useful when the command word alone is a valid command.)  If  a
  248. command  takes  an  optional value parameter, issuing the command without the
  249. parameter generally displays the current value of the  variable.  (Exceptions
  250. to this rule are noted in the individual command descriptions.)
  251.  
  252. Two or more parameters separated by vertical bar(s) denote a  choice  between
  253. the  specified values.  Optional parameters are shown enclosed in [brackets],
  254. and a parameter enclosed in <angle  brackets>  should  be  replaced  with  an
  255. actual value or string.  For example, the notation <hostid> denotes an actual
  256. host or gateway, which may be specified in one of two ways:  as a numeric  IP
  257. address  in  dotted  decimal  notation (eg. 44.0.0.1.), or as a symbolic name
  258. listed in the file domain.txt,
  259.  
  260. All commands and many subcommands may be  abbreviated.  You  only  need  type
  261. enough  of a command's name to distinguish it from others that begin with the
  262.  
  263.  
  264.  
  265.  
  266.                                     - 5 -
  267. same series of letters. Parameters, however, must be typed in full.
  268.  
  269. Certain FTP subcommands (eg. put, get, dir, etc) are recognized only in  con-
  270. verse  mode with the appropriate FTP session; they are not recognized in com-
  271. mand mode.  (See the FTP Subcommands chapter.)
  272.  
  273. 3.1.  <CR>
  274.  
  275. Entering a carriage return (empty line) while in command  mode  puts  you  in
  276. converse  mode  with the current session. If there is no current session, Nos
  277. remains in command mode and reissues the net> prompt.
  278.  
  279. 3.2.  !
  280.  
  281. An alias for the shell command.
  282.  
  283. 3.3.  #
  284.  
  285. Commands starting with the hash mark (#) are ignored. This is  mainly  useful
  286. for comments in the autoexec.nos file.
  287.  
  288. 3.4.  abort [<session #>]
  289.  
  290. Abort a FTP get, put or dir operation in progress. If issued without an argu-
  291. ment,  the  current  session is aborted. (This command works only on FTP ses-
  292. sions.) When receiving a file, abort simply resets the data  connection;  the
  293. next  incoming  data packet will generate a TCP RST (reset) response to clear
  294. the remote server.  When sending a file, abort sends a premature end-of-file.
  295. Note  that  in  both cases abort will leave a partial copy of the file on the
  296. destination machine, which must be removed manually if it is unwanted.
  297.  
  298. 3.5.  arp
  299.  
  300. Display the Address Resolution Protocol table that maps IP addresses to their
  301. subnet  (link) addresses on subnetworks capable of broadcasting.  For each IP
  302. address entry the subnet type (eg. Ethernet, AX.25), subnet address and  time
  303. to  expiration is shown. If the link address is currently unknown, the number
  304. of IP datagrams awaiting resolution is also shown.
  305.  
  306. 3.5.1.  arp add <hostid> ether |  ax25  |  netrom  |  arcnet  <ether_addr>  |
  307. <ax25_addr>
  308.  
  309. Add a permanent entry to  the  table.  It  will  not  time  out  as  will  an
  310. automatically-created entry, but must be removed with the arp drop command.
  311.  
  312. 3.5.2.  arp drop <hostid> ether | ax25 | netrom | arcnet
  313.  
  314. Delete a permanent entry from the arp table.
  315.  
  316. 3.5.3.  arp flush
  317.  
  318. Drop all automatically-created entries in the ARP  table;  permanent  entries
  319. are not affected.
  320.  
  321. 3.5.4.  arp publish <hostid> ether | ax25 | netrom |  arcnet  <ether_addr>  |
  322. <ax25_addr>
  323.  
  324. This command is similar to the arp add command,  but  the  system  will  also
  325. respond  to  any  ARP request it sees on the network that seeks the specified
  326. address.  (Use this feature with great care.)
  327.  
  328.  
  329.  
  330.  
  331.  
  332.                                     - 6 -
  333. 3.6.  autoroute <yes|no>
  334.  
  335. Displays or sets the IP autorouting option. When set all AX25 IP packets  are
  336. analysed and remembered.
  337.  
  338. 3.7.  asystat
  339.  
  340. Display statistics on attached asynchronous communications  interfaces  (8250
  341. or  16550A),  if  any. The display for each port consists of three lines. The
  342. first line gives the port label and the configuration flags;  these  indicate
  343. whether  the port is a 16550A chip, the trigger character if any, whether CTS
  344. flow control is enabled,  whether  RLSD  (carrier  detect)  line  control  is
  345. enabled,  and the speed in bits per second.  (Receiving the trigger character
  346. causes the driver to signal upper layer software that data is  ready;  it  is
  347. automatically  set  to  the appropriate frame end character for SLIP, PPP and
  348. NRS lines.)
  349.  
  350. The second line of the status display shows receiver (RX) event  counts:  the
  351. total  number  of  receive interrupts, received characters, receiver overruns
  352. (lost characters) and the receiver high water mark.  The high water  mark  is
  353. the  maximum  number  of characters ever read from the device during a single
  354. interrupt. This is useful for monitoring system interrupt latency margins  as
  355. it  shows how close the port hardware has come to overflowing due to the ina-
  356. bility of the CPU to respond to a receiver interrupt in time. 8250 chips have
  357. no  FIFO,  so  the  high  water  mark cannot go higher than 2 before overruns
  358. occur. The 16550A chip,  however,  has  a  16-byte  receive  FIFO  which  the
  359. software  programs  to  interrupt  the CPU when the FIFO is one-quarter full.
  360. The high water mark should typically be 4 or 5 when a 16550A is used;  higher
  361. values  indicate  that  the  CPU  has at least once been slow to respond to a
  362. receiver interrupt.
  363.  
  364. When the 16550A is used, a count of FIFO timeouts is also displayed on the RX
  365. status line. These are generated automatically by the 16550A when three char-
  366. acter intervals go by with more than 0 but less  than  4  characters  in  the
  367. FIFO. Since the characters that make up a SLIP or NRS frame are normally sent
  368. at full line speed, this count will usually be a lower bound on the number of
  369. frames  received  on the port, as only the last fragment of a frame generally
  370. results in a timeout (and then only when the frame is not  a  multiple  of  4
  371. bytes long.)
  372.  
  373. Finally, the software fifo overruns and high water mark are displayed.  These
  374. indicate  whether  the  <bufsize> parameter on the attach command needs to be
  375. adjusted (see the Attach Commands chapter).
  376.  
  377. The third line shows transmit (TX) statistics, including  a  total  count  of
  378. transmit interrupts, transmitted characters, the length of the transmit queue
  379. in bytes, the number of status interrupts, and the number of  THRE  timeouts.
  380. The  status interrupt count will be zero unless CTS flow control or RLSD line
  381. control has been enabled.  The THRE timeout is a  stopgap  measure  to  catch
  382. lost  transmit  interrupts,  which  seem  to  happen  when  there is a lot of
  383. activity (ideally, this will be zero).
  384.  
  385. 3.8.  attach <hw type> ...
  386.  
  387. Configure and attach a hardware interface to  the  system.  The  details  are
  388. highly  interface  dependent and dependent on configuration flags in the file
  389. config.h when the software is build. It can be that not  all  drivers  listed
  390. below  will  be included in your copy of Nos.  Detailed instructions for each
  391. driver are in the Attach Commands chapter.  Drivers  are  available  for  the
  392. following hardware types:
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                                     - 7 -
  399. 3.8.1.  attach 3c500
  400.  
  401. Don't use this one anymore. Use the packet driver  instead.  This  driver  is
  402. obsolete and not supported anymore.
  403.  
  404. 3.8.2.  attach asy
  405.  
  406. Standard PC asynchronous interface (com port)  using  the  National  8250  or
  407. 16450 or 16550A chip or compatible equivalent.
  408.  
  409. 3.8.3.  attach axip
  410.  
  411. A "wormhole" ax25 digipeater device.
  412.  
  413. 3.8.4.  attach arcnet
  414.  
  415. A ARCnet driver via the PACKET driver.
  416.  
  417. 3.8.5.  attach drsi
  418.  
  419. N6TTO driver for the DRSI PCPA 8530 card.
  420.  
  421. 3.8.6.  attach eagle
  422.  
  423. WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
  424.  
  425. 3.8.7.  attach hapn
  426.  
  427. KE3Z driver for the Hamilton Amateur  Packet  Network  adapter  board  (Intel
  428. 8273).
  429.  
  430. 3.8.8.  attach hs
  431.  
  432. Special "high speed" 8530 driver for the WA4DSY 56kb/s modem.
  433.  
  434. 3.8.9.  attach kiss
  435.  
  436. This enables a multiplexed tnc type to be used for second channel. It is used
  437. to  connect  a second port to an already attached asy interface. It will copy
  438. most of the params of it's parent port.
  439.  
  440. 3.8.10.  attach netrom
  441.  
  442. This is a psuedo interface to enable NET/ROM operations.
  443.  
  444. 3.8.11.  attach packet
  445.  
  446. Driver for use with  separate  software  "packet  drivers"  meeting  the  FTP
  447. Software, Inc, Software Packet Driver specification.
  448.  
  449. 3.8.12.  attach pc100
  450.  
  451. Driver for the PACCOMM PC-100 (Zilog 8530) card.
  452.  
  453. 3.8.13.  attach pi
  454.  
  455. Dma driven 8530 scc board from VE3IFB.
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.                                     - 8 -
  465. 3.8.14.  attach scc
  466.  
  467. PE1CHL driver for generic 8530 cards.
  468.  
  469. 3.8.15.  attach slfp
  470.  
  471. Serial Line Faming Protocol packet driver.
  472.  
  473. An easy way to obtain a summary of the parameters required for a given device
  474. is  to  issue  a partial attach command (eg. attach packet.)  This produces a
  475. usage message giving the complete command format.
  476.  
  477. 3.9.  attended [off | on]
  478.  
  479. Displays or sets the global "I am present" flag in Nos. This flag is used  in
  480. the welcome header by incoming ttylink connections.
  481.  
  482. 3.10.  ax25 <subcommand>
  483.  
  484. These commands are for Ax25 interfaces.
  485.  
  486. 3.10.1.  ax25 bc <interface> [on | off]
  487.  
  488. The bc command displays or  enables  or  disables  broadcasts  via  interface
  489. interface when on | off are given.
  490.  
  491. 3.10.2.  ax25 bcinterval [<seconds>]
  492.  
  493. The bcinterval displays or sets the time in seconds  between  bc  broadcasts.
  494. On display both the interval and the countdown values are shown.
  495.  
  496. 3.10.3.  ax25 bckick <interface>
  497.  
  498. The bckick command issues a direct broadcast to interface interface  when  so
  499. enabled by a ax25 bc <interface> on command.
  500.  
  501. 3.10.4.  ax25 bctext ["broadcast text"]
  502.  
  503. The bctext command displays or sets the text to be send  for  broadcast  mes-
  504. sages send out every bcinterval seconds.
  505.  
  506. 3.10.5.  ax25 blimit [<limit>]
  507.  
  508. Display or set the AX25 retransmission backoff limit. Normally  each  succes-
  509. sive AX25 retransmission is delayed by twice the value of the previous inter-
  510. val; this is called binary exponential backoff.  When the backoff reaches the
  511. blimit  setting  it  is held at that value, which defaults to 30.  To prevent
  512. the possibility of "congestive collapse" on a loaded channel,  blimit  should
  513. be  set at least as high as the number of stations sharing the channel.  Note
  514. that this is applicable only on actual AX25 connections; UI frames will never
  515. be retransmitted by the AX25 layer.
  516.  
  517. 3.10.6.  ax25 dest
  518.  
  519. See ax25 hearddest command. This is a shorthand version of it.
  520.  
  521. 3.10.7.  ax25 digipeat [on | off]
  522.  
  523. Display or set the digipeater enable flag. If the axip interface is used this
  524. flag MUST be on , otherwise the digipeat function will not work at all.
  525.  
  526.  
  527.  
  528.  
  529.  
  530.                                     - 9 -
  531. 3.10.8.  ax25 filter <0 | 1 | 2 | 3>
  532.  
  533. The filter commands enables or disables the logging in  the  heard  lists  of
  534. source  and  destination  ax25_addresses. This is a bitwise or function where
  535. the 01 value is for source stations and the 02  value  for  destination  sta-
  536. tions. When the bit is off , logging is enabled, when on disabeled.
  537.  
  538. 3.10.9.  ax25 flush
  539.  
  540. Clear the AX.25 "heard" list (see ax25 heard).
  541.  
  542. 3.10.10.  ax25 heard [<interface>]
  543.  
  544. Display the AX.25 "heard" list. For each interface that is configured to  use
  545. AX.25,  a  list  of all ax25_addresses heard through that interface is shown,
  546. along with a count of the number of packets heard from each station  and  the
  547. interval, in hr:min:sec format, since each station was last heard.  The local
  548. station always appears first  in  the  listing;  the  packet  count  actually
  549. reflects the number of packets transmitted. This entry is always present even
  550. if no packets have been sent. If interface is given, only the heard list  for
  551. that  interface  is  displayed.   Note that logging of heard stations is con-
  552. trolled with the ax25 filter command.
  553.  
  554. 3.10.11.  ax25 hearddest [<interface>]
  555.  
  556. Displays the destination list, i.e. the addressed to stations.  Next  to  the
  557. time  the last transmission to that station the time that station replied (if
  558. heard) is displayed. This gives a good reference  to  see  if  a  station  is
  559. reachable and responding.
  560.  
  561. 3.10.12.  ax25 irtt [<milliseconds>]
  562.  
  563. Display or set the initial value of smoothed round trip time to be used  when
  564. a  new  AX25 connection is created. The value is in milliseconds.  The actual
  565. round trip time will be learned by measurement once the connection  has  been
  566. established.
  567.  
  568. 3.10.13.  ax25 kick <axcb>
  569.  
  570. Force a retransmission on the specified AX.25  control  block.   The  control
  571. block address can be found with the ax25 status command.
  572.  
  573. 3.10.14.  ax25 maxframe [<count>]
  574.  
  575. Establish the maximum number of frames that will be allowed to remain  unack-
  576. nowledged at one time on new AX.25 connections. This number cannot be greater
  577. than 7.  Without count it will display the current  setting.  Note  that  the
  578. maximum outstaning frame count only works with virtual connections. UI frames
  579. are not affected.
  580.  
  581. 3.10.15.  ax25 mycall [<ax25_addr>]
  582.  
  583. Display or set the default local AX.25 address.  The standard format is used,
  584. (eg.  KA9Q-0 or WB6RQN-5).  This command must be given before any attach com-
  585. mands using AX.25 mode are given.
  586.  
  587. 3.10.16.  ax25 paclen [<size>]
  588.  
  589. Limit the size of I-fields on new AX.25  connections.   If  IP  datagrams  or
  590. fragments  larger than this are transmitted, they will be transparently frag-
  591. mented at the AX.25 level, sent as a series of I frames, and reassembled back
  592.  
  593.  
  594.  
  595.  
  596.                                    - 10 -
  597. into a complete IP datagram or fragment at the other end of the link. To have
  598. any effect on IP datagrams, this parameter should be less than  or  equal  to
  599. the MTU of the associated interface.
  600.  
  601. 3.10.17.  ax25 pthresh [<size>]
  602.  
  603. Display or set the poll threshold to be used for new AX.25 Version 2  connec-
  604. tions.   The  poll  threshold controls retransmission behavior as follows. If
  605. the oldest unacknowledged I-frame size is less than the  poll  threshold,  it
  606. will  be  sent  with the poll (P) bit set if a timeout occurs.  If the oldest
  607. unacked I-frame size is equal to or greater than the threshold, then a RR  or
  608. RNR  frame,  as  appropriate, with the poll bit set will be sent if a timeout
  609. occurs.
  610.  
  611. The idea behind the poll threshold is that the extra time needed  to  send  a
  612. "small"  I-frame  instead of a supervisory frame when polling after a timeout
  613. is small, and since there's a good chance the I-frame will have  to  be  sent
  614. anyway  (i.e.,  if it were lost previously) then you might as well send it as
  615. the poll. But if the I-frame is  large,  send  a  supervisory  (RR/RNR)  poll
  616. instead  to  determine  first  if retransmitting the oldest unacknowledged I-
  617. frame is necessary; the timeout might have been caused by a lost acknowledge-
  618. ment.   This  is  obviously a tradeoff, so experiment with the poll threshold
  619. setting. The default is 128 bytes, one half the default value of paclen.
  620.  
  621. 3.10.18.  ax25 reset <axcb>
  622.  
  623. Delete the AX.25 connection control block at the specified address.
  624.  
  625. 3.10.19.  ax25 retry [<count>]
  626.  
  627. Limit the number of successive unsuccessful retransmission  attempts  on  new
  628. AX.25  connections.  If  this  limit  is  exceeded,  link re-establishment is
  629. attempted. If this fails retry times, then the connection  is  abandoned  and
  630. all queued data is deleted.
  631.  
  632. 3.10.20.  ax25 route
  633.  
  634. Display the AX.25 routing table that specifies the digipeaters to be used  in
  635. reaching a given station.
  636.  
  637. 3.10.20.1.  ax25 route add <target> [digis ... ]
  638.  
  639. Add an entry to the AX.25 routing table.  An automatic ax25 route add is exe-
  640. cuted  if  digipeaters are specified in an AX25 connect command, or if a con-
  641. nection is received from a remote station  via  digipeaters.  Such  automatic
  642. routing table entries won't override locally created entries, however.
  643.  
  644. 3.10.20.2.  ax25 route drop <target>
  645.  
  646. Drop an entry for target from the AX.25 routing table.
  647.  
  648. 3.10.20.3.  ax25 route mode <target> [vc | datagram | interface]
  649.  
  650. Sets the mode to vc | datagram |  interface  for  target.  Interface  is  the
  651. default for that interface. Vc is a virtual circuit (ax25 connected mode) and
  652. datagram is unconnected mode, (AX25 UI frames).
  653.  
  654. 3.10.21.  ax25 status [<axcb>]
  655.  
  656. Without an argument, display a one-line summary of each AX.25 control  block.
  657. If  the  address  of a particular control block is specified, the contents of
  658.  
  659.  
  660.  
  661.  
  662.                                    - 11 -
  663. that control block are dumped in more detail. Note that the send queue  units
  664. are frames, while the receive queue units are bytes.
  665.  
  666. 3.10.22.  ax25 t3 [<milliseconds>]
  667.  
  668. Display or set the AX.25 idle "keep alive" timer. Value is in milliseconds.
  669.  
  670. 3.10.23.  ax25 t4 [<seconds>]
  671.  
  672. Display or set the AX.25 Link "redundancy" timer. Value is in seconds.   When
  673. no exchange has been had during this time the link is reset and closed.
  674.  
  675. 3.10.24.  ax25 timertype [l | e | o]
  676.  
  677. Sets or displays the type of timer  used  for  retransmission  and  recovery:
  678. linear, exponential or original.
  679.  
  680. 3.10.25.  ax25 version [1 | 2]
  681.  
  682. Display or set the version of the AX.25 protocol to attempt  to  use  on  new
  683. connections.  The  default is 1 (the version that does not use the poll/final
  684. bits).
  685.  
  686. 3.10.26.  ax25 window [<size>]
  687.  
  688. Set the number of bytes that can be pending on an AX.25 receive queue  beyond
  689. which  I  frames  will  be  answered with RNR (Receiver Not Ready) responses.
  690. This presently applies only to suspended interactive  AX.25  sessions,  since
  691. incoming  I-frames  containing  network (IP, NET/ROM) packets are always pro-
  692. cessed immediately and are not placed on the receive queue.  However, when an
  693. AX.25  connection carries both interactive and network packet traffic, an RNR
  694. generated because of backlogged interactive traffic will  also  stop  network
  695. packet traffic from being sent.
  696.  
  697. 3.11.  bbs
  698.  
  699. Enter the local bbs port (same as a telnet session to your own station).
  700.  Current commands are:
  701.  help      ? <command>
  702.  area      a [<area>]
  703.  bye       b
  704.  connect   c <node>
  705.            c <interface> <ax25_addr> [[<ax25_addr>] .... ]
  706.  download  d <filename>
  707.            du <filename>         (for uuencode bin file)
  708.  escape    e [<escape char.]
  709.  finger    f [<user>]
  710.  help      h [<command>]
  711.  info      i
  712.  jheard    j
  713.  kill      k <msg number>
  714.  list      l [<msg number>]
  715.  mbusers   m
  716.  nodes     n <node>
  717.  operator  o
  718.  ports     p
  719.  read      r [<msg number>]
  720.  send      s[f] <usename[@hostid] [<from_addr>] [$bul_id]
  721.  send repl sr [<mgs number>]
  722.  telnet    t <hostid>
  723.  upload    u <filename>
  724.  
  725.  
  726.  
  727.  
  728.                                    - 12 -
  729.  verbose   v <n>
  730.  what      w [<directory>]
  731.  expert    x
  732.  zap       z <filename>
  733.  sysop     @
  734.  
  735. 3.12.  bootp <subcommand>
  736.  
  737. This is a bootp server / client, included into Nos. It is picked up from  the
  738. University  of  Michigan in Ann Arbor. It is included into the sources of Nos
  739. but is not used nor tested by me. (PA0GRI) Its usability  is  fague  but  the
  740. discussions  on  tcp-group drove me to include this for possible use of reus-
  741. able addresses.
  742.  
  743. 3.12.1.  bootp start
  744.  
  745. Starts the bootp server.
  746.  
  747. 3.12.2.  bootp stop
  748.  
  749. Stops the bootp server.
  750.  
  751. 3.12.3.  bootp dns [<ipaddr>]
  752.  
  753. Display or set the list of domain name servers for bootp.
  754.  
  755. 3.12.4.  bootp dyip [<iface> | <iface> <ipaddr1> <ipaddr2> | <iface> off]
  756.  
  757. Display or set the interface address range. The range is between ipaddr1  and
  758. ipaddr2, both in dot notation.
  759.  
  760. 3.12.5.  bootp host [<hostaddr> <hardware type>  <hardware  addr>  <ip  addr>
  761. [boot file]]
  762.  
  763. Display or activate a bootp process. Hardware type is netrom,  ether,  macap-
  764. pletalk  or ax25. Hardware addr is the interface name. Ip addr must be in dot
  765. notation.
  766.  
  767. 3.12.6.  bootp rmhost <ipaddr>
  768.  
  769. Delete ipaddr from the host table.
  770.  
  771. 3.12.7.  bootp homedir [<directory> | default]
  772.  
  773. Display or set the directory where the bootp files reside. The default direc-
  774. tory is bpfiles.
  775.  
  776. 3.12.8.  bootp defaultfile [<bootfile> | default]
  777.  
  778. Display or set the file name of the bootp file. The default is boot.
  779.  
  780. 3.12.9.  bootp logfile [<filename> | default] [on | off]
  781.  
  782. Starts or stops the logging of bootp requests to filename or the default file
  783. name bootplog.
  784.  
  785. 3.12.10.  bootp logscreen [on | off]
  786.  
  787. Enables or disables the logging of bootp to the screen.
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.                                    - 13 -
  795. 3.13.  bootpd
  796.  
  797. This starts the server daemon for bootp.
  798.  
  799. 3.14.  cd [<dirname>]
  800.  
  801. Change the current working directory, and display the new  setting.   Without
  802. an  argument,  cd  simply displays the current directory without change.  The
  803. pwd command is an alias for cd.
  804.  
  805. 3.15.  close [<session>]
  806.  
  807. Close the specified session; without an argument, close the current  session.
  808. On an AX.25 session, this command initiates a disconnect.  On a FTP or Telnet
  809. session, this command sends a FIN (i.e., initiates a close) on the  session's
  810. TCP  connection.   This is an alternative to asking the remote server to ini-
  811. tiate a close (QUIT to FTP, or the logout command appropriate for the  remote
  812. system  in  the case of Telnet).  When either FTP or Telnet sees the incoming
  813. half of a TCP connection close, it automatically responds by closing the out-
  814. going half of the connection.  Close is more graceful than the reset command,
  815. in that it is less likely to leave the remote TCP in a "half-open" state.
  816.  
  817. 3.16.  cls
  818.  
  819. Clears the current session screen (command screen).
  820.  
  821. 3.17.  comm <interface> <text-string>
  822.  
  823. The comm command sends text-string via interface.  This can be used  to  send
  824. straight  text  to an tnc still in TAPR command mode during Nos startup. Note
  825. that to preserve spaces tabs etc. to include the string between double  quote
  826. characters. Aka: comm ax1 "start kiss"
  827.  
  828. 3.18.  connect <iface> <ax25_addr> [<digipeater> ... ]
  829.  
  830. Initiate a "vanilla" AX.25 session  to  the  specified  ax25_addr  using  the
  831. specified interface. Data sent on this session goes out in conventional AX.25
  832. packets with no upper layer protocol.   The  de-facto  presentation  standard
  833. format  is  used, in that each packet holds one line of text, terminated by a
  834. carriage return.  A single AX.25 connection  may  be  used  for  terminal-to-
  835. terminal,  IP  and  NET/ROM traffic.  The three types of data being automati-
  836. cally separated by their AX.25 Level 3 Protocol IDs.
  837.  
  838. Up to 7 optional digipeaters may be given; note that  the  word  via  is  NOT
  839. needed.  If  digipeaters  are  specified, they are automatically added to the
  840. AX25 routing table as though the ax25 route add command had been given before
  841. issuing the connect command.
  842.  
  843. 3.19.  delete <filename>
  844.  
  845. The filename is removed from the file system.
  846.  
  847. 3.20.  detach <iface>
  848.  
  849. Detach a previously attached interface from the system. All IP routing  table
  850. entries referring to this interface are deleted, and forwarding references by
  851. any other interface to this interface are removed.
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.                                    - 14 -
  861. 3.21.  dialer <iface> [<file> [<seconds> [<pings> [<hostid>]]]]
  862.  
  863. Setup an autodialer session for the interface.   Whenever  the  interface  is
  864. idle  for  the  interval in <seconds>, the autodialer will ping the <hostid>.
  865. If there is no answer after <pings> attempts, the autodialer will execute the
  866. special commands contained in the <dialer-file>.
  867.  
  868. If the interval in <seconds> is zero, a previous dialer command process  will
  869. be removed.  If the number of <pings> is zero, the <dialer-file> will be exe-
  870. cuted without pinging the <hostid>.
  871.  
  872. The file may have any valid name, and must be located  in  the  configuration
  873. root  directory  (see  the Installion section).  The commands in the file are
  874. described in the Dialer Subcommands chapter.
  875.  Commands in file are:
  876.  
  877. 3.21.1.  control <up | down>
  878.  
  879.  
  880. 3.21.2.  send <string> [<milliseconds>]
  881.  
  882. Sends string to the interface. If milliseconds is given, inter character tim-
  883. ing is milliseconds milliseconds.
  884.  
  885. 3.21.3.  speed <bps>
  886.  
  887. Displays or sets the current interface speed to bps baud.
  888.  
  889. 3.21.4.  status <up | down>
  890.  
  891.  
  892. 3.21.5.  wait <milliseconds> [<string> [speed]]
  893.  
  894. Wait the amount of milliseconds. If string is given, incoming characters from
  895. the  interface  are compared with string. If an compare is found and speed is
  896. the string speed, the next numbers read from the interface is  the  new  bau-
  897. drate  used.  This  works  like HAYES response CONNECT 9600. The wait command
  898. could habe been "wait 10000 CONNECT speed".  This waits 10  seconds  for  the
  899. CONNECT response from the modem.
  900.  
  901. 3.22.  dir [<dirname>]
  902.  
  903. List the contents of the specified directory on the console. If  no  argument
  904. is  given,  the  current directory is listed. Note that this command works by
  905. first listing the directory into a temporary file, and then creating  a  more
  906. session to display it. After this completes, the temporary file is deleted.
  907.  
  908. 3.23.  disconnect [<session>]
  909.  
  910. An alias for the close command (for the benefit of AX.25 users).
  911.  
  912. 3.24.  domain <subcommand>
  913.  
  914. The domain commands control and show the working  of  the  name  to  internet
  915. address  mapping software. NOS currently only has a client with a simple file
  916. reading local server. A real server is needed to service  the  community  for
  917. their growing needs.
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.                                    - 15 -
  927. 3.24.1.  domain addserver <hostid>
  928.  
  929. Add a domain name server to the list of name servers.  Note that,  when  this
  930. command is given in the autoexec.nos file the ip address command should given
  931. be before this command is used.  (If not, Nos will not kow how to resolve the
  932. address,  and  an answer will never be recognized, or worse: just plain hangs
  933. the system.)
  934.  
  935. 3.24.2.  domain cache <subcommand>
  936.  
  937. Following commands work on the domain cache. These are resource records  (see
  938. RFC 1033/1034) held in memory.
  939.  
  940. 3.24.2.1.  domain cache clean [<yes | no>]
  941.  
  942. Displays or sets the discard of expired  resource  records.  Expired  records
  943. have  their timeout value decremented to zero. Normaly resource records get a
  944. default timeout value of 1800 seconds. After this time  they  are  considered
  945. "old"  and  if  referenced  again the domain name resolver should be enquired
  946. again.  When clean is off (the default), expired records will be retained; if
  947. no replacement can be obtained from another domain name server, these records
  948. will continue to be used.
  949.  
  950. When clean is on, expired records will be removed from the file whenever  any
  951. new record is added to the file.
  952.  
  953. 3.24.2.2.  domain cache list
  954.  
  955. This command shows the current content of the in memory  cache  for  resource
  956. records.
  957.  
  958. 3.24.2.3.  domain cache size [<size>]
  959.  
  960. Display or set the nominal maximum size  of  the  local  memory  cache.   The
  961. default is 20.
  962.  
  963. (Note: The cache may be temporarily larger when waiting for new records to be
  964. written to the domain.txt file.)
  965.  
  966. 3.24.2.4.  domain cache wait [<seconds>]
  967.  
  968. Display or set the interval in seconds to wait for additional activity before
  969. updating the domain.txt file.  The default is 300 seconds (5 minutes).
  970.  
  971. 3.24.3.  domain dropserver <hostid>
  972.  
  973. Remove a domain name server from the list of name servers.   You  are  warned
  974. when you delete the last name server.
  975.  
  976. 3.24.4.  domain listservers
  977.  
  978. List the currently configured domain name servers, along with  statistics  on
  979. how  many  queries  and  replies  have been exchanged with each one, response
  980. times, etc.
  981.  
  982. 3.24.5.  domain maxwait [<timeout>]
  983.  
  984. This sets a timeout value (1 to 255  seconds)  to  a  query  or  domain  name
  985. server.   This is not set for a already defined server but will be used for a
  986. newly defined name server. Also the value is used for domain nslookups.  Note
  987. that  name  servers  can  have (PC based) trouble finding records in an large
  988.  
  989.  
  990.  
  991.  
  992.                                    - 16 -
  993. database. The default is set to 30 seconds.
  994.  
  995. 3.24.6.  domain retry [<retries>]
  996.  
  997. The retry value (number) limits the number of  queries  send  out  to  remote
  998. domain   name   resolvers   before  giving  up  and  telling  you  that  host
  999. xyzzy.ampr.org does not exist. The total time lost with a query is retries  *
  1000. timeout * number of domain servers defined.
  1001.  
  1002. 3.24.7.  domain suffix [<domain suffix> | none]
  1003.  
  1004. Display or specify the default domain name suffix to be appended  to  a  host
  1005. name  when  it  contains  no  periods.  For  example, if the suffix is set to
  1006. ampr.org. and the user enters telnet ka9q, the domain resolver  will  attempt
  1007. to  find  ka9q.ampr.org..  If the host name being sought contains one or more
  1008. periods, however, the default suffix is NOT applied if the last part  of  the
  1009. name is less than 5 characters and contains only letters; e.g.,
  1010.  telnet foo.bar would NOT be turned into foo.bar.ampr.org..
  1011.  telnet foo.ka9q will be turned into foo.ka9q.ampr.org..  Note that a  trail-
  1012. ing  dot  (.)  is  required for the suffix.  If the suffix is the string none
  1013. (without trailing period) the current suffix is cleared and forgotten.
  1014.  
  1015. 3.24.8.  domain trace [on | off]
  1016.  
  1017. Display or set the flag controlling the tracing of domain server requests and
  1018. responses.  Trace messages will be seen only if a domain name being sought is
  1019. not found in the local cache file, domain.txt.
  1020.  
  1021. 3.24.9.  domain translate [off | on]
  1022.  
  1023. Display or set the flag that controls the translation of  ip  adress  in  dot
  1024. notation  into  symbolic  names. The translation process makes heavely use of
  1025. reverse domain name lookups. Do not set this flag unless you have a good  and
  1026. fast connection to a domain name server or have a fast domain.txt handler and
  1027. domain.txt contains all IN-ADDR.ARPA. records you ever wanted.
  1028.  
  1029. 3.24.10.  domain verbose [off | on]
  1030.  
  1031. Display or set the flag controlling the return of a full name (true) or  only
  1032. the first name (dot delimiter) (false). This is for IP address to name trans-
  1033. lation only.
  1034.  
  1035. 3.24.11.  domain xyzzy
  1036.  
  1037. This is (when spelled fully) a magic word to enable domain queries to outside
  1038. domain  servers when reading commands from the startup file. This should only
  1039. be used by those who have reliable access to a domain name server.
  1040.  
  1041. 3.25.  drsistat
  1042.  
  1043. Shows the statistics for all configured drsi boards.
  1044.  
  1045. 3.26.  dump <hex-address | .> [decimal-range]
  1046.  
  1047. The dump command shows memory in hex and ascii. Hex-address is a 32 bit value
  1048. for  a  PC  split into page address and page offset. A splitting colon is not
  1049. used nor accepted. If decimal-range is not given , 128 bytes  are  displayed.
  1050. dump . displayes memory starting at the end of a previous dump command.
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.                                    - 17 -
  1059. 3.27.  echo [accept | refuse]
  1060.  
  1061. Display or set the flag controlling client Telnet's response to a remote WILL
  1062. ECHO offer.
  1063.  
  1064. The Telnet presentation protocol specifies that in the  absence  of  a  nego-
  1065. tiated  agreement  to the contrary, neither end echoes data received from the
  1066. other.  In this mode, a Telnet client session echoes keyboard  input  locally
  1067. and  nothing  is  actually  sent until a carriage return is typed. Local line
  1068. editing is also performed: backspace deletes the last character typed,  while
  1069. control-U deletes the entire line.
  1070.  
  1071. When communicating from keyboard to keyboard the standard local echo mode  is
  1072. used, so the setting of this parameter has no effect. However, many timeshar-
  1073. ing systems (eg. UNIX) prefer to do their own echoing of typed input.   (This
  1074. makes  screen  editors  work  right, among other things). Such systems send a
  1075. Telnet WILL ECHO offer immediately upon receiving an incoming Telnet  connec-
  1076. tion  request.  If  echo  accept  is  in effect, a client Telnet session will
  1077. automatically return a DO ECHO response. In  this  mode,  local  echoing  and
  1078. editing is turned off and each key stroke is sent immediately (subject to the
  1079. Nagle tinygram algorithm in TCP).  While this mode is  just  fine  across  an
  1080. Ethernet, it is clearly inefficient and painful across slow paths like packet
  1081. radio channels. Specifying echo refuse causes an incoming WILL ECHO offer  to
  1082. be  answered with a DONT ECHO; the client Telnet session remains in the local
  1083. echo mode.  Sessions already in the remote echo mode are  unaffected.  (Note:
  1084. Berkeley  Unix  has  a  bug  in  that it will still echo input even after the
  1085. client has refused the WILL ECHO offer. To get around this problem, enter the
  1086. stty -echo command to the shell once you have logged in.)
  1087.  
  1088. 3.28.  eol [unix | standard]
  1089.  
  1090. Display or set Telnet's end-of-line behavior when in remote  echo  mode.   In
  1091. standard  mode,  each  key  is sent as-is. In unix mode, carriage returns are
  1092. translated to line feeds.  This command is not necessary with all  UNIX  sys-
  1093. tems;  use  it  only  when you find that a particular system responds to line
  1094. feeds but not carriage returns.  Only SunOS release 3.2 seems to exhibit this
  1095. behavior; later releases are fixed.
  1096.  
  1097. 3.29.  escape [<char>]
  1098.  
  1099. Display or set the current command-mode escape character in hex.  On the  PC,
  1100. the  escape  character  is default ^]. The alternate escape key is F10 unless
  1101. F10 is redefined with fkey.
  1102.  
  1103. 3.30.  etherstat
  1104.  
  1105. Display 3-Com Ethernet controller statistics (if configured).
  1106.  
  1107. 3.31.  exit
  1108.  
  1109. Exit the nos program and return to MS-DOS.
  1110.  
  1111. 3.32.  finger <user@hostid> | <@hostid>
  1112.  
  1113. Issue a network finger request for user user at host hostid. This  creates  a
  1114. client  session  which  may  be interrupted, resumed, reset, etc, just like a
  1115. Telnet client session. If only @hostid is given, all users on that  host  are
  1116. identified.
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.                                    - 18 -
  1125. 3.33.  fkey [<number> [<string>]]
  1126.  
  1127. Fkey displays or sets values for the programmable keys on  the  PC  keyboard.
  1128. fkey  alone  gives  a  display  of all remapable keys and their number.  fkey
  1129. number displays the current value for that key.  fkey number  string  assigns
  1130. string  to that key. Control characters can be created by prefixing then with
  1131. an ^ character. A cr is ^M.  To insert an ^ in the string 2 ^'s next to  each
  1132. other are needed.  Following is the map of keys and their number. F1 is func-
  1133. tion key 1.  Sf1 is Shift function key 1. Cf1 is Control function key 1.  Af1
  1134. is Alt function key 1. Etc. The right most row is the numeric keypad.
  1135.  
  1136.     key number   key  number   key  number   key  number  key   number
  1137.     f1   59      sf1   84      cf1   94      af1  104     pgup   73
  1138.     f2   60      sf2   85      cf2   95      af2  105     pgdn   81
  1139.     f3   61      sf3   86      cf3   96      af3  106     home   71
  1140.     f4   62      sf4   87      cf4   97      af4  107     end    79
  1141.     f5   63      sf5   88      cf5   98      af5  108     arup   72
  1142.     f6   64      sf6   89      cf6   99      af6  109     ardn   80
  1143.     f7   65      sf7   90      cf7  100      af7  110     ar l   75
  1144.     f8   66      sf8   91      cf8  101      af8  111     ar r   77
  1145.     f9   67      sf9   92      cf9  102      af9  112     ins    82
  1146.     f10  68      sf10  93      cf10 103      af10 113     del    83
  1147. The mapping is taken to  look  like  a  vt100  /  ansi  keyboard.   Currently
  1148. assigned value strings for following keys:
  1149.     number  string     key
  1150.     59     " 33OP"   /* F1 */
  1151.     60     " 33OQ"   /* F2 */
  1152.     61     " 33OR"   /* F3 */
  1153.     62     " 33OS"   /* F4 */
  1154.     71     " 10"     /* home*/
  1155.     72     " 33[A"   /* up arrow*/
  1156.     73     " 25"     /* pgup */
  1157.     75     " 33[D"   /* left arrow */
  1158.     77     " 33[C"   /* right arrow */
  1159.     79     " 05"     /* end */
  1160.     80     " 33[B"   /* down arrow */
  1161.     81     " 12"     /* pgdn */
  1162.     82     " 01"     /* ins */
  1163.     83     " 177"    /* del */
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.                                    - 19 -
  1191. 3.34.  ftp <hostid>
  1192.  
  1193. Open an FTP control channel to the specified remote host and  enter  converse
  1194. mode  on  the  new  session.   Responses from the remote server are displayed
  1195. directly on the screen. See theFTP Subcommands chapter  for  descriptions  of
  1196. the commands available in a FTP session.
  1197.  
  1198. 3.35.  ftype [ascii | binary | image | logical <size>]
  1199.  
  1200. This command displays or sets the default start file mode (ascii  or  binary)
  1201. for  ftp  transfers.  If  ftype binary or image is given the next ftp session
  1202. started will be in binary type. No binary command is needed once the  session
  1203. is started. In case of logical, the "word" size is set to size.
  1204.  
  1205. 3.36.  help
  1206.  
  1207. Display a brief summary of top-level commands.
  1208.  
  1209. 3.37.  hop <subcommands>
  1210.  
  1211. These commands are used to test the connectivity of the network.
  1212.  
  1213. 3.37.1.  hop check <hostid>
  1214.  
  1215. Initiate a hopcheck session to the specified host. This uses a series of  UDP
  1216. "probe"  packets  with  increasing IP TTL fields to determine the sequence of
  1217. gateways in the path to the specified destination. This function is patterned
  1218. after the UNIX traceroute facility.
  1219.  
  1220. ICMP message tracing should be turned off before  this  command  is  executed
  1221. (see the icmp trace command).
  1222.  
  1223. 3.37.2.  hop maxttl [<hops>]
  1224.  
  1225. Display or set the maximum TTL value to be used in hop check sessions.   This
  1226. effectively bounds the radius of the search.
  1227.  
  1228. 3.37.3.  hop maxwait [<seconds>]
  1229.  
  1230. Display or set the maximum interval, in seconds, that a hopcheck session will
  1231. wait for responses at each stage of the trace. The default is 5 seconds.
  1232.  
  1233. 3.37.4.  hop queries [<count>]
  1234.  
  1235. Display or set the number of UDP probes that will be sent at  each  stage  of
  1236. the trace. The default is 3.
  1237.  
  1238. 3.37.5.  hop trace [on | off]
  1239.  
  1240. Display or set the flag that controls the display of  additional  information
  1241. during a hop check session.
  1242.  
  1243. 3.38.  hostname [<name>]
  1244.  
  1245. Display or set the local host's name. By convention this should be  the  same
  1246. as  the  host's primary domain name. This string is used only in the greeting
  1247. messages of the various network servers;  note  that  it  does  NOT  set  the
  1248. system's IP address.
  1249.  
  1250. If <name> is the same as an <iface> (see the Attach commands  chapter),  this
  1251. command  will  search for a CNAME domain resource record which corresponds to
  1252.  
  1253.  
  1254.  
  1255.  
  1256.                                    - 20 -
  1257. the IP address of the <iface>.
  1258.  
  1259. 3.39.  hs
  1260.  
  1261. Display statistics about the HS high speed HDLC  driver  (if  configured  and
  1262. active).
  1263.  
  1264. 3.40.  icmp <subcommand>
  1265.  
  1266. These commands are used for the Internet Control Message Protocol service.
  1267.  
  1268. 3.40.1.  icmp echo [on | off]
  1269.  
  1270. Display or set the flag controlling the asynchronous  display  of  ICMP  Echo
  1271. Reply packets.  This flag must be on for one-shot pings to work (see the ping
  1272. command.)
  1273.  
  1274. 3.40.2.  icmp status
  1275.  
  1276. Display statistics  about  the  Internet  Control  Message  Protocol  (ICMP),
  1277. including the number of ICMP messages of each type sent or received.
  1278.  
  1279. 3.40.3.  icmp trace [on | off]
  1280.  
  1281. Display or set the flag controlling the display of ICMP error messages. These
  1282. informational messages are generated by Internet routers in response to rout-
  1283. ing, protocol or congestion problems. This option should be turned off before
  1284. using  the  hop  check  facility because it relies on ICMP Time Exceeded mes-
  1285. sages, and the asynchronous display of these messages will  be  mingled  with
  1286. hop check command output.
  1287.  
  1288. 3.41.  ifconfig
  1289.  
  1290. Display a list of interfaces, with a short status for each.
  1291.  
  1292. 3.41.1.  ifconfig [<iface> [[[ <subcommand>  <param>]  <subcommand>  <param>]
  1293. .... ]
  1294.  
  1295. When only iface is given, a extended interface status is displayed.  Multiple
  1296. subcommand / parameter can be put on one line.
  1297.  
  1298. 3.41.2.  ifconfig <iface> broadcast <addr>
  1299.  
  1300. Set the broadcast address of interface iface to addr.  Addr can eighter be an
  1301. ax25_addr  or an ether_addr, depending on the interface type, with 1's in the
  1302. host part of the address.  This is related to the netmask  sub-command.   See
  1303. also the arp command.
  1304.  
  1305. 3.41.3.  ifconfig <iface> description ["description"]
  1306.  
  1307. This command sets the interface description to the string  specified.  If  no
  1308. string  is  supplied,  the current description is cleared. The description is
  1309. displayed with the ifconfig iface command (no parameters) and with the  mail-
  1310. box commands.
  1311.  
  1312. 3.41.4.  ifconfig <iface> encapsulation <slip | ax25 | ether | encap | ppp>
  1313.  
  1314. Sets the encapsulation for interface iface to slip / ax25 / ether /  encap  /
  1315. ppp.
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.                                    - 21 -
  1323. 3.41.5.  ifconfig <iface> forward <iface-2>
  1324.  
  1325. When a forward is defined, all output for interface iface  is  redirected  to
  1326. the  interface  directed by iface-2.  To remove the forward, set <iface-2> to
  1327. <iface>.
  1328.  
  1329. 3.41.6.  ifconfig <iface> ipaddress <addr>
  1330.  
  1331. Set the IP address to addr for this interface. This might be nessesary when a
  1332. system  acts  as  a gateway. Like an system with IP address 44.137.1.8 has an
  1333. Internet  access  via  its  ethernet.  The  Internet  IP  address  could   be
  1334. 129.179.122.10.  An  ifconfig  ec0  ipaddress 129.179.122.10 sets the correct
  1335. address for that interface. Now routing to that system will work.  (Note that
  1336. the  44.x.x.x  address is NOT connected to the Internet.)  See also the host-
  1337. name and ip address commands.
  1338.  
  1339. 3.41.7.  ifconfig <iface> linkaddress <hardware-dependant>
  1340.  
  1341. Set the hardware dependant address for this interface.  For AX.25 this can be
  1342. the callsign, for ethernet a new ethernet address.
  1343.  
  1344. 3.41.8.  ifconfig <iface> mtu <param>
  1345.  
  1346. Set the maximum transfer unit to param octeds (bytes).  See the  Setting  ...
  1347. MTU, MSS and Window chapter for more information.
  1348.  
  1349. 3.41.9.  ifconfig <iface> netmask <address>
  1350.  
  1351. Set the sub-net mask for this interface.  The <address> takes the form of  an
  1352. IP  address  with 1's in the network and subnet parts of the address, and 0's
  1353. in the host part of the address.  Sample:  ifconfig  ec0  netmask  0xffffff00
  1354. for  a  class  C  network  (24  bits).  This is related to the broadcast sub-
  1355. command.  See also the route command.
  1356.  
  1357. 3.41.10.  ifconfig <iface> rxbuf <size>
  1358.  
  1359. Set the receive buffer size.
  1360.  
  1361. 3.42.  info
  1362.  
  1363. Info gives information about the version of Nos  currently  running  and  its
  1364. buildin  configuration.  The  configuration  info  is  build  with defines in
  1365. config.h in the source distribution. That way it gives automatically  correct
  1366. configuration information.
  1367.  
  1368. 3.43.  ip <subcommand>
  1369.  
  1370. These commands are used for the Internet Protocol service.
  1371.  
  1372. 3.43.1.   ip  access  <permit|deny|delete>  <dest   addr>[/<bits>]   <ifname>
  1373. [lowport [higport]]
  1374.  
  1375. Set or display access control for IP routing functions. This  command  imple-
  1376. ments  router  access functions to NosFp. Permit enables dest-addr packets to
  1377. be routed via ifname. Deny disables those. If lowport is not given, all ports
  1378. are  assumed. If only lowport is given, that port is only checked for permis-
  1379. sion If  lowport  and  highport  are  given,  that  is  the  range  of  ports
  1380. permitted/denied.   Dest-addr can be the word all for all addresses possible.
  1381. Lowport can be the word none for all ports.  The ip access delete must  match
  1382. a previous defined permit or deny to be able to delete that definition.  Some
  1383. samples:
  1384.  
  1385.  
  1386.  
  1387.  
  1388.                                    - 22 -
  1389.  ip access permit 44/8 ax0
  1390.  ip access deny all ax0 1 1023
  1391.  ip access permit all ax0 If no access list is created, all interfaces  might
  1392. carry  all types. If an access control is defined for an interface there must
  1393. be an permit defined for that interface to  allow  trafic.  Thus  an  partial
  1394. denyal without an permit is an complete denyal.
  1395.  
  1396. 3.43.2.  ip address [<hostid>]
  1397.  
  1398. Display or set the default local IP  address.  This  command  must  be  given
  1399. before  an  attach  command if it is to be used as the default IP address for
  1400. the interface.
  1401.  
  1402. 3.43.3.  ip rtimer [<seconds>]
  1403.  
  1404. Display or set the IP reassembly timeout. The default is 30  seconds.   Value
  1405. is in seconds.
  1406.  
  1407. 3.43.4.  ip status
  1408.  
  1409. Display Internet Protocol (IP) statistics, such as total  packet  counts  and
  1410. error counters of various types.
  1411.  
  1412. 3.43.5.  ip ttl [<hops>]
  1413.  
  1414. Display or set the default time-to-live value  placed  in  each  outgoing  IP
  1415. datagram.  This limits the number of switch hops the datagram will be allowed
  1416. to take. The idea is to bound the lifetime of the  packet  should  it  become
  1417. caught  in  a routing loop, so make the value slightly larger than the number
  1418. of hops across the network you expect to transit packets.  The default is set
  1419. at compilation time to the official recommended value for the Internet.
  1420.  
  1421. 3.44.  isat [on | off]
  1422.  
  1423. Display or set the AT flag.  Normaly this flag is set when  an  interface  is
  1424. attached  with an interrupt of 8 or higher. This is to signal that the second
  1425. interrupt controllerc in a AT also needs an return of interrupt  signal.   If
  1426. an  AT  type  clock is in use, this command will allow measurement of time in
  1427. milliseconds, rather than clock ticks (55 milliseconds per clock tick).  Dur-
  1428. ing  I/O initialisation this flag is set if the monitor prom has the standard
  1429. byte 0xfc at address f000:fffe.
  1430.  
  1431. 3.45.  kick [<session>]
  1432.  
  1433. Kick all sockets associated with a session; if no argument is given, kick the
  1434. current  session.   Performs  the same function as the ax25 kick and tcp kick
  1435. commands, but is easier to type.
  1436.  
  1437. 3.46.  lock [password <"password string">]
  1438.  
  1439. Locks the keyboard or defines a password string.  If password is  given  then
  1440. <password> is saved as the unlock string.  If no parameters are supplied, the
  1441. keyboard becomes locked when a password was specified earlier.  If  the  key-
  1442. board  is  locked,  the password is requested.  If a correct password is sup-
  1443. plied, the keyboard becomes unlocked.  The setting of the password and  lock-
  1444. ing  of  the  keyboard  can  only been done by the system console keyboard or
  1445. autoexec.nos startup file.  The password can not been shown.
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.                                    - 23 -
  1455. 3.47.  log [stop | <filename>]
  1456.  
  1457. Display the current log filename or set the filename for logging server  ses-
  1458. sions.  If  stop is given as the argument, logging is terminated (the servers
  1459. themselves are unaffected).  If a file name is given as an  argument,  server
  1460. session log entries will be appended to it.
  1461.  
  1462. 3.48.  lzw [<subcommand>]
  1463.  
  1464. Lzw is the data compression capability on  some  sockets.  This  command  set
  1465. defines or changes their definition. Normaly leave this set default.
  1466.  
  1467. 3.48.1.  lzw mode <fast|compact>
  1468.  
  1469. Displays or sets  the  compression  methode  used  on  data  compression  for
  1470. specific sockets. Currently SMTP can use compression.
  1471.  
  1472. 3.48.2.  lzw bits <number>
  1473.  
  1474. Displays or sets the number of bits used for the compression size.  The  more
  1475. bits defined the larger the table space needed. Range is 9 to 16.
  1476.  
  1477. 3.49.  mail
  1478.  
  1479. This command will start a shell escape command. The mailer  used  is  defined
  1480. with the DOS environment variable MAILER, wich defaults to BM.EXE.
  1481.  
  1482. 3.50.  mbox [<subcommand>]
  1483.  
  1484. Display the status of the mailbox server system (if configured).
  1485.  
  1486. 3.50.1.  mbox attend [yes | no]
  1487.  
  1488. Displays or sets the attended flag on. This is used to announce in the  mail-
  1489. box if the station mannager is willing to attend his station (chat).
  1490.  
  1491. 3.50.2.  mbox expert <on|off>
  1492.  
  1493. Displays or set the level expected of a mailbox user. When set (s)he  gets  a
  1494. short  ( > ) prompt. When not set a long prompt is send with the first letter
  1495. of each mailbox command as prompt. The user can then set Xpert  mode  to  get
  1496. the short prompt.
  1497.  
  1498. 3.50.3.  mbox fwdinfo ["forward info"]
  1499.  
  1500. Displays or sets the mailbox forward info to be included in the R:  line  for
  1501. forwarded BBS bulletins.  An empty string ("") as info clears the info field.
  1502.  
  1503. Sample: netrom fwdinfo "HNLNET BBS"
  1504.  
  1505. Will show '[HNLNET BBS]' in the R: line.
  1506.  
  1507. 3.50.4.  mbox haddress ["home-address"]
  1508.  
  1509. Displays or sets the home address field to be included in  the  R:  line  for
  1510. forwarded BBS bulletins.  An empty string ("") clears the field.
  1511.  
  1512. Sample: netrom haddress "#CRV.OR.USA"
  1513.  
  1514. Will show '@WG7J#CRV.OR.USA' in the R: line. (when ax mycall is WG7J)
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.                                    - 24 -
  1521. 3.50.5.  mbox jumpstart <on|off>
  1522.  
  1523. Displays or sets the mailbox jumpstart code. When set  and  an  "known"  node
  1524. connects to the mailbox, no extra line needs to be send to activate the mail-
  1525. box but the prompt is send directly. Warning: When set, it takes a  while  to
  1526. hear  all  nodes and an AX25 connect could have an wrong start as there is no
  1527. wait for a level 3 protocol check.  Especialy  RSPF  in  virtual  mode  could
  1528. course serious problems.
  1529.  
  1530. 3.50.6.  mbox kick
  1531.  
  1532. To kick the mailbox back in activity after retry timeouts.
  1533.  
  1534. 3.50.7.  mbox maxmsg
  1535.  
  1536. To display or set the maximum number of messages per area when  an  notesfile
  1537. is shown to a user. This reserves lots of memory for every mailbox session.
  1538.  
  1539. 3.50.8.  mbox motd ["message string"]
  1540.  
  1541. Display ot set the mailbox welcoming Message Of The Day.
  1542.  
  1543. 3.50.9.  mbox nrid <on|off>
  1544.  
  1545. DIsplays or sets the Netrom id flag. When set the node id is displayed on the
  1546. prompt line.
  1547.  
  1548. 3.50.10.  mbox operator [<address>]
  1549.  
  1550. The operator command shows or sets  an  alternate  address  for  the  control
  1551. operator. When set and mbox attend is off or the user is "shelled out" and an
  1552. mbox user requests a Operator command, the ttylink session is  redirected  to
  1553. the address specified. Else it works as before that the mbox user is notified
  1554. with "Unattended". When the system pointed to by address  has  also  set  its
  1555. attended to off, then an Unattended is replied with as well (but generated by
  1556. the remote station). This is a "flaky" way of having an  attended  unattended
  1557. system.
  1558.  
  1559. 3.50.11.  mbox password <"password string">
  1560.  
  1561. Sets a password string to be presented to Sysops entering that  mode  in  the
  1562. mailbox  (using  the  @ command and having that priviledge set to their login
  1563. name/password in f/ftpusers). When a password is defined (max 30  characters)
  1564. then  (s)he  is  prompted with 5 numbers before letting her/him in.  The five
  1565. numbers represent the 5 character locations in the  string  defined,  whereby
  1566. the  first character is number 0.  Multiple lines of 5 characters can be send
  1567. to fool "snoopers".  The end of password sending is signaled  with  an  empty
  1568. line.  If  there  was a good response, sysop mode is entered.  The setting of
  1569. the password can only been done by the system console or autoexec.nos startup
  1570. file. The password can not been shown.
  1571.  
  1572. 3.50.12.  mbox qth ["qth info"]
  1573.  
  1574. Sample: netrom qth "Driebruggen, NL"
  1575.  
  1576.  
  1577. Displays or sets the info for qth in the R: line for forwarded BBS messages.
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.                                    - 25 -
  1587. 3.50.13.  mbox secure <yes|no>
  1588.  
  1589. Displays or sets the security option for mailbox gateway users. If set  users
  1590. comming  in via telnet to the bbs are not allowed to use the gateway.  If not
  1591. set anybody can use the gateway. (Note: No check for Bozo's).  Also the mail-
  1592. box send command is disabled except for ax25 and netrom connects.
  1593.  
  1594. 3.50.14.  mbox smtptoo <yes|no>
  1595.  
  1596. Displays or sets the flag to include SMTP headers in BBS messages.  When  set
  1597. SMTP headers are included in messages. When not set not included.
  1598.  
  1599. 3.50.15.  mbox status
  1600.  
  1601. An alias for just entering mbox on the prompt line.
  1602.  
  1603. 3.50.16.  mbox timer [<seconds>]
  1604.  
  1605. Display the current interval and time remainig or set the mailbox  forwarding
  1606. timer.
  1607.  
  1608. 3.50.17.  mbox tiptimeout
  1609.  
  1610. Displays or sets the timeout value for tip connection timeout. After  timeout
  1611. seconds of no activity the connection is closed.
  1612.  
  1613. 3.50.18.  mbox trace [yes | no]
  1614.  
  1615. Displays or sets mailbox forward trace code flag. The trace is  very  minimal
  1616. but every one working on mailbox/forward code now has a common flag Mtrace.
  1617.  
  1618. 3.50.19.  mbox utc <offset>
  1619.  
  1620. Displays or sets the offset you are according  to  ZULU  time.  Positive  and
  1621. negative  numbers  are supported and full leap year and month calculation are
  1622. done. This is used by the mailbox forwarding to give a standard time  in  the
  1623. R: line.
  1624.  
  1625. 3.50.20.  mbox zipcode zip
  1626.  
  1627. Displays or sets the info for the zip field for R:  line  BBS  header  lines.
  1628. This  field  is  max 7 characters long as released. For USA the zip is only 6
  1629. numbers long. Netherlands has 4 figures a space and 2  letters.  Guess  every
  1630. PTT wants something they "invented" their own.
  1631.  
  1632. Sample: netrom zip "3465 TJ"    or:  netrom zip 54551
  1633.  
  1634.  
  1635. 3.51.  memory <subcommand>
  1636.  
  1637. These commands are used for memory allocation.
  1638.  
  1639. 3.51.1.  memory debug [on|off]
  1640.  
  1641. Displays or sets the memory allocator debug flag. If set debug information is
  1642. written  to the log file containing most flags and parameters from the memory
  1643. allocation routines.
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.                                    - 26 -
  1653. 3.51.2.  memory efficient [yes | no]
  1654.  
  1655. Displays or sets the search algorithm for buffer memory. When set the  search
  1656. is  always  started  from  the beginning of the free list. This is slower but
  1657. keeps memory fragmentation to a minimum. When clear search is started on  the
  1658. end,  accounting  for  more  memory  fragmentation but keeping speed. Roumers
  1659. state that you should include this command as the first line in autoexec.nos.
  1660. The current releases default sets efficient to yes.
  1661.  
  1662. 3.51.3.  memory freelist
  1663.  
  1664. Display the storage allocator free list. Each entry consists  of  a  starting
  1665. address, in hex, and a size, in decimal bytes.
  1666.  
  1667. 3.51.4.  memory ibufsize [<size>]
  1668.  
  1669. Display or set the size of the buffers in the  interrupt  buffer  pool.   The
  1670. size  should  be  set to the largest type of buffer plus a header size of 22.
  1671. For example: If your ax25 is the omly interface and a packet length of 256 is
  1672. defined,  the  ibufsize  should  be 256 + 10 * 6 + 22. The 10 * 6 is the ax25
  1673. header (source , destination and 8 digipeaters).
  1674.  
  1675. 3.51.5.  memory minheap [<number>]
  1676.  
  1677. Displays or sets the minimum heap size to be allocated before shell  escaping
  1678. to  DOS.  This  assures a free heap so that Nos can run trough without gettig
  1679. short on memory for a while.
  1680.  
  1681. 3.51.6.  memory nibufs [<number>]
  1682.  
  1683. Display or set the number of interrupt buffer pool buffers.  If the number of
  1684. buffers  is  set,  the  statistics in the memory status display are reset for
  1685. number of interrupt buffer fails. The minimum available value is set  to  the
  1686. requested  number  of buffers.  A roule of thumb for the number of buffers is
  1687. to watch the statistics and keep a minimum of 2  free  buffers.  Increase  or
  1688. decrease as required.
  1689.  
  1690. 3.51.7.  memory sizes
  1691.  
  1692. Display a histogram of storage allocator request sizes. Each histogram bin is
  1693. a binary order of magnitude (i.e., a factor of 2).
  1694.  
  1695. 3.51.8.  memory status
  1696.  
  1697. Display a summary of storage allocator statistics. The first line  shows  the
  1698. base address of the heap, its total size, the amount of heap memory available
  1699. in bytes and as a percentage of the total heap size, and the amount of memory
  1700. left  over  (i.e., not placed on the heap at startup) and therefore available
  1701. for shell subcommands.
  1702.  
  1703. The second line shows the total number of calls to allocate and  free  blocks
  1704. of  memory, the difference of these two values (i.e., the number of allocated
  1705. blocks outstanding), the number of allocation requests that were  denied  due
  1706. to  lack  of memory, and the number of calls to free() that attempted to free
  1707. garbage (eg. by freeing the same block twice or freeing a garbled pointer).
  1708.  
  1709. The third line shows the garbage collection status.  Garbage collection is  a
  1710. separate  process running every second. If memory is "low" garbage collection
  1711. routines are called in "Red alert" mode, else in "Yellow alert".
  1712.  
  1713. The fourth line shows the number of calls to malloc and  free  that  occurred
  1714.  
  1715.  
  1716.  
  1717.  
  1718.                                    - 27 -
  1719. with  interrupts  off. In normal situations these values should be zero.  The
  1720. fourth line shows statistics for the special pool of fixed-size buffers  used
  1721. to satisfy requests for memory at interrupt time. The variables shown are the
  1722. number of buffers currently in the  pool,  their  size,  and  the  number  of
  1723. requests that failed due to exhaustion of the pool.
  1724.  
  1725. The fifth line shows the current setting of the interrupt  buffer  pool,  its
  1726. minimal  value  and the number of no buffers available.  These statistics are
  1727. reset when a memory nibufs <number> command is given.
  1728.  
  1729. 3.51.9.  memory thresh [<size>]
  1730.  
  1731. Displays or sets the memory threshold size in bytes.  If  memory  gets  below
  1732. this value , no more new sessions are started or accepted.
  1733.  
  1734. 3.52.  mkdir <dirname>
  1735.  
  1736. Create a sub-directory in the current working directory.
  1737.  
  1738. 3.53.  mode <iface> [vc | datagram]
  1739.  
  1740. Control the default transmission mode on the specified AX.25  interface.   In
  1741. datagram mode, IP packets are encapsulated in AX.25 UI frames and transmitted
  1742. without any other link level mechanisms, such as connections or  acknowledge-
  1743. ments.
  1744.  
  1745. In vc (virtual circuit) mode, IP packets are encapsulated in AX.25  I  frames
  1746. and are acknowledged at the link level according to the AX.25 protocol.  Link
  1747. level connections are opened if necessary.
  1748.  
  1749. In both modes, ARP is used to map IP to AX.25 addresses.  The defaults can be
  1750. overridden  with the type-of-service (TOS) bits in the IP header.  Turning on
  1751. the "reliability" bit causes I frames to be used, while turning on  the  "low
  1752. delay"  bit uses UI frames.  (The effect of turning on both bits is undefined
  1753. and subject to change).
  1754.  
  1755. In both modes, IP-level fragmentation is done if the datagram is larger  than
  1756. the interface  MTU.  In virtual circuit mode, however, the resulting datagram
  1757. (or fragments) is further fragmented at the AX.25 layer if it (or  they)  are
  1758. still  larger  than  the  AX.25  paclen  parameter.  In  AX.25 fragmentation,
  1759. datagrams are broken into several I frames and reassembled at  the  receiving
  1760. end  before  being passed to IP. This is preferable to IP fragmentation when-
  1761. ever possible because of decreased overhead (the IP header isn't repeated  in
  1762. each  fragment)  and  increased  robustness  (a  lost fragment is immediately
  1763. retransmitted by the link layer).
  1764.  
  1765. 3.54.  more <file> [<file> ...]
  1766.  
  1767. Display the specified file(s) a screen at a time.  To  proceed  to  the  next
  1768. screen,  press  the  space bar; to cancel the display, hit the 'q' key.  A CR
  1769. advances a line.  The more command creates a session that you can suspend and
  1770. resume just like any other session.
  1771.  
  1772. 3.55.  motd [<"message of the day">]
  1773.  
  1774. Display the current message or  sets  the  welcome  message  to  the  defined
  1775. string.
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.                                    - 28 -
  1785. 3.56.  multitask [on | off]
  1786.  
  1787. Displays or sets the multi task flag. If set Nos  continues  to  service  its
  1788. interrupts  and  handling  of  normal operation when put in the background by
  1789. executing a shell escape. Some programs do not like  to  miss  valuable  time
  1790. taken away this way and weard results can happen. Clearing the flag stops all
  1791. activiity fron Nos when put in the background.
  1792.  
  1793. 3.57.  netrom <subcommand>
  1794.  
  1795.  
  1796. 3.57.1.  netrom acktime [<milliseconds>]
  1797.  
  1798. Displays or sets the ack delay timer, similary to ax25 t2.
  1799.  
  1800. 3.57.2.  netrom alias <alias>
  1801.  
  1802. This sets the netrom alias for this station. Other stations  can  connect  to
  1803. the  ax25  callsign  and  to the Netrom alias (when set). The alias is broad-
  1804. casted with a Netrom broadcast.
  1805.  
  1806. 3.57.3.  netrom bcnodes <iface>
  1807.  
  1808. Initiates an immediate broadcast of nodelist on iface.
  1809.  
  1810. 3.57.4.  netrom call <call>
  1811.  
  1812. Displays or sets the call to be used by the netrom interface. Note: this is a
  1813. shortcut for the "ifconfig netrom linkaddress call" command.
  1814.  
  1815. 3.57.5.  netrom connect <node>
  1816.  
  1817. Start a connection to node.
  1818.  
  1819. 3.57.6.  netrom choketime [<milliseconds>]
  1820.  
  1821. Display or set the time breaking a send choke. Choke is the term netrom  uses
  1822. for flow control conditions.
  1823.  
  1824. 3.57.7.  netrom derate [on | off]
  1825.  
  1826. Display or set automatic derating of netrom routes on link failure.
  1827.  
  1828. 3.57.8.  netrom interface <iface> <quality>
  1829.  
  1830. Define a netrom interface iface.  The quality can be between 1 and  255.  For
  1831. compatibility  with other implementations set this to 192 normaly. A check is
  1832. made that the interface is of type CL_AX25,  meaning  NETROM  capable  media.
  1833. Note:  the alias is not specified on this line anymore. Use netrom alias com-
  1834. mand.
  1835.  
  1836. 3.57.9.  netrom irtt [<milliseconds>]
  1837.  
  1838. Display or set the initial round trip time.
  1839.  
  1840. 3.57.10.  netrom kick <&nrcb>
  1841.  
  1842. Give the control block a kick to get activity going again.
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.                                    - 29 -
  1851. 3.57.11.  netrom load [<filename>]
  1852.  
  1853. When fully implemented reloads a saved netrom  node  list  to  continue  from
  1854. where you left when you saved the list. All entry's read are time decremented
  1855. as if normal time just went on. If it took some time  (obsotimer  *  x)  your
  1856. list could be empty as they all timed out.
  1857.  
  1858. 3.57.12.  netrom minquality [<value>]
  1859.  
  1860. Display or set the minimum quality for recognizing  a  node  entry.   Entry's
  1861. below this value are not considered valuable for usage.
  1862.  
  1863. 3.57.13.  netrom nodefilter <subcommand>
  1864.  
  1865. Node filtering.
  1866.  
  1867. 3.57.13.1.  netrom nodefilter add <neighbor> <iface>
  1868.  
  1869. Allow neighbor to give us node updates.
  1870.  
  1871. 3.57.13.2.  netrom nodefilter drop <neighbor> <iface>
  1872.  
  1873. Disallow neighbor to give us node updates.
  1874.  
  1875. 3.57.13.3.  netrom nodefilter mode [none | accept | reject]
  1876.  
  1877. Display or set the initial filter schema. None accepts  all.   Accept,accepts
  1878. only  from  nodes  defined in netrom nodefilter add lists.  Reject,no accepts
  1879. from nodes defined in netrom nodefilter add lists.
  1880.  
  1881. 3.57.14.  netrom nodetimer [<seconds>]
  1882.  
  1883. Display or set the interval our node list is transmitted.
  1884.  
  1885. 3.57.15.  netrom obsotimer [<seconds>]
  1886.  
  1887. Display or set the time a node quality gets decremented.
  1888.  
  1889. 3.57.16.  netrom promiscious [off | on]
  1890.  
  1891. Enables nodes with a higher quality than defined with minquality.  If on, all
  1892. nodes are received, independent od nodefilter.
  1893.  
  1894. 3.57.17.  netrom qlimit [<bytes>]
  1895.  
  1896. Display or set the maximum queue limit for chat. Similar to ax25 window.
  1897.  
  1898. 3.57.18.  netrom reset <&nrcb>
  1899.  
  1900. Remove the control block. You can find the control block with socket.
  1901.  
  1902. 3.57.19.  netrom retries [<value>]
  1903.  
  1904. Display or set the maximum number of retries on connect, disconnect or data.
  1905.  
  1906. 3.57.20.  netrom route <subcommand>
  1907.  
  1908. Netrom routing commands.
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.                                    - 30 -
  1917. 3.57.20.1.  netrom route add <alias> <destination> <iface> <quality>  <neigh-
  1918. bor>
  1919.  
  1920. Add a netrom route.
  1921.  
  1922. 3.57.20.2.  netrom route drop <destination> <neighbor> <iface>
  1923.  
  1924. Delete a netrom route.
  1925.  
  1926. 3.57.20.3.  netrom route info <destination>
  1927.  
  1928. Display the route it would take to get to destination.
  1929.  
  1930. 3.57.21.  netrom status
  1931.  
  1932. Displays all netrom connections.
  1933.  
  1934. 3.57.22.  netrom save [<filename>]
  1935.  
  1936. When fully implemented, saves the current  netrom  node  list  in  memory  to
  1937. /netrom.sav or filename, if given.
  1938.  
  1939. 3.57.23.  netrom timertype [exponential | linear]
  1940.  
  1941. Displays or sets the type of backoff.
  1942.  
  1943. 3.57.24.  netrom ttl [<hops>]
  1944.  
  1945. Display or set the maximum number of hops a frame might hop before discarded,
  1946. if it did not reach its destination before.
  1947.  
  1948. 3.57.25.  netrom user [<username>]
  1949.  
  1950. Display or set our netrom user name. This is used on outgoing connects.
  1951.  
  1952. 3.57.26.  netrom verbose [off | on]
  1953.  
  1954. Display or set the verbose flag. If set all nodes known to us are transmitted
  1955. each  time  the  nodetimer  expires. If off, only your stations node ident is
  1956. send out.
  1957.  
  1958. 3.57.27.  netrom window [<frames>]
  1959.  
  1960. Display or set the size of the sliding window. This is the largest  send  and
  1961. receive window we might negotiate.
  1962.  
  1963. 3.58.  nntp <subcommand>
  1964.  
  1965. Network news transfer protocol has the following subcommands:
  1966.  
  1967. 3.58.1.  nntp addserver <nntpserver> <seconds> [<range>] [<groups>]
  1968.  
  1969. Add a nntp news server to quiry  every  seconds  interval  for  new  articles
  1970. specified  by  the nntp groups command. Range can be a limit in time to query
  1971. like nntp addserver someserver 600 22:00-23:00,  to  only  query  the  server
  1972. between 10 and 11pm.  Multiple nntp add can be used co concatenate groups (up
  1973. to 512 bytes) The interval seconds can be set to 0, so that normaly the  nntp
  1974. client  does not query the server regulary but an nntp kick nntpserver can be
  1975. used to start a session.
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.                                    - 31 -
  1983. 3.58.2.  nntp directory <directory>
  1984.  
  1985. Show or set default directory for spooling news.  This  is  not  the  control
  1986. directory but the (alternate) place to spool articles to.
  1987.  
  1988. 3.58.3.  nntp dropserver <nntpserver>
  1989.  
  1990.  
  1991. 3.58.4.  nntp groups <group> [<group> ...]
  1992.  
  1993. Set or display currently set newsgroups.
  1994.  
  1995. 3.58.5.  nntp  kick <nntpserver>
  1996.  
  1997. Kick the client to get in touch with the named server.
  1998.  
  1999. 3.58.6.  nntp listservers
  2000.  
  2001. Lists the curently defined servers.
  2002.  
  2003. 3.59.  nntp quiet [yes | no]
  2004.  
  2005. Shows or sets the flag controlling the display of newly  received  nntp  news
  2006. messages.  The  smpt  quiet  fag controls the beep following the message.  If
  2007. both are off, nothing is shown, keeping the  display  from  getting  hung  on
  2008. -more- when running unattended.
  2009.  
  2010. 3.60.  nntp trace <level>
  2011.  
  2012. Sets or shows the current trace level for the nntp client.  0  No  tracing  1
  2013. (default) displays serious errors.  2  displays as 1 and transient errors.  3
  2014. displays as 2 and session progress.  4  displays as  3  and  actual  received
  2015. articles.  5  displays errors.
  2016.  
  2017. 3.61.  nrstat
  2018.  
  2019. Displays the netrom interface statistics.
  2020.  
  2021. 3.62.  param <iface> [<param> ...]
  2022.  
  2023. Invoke a device-specific control routine.  On  a  KISS  TNC  interface,  this
  2024. sends  control  packets  to the TNC.  Data bytes are treated as decimal.  For
  2025. example, param ax0 1 255  will set the keyup timer (type field =  1)  on  the
  2026. KISS TNC configured as ax0 to 2.55 seconds (255 x .01 sec).  On a SLIP inter-
  2027. face, the param command allows the baud rate to be read  (without  arguments)
  2028. or  set.  On  asy  lines DTR and RTS can be (and possibly should be) set with
  2029. param iface dtr 1 and param iface rts 1.  The implementation of this  command
  2030. for the various interface drivers is incomplete and subject to change.
  2031. Current commands defined are:
  2032.    0  Data       - Normal KISS data
  2033.    1  TxDelay    - set TX delay for TNC
  2034.    2  Persist    - set persistence delay for TNC
  2035.    3  Slottime   - set slottime delay for TNC
  2036.    4  TxTail     - set TX tail delay for TNC
  2037.    5  Fulldup    - set Full duplex for TNC
  2038.    6  Hardware   - Hardware dependent
  2039.    7  TxMute     -
  2040.    8  DTR        - 0 = down, 1 = up
  2041.    9  RTS        - 0 = down, 1 = up
  2042.   10  Speed      - baud rate
  2043.   11  Enddelay   -
  2044.  
  2045.  
  2046.  
  2047.  
  2048.                                    - 32 -
  2049.   12  Group      -
  2050.   13  Idle       -
  2051.   14  Min        -
  2052.   15  Maxkey     -
  2053.   16  Wait       -
  2054.   17  Parity     - 0 = none, 1 = even, 2 = odd parity
  2055.  129  Down       -
  2056.  130  Up         -
  2057.  254  Return2    - Some tnc's need this
  2058.  255  Return     - Reset a tnc from KISS into command mode
  2059.  
  2060. 3.63.  ping <hostid> [<length> [<milliseconds> [<incflag>]]]
  2061.  
  2062. Ping (send ICMP Echo Request packets to) the specified host. By  default  the
  2063. data  field  contains only a small timestamp to aid in determining round trip
  2064. time; if the optional length argument is given,  the  appropriate  number  of
  2065. data bytes (consisting of hex 55) are added to the ping packets.
  2066.  
  2067. If milliseconds is specified, pings will  be  repeated  indefinitely  at  the
  2068. specified  number  of  milliseconds;  otherwise  a single, "one shot" ping is
  2069. done.  Responses to one-shot  pings  appear  asynchronously  on  the  command
  2070. screen,  while  repeated  pings  create  a  session that may be suspended and
  2071. resumed.  Pinging continues until the session is manually reset.
  2072.  
  2073. The incflag option causes a repeated ping to increment the target IP  address
  2074. for  each  ping;  it  is  an  experimental feature for searching blocks of IP
  2075. addresses for active hosts.
  2076.  
  2077. 3.64.  pop <subcommand>
  2078.  
  2079. The pop client provides an automatic interface to  the  pop  server  that  is
  2080. totaly  transparen to the user; all that the user needs to do is to set a few
  2081. key parameters and the client will take it from there, appart from registring
  2082. with  the server station manager for setting up the user data. (see pop user-
  2083. data command.  To read more about pop, read rfc937.  The following  paragraph
  2084. describe  the pop subcommands.
  2085.  
  2086. 3.64.1.  pop mailbox [<name>]
  2087.  
  2088. Show the defined name or sets the name to name for POP mail  queries  to  the
  2089. mailhost.  The  server  keeps  the  mail  in  the  mailbox  name  located  in
  2090. /spool/mail/name.txt. This is a mandatory parameter.
  2091.  
  2092. 3.64.2.  pop mailhost [<ipaddr>]
  2093.  
  2094. Show the currently defined host address for a  pop  server  or  sets  the  IP
  2095. address  to the system named ipaddr for POP connections.  This is a mandatory
  2096. parameter.
  2097.  
  2098. 3.64.3.  pop kick
  2099.  
  2100. Start a POP connection now. (one shot connection)
  2101.  
  2102. 3.64.4.  pop timer [<seconds>]
  2103.  
  2104. Show the current setting and time remaining untill  next  server  enquiry  or
  2105. when  seconds is given, defines the interval that a pop connection is started
  2106. every <seconds> to retrieve mail from the server system.  When the  timer  is
  2107. not set the client is only started with a pop kick command.
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.                                    - 33 -
  2115. 3.64.5.  pop userdata <name> <password>
  2116.  
  2117. Sets up the userdata used for validation on the POP server system. Note  that
  2118. <name>  and  <password> are case sensitive. When only pop userdata is entered
  2119. to show the values only the <name> is shown. (ultimate in  security,  if  you
  2120. realy  want to see the password look in the "ether").  Remember: the name and
  2121. password should also be defined at the server site in the popusers file.
  2122.  
  2123. 3.65.  popmail <subcommand>
  2124.  
  2125. popmail is a newer implementation of the pop  client/server.  It  can  handle
  2126. both pop2 and pop3 type pop client/servers. For functionality see pop but the
  2127. subcommands are different.
  2128.  
  2129. 3.65.1.  popmail addserver <host> [<seconds>] [hh:mm-hh:mm] <protocol> <mail-
  2130. box> <username> <password>
  2131.  
  2132. Add hostP as a pop server. When seconds is given, a timer is started to query
  2133. the  host with that interval for mail. If not specified no quering to the pop
  2134. host  will be started. You have to do that manualy with a kick.  When  hh:mm-
  2135. hh:mm is given then only in that exact timeframe are queries to the host made
  2136. (allowed).  Protocol is eighter POP2 or POP3, depending on the  mail  service
  2137. the host is providing. Note: pop2 is superceded by pop3. Mailbox is the mail-
  2138. box name on the host where fore mail has to be picked up. Username and  pass-
  2139. word  are  this  systems  validation  parameters  for the host.  Note that on
  2140. entering this command the host name is looked up. If non exsistant  an  error
  2141. message is presented.
  2142.  
  2143. 3.65.2.  popmail dropserver <host>
  2144.  
  2145. Drops host from the list of pop servers to be queried.   All   references  to
  2146. the entry are deleted from the current system.
  2147.  
  2148. 3.65.3.  popmail kick <host>
  2149.  
  2150. Starts a pop session with host to retrieve mail. This command is needed  when
  2151. no interval is specified with the popmail addserver command.
  2152.  
  2153. 3.65.4.  popmail list
  2154.  
  2155. Lists the current popmail server table.
  2156.  
  2157. 3.65.5.  popmail quiet <yes|no>
  2158.  
  2159. Displays or sets the notification of new mail ariving via pop.
  2160.  
  2161. 3.65.6.  popmail trace <level>
  2162.  
  2163. Displays or sets the trace level of pop sessions. Current trace levels are:
  2164.  0 - No tracing
  2165.  1 - Serious errors reported
  2166.  2 - Transient errors reported
  2167.  3 session progress reported Note that tracing only goes to the log file.
  2168.  
  2169. 3.66.  ppp <subcommands>
  2170.  
  2171. These commands are used for Point to Point Protocol interfaces.
  2172.  
  2173. This implementation of PPP  is  designed  to  be  as  complete  as  possible.
  2174. Because  of  this,  the number of options can be rather daunting.  However, a
  2175. typical PPP configuration might include the following commands:
  2176.  
  2177.  
  2178.  
  2179.  
  2180.                                    - 34 -
  2181.  
  2182.         attach asy 0x3f8 4 ppp pp0 4096 1500 9600
  2183.         dial pp0 30 <hostid> 3 dialer.pp0
  2184.         #
  2185.         ppp pp0 lcp local accm 0
  2186.         ppp pp0 lcp local compress address on
  2187.         ppp pp0 lcp local compress protocol on
  2188.         ppp pp0 lcp local magic on
  2189.         ppp pp0 lcp open active
  2190.         #
  2191.         ppp pp0 ipcp local compress tcp 16 1
  2192.         ppp pp0 ipcp open active
  2193.         #
  2194.         route add default pp0
  2195.  
  2196.  
  2197. 3.66.1.  ppp <iface>
  2198.  
  2199. Display the status of the PPP interface.
  2200.  
  2201. 3.66.2.  ppp <iface> lcp ...
  2202.  
  2203. These commands are used for the LCP [Link Control Protocol] configuration.
  2204.  
  2205. 3.66.2.1.  ppp <iface> lcp close
  2206.  
  2207. Shutdown the PPP interface.
  2208.  
  2209. 3.66.2.2.  ppp <iface> lcp local ...
  2210.  
  2211. These commands control the configuration of the local side of the  link.   If
  2212. an  option is specified, the parameters will be used as the initial values in
  2213. configuration requests.  If not specified, that option will not be requested.
  2214.  
  2215. For each of these options, the allow parameter  will  permit  the  remote  to
  2216. include  that option in its response, even when the option is not included in
  2217. the request.  By default, all options are allowed.
  2218.  
  2219. 3.66.2.2.1.  ppp <iface> lcp local accm [ <bitmap> | allow [on | off] ]
  2220.  
  2221. Display or set the Async Control Character Map.  The default is 0xffffffff.
  2222.  
  2223. 3.66.2.2.2.  ppp <iface> lcp local authenticate [ pap | none |  allow  [on  |
  2224. off] ]
  2225.  
  2226. Display or set the authentication protocol.  The default is none.
  2227.  
  2228. 3.66.2.2.3.  ppp <iface> lcp local compress address/control  [  on  |  off  |
  2229. allow [on | off] ]
  2230.  
  2231. Display or set the option to compress the address and control fields  of  the
  2232. PPP  HLDC-like  header.   This  is  generally desirable for slow asynchronous
  2233. links, and undesirable for fast or synchronous links.  The default is off.
  2234.  
  2235. 3.66.2.2.4.  ppp <iface> lcp local compress protocol [ on | off | allow [on |
  2236. off] ]
  2237.  
  2238. Display or set the option to compress the protocol field of the PPP HLDC-like
  2239. header.   This  is  generally  desirable  for  slow  asynchronous  links, and
  2240. undesirable for fast or synchronous links.  The default is off.
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.                                    - 35 -
  2247. 3.66.2.2.5.  ppp <iface> lcp local magic [ on | off | <value> | allow  [on  |
  2248. off] ]
  2249.  
  2250. Display or set the initial Magic Number.  The default is off (zero).
  2251.  
  2252. 3.66.2.2.6.  ppp <iface> lcp local mru [ <size> | allow [on | off] ]
  2253.  
  2254. Display or set the Maximum Receive Unit.  The default is 1500.
  2255.  
  2256. 3.66.2.2.7.  ppp <iface> lcp local default
  2257.  
  2258. Reset the options to their default values.
  2259.  
  2260. 3.66.2.3.  ppp <iface> lcp open active | passive
  2261.  
  2262. Wait for the physical layer to come up.  If  active,  initiate  configuration
  2263. negotiation.  If passive, wait for configuration negotiation from the remote.
  2264.  
  2265. 3.66.2.4.  ppp <iface> lcp remote ...
  2266.  
  2267. These commands control the configuration of the remote side of the link.  The
  2268. options are identical to those of the local side.  If an option is specified,
  2269. the parameters will be  used  in  responses  to  the  remote's  configuration
  2270. requests.  If not specified, that option will be accepted if it is allowed.
  2271.  
  2272. For each of these options, the allow parameter  will  permit  the  remote  to
  2273. specify that option in its request.  By default, all options are allowed.
  2274.  
  2275. 3.66.2.5.  ppp <iface> lcp timeout [<seconds>]
  2276.  
  2277. Display or set the interval to  wait  between  configuration  or  termination
  2278. attempts.  The default is 3 seconds.
  2279.  
  2280. 3.66.2.6.  ppp <iface> lcp try ...
  2281.  
  2282. These commands are used for the various counters.
  2283.  
  2284. 3.66.2.6.1.  ppp <iface> lcp try configure [<count>]
  2285.  
  2286. Display or set the number of configuration requests sent.  The default is 10.
  2287.  
  2288. 3.66.2.6.2.  ppp <iface> lcp try failure [<count>]
  2289.  
  2290. Display or set the number of bad  configuration  requests  allowed  from  the
  2291. remote.  The default is 5.
  2292.  
  2293. 3.66.2.6.3.  ppp <iface> lcp try terminate [<count>]
  2294.  
  2295. Display or set the number of termination requests sent before shutdown.   The
  2296. default is 2.
  2297.  
  2298. 3.66.3.  ppp <iface> ipcp ...
  2299.  
  2300. These commands are used for the IPCP  [Internet  Protocol  Control  Protocol]
  2301. configuration.
  2302.  
  2303. The close, open, timeout and  try  sub-commands  are  identical  to  the  LCP
  2304. (described above).
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.                                    - 36 -
  2313. 3.66.3.1.  ppp <iface> ipcp local ...
  2314.  
  2315. These commands control the configuration of the local side of the  link.   If
  2316. an  option is specified, the parameters will be used as the initial values in
  2317. configuration requests.  If not specified, that option will not be requested.
  2318.  
  2319. For each of these options, the allow parameter  will  permit  the  remote  to
  2320. include  that option in its response, even when the option is not included in
  2321. the request.  By default, all options are allowed.
  2322.  
  2323. 3.66.3.1.1.  ppp <iface> ipcp local address [ <hostid> | allow [on | off] ]
  2324.  
  2325. Display or set the local address for negotiation purposes.  If an address  of
  2326. 0  is  specified,  the  other  side  of the link will supply the address.  By
  2327. default, no addresses are negotiated.
  2328.  
  2329. 3.66.3.1.2.  ppp <iface> ipcp local compress [ tcp <slots> [<flag>] | none  |
  2330. allow [on | off] ]
  2331.  
  2332. Display or set the compression protocol.  The default is none.
  2333.  
  2334. The tcp <slots> specifies the number of "conversation" slots, which must be 1
  2335. to  255.   (This  may be limited at compilation time to a smaller number.)  A
  2336. good choice is in the range 4 to 16.
  2337.  
  2338. The tcp <flag> is 0 (don't compress the slot number) or 1 (OK to compress the
  2339. slot number).  KA9Q can handle compressed slot numbers, so the default is 1.
  2340.  
  2341. 3.66.3.2.  ppp <iface> ipcp remote ...
  2342.  
  2343. These commands control the configuration of the remote side of the link.  The
  2344. options are identical to those of the local side.  If an option is specified,
  2345. the parameters will be  used  in  responses  to  the  remote's  configuration
  2346. requests.  If not specified, that option will be accepted if it is allowed.
  2347.  
  2348. For each of these options, the allow parameter  will  permit  the  remote  to
  2349. specify that option in its request.  By default, all options are allowed.
  2350.  
  2351. 3.66.4.  ppp <iface> pap ...
  2352.  
  2353. These commands are used for the PAP [Password Authentication Protocol] confi-
  2354. guration.
  2355.  
  2356. The timeout and try sub-commands are identical to the LCP (described  above).
  2357. However, the terminate counter is unused.
  2358.  
  2359. 3.66.4.1.  ppp <iface> pap user [ <username> [<password>] ]
  2360.  
  2361. Display or set the username (the password may be  set,  but  not  displayed).
  2362. When  the  username  is  specified, but no password is supplied, the ftpusers
  2363. file is searched for the password.  When a username/password  is  unknown  or
  2364. rejected,  a  session  will  appear  at  the  console  to  prompt  for  a new
  2365. username/password.
  2366.  
  2367. 3.66.5.  ppp <iface> trace [<flags>]
  2368.  
  2369. Display or set the flags that control the logging of information  during  PPP
  2370. link configuration.
  2371.  
  2372. The flag value is 0 for none, 1 for basic, and 2 for general.  Values greater
  2373. than  2 are usually not compiled, and are described in the appropriate source
  2374.  
  2375.  
  2376.  
  2377.  
  2378.                                    - 37 -
  2379. files where they are defined.
  2380.  
  2381. 3.67.  ps
  2382.  
  2383. Display all current processes in the system. The fields are as follows:
  2384.  
  2385. PID - Process ID (the address of the process descriptor).
  2386.  
  2387. SP - The current value of the process stack pointer.
  2388.  
  2389. stksize - The size of the stack allocated to the process.
  2390.  
  2391. maxstk - The apparent peak stack utilization of this process. This is done in
  2392. a  somewhat  heuristic  fashion, so the numbers should be treated as approxi-
  2393. mate. If this number reaches or exceeds the stksize  figure,  the  system  is
  2394. almost certain to crash; the nos.exe program should be recompiled to give the
  2395. process a larger allocation when it is started.
  2396.  
  2397. event - The event this task is waiting for, if it is not runnable.
  2398.  
  2399. fl - Process status flags. There are three: I (Interrupts enabled), W  (Wait-
  2400. ing  for event) and S (suspended). The I flag is set whenever a task has exe-
  2401. cuted a pwait() call (wait for event) without first disabling hardware inter-
  2402. rupts.  Only tasks that wait for hardware interrupt events will turn off this
  2403. flag; this is done to avoid critical sections and missed  interrupts.  The  W
  2404. flag  indicates  that  the  process is waiting for an event; the event column
  2405. will be non-blank. Note that although there may be several runnable processes
  2406. at  any  time  (shown  in the ps listing as those without the W flag and with
  2407. blank event fields) only one process is actually running at any  one  instant
  2408. (The  Refrigerator  Light  Effect  says that the ps command is always the one
  2409. running when this display is generated.)
  2410.  
  2411. 3.68.  pwd [<dirname>]
  2412.  
  2413. An alias for the cd command.
  2414.  
  2415. 3.69.  rarp <subcommand>
  2416.  
  2417. This uses the reverse address resolution protocol.
  2418.  
  2419. 3.69.1.  rarp query <iface> <callsign>
  2420.  
  2421. This starts a reverse resolution request via iface to find the IP address for
  2422. callsign.  It  counts  down  for 10 seconds before giving up listening for an
  2423. answer.
  2424.  
  2425. 3.70.  record [off | <filename>]
  2426.  
  2427. Append to filename all data received on the current session.   Data  sent  on
  2428. the  current session is also written into the file except for Telnet sessions
  2429. in remote echo mode.  The command record off stops recording and  closes  the
  2430. file.
  2431.  
  2432. 3.71.  remote [-p <port>] [-k <key>] [-a <kickaddr>] <hostid> exit | reset  |
  2433. kick
  2434.  
  2435. Send a UDP packet to the specified host commanding it to exit  the  Nos  pro-
  2436. gram, reset the processor, or force a retransmission on TCP connections.  For
  2437. this command to be accepted, the remote system must  be  running  the  remote
  2438. server  and  the  port  number specified in the remote command must match the
  2439. port number given when the server was started on the remote system.   If  the
  2440.  
  2441.  
  2442.  
  2443.  
  2444.                                    - 38 -
  2445. port numbers do not match, or if the remote server is not running on the tar-
  2446. get system, the command packet is ignored.  Even if the command  is  accepted
  2447. there is no acknowledgement.
  2448.  
  2449. The kick command forces a retransmission timeout on all TCP connections  that
  2450. the remote node may have with the local node.  If the -a option is used, con-
  2451. nections to the specified host are kicked instead. No key is required for the
  2452. kick subcommand.
  2453.  
  2454. The exit and reset subcommands are mainly useful for restarting the nos  pro-
  2455. gram  on  a  remote  unattended  system after the configuration file has been
  2456. updated.  The remote system should invoke the Nos program automatically  upon
  2457. booting,  preferably in an infinite loop.  For example, under MS-DOS the boot
  2458. disk should contain the following in autoexec.bat:
  2459.  
  2460.         :loop
  2461.         nos
  2462.         goto :loop
  2463.  
  2464.  
  2465.  
  2466. 3.71.1.  remote -s <key>
  2467.  
  2468. The exit and reset subcommands of remote require a password.  The password is
  2469. set on a given system with the -s option, and it is specified in a command to
  2470. a remote system with the -k option. If no password is set with the -s option,
  2471. then the exit and reset subcommands are disabled.
  2472.  
  2473. Note that remote is an experimental feature in NOS; it is not  yet  supported
  2474. by any other TCP/IP implementation.
  2475.  
  2476. 3.72.  rename <oldfilename> <newfilename>
  2477.  
  2478. Rename oldfilename to newfilename.
  2479.  
  2480. 3.73.  reset [<session>]
  2481.  
  2482. Reset the specified session; if no argument is given, reset the current  ses-
  2483. sion.   This  command  should be used with caution since it does not reliably
  2484. inform the remote end that the connection no longer exists.  (In TCP a  reset
  2485. (RST) message will be automatically generated should the remote TCP send any-
  2486. thing after a local reset has been done.  In AX.25 the DM message performs  a
  2487. similar  role.   Both are used to get rid of a lingering half-open connection
  2488. after a remote system has crashed.)
  2489.  
  2490. 3.74.  rip <subcommand>
  2491.  
  2492. These commands are used for the RIP service.
  2493.  
  2494. 3.74.1.  rip accept <gateway>
  2495.  
  2496. Remove the specified gateway from  the  RIP  filter  table,  allowing  future
  2497. broadcasts from that gateway to be accepted.
  2498.  
  2499. 3.74.2.  rip add <hostid> <seconds> [<flags>]
  2500.  
  2501. Add an entry to the RIP broadcast table. The IP routing table will be sent to
  2502. hostid  every  interval  of  seconds. If flags is specified as 1, then "split
  2503. horizon" processing will be performed for this destination. That is,  any  IP
  2504. routing  table  entries  pointing  to the interface that will be used to send
  2505. this update will be removed from the update.  If split horizon processing  is
  2506.  
  2507.  
  2508.  
  2509.  
  2510.                                    - 39 -
  2511. not  specified,  then all routing table entries except those marked "private"
  2512. will be sent in each update.  (Private entries are never sent  in  RIP  pack-
  2513. ets).
  2514.  
  2515. Triggered updates are always done. That is, any change in the  routing  table
  2516. that  causes  a  previously  reachable destination to become unreachable will
  2517. trigger an update that advertises the destination with metric 15, defined  to
  2518. mean "infinity".
  2519.  
  2520. Note that for RIP packets to be sent properly to a broadcast  address,  there
  2521. must exist correct IP routing and ARP table entries that will first steer the
  2522. broadcast to the correct interface and  then  place  the  correct  link-level
  2523. broadcast  address  in  the  link-level  destination  field. If a standard IP
  2524. broadcast address convention is used (eg. 128.96.0.0 or 128.96.255.255)  then
  2525. chances  are  you  already  have  the  necessary  IP routing table entry, but
  2526. unusual subnet or cluster-addressed networks may require  special  attention.
  2527. However, an arp add command will be required to translate this address to the
  2528. appropriate link level broadcast address. For example,
  2529.  
  2530.  
  2531. arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff
  2532.  
  2533.  
  2534. for an Ethernet network (ip address is a sample only!!!), and
  2535.  
  2536.  
  2537. arp add 44.255.255.255 ax25 qst-0
  2538.  
  2539.  
  2540. for an AX25 packet radio channel. (If multiple AX25 interfaces, make a unique
  2541. address for each interface.)
  2542.  
  2543. 3.74.3.  rip drop <dest>
  2544.  
  2545. Remove an entry from the RIP broadcast table.
  2546.  
  2547. 3.74.4.  rip merge [on | off]
  2548.  
  2549. This flag  controls  an  experimental  feature  for  consolidating  redundant
  2550. entries  in  the  IP routing table. When rip merging is enabled, the table is
  2551. scanned after processing each RIP update. An entry is considered redundant if
  2552. the  target(s)  it  covers  would  be routed identically by a less "specific"
  2553. entry already in the table. That is, the target address(es) specified by  the
  2554. entry  in  question must also match the target addresses of the less specific
  2555. entry and the two entries must have the same interface  and  gateway  fields.
  2556. For example, if the routing table contains
  2557.  
  2558.  
  2559. Dest            Len Interface    Gateway          Metric  P Timer  Use
  2560. 1.2.3.4         32  ethernet0    128.96.1.2       1       0 0      0
  2561. 1.2.3           24  ethernet0    128.96.1.2       1       0 0      0
  2562.  
  2563.  
  2564. then the first entry would be deleted as  redundant  since  packets  sent  to
  2565. 1.2.3.4  will  still  be  routed correctly by the second entry. Note that the
  2566. relative metrics of the entries are ignored.
  2567.  
  2568. 3.74.5.  rip refuse <gateway>
  2569.  
  2570. Refuse to accept RIP updates from the specified gateway by adding the gateway
  2571. to the RIP filter table. It may be later removed with the rip accept command.
  2572.  
  2573.  
  2574.  
  2575.  
  2576.                                    - 40 -
  2577. 3.74.6.  rip request <gateway>
  2578.  
  2579. Send a RIP Request packet to the specified gateway, causing it to reply  with
  2580. a RIP Response packet containing its routing table.
  2581.  
  2582. 3.74.7.  rip status
  2583.  
  2584. Display RIP status, including a count of  the  number  of  packets  sent  and
  2585. received,  the  number  of  requests and responses, the number of unknown RIP
  2586. packet types, and the number of refused RIP updates from hosts in the  filter
  2587. table.  A  list  of the addresses and intervals to which periodic RIP updates
  2588. are being sent is also shown, along with the contents of the filter table.
  2589.  
  2590. 3.74.8.  rip trace [0 | 1 | 2]
  2591.  
  2592. This variable controls the tracing of  incoming  and  outgoing  RIP  packets.
  2593. Setting  it to 0 disables all RIP tracing. A value of 1 causes changes in the
  2594. routing table to be displayed, while packets that cause no changes  cause  no
  2595. output.  Setting the variable to 2 produces maximum output, including tracing
  2596. of RIP packets that cause no change in the routing table.
  2597.  
  2598. 3.74.9.  rip ttl <seconds>
  2599.  
  2600. Displays or sets the time to live timer to seconds. Normal timeout  value  is
  2601. 240  seconds.  This  is  not the ttl in a rip broadcast (16 = infinite).  Set
  2602. this timer before starting rip. Change this timer only  in  cooperation  with
  2603. your surrounding nodes. Default is 240 seconds.
  2604.  
  2605. 3.75.  rlogin host
  2606.  
  2607. Sets up an rlogin session via port 511 to an *NIX compatible station.  Defaut
  2608. terminal is an ansi (as defined with the fkeys) compatible terminal.  Default
  2609. user name is guest. (Redefine with set USER= environement variable).
  2610.  
  2611. 3.76.  rmdir <dirname>
  2612.  
  2613. Remove a sub-directory from the current working directory.
  2614.  
  2615. 3.77.  route
  2616.  
  2617. With no arguments, route displays the IP routing table.
  2618.  
  2619. 3.77.1.  route add <dest_hostid>[/bits] | default <iface> [<gateway_hostid> |
  2620. direct [<metric>]]
  2621.  
  2622. This command adds an entry to the routing table. It  requires  at  least  two
  2623. more  arguments,  the  hostid  of  the target destination and the name of the
  2624. interface to which its packets should be sent.  If  the  destination  is  not
  2625. local,  the gateway's hostid should also be specified. (If the interface is a
  2626. point-to-point link, then gateway_hostid may be omitted even if the target is
  2627. non-local  because  this  field  is only used to determine the gateway's link
  2628. level  address,  if  any.   If  the  destination   is   directly   reachable,
  2629. gateway_hostid  is  also unnecessary since the destination address is used to
  2630. determine the interface link address).  If rspf is used and the system  is  a
  2631. switch  /  router  to  multiple routes the keyword direct can be used i.s.o a
  2632. gateway_hostid to set the metric higher as the default  1.  This  way  routes
  2633. advertized by other rspf stations can be cheaper and get selected.  If direct
  2634. is given but metric not, an new algoritm is used to set the metric  dependent
  2635. on the number of subnet mask bits.
  2636.  
  2637. The optional /bits suffix to the  destination  host  id  specifies  how  many
  2638.  
  2639.  
  2640.  
  2641.  
  2642.                                    - 41 -
  2643. leading  bits  in the host id are to be considered significant in the routing
  2644. comparisons.  If not specified, 32 bits (i.e., full significance) is assumed.
  2645. With  this  option,  a single routing table entry may refer to many hosts all
  2646. sharing a common bit string prefix in their IP addresses.  For example,  ARPA
  2647. Class A, B and C networks would use suffixes of /8, /16 and /24 respectively;
  2648. the command
  2649.  
  2650. route add 44/8 sl0 44.64.0.2
  2651.  
  2652.  
  2653. causes any IP addresses beginning with "44" in the first 8 bits to be  routed
  2654. to 44.64.0.2; the remaining 24 bits are "don't-cares".
  2655.  
  2656. When an IP address to be routed matches more than one entry  in  the  routing
  2657. table,  the  entry  with  largest  bits parameter (i.e., the "best" match) is
  2658. used. This allows individual hosts or blocks of hosts to be exceptions  to  a
  2659. more general rule for a larger block of hosts.
  2660.  
  2661. The special destination default is used to route datagrams to  addresses  not
  2662. matched by any other entries in the routing table; it is equivalent to speci-
  2663. fying a /bits suffix of /0 to any destination hostid.   Care  must  be  taken
  2664. with  default  entries  since two nodes with default entries pointing at each
  2665. other will route packets to unknown addresses back and forth in a loop  until
  2666. their   time-to-live  (TTL)  fields  expire.   (Routing  loops  for  specific
  2667. addresses can also be created, but this is  less  likely  to  occur  acciden-
  2668. tally).
  2669.  
  2670. There are two build in interfaces:  loopback  and  encap.   Loopback  is  for
  2671. internal  purposes  only.  The encap is an IP encapsulator interface. This is
  2672. used to encapsulate a complete IP datagram into a IP datagram so that it gets
  2673. "piggy-backed". It is often used to carry ampr.org datagrams (net44) over the
  2674. Internet. Note that the Internet is fully connected and that ampr.org is  (at
  2675. least)  very  loose.   This  way two sites can interchange net44 datagrams to
  2676. each other.  Some extra notes: A Internet gateway has 2 IP addresses: one  on
  2677. ampr.org  and  one  on  the Internet. You should make sure that the interface
  2678. connected to the Internet has the ifconfig ipaddr set correctly.  Note:  This
  2679. previously only worked as gateway for other stations. There was some guessing
  2680. done in picking an IP address when encap is used localy.  The guessing  takes
  2681. the  worst  guess.  (always wrong with a 2.7 Murphy factor) The code now uses
  2682. the local IP address as source when the route starts at the local station. If
  2683. this is not what you want, you can overrule this by setting the IP address of
  2684. the psuedo encap interface to what you want it to be.
  2685.  
  2686. Some extra notes on encap: I have 3  systems  on  an  ethernet  with  network
  2687. 129.179.122.128/25.  In the office I have another net linked to the Internet.
  2688. The addresses there are in the 129.179.122.0/25 range. Now  i  have  a  radio
  2689. link  with  44.137.0.2  and 44.137.1.2 on respective sites. On the 44.137.0.2
  2690. system i have route add 44.0.0.0/8 encap 44.137.1.1 99. On a next  system  on
  2691. my local ethernet i have 44.137.0.1 / 129.179.122.129.  To get from that sys-
  2692. tem to say 44.62.0.1 i have to add an encap to my local  gateway  with  route
  2693. add   44.0.0.0/8   encap   129.179.122.130.    A   route   add   default  ec0
  2694. 129.179.122.130 gives me access to the Internet.  Otherwise  it  will  lookup
  2695. the  address  for  the interface to be used to reach 129.179.122.130 and will
  2696. use 129.179.122.129. Now 44.62.0.1 will NEVER know where  it  came  from.  So
  2697. adding the encap on the second system solves the problem.
  2698.  
  2699. Here are some examples of the route command:
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.                                    - 42 -
  2709.  
  2710. # Route datagrams to IP address 44.0.0.3 to SLIP line #0.
  2711. # No gateway is needed because SLIP is point-to point.
  2712. route add 44.0.0.3 sl0
  2713.  
  2714. # Route all default traffic to the gateway on the local Ethernet
  2715. # with IP address 44.0.0.1
  2716. route add default ec0 44.0.0.1
  2717.  
  2718. # The local Ethernet has an ARPA Class-C address assignment;
  2719. # route all IP addresses beginning with 192.4.8 to it
  2720. route add 192.4.8/24 ec0
  2721.  
  2722. # The station with IP address 44.0.0.10 is on the local AX.25 channel
  2723. route add 44.0.0.10 ax0
  2724.  
  2725. # An encapsulation link to 192.4.8.12 where the subnet 44.64.0.0 is
  2726. accessible. The internet does not know where we are but we just use them
  2727. with what they know:
  2728. route add 44.64.0.0/16 encap 192.4.8.12 4
  2729.  
  2730.  
  2731.  
  2732. 3.77.2.  route addprivate <dest hostid>[/bits] |  default  <iface>  [<gateway
  2733. hostid> [<metric>]]
  2734.  
  2735. This command is identical to route add except that  it  also  marks  the  new
  2736. entry as private; it will never be included in outgoing RIP updates.
  2737.  
  2738. 3.77.3.  route drop <dest hostid>
  2739.  
  2740. route drop deletes an entry from the table.  If  a  packet  arrives  for  the
  2741. deleted address and a default route is in effect, it will be used.
  2742.  
  2743. 3.78.  rspf <subcmd>
  2744.  
  2745. RSPF is the Radio Shortest Path First protocol. Each station listens for  RRH
  2746. (Router  to  Router Hello) messages. When such a RRH message is received, Nos
  2747. will figure out if the link is bi-directional by pinging the  other  station.
  2748. The protocol is described in the RSPF 2.1 specification.
  2749.  
  2750. 3.78.1.  rspf interface <interface> <quality> <horizon>
  2751.  
  2752. <interface> is the required interface rspf should use.  quality is from 1  to
  2753. 127  horizon  is between 1 to 255 End nodes should have the quality set to 1.
  2754. Immediate nodes normaly set the quality to 8. The normaly used value for hor-
  2755. izon is 32.
  2756.  
  2757. 3.78.2.  rspf mode [vc | datagram | none]
  2758.  
  2759. Without arguments, displays the preferred mode for RSPF.  Modes are VC  (Vir-
  2760. tual Cirquit) and Datagram. none resets the preferred mode.
  2761.  
  2762. 3.78.3.  rspf rrhtimer [seconds]
  2763.  
  2764. Without arguments, displays the rrh timer value.
  2765.  
  2766. 3.78.4.  rspf suspecttimer [seconds]
  2767.  
  2768. Without arguments, displays the suspect timer value.
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.                                    - 43 -
  2775. 3.78.5.  rspf timer [seconds]
  2776.  
  2777. Without arguments, displays the update timer value.
  2778.  
  2779. To activate RSPF, do the following.  Set the broadcast address for the desti-
  2780. nation interface, example ax0.
  2781.     ifconfig ax0 broadcast 44.255.255.255
  2782.  
  2783. This automatically creates a routing entry for 44.255.255.255 in the  routing
  2784. table.  If  intend  to  use RSPF on more than one interface, those interfaces
  2785. must each have different broadcast adresses. Else the routing entries will be
  2786. overwriten by the next definition.
  2787.  
  2788. Configure ax0 as an RSPF interface with horizon 32 and a quality of 1 (hops).
  2789. This is typical for an end node. replace the 1 with an 8 for immediate nodes.
  2790.     rspf interface ax0 1 32
  2791.  Set the interval between RRH messages.
  2792.     rspf rrhtimer 900
  2793.  Define how long it takes until an idle link is suspected to be bad.
  2794.     rspf suspecttimer 2000
  2795.  Set the interval between routing updates.
  2796.     rspf timer 900
  2797.  
  2798. 3.79.  sccstat
  2799.  
  2800. Display the defined PE1CHL scc driver statistics.
  2801.  
  2802. 3.80.  session [[<session>] [flowmode [on | off]]]
  2803.  
  2804. Without arguments, displays the list of current sessions,  including  session
  2805. number,  remote TCP or AX.25 address and the address of the TCP or AX.25 con-
  2806. trol block.  An asterisk (*) is shown  next  to  the  current  that  session.
  2807. Entering  a session number as an argument to the session command will put you
  2808. in converse mode with that session.  If the Telnet session; entering a  blank
  2809. line at this point puts you in converse mode with server is enabled, the user
  2810. is notified of an incoming request and  a  session  number  is  automatically
  2811. assigned.  The user may then select the session normally to converse with the
  2812. remote user as though the session had been  locally  initiated.   Adding  the
  2813. flowmode  displays  or enables / disables setting of *more* handling for that
  2814. session. This is handy for example by long directory listings comming from an
  2815. ftp  session.  Escaping  to  command  mode before issuing the dir command and
  2816. entering "session # flowmode on" gives a page at a time to look  at.  At  any
  2817. time  you  can escape out again and switch flowmode off. Note that a ftp ses-
  2818. sion has it's own flow command now buildin.  See FTP commands later  in  this
  2819. manual.
  2820.  
  2821. 3.81.  shell [
  2822.  
  2823. Suspends Nos and executes a sub-shell  ("command  processor"  under  MS-DOS).
  2824. When the sub-shell exits, Nos resumes (under MS-DOS, enter the exit command).
  2825. Note: see the COMSPEC environement variable.  When Background  activity  (FTP
  2826. servers,  etc)  is also suspended while the subshell executes. Note that this
  2827. will fail unless there is sufficient unused  memory  for  the  sub-shell  and
  2828. whatever  command  the user tries to run.  When shelled out, Mailbox Operator
  2829. connects and ttylink incomming connections are refuced. A  System  unattended
  2830. message is send to the "connector" of that socket.
  2831.  
  2832. 3.82.  skick #socket
  2833.  
  2834. This is a shorthand for the various kick subcommands. This one  searches  the
  2835. socket for correct type and kicks the transport layer.
  2836.  
  2837.  
  2838.  
  2839.  
  2840.                                    - 44 -
  2841. 3.83.  smtp <subcommand>
  2842.  
  2843. These commands are used for the Simple  Message  Transport  Protocol  service
  2844. (that is, mail).
  2845.  
  2846. 3.83.1.  smtp batch [yes | no]
  2847.  
  2848. If set smtp will batch the commands into one frame. When off only one command
  2849. is  send and a response is waited for. Some old and flaky smtp servers cannot
  2850. handle more than one command at a time. Nos can handle multiple. If  you  are
  2851. not hindered by an old smpt server, setting batch reduces bandwith.
  2852.  
  2853. 3.83.2.  smtp gateway [<hostid>]
  2854.  
  2855. Displays or sets the host to be used as a "smart" mail relay. Any  mail  sent
  2856. to  a host not in the host table will instead be sent to the gateway for for-
  2857. warding.
  2858.  
  2859. 3.83.3.  smtp kick
  2860.  
  2861. Run through the outgoing mail queue and attempt to deliver any pending  mail.
  2862. This  command  allows the user to "kick" the mail system manually.  Normally,
  2863. this command is periodically invoked by a timer whenever Nos is running.
  2864.  
  2865. 3.83.4.  smtp kill [<jobid>]
  2866.  
  2867. Kill the job and delete the message.
  2868.  
  2869. 3.83.5.  smtp list
  2870.  
  2871. List the current jobs. A "L" means locked and in progress.  It is wise to add
  2872. in autoexec.bat a "del /spool/mqueue/*.lck" command
  2873.  
  2874. 3.83.6.  smtp maxclients [<count>]
  2875.  
  2876. Displays or sets the maximum number of simultaneous  outgoing  SMTP  sessions
  2877. that will be allowed. The default is 10; reduce it if network congestion is a
  2878. problem.
  2879.  
  2880. 3.83.7.  smtp mode [queue | route]
  2881.  
  2882. Sets the smtp delivery mode. If queue, all messages are left in /spool/rqueue
  2883. for  external forwarding and handling. If route, messages are handled, if for
  2884. local, appended to a mailbox or if remote, they are forwarded.
  2885.  
  2886. 3.83.8.  smtp mxlookup [yes | no]
  2887.  
  2888. Displays or sets a flag enabling or disabling MX record lookups. This can  be
  2889. enabled if a domain server is available in the near distance (reachable).  It
  2890. should be disabled (default) if no domain server is in reach to  satisfy  the
  2891. MX  query.  Note that MX record handling is very limited in NOS. If an answer
  2892. from a domain name server comes in it is taken to be the destination.
  2893.  
  2894. 3.83.9.  smtp quiet [yes | no]
  2895.  
  2896. Enables or disables the message that new mail arrived at this system.
  2897.  
  2898. 3.83.10.  smtp timer [<seconds>]
  2899.  
  2900. Displays or sets the interval, between scans of the outbound mail queue.  For
  2901. example,  smtp  timer  600  will  cause the system to check for outgoing mail
  2902.  
  2903.  
  2904.  
  2905.  
  2906.                                    - 45 -
  2907. every 10 minutes and attempt to deliver anything it finds, subject of  course
  2908. to the smtp maxclients limit. Setting a value of zero disables queue scanning
  2909. altogether, note that this is the default!  This  value  is  recommended  for
  2910. stand  alone IP gateways that never handle mail, since it saves wear and tear
  2911. on the floppy disk drive.
  2912.  
  2913. 3.83.11.  smtp trace [<value>]
  2914.  
  2915. Displays or sets the trace flag in the SMTP client,  allowing  you  to  watch
  2916. SMTP's  conversations as it delivers mail.  Zero (the default) disables trac-
  2917. ing.
  2918.  
  2919. 3.84.  socket [[<socket #>] [flowmode [yes | no]]]
  2920.  
  2921. Without an argument, displays all active  sockets,  giving  their  index  and
  2922. type,  the address of the associated protocol control block and the and owner
  2923. process ID and name. If the index to an active socket is supplied, the status
  2924. display  for  the appropriate protocol is called.  For example, if the socket
  2925. refers to a TCP connection, the display will be that given by the tcp  status
  2926. command  with  the  protocol  control block address.  Flow mode can be set or
  2927. cleared on a session if so wanted. This comes in handy when a large directory
  2928. is  displayed  by ftp. Escaping from the session just before entering dir and
  2929. setting flowmode and returning to that session, gives a screen full at a time
  2930. with -more- processing.
  2931.  
  2932. 3.85.  source <filename>
  2933.  
  2934. Read subsequent commands from filename until EOF. Then  resume  reading  com-
  2935. mands  from  the previous stream. This can be used to keep routing statements
  2936. in a separate file, wich can be read at some point in autoexec.nos.
  2937.  
  2938. 3.86.  start ax25 | convers | discard | echo | finger | ftp | lpd | netrom  |
  2939. nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink
  2940.  
  2941. Start the specified Internet server, allowing remote connection requests.
  2942.  
  2943. 3.87.  status
  2944.  
  2945. Displays load information on Nos. When started, how long running, open  files
  2946. etc.
  2947.  
  2948. 3.88.  stop ax25 | convers | discard | echo | finger | ftp | lpd |  netrom  |
  2949. nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink
  2950.  
  2951. Stop the specified Internet server,  rejecting  any  further  remote  connect
  2952. requests. Existing connections are allowed to complete normally.
  2953.  
  2954. 3.89.  tail <filename>
  2955.  
  2956. This does a more on the last couple of lines of file filename.
  2957.  
  2958. 3.90.  tcp <subcommand>
  2959.  
  2960. These commands are used for the Transmission Control Protocol service.
  2961.  
  2962. 3.90.1.  tcp irtt [<milliseconds>]
  2963.  
  2964. Display or set the initial round trip time estimate, in milliseconds,  to  be
  2965. used  for  new TCP connections until they can measure and adapt to the actual
  2966. value.  The default is 5000 milliseconds (5 seconds).  Increasing  this  when
  2967. operating  over  slow  channels will avoid the flurry of retransmissions that
  2968.  
  2969.  
  2970.  
  2971.  
  2972.                                    - 46 -
  2973. would otherwise occur as the smoothed estimate settles down  at  the  correct
  2974. value.  Note  that this command should be given before servers are started in
  2975. order for it to have effect on incoming connections.
  2976.  
  2977. TCP also keeps a cache of measured  round  trip  times  and  mean  deviations
  2978. (MDEV)  for current and recent destinations. Whenever a new TCP connection is
  2979. opened, the system first looks in this cache. If the  destination  is  found,
  2980. the cached IRTT and MDEV values are used. If not, the default IRTT value men-
  2981. tioned above is used, along  with  a  MDEV  of  0.   This  feature  is  fully
  2982. automatic,  and  it  can improve performance greatly when a series of connec-
  2983. tions are opened and closed to a given destination (eg. a series of FTP  file
  2984. transfers or directory listings).
  2985.  
  2986. 3.90.2.  tcp kick <tcb_addr>
  2987.  
  2988. If there is unacknowledged data on the send queue of the specified TCB,  this
  2989. command forces an immediate retransmission.
  2990.  
  2991. 3.90.3.  tcp mss [<size>]
  2992.  
  2993. Display or set the TCP Maximum Segment Size in bytes that will be sent on all
  2994. outgoing  TCP  connect request (SYN segments).  This tells the remote end the
  2995. size of the largest segment (packet) it may send. Changing MSS  affects  only
  2996. future connections; existing connections are unaffected.
  2997.  
  2998. 3.90.4.  tcp reset <tcb_addr>
  2999.  
  3000. Deletes the TCP control block at the specified address.
  3001.  
  3002. 3.90.5.  tcp rtt <tcb_addr> <milliseconds>
  3003.  
  3004. Replaces the automatically computed round trip time in the specified TCB with
  3005. the  rtt in milliseconds.  This command is useful to speed up recovery from a
  3006. series of lost packets since it provides a manual bypass  around  the  normal
  3007. backoff retransmission timing mechanisms.
  3008.  
  3009. 3.90.6.  tcp status [<tcb_addr>]
  3010.  
  3011. Without arguments, displays several TCP-level statistics, plus a  summary  of
  3012. all  existing  TCP connections, including TCB address, send and receive queue
  3013. sizes, local and remote sockets, and connection state. If tcb_addr is  speci-
  3014. fied,  a more detailed dump of the specified TCB is generated, including send
  3015. and receive sequence numbers and timer information.
  3016.  
  3017. 3.90.7.  tcp syndata [yes | no]
  3018.  
  3019. Display or set the tcp syn + data pigybacking flag. Some tcp  systems  cannot
  3020. handle syn + data together.
  3021.  
  3022. 3.90.8.  tcp timertype [linear | exponential]
  3023.  
  3024. Displays the current setting or sets the timer type backoff algoritm.
  3025.  
  3026. 3.90.9.  tcp trace [yes | no]
  3027.  
  3028. Display or set the tcp trace flag on or off.
  3029.  
  3030. 3.90.10.  tcp window [<size>]
  3031.  
  3032. Displays or sets the default receive window size in bytes to be used  by  TCP
  3033. when creating new connections. Existing connections are unaffected.
  3034.  
  3035.  
  3036.  
  3037.  
  3038.                                    - 47 -
  3039. 3.91.  telnet <hostid> [<port>]
  3040.  
  3041. Creates a Telnet session to the specified host and enters converse mode.   If
  3042. <port> is given that number is used. Default port is 23.
  3043.  
  3044. 3.92.  test
  3045.  
  3046. Start an internal test for an overflow problem that might appear in the clock
  3047. function of some AT computers.
  3048.  
  3049. 3.93.  thirh-party [yes | no]
  3050.  
  3051. This is a restriction setter  for  some  countries  where  stations  are  not
  3052. allowed to handle thirth party mail traffic.
  3053.  
  3054. 3.94.  ttylink <hostid> [<port>]
  3055.  
  3056. Creates a Telnet session to the specified host and enters converse mode.   If
  3057. <port>  is  given that number is used. Default port is 87.  This uses a split
  3058. screen interface for easy conversation.
  3059.  
  3060. 3.95.  tip <iface>
  3061.  
  3062. Creates a tip session that connects to the specified interface in "dumb  ter-
  3063. minal"  mode.   The interface must have already been attached with the attach
  3064. command.  Any packet traffic (IP datagrams,  etc)  routed  to  the  interface
  3065. while this session exists will be discarded.  To close a tip session, use the
  3066. reset command. It will then revert to normal slip, nrs or  kiss  mode  opera-
  3067. tion.
  3068.  
  3069. This feature is primarily useful for manually establishing SLIP  connections.
  3070. At present, only the built-in "com" ports can be used with this command.
  3071.  
  3072. 3.96.  trace [<iface> [off | <btio> [<tracefile>]]]
  3073.  
  3074. Controls packet tracing by the interface drivers. Specific bits enable  trac-
  3075. ing  of the various interfaces and the amount of information produced.  Trace
  3076. output to the screen is only send to the command screen, when  in  a  session
  3077. tracing to the screen is suspended. (From version 2.0l) Tracing is controlled
  3078. on a per-interface basis; without  arguments,  trace  gives  a  list  of  all
  3079. defined interfaces and their tracing status.  Output can be limited to a sin-
  3080. gle interface by specifying it, and the control flags can be change by speci-
  3081. fying  them  as  well.  The  flags are given as a hexadecimal number which is
  3082. interpreted as follows:
  3083.  
  3084.     O - Enable tracing of output packets if 1, disable if 0
  3085.     I - Enable tracing of input packets if 1, disable if 0
  3086.     T - Controls type of tracing:
  3087.         0 - Protocol headers are decoded, but data is not displayed
  3088.         1 - Protocol headers are decoded, and data (but not the
  3089.             headers themselves) are displayed as ASCII characters,
  3090.             64 characters/line. Unprintable characters are displayed
  3091.             as periods.
  3092.         2 - Protocol headers are decoded, and the entire packet
  3093.             (headers AND data) is also displayed in hexadecimal
  3094.             and ASCII, 16 characters per line.
  3095.     B - Broadcast filter flag. If set, only packets specifically addressed
  3096.         to this node will be traced; broadcast packets will not be displayed.
  3097.  
  3098. If tracefile is not specified, tracing will be to the console.
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.                                    - 48 -
  3105. 3.97.  udp status
  3106.  
  3107. 3.98.  verbose [0 | 1 | 2 | 3]
  3108.  
  3109. Set or display the level of message output  in  file  transfers.   Verbose  0
  3110. gives the least output, and verbose 3 the most, as follows:
  3111.  
  3112. 0 - Display error messages only.
  3113. 1 - Display error messages plus a one-line summary after each transfer
  3114.     giving the name of the file, its size, and the transfer time and rate.
  3115. 2 - Display error and summary messages plus the progress messages generated
  3116.     by the remote FTP server. (This setting is the default.)
  3117. 3 - Display all messages. In addition, a "hash mark" (#) is displayed for
  3118.     every 1,000 bytes sent or received.
  3119.  
  3120. If a command is sent to the  remote  server  because  it  is  not  recognized
  3121. locally,  the response is always displayed, regardless of the setting of ver-
  3122. bose.  This is necessary for commands like pwd (display  working  directory),
  3123. which  would  otherwise produce no message at all if verbose were set to 0 or
  3124. 1.
  3125.  
  3126. Displays the status of all UDP receive queues.
  3127.  
  3128. 3.99.  upload [<filename>]
  3129.  
  3130. Opens filename and sends it on the current session as though it were typed on
  3131. the terminal.
  3132.  
  3133. 3.100.  watch
  3134.  
  3135. Displays the current software stopwatch values, with min and max readings for
  3136. each.  This  facility  allows  a  programmer to measure the execution time of
  3137. critical sections of code with microsecond resolution.  This command is  sup-
  3138. ported only on the IBM PC, and the meaning of each stopwatch value depends on
  3139. where the calls have been inserted for test purposes; the  distribution  copy
  3140. of nos usually has no stopwatch calls.
  3141.  
  3142. 3.101.  watchdog [on | off]
  3143.  
  3144. Enables or disables the watchdog timer. If internal operations cease for  300
  3145. second  and  watchdog is enabled, a system reset is performed. See the remote
  3146. command for setting up autoexec.bat.
  3147.  
  3148. 3.102.  ?
  3149.  
  3150. Same as the help command.
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.                                    - 49 -
  3171. 4.  Attach Commands
  3172.  
  3173. This chapter details the attach commands for the various  hardware  interface
  3174. drivers.  Not all of these drivers may be configured into every Nos binary; a
  3175. list of the available types may be obtained by entering the command attach ?.
  3176.  
  3177. Some parameters are accepted by several drivers. They are:
  3178.  
  3179. 4.0.1.  <bufsize>
  3180.  
  3181. For asynchronous devices (eg. COM ports operating in SLIP or NRS  mode)  this
  3182. parameter  specifies  the  size  of the receiver's ring buffer.  It should be
  3183. large enough to hold incoming data at full line speed for  the  longest  time
  3184. that  the system may be busy in MS-DOS or the BIOS doing a slow I/O operation
  3185. (eg. to a floppy disk). A kilobyte is usually more than sufficient.
  3186.  
  3187. For synchronous devices (eg. the scc, hs, pc100,  hapn  and  drsi  interfaces
  3188. operating  in  HDLC mode), the bufsize parameter specifies the largest packet
  3189. that may be received on the interface.  This should be set by  mutual  agree-
  3190. ment  among  stations  sharing the channel. For standard AX.25 with a maximum
  3191. I-frame data size of 256 bytes, a value of 325  should  provide  an  adequate
  3192. safety  margin.  On  higher speed channels (eg. 56kb/s) larger values (eg. 2K
  3193. bytes) will provide much better performance  and  allow  full-sized  Ethernet
  3194. packets to be carried without fragmentation.
  3195.  
  3196. 4.0.2.  <ioaddr>
  3197.  
  3198. The base address of the interface's control registers.This might be specified
  3199.  in hex as 0xnnn or decimal. (nnn is the hexadecimal number).
  3200.  
  3201. 4.0.3.  <vector>
  3202.  
  3203. The interface's hardware interrupt (IRQ) vector, in decimal. When a vector is
  3204. followed  by the character 'c' then the vector is added in a interrupt chain.
  3205. This way multiple devices can  share  the  same  interrupt  vector  (hardware
  3206. changes might be nessesary). A sample is the use of a 4 port comm board shar-
  3207. ing the same vector. The first attach command has a plain vector and the fol-
  3208. lowing  have  the  c  appended.  Note  that  the highest speed port should be
  3209. defined last (as it is served first by the chaining).  Do NOT specify  the  c
  3210. with  the  first attach statement in that group as unpredictable results will
  3211. occure.
  3212.  attach asy 0x3f8 4 ax25 ax25 2048 256 1200
  3213.  attach asy 0x3f0 4c ax25 ax25 2048 256 9600
  3214.  
  3215. 4.0.4.  <iface>
  3216.  
  3217. The name (an arbitrary character string) to be assigned to this interface. It
  3218. is used to refer to the interface in ifconfig and route commands and in trace
  3219. output.
  3220.  
  3221. 4.0.5.  <mtu>
  3222.  
  3223. The Maximum Transmission Unit size, in bytes.   Datagrams  larger  than  this
  3224. limit  will  be  fragmented at the IP layer into smaller pieces. For AX.25 UI
  3225. frames, this limits the size of the information field.  For AX.25  I  frames,
  3226. however,  the  ax25  paclen  parameter  is also relevant.  If the datagram or
  3227. fragment is still larger than paclen, it is  also  fragmented  at  the  AX.25
  3228. level (as opposed to the IP level) before transmission.  (See the ax25 paclen
  3229. command for further information).
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.                                    - 50 -
  3237. 4.0.6.  <speed>
  3238.  
  3239. The speed in bits per second (eg. 2400).
  3240.  
  3241. 4.1.  attach 3c500 <ioaddr> <vector> arpa <iface> <qlen> <mtu> [<ip_addr>]
  3242.  
  3243. Attach a 3Com 3C501  Ethernet  interface.   qlen  is  the  maximum  allowable
  3244. transmit  queue  length.   If  the  ip_addr parameter is not given, the value
  3245. associated with a prior ip address command will be used.
  3246.  
  3247. The use of this driver is not recommended; use the  packet  driver  interface
  3248. with the loadable 3C501 packet driver instead.
  3249.  
  3250. 4.2.  attach asy <ioaddr> <vector> ax25 | nrs | ppp  |  slip  |  raw  <iface>
  3251. <bufsize> <mtu> <speed> [<vf>]
  3252.  
  3253. Attach a standard  PC  "com  port"  (asynchronous  serial  port),  using  the
  3254. National  8250  or 16550A chip.  Standard values on the IBM PC and clones for
  3255. ioaddr and vector are 0x3f8 and 4 for COM1, and 0x2f8 and 3 for COM2.  If the
  3256. port  uses  a  16550A  chip,  it will be detected automatically and the FIFOs
  3257. enabled.
  3258.  
  3259. 4.2.1.  ax25
  3260.  
  3261. Similar to slip, except that an AX.25 header and a KISS  TNC  control  header
  3262. are added to the front of the datagram before SLIP encoding.  Either UI (con-
  3263. nectionless) or I (connection-oriented) AX.25 frames can  be  used;  see  the
  3264. mode command for details.
  3265.  
  3266. 4.2.2.  nrs
  3267.  
  3268. Use the NET/ROM asynchronous framing technique for communication with a local
  3269. NET/ROM TNC.
  3270.  
  3271. 4.2.3.  ppp
  3272.  
  3273. Point-to-Point-Protocol.  Encapsulates datagrams in an HDLC-like frame.  This
  3274. is  a new Internet standard for point-to-point communication, compatible with
  3275. CCITT standards.
  3276.  
  3277. 4.2.4.  slip
  3278.  
  3279. Serial Line Internet Protocol.  Encapsulates IP datagrams  directly  in  SLIP
  3280. frames  without  a link header. This is for operation on point-to-point lines
  3281. and is compatible with 4.2BSD UNIX SLIP.
  3282.  
  3283. 4.2.5.  raw
  3284.  
  3285. Raw serial line without protocol , special for lpd server.
  3286.  
  3287. 4.2.6.  <vf>
  3288.  
  3289. The optional flags are a string of the characters "vf":  v enables Van Jacob-
  3290. son TCP/IP Header Compression, and is valid only for SLIP.  f forces the fifo
  3291. on for 16550AFN compatible chips not hindered by the  original  "design  bug"
  3292. and not needing the work-around. Unfortunate these good chips don't get their
  3293. fifo enabled. Specifying f on the attach line forces the  fifo  to  be  used.
  3294. (unpredictable results occure when specified on a non 16550 type chip).
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.                                    - 51 -
  3303. 4.3.  attach axip <iface> <mtu> <ip_addr> <callsign>
  3304.  
  3305. This creates a RFC1226 compatible AX.25 frame encapsulator  for  transmission
  3306. of  AX.25  frames over the Internet. Iface will be the name of the interface,
  3307. ip_addr the address of the remote system and callsign the AX.25 callsign this
  3308. station is listening on for frames to digipeat.  Note that each attached axip
  3309. interface should have a different callsign to listen to and this should  also
  3310. be different from other callsign's used on this station.
  3311.  
  3312. 4.4.  attach drsi <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <ch_a_speed>
  3313. <ch_b_speed>
  3314.  
  3315. N6TTO driver for the Digital Radio Systems PCPA 8530 card.  Since  there  are
  3316. two  channels  on the board, two interfaces are attached.  They will be named
  3317. iface with 'a' and 'b' appended.  bufsize is  the  receiver  buffer  size  in
  3318. bytes;  it  must be larger than the largest frame to be received.  ch_a_speed
  3319. and ch_b_speed are the speeds, in bits/sec, for the A and B channels, respec-
  3320. tively.
  3321.  
  3322. 4.5.  attach eagle <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <speed>
  3323.  
  3324. WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
  3325.  
  3326. 4.6.  attach hapn <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> csma | full
  3327.  
  3328. KE3Z driver for the Hamilton Amateur Packet  Network  adapter  (Intel  8273).
  3329. The  csma  | full parameter specifies whether the port should operate in car-
  3330. rier sense multiple access (CSMA) mode or in full duplex.
  3331.  
  3332. 4.7.  attach hs <ioaddr> <vector> ax25 <iface> <bufsize> <mtu>  <keyup_delay>
  3333. <p>
  3334.  
  3335. Attach a DRSI PCPA or Eagle Computer interface card  using  a  special  "high
  3336. speed"  8530  driver.   This  driver uses busy-wait loops to send and receive
  3337. each byte instead of interrupts, making it  usable  with  high  speed  modems
  3338. (such  as  the WA4DSY 56kb/s modem) on slow systems.  This does have the side
  3339. effect of "freezing" the system whenever the modem transmitter or receiver is
  3340. active.   This  driver  can  operate only in CSMA mode, and it is recommended
  3341. that no other interfaces requiring small interrupt latencies be  attached  to
  3342. the same machine.
  3343.  
  3344. The keyup_delay parameter specifies the transmitter keyup delay in byte  time
  3345. intervals.  The  p  value  specifies the transmitter persistence value in the
  3346. range 1-255; the corresponding slot time is fixed at one hardware clock tick,
  3347. about 55 ms on the PC.
  3348.  
  3349. As with the other 8530 drivers, this driver actually attaches two interfaces,
  3350. one for each 8530 channel.
  3351.  
  3352. 4.8.  attach packet <intvec> <iface> <txqlen> <mtu>
  3353.  
  3354. Driver for use with  separate  software  "packet  drivers"  meeting  the  FTP
  3355. Software,  Inc,  Software  Packet Driver specification.  The driver must have
  3356. already been installed before the attach command is given. Packet drivers  in
  3357. the Ethernet, ARCNET, SLIP, SLFP, and KISS/AX25 classes are supported.
  3358.  
  3359. intvec is the software interrupt vector used for communication to the  packet
  3360. driver,  and  txqlen is the maximum number of packets that will be allowed on
  3361. the transmit queue.
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.                                    - 52 -
  3369. 4.9.  attach pc100 <ioaddr> <vector> ax25 <iface> <bufsize> <speed>
  3370.  
  3371. Driver for the PACCOMM PC-100 (Zilog 8530) card.   Only  AX.25  operation  is
  3372. supported.
  3373.  
  3374. 4.10.  attach scc <devices> init <addr>  <spacing>  <Aoff>  <Boff>  <Dataoff>
  3375. <intack> <vec> [p | r]<clock> [<hdwe>] [<param>]
  3376.  
  3377. PE1CHL driver to initialize a generic SCC (8530)  interface  board  prior  to
  3378. actually attaching it. The parameters are as follows:
  3379.  
  3380. 4.10.1.  <devices>
  3381.  
  3382. The number of SCC chips to support.
  3383.  
  3384. 4.10.2.  <addr>
  3385.  
  3386. The base address of the first SCC chip (hex).
  3387.  
  3388. 4.10.3.  <spacing>
  3389.  
  3390. The spacing between the SCC chip base addresses.
  3391.  
  3392. 4.10.4.  <Aoff>
  3393.  
  3394. The offset from a chip's base address to its channel A control register.
  3395.  
  3396. 4.10.5.  <Boff>
  3397.  
  3398. The offset from a chip's base address to its channel B control register.
  3399.  
  3400. 4.10.6.  <Dataoff>
  3401.  
  3402. The offset from each channel's control register to its data register.
  3403.  
  3404. 4.10.7.  <intack>
  3405.  
  3406. The address of the INTACK/Read Vector port. If none, specify 0 to  read  from
  3407. RR3A/RR2B.
  3408.  
  3409. 4.10.8.  <vec>
  3410.  
  3411. The CPU interrupt vector for all connected SCCs.
  3412.  
  3413. 4.10.9.  <clock>
  3414.  
  3415. The clock frequency (PCLK/RTxC) of all SCCs in hertz.  Prefix  with  'p'  for
  3416. PCLK, 'r' for RTxC clock (for baudrate gen).
  3417.  
  3418. 4.10.10.  <hdwe>
  3419.  
  3420. Optional hardware type. The following values are currently  supported:   1  -
  3421. Eagle  card,  2  -  PACCOMM PC-100, 4 - PRIMUS-PC card (DG9BL), 8 - DRSI PCPA
  3422. card.
  3423.  
  3424. 4.10.11.  <param>
  3425.  
  3426. Optional extra parameter. At present, this is used only with the  PC-100  and
  3427. PRIMUS-PC cards to set the modem mode. The value 0x22 is used with the PC-100
  3428. and 0x2 is used with the PRIMUS-PC card.
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.                                    - 53 -
  3435. The attach scc ... init command must be given before the interfaces are actu-
  3436. ally attached with the following command.
  3437.  
  3438. 4.11.  attach scc <chan> slip | kiss | nrs | ax25 <iface> <mtu> <speed> <buf-
  3439. size> [<call>]
  3440.  
  3441. Attach an initialized SCC port to the system. The parameters are as follows:
  3442.  
  3443. 4.11.1.  <chan>
  3444.  
  3445. The SCC channel number to attach, 0 or 1 for the first chip's A or B port,  2
  3446. or 3 for the second chip's A or B port, etc.
  3447.  
  3448. 4.11.2.  slip | kiss | nrs | ax25
  3449.  
  3450. The operating mode of the interface. slip, kiss and nrs all operate the  port
  3451. hardware in asynchronous mode; slip is Internet-standard serial line IP mode,
  3452. kiss generates SLIP frames containing KISS TNC commands and AX.25 packets and
  3453. nrs uses NET/ROM local serial link framing conventions to carry NET/ROM pack-
  3454. ets. Selecting ax25 mode puts the interface into synchronous HDLC  mode  that
  3455. is suitable for direct connection to a half duplex radio modem.
  3456.  
  3457. 4.11.3.  <speed>
  3458.  
  3459. The interface speed in bits per second (eg. 1200).  Prefix with 'd'  when  an
  3460. external divider is available to generate the TX clock. When the clock source
  3461. is PCLK, this can be a /32 divider between TRxC and RTxC. When the  clock  is
  3462. at  RTxC,  the TX rate must be supplied at TRxC. This is needed only for full
  3463. duplex synchronous operation. When this arg is given as 'ext',  the  transmit
  3464. and  receive  clocks are external, and the internal baud rate generator (BRG)
  3465. and digital phase locked loop (DPLL) are not used.
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.                                    - 54 -
  3501. 4.12.  Attach Examples
  3502.  
  3503. Here are some examples of the attach command:
  3504.  
  3505.  
  3506. # Attach a 3Com Ethernet controller using the standard 3Com address and
  3507. # vector (i.e., as it comes out of the box) to use ARPA-standard encapsulation.
  3508. # The receive queue is limited to 5 packets, and outgoing packets larger
  3509. # than 1500 bytes will be fragmented
  3510. attach 3c500 0x300 3 arpa ec0 5 1500
  3511.  
  3512. # Attach the PC asynch card normally known as "com1" (the first controller)
  3513. # to operate in point-to-point slip mode at 9600 baud, calling it "sl0".
  3514. # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger
  3515. # than 256 bytes are fragmented.
  3516. attach asy 0x3f8 4 slip sl0 1024 256 9600
  3517.  
  3518. # Attach the secondary PC asynch card ("com2") to operate in AX.25 mode
  3519. # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it "ax0".
  3520. # By default, IP datagrams are sent in UI frames
  3521. attach asy 0x2f8 3 ax25 ax0 1024 576 9600
  3522.  
  3523. # Attach a axip wormhole
  3524. attach axip ai0 256 129.179.122.10 pa0gri-11
  3525. # on the other side of the wormhole
  3526. attach axip ai0 256 129.179.122.130 pa0gri-12
  3527. # Now assume 129.179.122.10 has a AX.25 interface with callsign pa0gri-10
  3528. # and 129.179.122.130 a interface with callsign pa0gri-8
  3529. # Now a AX.25 frame like:
  3530. # pe1chl->pa0gri-11->pa0gri-8->pe1dna [ data]
  3531. # Received by pa0gri-11, set the has-been-digipeated change the interface
  3532. # callsign with the one it realy came in from and ecapsulates it
  3533. # in a IP frame type 93 and ships it to 129.179.122.130
  3534. # pe1chl->pa0gri-10*->pa0gri-8->pe1dna [ data]
  3535. # Arived at 129.179.122.130 the next digi is searched for and found.
  3536. # The frame is changed into:
  3537. # pe1chl->pa0gri-10*->pa0gri-12*->pe1dna [ data]
  3538. # so that on the way back the frame will find the "right" interface.
  3539.  
  3540. # Attach the packet driver loaded at interrupt 0x7e
  3541. # The packet driver is for an Ethernet interface
  3542. attach packet 0x7e ethernet 8 1500
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.                                    - 55 -
  3567. 5.  FTP Subcommands
  3568.  
  3569. During converse mode with an FTP server, everything typed on the  console  is
  3570. first  examined  to see if it is a locally-known command. If not, the line is
  3571. passed intact to the remote server on the control channel. If it  is  one  of
  3572. the following commands, however, it is executed locally. (Note that this gen-
  3573. erally involves other commands being sent to the remote server on the control
  3574. channel.)
  3575.  
  3576. 5.1.  dir [<file> | <directory> [<local file>]]
  3577.  
  3578. Without arguments, dir requests that a full directory listing of  the  remote
  3579. server's  current  directory  be  sent  to  the terminal.  If one argument is
  3580. given, this is passed along in the LIST command; this can be a specific  file
  3581. or  subdirectory  that  is meaningful to the remote file system. If two argu-
  3582. ments are given, the second is taken as the local file into which the  direc-
  3583. tory  listing should be put (instead of being sent to the console).  The PORT
  3584. command is used before the LIST command is sent.
  3585.  
  3586. 5.2.  flow [off|on]
  3587.  
  3588. Displays or sets the -more- processing on the current ftp session.  When  set
  3589. to  on,  a -more- prompt is displayed after each screen full of data. You can
  3590. do the same with a session # flow command.  Note that this is a local  exten-
  3591. sion to the standard ftp command set.
  3592.  
  3593. 5.3.  get <remote file> [<local file>]
  3594.  
  3595. Asks the remote server to send the file specified in the first argument.  The
  3596. second argument, if given, will be the name of the file on the local machine;
  3597. otherwise it will have the same name as on the remote machine.  The PORT  and
  3598. RETR commands are sent on the control channel.
  3599.  
  3600. 5.4.  hash
  3601.  
  3602. A synonym for the verbose 3 command.
  3603.  
  3604. 5.5.  ls [<file> | <directory> [<local file>]]
  3605.  
  3606. ls is identical to the dir command except that the "NLST" command is sent  to
  3607. the  server  instead  of  the  "LIST" command. This results in an abbreviated
  3608. directory listing, i.e., one showing only the file names  themselves  without
  3609. any other information.
  3610.  
  3611. 5.6.  mget <file> [<file> ...]
  3612.  
  3613. Fetch a collection of files from the server. File names may include wild card
  3614. characters; they will be interpreted and expanded into a list of files by the
  3615. remote system using the NLST command. The files will have the  same  name  on
  3616. the local system that they had on the server.
  3617.  
  3618. 5.7.  mkdir <remote directory>
  3619.  
  3620. Creates a directory on the remote machine.
  3621.  
  3622. 5.8.  mput <file> [<file> ...]
  3623.  
  3624. Send a collection of files to the server. File names may  include  wild  card
  3625. characters;  they  will  be expanded locally into a list of files to be sent.
  3626. The files will have the same name on the server as on the local system.
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.                                    - 56 -
  3633. 5.9.  put <local file> [<remote file>]
  3634.  
  3635. Asks the remote server to accept data, creating the file named in  the  first
  3636. argument.  The second argument, if given, will be the name of the file on the
  3637. remote machine; otherwise it will have the same name as on the local machine.
  3638. The PORT and STOR commands are sent on the control channel.
  3639.  
  3640. 5.10.  rmdir <remote directory>
  3641.  
  3642. Deletes a directory on the remote machine.
  3643.  
  3644. 5.11.  type [a | i | l <bytesize>]
  3645.  
  3646. Tells both the local client and remote server the type of file that is to  be
  3647. transferred.   The  default,  (wich can be changed with the ftype command) is
  3648. 'a', which means ASCII (i.e., a text file).   Type  'i'  means  image,  i.e.,
  3649. binary.   In  ASCII  mode,  files are sent as varying length lines of text in
  3650. ASCII separated by cr/lf sequences; in IMAGE mode, files are sent exactly  as
  3651. they appear in the file system.  ASCII mode should be used whenever transfer-
  3652. ring text between dissimilar systems (e.g., UNIX and MS-DOS) because of their
  3653. different  end-of-line  and/or end-of-file conventions.  When exchanging text
  3654. files between machines of the same type, either mode will work but IMAGE mode
  3655. is usually faster.  Naturally, when exchanging raw binary files (executables,
  3656. compressed archives, etc) IMAGE mode must be used.  Type  'l'  (logical  byte
  3657. size) is used when exchanging binary files with remote servers having oddball
  3658. word sizes (e.g., DECSYSTEM-10s and  20s).  Locally  it  works  exactly  like
  3659. IMAGE,  except that it notifies the remote system how large the byte size is.
  3660. bytesize is typically 8.  The type command sets the local transfer  mode  and
  3661. generates the TYPE command on the control channel.
  3662.  
  3663. 5.12.  verbose [0 | 1 | 2 | 3]
  3664.  
  3665. Set or display the level of message output  in  file  transfers.   Verbose  0
  3666. gives the least output, and verbose 3 the most, as follows:
  3667.  
  3668. 0 - Display error messages only.
  3669. 1 - Display error messages plus a one-line summary after each transfer
  3670.     giving the name of the file, its size, and the transfer time and rate.
  3671. 2 - Display error and summary messages plus the progress messages generated
  3672.     by the remote FTP server. (This setting is the default.)
  3673. 3 - Display all messages. In addition, a "hash mark" (#) is displayed for
  3674.     every 1,000 bytes sent or received.
  3675.  
  3676. If a command is sent to the  remote  server  because  it  is  not  recognized
  3677. locally,  the response is always displayed, regardless of the setting of ver-
  3678. bose.  This is necessary for commands like pwd (display  working  directory),
  3679. which  would  otherwise produce no message at all if verbose were set to 0 or
  3680. 1.
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.                                    - 57 -
  3699. 6.  Dialer Subcommands
  3700.  
  3701. Each dialer command may (should) have a  different  dialer  file.   The  file
  3702. resides in the configuration directory, as specified in the Installation sec-
  3703. tion (see chapter 1).  A typical dialer file might be:
  3704.  
  3705.         # Set the speed, and toggle DTR to ensure modem is in command mode.
  3706.         control down
  3707.         wait 3000
  3708.         speed 2400
  3709.         control up
  3710.         wait 3000
  3711.         # Dial, and wait for connection
  3712.         send "atdt555-1212\r"
  3713.         wait 45000 "CONNECT " speed
  3714.         wait 2000
  3715.         # PAD specific initialization
  3716.         send "\r"
  3717.         wait 15000 "Terminal ="
  3718.         send "ppp\r"
  3719.         wait 10000 "\r\n"
  3720.  
  3721.  
  3722. 6.0.1.  control down | up
  3723.  
  3724. Control asy interface.  The down option drops DTR and  RTS.   The  up  option
  3725. asserts DTR and RTS.
  3726.  
  3727. 6.0.2.  send "string"
  3728.  
  3729. This dialer command will write the specified string to  the  interface.   The
  3730. string quote marks are required, and the string may not contain embedded con-
  3731. trol characters.  However, the standard C string escape sequences are  recog-
  3732. nized (\0 should not be used).
  3733.  
  3734. 6.0.3.  speed [ 9600 | 4800 | 2400 | 1200 | 300 ]
  3735.  
  3736. This dialer command will set the speed of the interface to one of the  avail-
  3737. able  speeds.   If  the  speed is missing, the speed will be displayed in the
  3738. dialer session window.
  3739.  
  3740. 6.0.4.  wait <milliseconds> [ "test string" ] [ speed ]
  3741.  
  3742. If only the time is specified, the dialer pauses for the  desired  number  of
  3743. milliseconds.
  3744.  
  3745. Otherwise, the dialer reads until the test string is detected on  the  inter-
  3746. face.   If the string is not detected within the desired time, the autodialer
  3747. will reset.  The string quote marks are required, and the string may not con-
  3748. tain  embedded  control  characters.   However,  the standard C string escape
  3749. sequences are recognized (\0 should not be used).
  3750.  
  3751. Finally, if the speed parameter is specified, the  dialer  will  continue  to
  3752. read  characters until a non-digit is detected.  The string read is converted
  3753. to an integer, and used to set the interface speed.   If  the  trailing  non-
  3754. digit  is not detected within the desired time, or the integer value is not a
  3755. valid speed, the autodialer will reset.
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.                                    - 58 -
  3765. 7.  Installation
  3766.  
  3767. Nos uses the following file and directory structure:
  3768.  
  3769.         ~/alias
  3770.         ~/autoexec.nos
  3771.         ~/dialer
  3772.         ~/domain.txt
  3773.         ~/ftpusers
  3774.         ~/net.rc
  3775.         ~/netron.sav
  3776.         ~/popusers
  3777.         ~/finger/
  3778.         ~/etc/printcap
  3779.         ~/etc/lpdperms
  3780.         ~/etc/log
  3781.         ~/spool/areas
  3782.         ~/spool/mail.log
  3783.         ~/spool/net.log
  3784.         ~/spool/forward.bbs
  3785.         ~/spool/history
  3786.         ~/spool/rewrite
  3787.         ~/spool/help/
  3788.         ~/spool/mail/
  3789.         ~/spool/mqueue/
  3790.         ~/spool/news/
  3791.         ~/spool/news/active
  3792.         ~/spool/news/pointer
  3793.         ~/spool/news/info
  3794.         ~/spool/news/help
  3795.         ~/spool/news/history
  3796.         ~/spool/news/forward
  3797.         ~/spool/news/poll
  3798.         ~/spool/rqueue/
  3799.         ~/spool/signatur/
  3800.         ~/spool/lpd/
  3801.  
  3802.  
  3803. The ~ in front of all files is a  directory  offset  definable  with  the  -d
  3804. option  on the Nos command line. Any name may be chosen and is default empty.
  3805. (eg. just /) If for example  -d  /net  is  given,  the  structure  shifts  to
  3806. /net/...   The  alias,  autoexec.nos, dialer, domain.txt net.rc, popusers and
  3807. ftpusers configuration files are located here.  The netrom.sav file  will  be
  3808. created there.
  3809.  
  3810. The "/spool" directory and its sub-directories are used by the bbs, SMTP  and
  3811. NNTP  services.  The areas, forward.bbs, history, mail.log and rewrite confi-
  3812. guration files are located here.  The /spool/news  directory  can  have  many
  3813. subdirectories  and each subdirectory can have subdirectories. Newsgroups are
  3814. split into heirarchical directory structures. A  news  article  in  newsgroup
  3815. rec.amateur.radio.packet           will           end          up          in
  3816. /spool/news/rec/amateur/radio/packet.txt.
  3817.  
  3818. 7.1.  The /ftpusers File
  3819.  
  3820. Since MS-DOS is a single-user operating system (some might say it is a glori-
  3821. fied bootstrap loader), it provides no access control; all files can be read,
  3822. written or deleted by the local user.  It is usually undesirable to give such
  3823. open  access to a system to remote network users.  Net therefore provides its
  3824. own access control mechanisms.
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.                                    - 59 -
  3831. The file ftpusers controls remote FTP and mailbox access.  The FTP default is
  3832. no  access;  if this file does not exist, the FTP server will be unusable.  A
  3833. remote user must first "log in" to the system with the  USER  and  PASS  com-
  3834. mands,  giving a valid name and password listed in ftpusers, before he or she
  3835. can transfer files.
  3836.  
  3837. Each entry in ftpusers consists of a single line of the form
  3838.  
  3839. username password /path permissions ip_address
  3840.  
  3841.  
  3842. There must be at least four fields, and  there  must  be  exactly  one  space
  3843. between  each  field.   Comments  may be added after the last field.  Comment
  3844. lines begin with '#' in column one.
  3845.  
  3846. username is the user's login name.
  3847.  
  3848. password is the required password.  Note that this is in plain  text;  there-
  3849. fore it is not a good idea to give general read permission to the root direc-
  3850. tory.  A password of '*' (a single  asterisk)  means  that  any  password  is
  3851. acceptable.
  3852.  
  3853. /path is the allowable prefix on accessible files.  Before any file or direc-
  3854. tory  operation,  the current directory and the user- specified file name are
  3855. joined to form an absolute path name in "canonical" form (i.e., a  full  path
  3856. name  starting at the root, with "./" and "../" references, as well as redun-
  3857. dant /'s, recognized and removed).  The result MUST begin with the  allowable
  3858. path  prefix;  if not, the operation is denied.  This field must always begin
  3859. with a "/", i.e., at the root directory.  Multiple directories can be  speci-
  3860. fied by separating them with a ";" caracter and no whitespace around them.
  3861.  
  3862. permissions is a decimal number granting  permission  for  read,  create  and
  3863. write  operations.  If the low order bit (0x1) is set, the user is allowed to
  3864. read a file subject to the path name prefix restriction.   If  the  next  bit
  3865. (0x2)  is  set,  the  user  is  allowed  to  create a new file if it does not
  3866. overwrite an existing file.  If the third bit  (0x4)  is  set,  the  user  is
  3867. allowed  to write a file even if it overwrites an existing file, and in addi-
  3868. tion he may delete files.  Again, all operations are allowed subject  to  the
  3869. path  name  prefix restrictions.  Permissions may be combined by adding bits,
  3870. for example, 0x3 (= 0x2 + 0x1) means that the user is given read  and  create
  3871. permission, but not overwrite/delete permission.
  3872.  
  3873. Additional permission bits used by the mailbox and PPP are:
  3874.  
  3875.   1   Read files
  3876.   2   Create new files
  3877.   4   Overwrite and delete existing files
  3878.   8   AX.25 gateway operation allowed
  3879.   16  Telnet gateway operation allowed
  3880.   32  NET/ROM gateway operation allowed
  3881.   64  Remote sysop access allowed (DANGEROUS)
  3882.   128 This user is banned from BBS access (illegal user)
  3883.   256 Priv bit for PPP connection
  3884.   512 Priv bit for peerID/pass lookup
  3885.  1024 disallow send commands (except to SYSOP)
  3886.  2048 disallow read commands
  3887.  4096 disallow 3rd party mail
  3888.  8192 This station is a known BBS
  3889.  
  3890.  
  3891. ip_address is used for PPP only and is the remote IP address of the connected
  3892.  
  3893.  
  3894.  
  3895.  
  3896.                                    - 60 -
  3897. system.
  3898.  
  3899. A username of univperm has special meaning in the  validation  meganism.   If
  3900. univperm  is  included as a valid user in ftpusers then any unknown user (not
  3901. in ftpusers) will be mapped into univperm and get  its  permission  bits  and
  3902. file path. If univperm is not included in ftpusers unknown users are not per-
  3903. mitted nor validated.
  3904.  
  3905. For example, suppose ftpusers on machine pc.ka9q.ampr.org contains the line
  3906.  
  3907. friendly test /testdir 7
  3908.  
  3909.  
  3910. A session using this account would look like this:
  3911.  
  3912. net> ftp pc.ka9q.ampr.org
  3913. Resolving pc.ka9q.ampr.org... Trying 128.96.160.1...
  3914. FTP session 1 connected to pc.ka9q.ampr.org
  3915. 220 pc.ka9q.ampr.org FTP version 900418 ready at Mon May 7 16:27:18 1990
  3916. Enter user name: friendly
  3917. 331 Enter PASS command
  3918. Password: test [not echoed]
  3919. 230 Logged in
  3920. ftp>
  3921.  
  3922.  
  3923. The user now has read, write, overwrite and delete privileges  for  any  file
  3924. under /testdir; he may not access any other files.
  3925.  
  3926. Here are some more sample entries in ftpusers:
  3927.  
  3928. karn foobar / 7         # User "karn" with password "foobar" may read,
  3929.                         # write, overwrite and delete any file on the
  3930.                         # system.
  3931.  
  3932. guest bletch /g/bogus;/public 3
  3933.                         # User "guest" with password "bletch" may read
  3934.                         # any file under /g/bogus and its subdirectories,
  3935.                         # and /public and its subdirectories,
  3936.                         # and may create a new file as long as it does
  3937.                         # not overwrite an existing file. He may NOT
  3938.                         # delete any files.
  3939.  
  3940. anonymous * /public 1   # User "anonymous" (any password) may read files
  3941.                         # under /public and its subdirectories; he may
  3942.                         # not create, overwrite or delete any files.
  3943.  
  3944.  
  3945. This last entry is the standard convention for keeping a repository of public
  3946. files; in particular, the username "anonymous" is an established ARPA conven-
  3947. tion.
  3948.  
  3949. 7.2.  The /popusers File
  3950.  
  3951. Here are the username / password combinations defined for the POP users.   It
  3952. has a simple convention:
  3953.  
  3954. user:password:
  3955.  
  3956. for every POP user such a line has to be added. The user and password  fields
  3957. sould  match  the  pop  userdata statement of the remote user.  Both user and
  3958.  
  3959.  
  3960.  
  3961.  
  3962.                                    - 61 -
  3963. password have to be delimited with a colon character.
  3964.  
  3965. 7.3.  The /net.rc File
  3966.  
  3967. The net.rc file is a fast login file for known ftp stations. Each line starts
  3968. with the name of the ftp station. Following are a user and password statemend
  3969. to be send to the server for validation.  The name,  user  and  password  are
  3970. separated  with a space. Not a tab or more than 1 space character.  Following
  3971. is a sample net.rc file.
  3972.  
  3973. ucsd.edu anonymous gvdg@gvdgpc.cdh.cdc.com
  3974. ka9q.ampr.org guest pa0gri
  3975.  
  3976.  
  3977. 7.4.  The /domain.txt File
  3978.  
  3979. Nos translates domain names (eg. "pc.ka9q.ampr.org")  to  IP  addresses  (eg.
  3980. 128.96.160.3) through the use of an Internet Domain Name resolver and a local
  3981. "cache" file, domain.txt.  Whenever the user specifies  a  domain  name,  the
  3982. local cache is searched for the desired entry.  If it is present, it is used;
  3983. if not, and if domain name server(s) have been configured, a  query  is  sent
  3984. over  the  network to the current server.  If the server responds, the answer
  3985. is added to the domain.txt file for future  use.   If  the  server  does  not
  3986. respond,  any  additional  servers  on  the  list  are tried in a round-robin
  3987. fashion until one responds, or the retry limit is  reached  (see  the  domain
  3988. retry  command).   If domain.txt does not contain the desired entry and there
  3989. are no configured domain name servers, then the request immediately fails.
  3990.  
  3991. If a domain name server is available, and if all references  to  host-ids  in
  3992. your  /autoexec.nos  file  are  in  IP address format, then it is possible to
  3993. start with a completely empty domain.txt file and have Nos build it for  you.
  3994. However,  you  may wish to add your own entries to domain.txt, either because
  3995. you prefer to use symbolic domain names in your  /autoexec.nos  file  or  you
  3996. don't  have  access to a domain server and you need to create entries for all
  3997. of the hosts you may wish to access.
  3998.  
  3999. Each entry takes one line, and the fields are separated by tabs.   For  exam-
  4000. ple:
  4001.  
  4002. pc.ka9q.ampr.org.       IN      A       128.96.160.3
  4003.  
  4004. IN is the class of the record.  It means Internet, and it will  be  found  in
  4005. all  entries.   A  is  the  type  of the record, and it means that this is an
  4006. address record.  Domain name pc.ka9q.ampr.org therefore has Internet  address
  4007. 128.96.160.3.
  4008.  
  4009. Another possible entry is the CNAME (Canonical Name) record.  For example:
  4010.  
  4011. ka9q.ampr.org.          IN      CNAME   pc.ka9q.ampr.org.
  4012.  
  4013. This says that domain name "ka9q.ampr.org" is actually an alias for the  sys-
  4014. tem  with  (primary,  or  canonical)  domain name "pc.ka9q.ampr.org."  When a
  4015. domain name having a CNAME record is given to Nos, the  system  automatically
  4016. follows  the reference to the canonical name and returns the IP address asso-
  4017. ciated with that entry.
  4018.  
  4019. Entries added automatically by Nos will have an additional field between  the
  4020. domain name and the class (IN) field.  For example:
  4021.  
  4022. pc.ka9q.ampr.org.       3600    IN      A       128.96.160.3
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.                                    - 62 -
  4029. This is the time-to-live  value,  in  seconds,  associated  with  the  record
  4030. received  from  the  server.  Clients (such as Nos) caching these records are
  4031. supposed to delete them after the time-to-live interval has expired, allowing
  4032. for  the  possibility  that  the  information in the record may become out of
  4033. date.
  4034.  
  4035. This implementation of Nos will decrement the  TTL  to  zero,  but  will  not
  4036. delete  the  record unless the "clean" flag is on (see the domain cache clean
  4037. command).  When a remote server is not available, the old entry will be used.
  4038.  
  4039. When the TTL value is missing (as in the examples  above),  the  record  will
  4040. never  expire, and must be managed by hand.  Since domain.txt is a plain text
  4041. file, it may be easily edited by the user to add, change or delete records.
  4042.  
  4043. Additional types of records, include NS  (name  server)  and  SOA  (start  of
  4044. authority)  may  appear in domain.txt from remote server responses. These are
  4045. not currently used by Nos but are retained for future  development  (such  as
  4046. the incorporation of a domain name server into Nos itself).
  4047.  
  4048. 7.5.  The /alias file.
  4049.  
  4050. SMTP server ALIAS file. This is for resolving a given target address  into  a
  4051. single or multiple entry mail list.
  4052.   Format:
  4053.     mail_list_name call_1@host_1 [call_2@host_2]......# comments
  4054.  
  4055.     pa0gri gvdg@fridley.cdh.cdc.com
  4056.     kelvin g1emm@g1emm.ampr.org
  4057.     #
  4058.     bob    gb3xp@gb3xp.ampr.org
  4059.     ian    g3rra@g3rra.ampr.org
  4060.     jim    g1wkk@g1wkk.ampr.org
  4061.     john   g5ds%gb3kp@gb3xp.ampr.org
  4062.     ted    gb3kp%gb3kp@gb3xp.ampr.org
  4063.     ron    g6vug@g6vug.ampr.org
  4064.     tim    g4uqe@g4uqe.ampr.org
  4065.     gareth g6kvk%gb7spv@gb3xp.ampr.org
  4066.     bolton gb7tcp%gb7crg@gb3xp.ampr.org
  4067.     julian g7efe%gb7cfb@gb3xp.ampr.org
  4068.     #
  4069.     world  g3rra@g3rra.ampr.org gb3xp@gb3xp.ampr.org g1plt@g1plt.ampr.org
  4070.        g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g6kvk%gb7spv@gb3xp.ampr.org
  4071.        g1ttg@g1ttg.ampr.org g6vug@g6vug.ampr.org g6kqz@g6kqz.ampr.org
  4072.        g4uqe@g4uqe.ampr.org g8ogr@g8ogr.ampr.org g4xwv@g4xwv.ampr.org
  4073.     #
  4074.     locals g3rra@g3rra.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org
  4075.        g4bio@g4bio.ampr.org g1plt@g1plt.ampr.org g4uqe@g4uqe.ampr.org
  4076.        g6kqz@g6kqz.ampr.org g4tnu@g4tnu.ampr.org g6xqb@g6xqb.ampr.org
  4077.  
  4078. Note that it is reaonable, and sometimes desiable, to have alias  records  in
  4079. the form:
  4080.  
  4081.    area  area dest1 dest2
  4082.  
  4083. As the /alias file is scanned only once, this does not result in an  infinite
  4084. recursion.
  4085.  
  4086. 7.6.  The /spool/areas file.
  4087.  
  4088. This file is a header file shown to a mailbox user when  he  requests  the  a
  4089. display. It should show all public mailboxes to read. Here is a sample:
  4090.  
  4091.  
  4092.  
  4093.  
  4094.                                    - 63 -
  4095.     -------------  Public  --  Mail  --  Areas  -------------
  4096.                                                             |
  4097.     General    --    Any old chit-chat that is clean.       |
  4098.     TcpIp      --    General Tcp/Ip messages. NOS etc.      |
  4099.     Bugs       --    Where to report bugs in Ka9q-NOS       |
  4100.     Updates    --    Info - NOS version UPDATES by G1EMM.   |
  4101.                                                             |
  4102.     ---------------------------------------------------------
  4103.  
  4104. 7.7.  The /spool/forward.bbs file.
  4105.  
  4106. The mailbox reads a forwarding file,  spool/forward.bbs.  Here  is  a  sample
  4107. file.
  4108.     wb0ttw 0006
  4109.     ax25 ax0 wb0ttw
  4110.     wb0ttw
  4111.     w0tn
  4112.     mspbul
  4113.     all
  4114.     ------
  4115.     wb0gdb
  4116.     netrom #msparh
  4117.     ..c msparh
  4118.     all
  4119.     ------ The first word on the first line in a  forwarding  record  is  the
  4120. name  of the BBS to forward to. This should be the same type of name which is
  4121. shown by the mbox status command. The second word is optional. It specifies a
  4122. range  of  hours  when  forwarding may take place. 0006 means that there will
  4123. only be forwarding to this station between midnight and 6am.
  4124.  
  4125. The second line specifies how to establish the connection.  It  should  start
  4126. with  the  protocol (ax25, connect, tcp, telnet or netrom) and be followed by
  4127. all the parameters which are nessesary when Nos has to  establish  a  connec-
  4128. tion.
  4129.  
  4130. Directly after the second line, there may be lines that  start  with  a  dot.
  4131. What follows after the dot will be send to the remote BBS as soon as the con-
  4132. nection is established.
  4133.  
  4134. Then follows the names of a number  of  message  areas,  publib  or  private.
  4135. Finally,  there  should  be a couple of '-' signs to separate one  forwarding
  4136. record from another. Also terminate the file with a last line of dashes.
  4137.  
  4138. 7.8.  The /spool/rewrite file.
  4139.  
  4140. Read the rewrite file for lines where the first word is a regular  expression
  4141. and the second word are rewriting rules.  An optional third field, containing
  4142. just the letter "r", when present, instructs Nos to restart the rewrite file,
  4143. using  the  new destination address.  The special character '$' followed by a
  4144. digit denotes the string that matched a '*' character. The '*' characters are
  4145. numbered from 1 to 9.  Example: the line "*@*.* $2@$1.ampr.org" would rewrite
  4146. the address "foo@bar.xxx" to "bar@foo.ampr.org".
  4147.     #
  4148.     *@g1emm.ampr.org $1
  4149.     *@g1emm.ampr $1
  4150.     *@g1emm $1
  4151.     #
  4152.     *!*!*!*!*!*!* $7%$6@$5@$4@$3@$2@$1
  4153.     *!*!*!*!*!* $6%$5@$4@$3@$2@$1
  4154.     *!*!*!*!* $5%$4@$3@$2@$1
  4155.     *!*!*!* $4%$3@$2@$1
  4156.  
  4157.  
  4158.  
  4159.  
  4160.                                    - 64 -
  4161.     *!*!* $3%$2@$1
  4162.     *!* $2@$1
  4163.     !* $1 r
  4164.     #
  4165.     # The End
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.  
  4223.  
  4224.  
  4225.  
  4226.                                    - 65 -
  4227. 8.  Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window
  4228.  
  4229. Many Nos users are confused by these parameters and do not know  how  to  set
  4230. them  properly. This chapter will first review these parameters and then dis-
  4231. cuss how to choose values for them. Special emphasis  is  given  to  avoiding
  4232. interoperability  problems  that  may  appear when communicating with non-Nos
  4233. implementations of AX.25.
  4234.  
  4235. 8.1.  Hardware Parameters
  4236.  
  4237.  
  4238. 8.1.1.  Bufsize
  4239.  
  4240. This parameter is required by most of Nos's built-in HDLC drivers (eg.  those
  4241. for  the  DRSI  PCPA  and  the  Paccomm PC-100). It specifies the size of the
  4242. buffer to be allocated for each receiver port. HDLC frames larger  than  this
  4243. value cannot be received.
  4244.  
  4245. There is no default bufsize; it must be specified in the attach  command  for
  4246. the interface.
  4247.  
  4248. 8.2.  AX25 Parameters
  4249.  
  4250. 8.2.1.  Paclen
  4251.  
  4252. Paclen limits the size of the data field in an AX.25 I-frame. This value does
  4253. not  include  the  AX.25  protocol header (source, destination and digipeater
  4254. addresses).
  4255.  
  4256. Since unconnected-mode (datagram) AX.25 uses UI frames, this parameter has no
  4257. effect in unconnected mode.
  4258.  
  4259. The default value of paclen is 256 bytes.
  4260.  
  4261. 8.2.2.  Maxframe
  4262.  
  4263. This parameter controls the number of I-frames that Nos may send on an  AX.25
  4264. connection  before  it  must stop and wait for an acknowledgement.  Since the
  4265. AX.25/LAPB sequence number field is 3 bits wide, this number cannot be larger
  4266. than 7.
  4267.  
  4268. Since unconnected-mode (datagram) AX.25 uses  UI  frames  that  do  not  have
  4269. sequence numbers, this parameter does not apply to unconnected mode.
  4270.  
  4271. The default value of maxframe in Nos is 1 frame.
  4272.  
  4273. 8.3.  IP and TCP Parameters
  4274.  
  4275. 8.3.1.  MTU
  4276.  
  4277. The MTU (Maximum Transmission Unit) is an interface parameter that limits the
  4278. size  of  the largest IP datagram that it may handle.  IP datagrams routed to
  4279. an interface that are larger than its MTU are each split  into  two  or  more
  4280. fragments.  Each fragment has its own IP header and is handled by the network
  4281. as if it were a distinct IP datagram, but when it arrives at the  destination
  4282. it  is held by the IP layer until all of the other fragments belonging to the
  4283. original datagram have arrived. Then they are reassembled back into the  com-
  4284. plete,  original  IP  datagram.  The  minimum  acceptable interface MTU is 28
  4285. bytes: 20 bytes for the IP (fragment) header, plus 8 bytes of data.
  4286.  
  4287. There is no default MTU in Nos; it must  be  explicitly  specified  for  each
  4288.  
  4289.  
  4290.  
  4291.  
  4292.                                    - 66 -
  4293. interface as part of the attach command.
  4294.  
  4295. 8.3.2.  MSS
  4296.  
  4297. MSS (Maximum Segment Size) is a TCP-level parameter that limits the amount of
  4298. data  that  the  remote  TCP will send in a single TCP packet. MSS values are
  4299. exchanged in the SYN (connection request) packets that open a TCP connection.
  4300. In  the  Nos  implementation  of TCP, the MSS actually used by TCP is further
  4301. reduced in order to avoid fragmentation at the local IP interface.  That  is,
  4302. the local TCP asks IP for the MTU of the interface that will be used to reach
  4303. the destination. It then subtracts 40 from the MTU value  to  allow  for  the
  4304. overhead  of  the  TCP  and  IP  headers.  If the result is less than the MSS
  4305. received from the remote TCP, it is used instead.
  4306.  
  4307. The default value of MSS is 512 bytes.
  4308.  
  4309. 8.3.3.  Window
  4310.  
  4311. This is a TCP-level parameter that controls how much data the local TCP  will
  4312. allow the remote TCP to send before it must stop and wait for an acknowledge-
  4313. ment. The actual window value used by TCP when deciding how much more data to
  4314. send  is  referred  to  as  the effective window.  This is the smaller of two
  4315. values: the window advertised by the remote TCP minus the unacknowledged data
  4316. in  flight, and the congestion window, an automatically computed time-varying
  4317. estimate of how much data the network can handle.
  4318.  
  4319. The default value of Window is 2048 bytes.
  4320.  
  4321. 8.4.  Discussion
  4322.  
  4323.  
  4324. 8.4.1.  IP Fragmentation vs AX.25 Segmentation
  4325.  
  4326. IP-level fragmentation often makes it possible to interconnect two dissimilar
  4327. networks,  but it is best avoided whenever possible.  One reason is that when
  4328. a single IP fragment is lost, all  other  fragments  belonging  to  the  same
  4329. datagram   are  effectively  also  lost  and  the  entire  datagram  must  be
  4330. retransmitted by the source.  Even without loss, fragments require the  allo-
  4331. cation of temporary buffer memory at the destination, and it is never easy to
  4332. decide how long to wait for missing fragments before giving up and discarding
  4333. those  that  have already arrived.  A reassembly timer controls this process.
  4334. In Nos it is  (re)initialized  with  the  ip  rtimer  parameter  (default  30
  4335. seconds)  whenever  progress  is made in reassembling a datagram (i.e., a new
  4336. fragment is received).  It is not necessary that all of the fragments belong-
  4337. ing  to  a  datagram  arrive  within a single timeout interval, only that the
  4338. interval between fragments be less than the timeout.
  4339.  
  4340. Most subnetworks that carry IP have MTUs of 576 bytes or more,  so  intercon-
  4341. necting  them  with subnetworks having smaller values can result in consider-
  4342. able fragmentation. For this reason, IP implementors working  with  links  or
  4343. subnets having unusually small packet size limits are encouraged to use tran-
  4344. sparent fragmentation, that is, to  devise  schemes  to  break  up  large  IP
  4345. datagrams  into  a  sequence  of  link  or subnet frames that are immediately
  4346. reassembled on the other end of the link or subnet into the  original,  whole
  4347. IP  datagram without the use of IP-level fragmentation. Such a scheme is pro-
  4348. vided in AX.25 Version 2.1.  It can break a large IP or NET/ROM datagram into
  4349. a  series  of  paclen-sized  AX.25 segments (not to be confused with TCP seg-
  4350. ments), one per AX.25 I-frame, for transmission and reassemble  them  into  a
  4351. single  datagram  at the other end of the link before handing it up to the IP
  4352. or NET/ROM module.   Unfortunately,  the  segmentation  procedure  is  a  new
  4353. feature  in  AX.25  and is not yet widely implemented; in fact, Nos is so far
  4354.  
  4355.  
  4356.  
  4357.  
  4358.                                    - 67 -
  4359. the only known implementation. This creates  some  interoperability  problems
  4360. between  Nos  and  non-Nos nodes, in particular, standard NET/ROM nodes being
  4361. used to carry IP datagrams. This problem is discussed further in the  section
  4362. on setting the MTU.
  4363.  
  4364. 8.4.2.  Setting paclen and bufsize
  4365.  
  4366. The more data you put into an AX.25 I frame, the smaller  the  AX.25  headers
  4367. are  in  relation  to  the  total  frame  size. In other words, by increasing
  4368. paclen, you lower the AX.25  protocol  overhead.  Also,  large  data  packets
  4369. reduce  the overhead of keying up a transmitter, and this can be an important
  4370. factor with higher speed modems. On the other hand, large frames make  bigger
  4371. targets  for noise and interference. Each link has an optimum value of paclen
  4372. that is best discovered by experiment.
  4373.  
  4374. Another thing to remember when setting paclen is that the AX.25  version  2.0
  4375. specification  limits  it  to  256 bytes. Although Nos can handle much larger
  4376. values, some other AX.25 implementations (including digipeaters)  cannot  and
  4377. this may cause interoperability problems. Even Nos may have trouble with cer-
  4378. tain KISS TNCs because of fixed-size buffers. The original KISS TNC code  for
  4379. the  TNC-2  by  K3MC can handle frames limited in size only by the RAM in the
  4380. TNC, but some other KISS TNCs cannot.
  4381.  
  4382. Nos's built-in HDLC drivers (SCC, PC-100, DRSI, etc) allocate receive buffers
  4383. according  to  the maximum expected frame size, so it is important that these
  4384. devices be configured with the correct bufsize. To do this, you must know the
  4385. size of the largest possible frame that can be received. The paclen parameter
  4386. controls only the size of the data field in an I-frame and not the total size
  4387. of  the  frame  as it appears on the air. The AX.25 spec allows up to 8 digi-
  4388. peaters, so the largest possible frame is (paclen + 72) bytes. So you  should
  4389. make bufsize at least this large.
  4390.  
  4391. Another important consideration is that  the  more  recent  versions  of  NOS
  4392. improve  interrupt  response by maintaining a special pool of buffers for use
  4393. by the receive routines.  These buffers are currently fixed in size  to  2048
  4394. bytes  and  this can be changed only by editing config.h and recompiling NOS.
  4395. This limits bufsize; in fact, attempting to set a larger value may cause  the
  4396. driver  not  to  work  at  all. This situation can be detected by running the
  4397. memory status command and looking for a non-zero count  of  Ibuffail  events,
  4398. although these events can also occur occasionally during normal operation.
  4399.  
  4400. One of the drawbacks of AX.25 that there is no way for one  station  to  tell
  4401. another  how  large a packet it is willing to accept.  This requires the sta-
  4402. tions sharing a channel to agree beforehand on a maximum packet size.  TCP is
  4403. different, as we shall see.
  4404.  
  4405. 8.4.3.  Setting Maxframe
  4406.  
  4407. For best performance on a half-duplex radio channel, maxframe  should  always
  4408. be  set  to  1.  The  reasons are explained in the paper Link Level Protocols
  4409. Revisited by Brian Lloyd and Phil Karn, which appeared in the proceedings  of
  4410. the ARRL 5th Computer Networking Conference in 1986.
  4411.  
  4412. 8.4.4.  Setting MTU
  4413.  
  4414. TCP/IP header overhead considerations similar to those  of  the  AX.25  layer
  4415. when  setting paclen apply when choosing an MTU.  However, certain subnetwork
  4416. types supported by Nos have well-established MTUs, and these should always be
  4417. used  unless  you  know  what  you're doing: 1500 bytes for Ethernet, and 508
  4418. bytes for ARCNET.  The MTU for PPP is automatically negotiated, and  defaults
  4419. to  1500.   Other  subnet  types,  including  SLIP and AX.25, are not as well
  4420.  
  4421.  
  4422.  
  4423.  
  4424.                                    - 68 -
  4425. standardized.
  4426.  
  4427. SLIP has no official MTU, but the most common implementation (for  BSD  UNIX)
  4428. uses  an MTU of 1006 bytes.  Although Nos has no hard wired limit on the size
  4429. of a received SLIP frame, this is not true for other systems.  Interoperabil-
  4430. ity problems may therefore result if larger MTUs are used in Nos.
  4431.  
  4432. Choosing an MTU for an AX.25 interface is more complex.  When  the  interface
  4433. operates  in  datagram  (UI-frame) mode, the paclen parameter does not apply.
  4434. The MTU effectively becomes the paclen of the link.   However,  as  mentioned
  4435. earlier,  large packets sent on AX.25 connections are automatically segmented
  4436. into I-frames no larger than paclen bytes.  Unfortunately, as also  mentioned
  4437. earlier, Nos is so far the only known implementation of the new AX.25 segmen-
  4438. tation procedure. This is fine as long as all of the NET/ROM  nodes  along  a
  4439. path  are  running  Nos, but since the main reason Nos supports NET/ROM is to
  4440. allow use of existing NET/ROM networks, this is unlikely.
  4441.  
  4442. So it is usually important to avoid AX.25 segmentation when running  IP  over
  4443. NET/ROM.   The way to do this is to make sure that packets larger than paclen
  4444. are never handed to AX.25.  A NET/ROM transport header is 5 bytes long and  a
  4445. NET/ROM  network header takes 15 bytes, so 20 bytes must be added to the size
  4446. of an IP datagram when figuring the size of the AX.25 I-frame data field.  If
  4447. paclen is 256, this leaves 236 bytes for the IP datagram. This is the default
  4448. MTU of the netrom pseudo-interface, so as long as  paclen  is  at  least  256
  4449. bytes,  AX.25  segmentation can't happen. But if smaller values of paclen are
  4450. used, the netrom MTU must also be reduced with the ifconfig command.
  4451.  
  4452. On the other hand, if you're running IP directly on top of AX.25, chances are
  4453. all  of  the  nodes  are running Nos and support AX.25 segmentation.  In this
  4454. case there is no reason not to use a larger MTU and let AX.25 segmentation do
  4455. its  thing.  If  you  choose  an MTU on the order of 1000-1500 bytes, you can
  4456. largely avoid IP-level fragmentation and reduce TCP/IP-level header  overhead
  4457. on  file transfers to a very low level.  And you are still free to pick what-
  4458. ever paclen value is appropriate for the link.
  4459.  
  4460. 8.4.5.  Setting MSS
  4461.  
  4462.  
  4463. The setting of this TCP-level parameter is somewhat less critical than the IP
  4464. and  AX.25 level parameters already discussed, mainly because it is automati-
  4465. cally lowered according to the MTU of the local interface when  a  connection
  4466. is  created.  Although this is, strictly speaking, a protocol layering viola-
  4467. tion (TCP is not supposed to have any knowledge  of  the  workings  of  lower
  4468. layers)  this  technique  does  work  well  in  practice.  However, it can be
  4469. fooled; for example, if a routing change occurs after the connection has been
  4470. opened  and  the new local interface has a smaller MTU than the previous one,
  4471. IP fragmentation may occur in the local system.
  4472.  
  4473. The only drawback to setting a large MSS is that  it  might  cause  avoidable
  4474. fragmentation  at  some  other point within the network path if it includes a
  4475. "bottleneck" subnet with an MTU smaller than that  of  the  local  interface.
  4476. (Unfortunately,  there  is  presently  no  way to know when this is the case.
  4477. There is ongoing work within the Internet Engineering Task Force  on  a  "MTU
  4478. Discovery"  procedure to determine the largest datagram that may be sent over
  4479. a given path without fragmentation, but it is not yet complete.)  Also, since
  4480. the  MSS  you specify is sent to the remote system, and not all other TCPs do
  4481. the MSS-lowering procedure yet, this might cause the remote  system  to  gen-
  4482. erate IP fragments unnecessarily.
  4483.  
  4484. On the other hand, a too-small MSS can result in a  considerable  performance
  4485. loss,  especially  when operating over fast LANs and networks that can handle
  4486.  
  4487.  
  4488.  
  4489.  
  4490.                                    - 69 -
  4491. larger packets. So the best value for MSS is probably 40 less than the  larg-
  4492. est  MTU  on your system, with the 40-byte margin allowing for the TCP and IP
  4493. headers. For example, if you have a SLIP interface with a 1006 byte  MTU  and
  4494. an  Ethernet  interface  with  a  1500  byte MTU, set MSS to 1460 bytes. This
  4495. allows you to receive maximum-sized Ethernet packets, assuming  the  path  to
  4496. your system does not have any bottleneck subnets with smaller MTUs.
  4497.  
  4498. 8.4.6.  Setting Window
  4499.  
  4500. A sliding window protocol like TCP cannot transfer  more  than  one  window's
  4501. worth  of data per round trip time interval. So this TCP-level parameter con-
  4502. trols the ability of the remote TCP to keep a long "pipe" full. That is, when
  4503. operating  over  a path with many hops, offering a large TCP window will help
  4504. keep all those hops busy when you're  receiving  data.  On  the  other  hand,
  4505. offering  too  large a window can congest the network if it cannot buffer all
  4506. that data. Fortunately, new algorithms for dynamic controlling the  effective
  4507. TCP  flow  control window have been developed over the past few years and are
  4508. now widely deployed.  Nos includes them, and you can  watch  them  in  action
  4509. with  the  tcp  status  <tcb> or socket <sockno> commands.  Look at the cwind
  4510. (congestion window) value.
  4511.  
  4512. In most cases it is safe to set the TCP window to a small integer multiple of
  4513. the  MSS,  (eg.  4times),  or  larger  if  necessary  to fully utilize a high
  4514. bandwidth*delay product path. One thing to keep in  mind,  however,  is  that
  4515. advertising a certain TCP window value declares that the system has that much
  4516. buffer space available for incoming data.  Nos does not actually  preallocate
  4517. this space; it keeps it in a common pool and may well "overbook" it, exploit-
  4518. ing the fact that many TCP connections are idle for long periods and gambling
  4519. that  most  applications will read incoming data from an active connection as
  4520. soon as it arrives, thereby quickly freeing the buffer memory.   However,  it
  4521. is possible to run Nos out of memory if excessive TCP window sizes are adver-
  4522. tised and either the applications go to  sleep  indefinitely  (eg.  suspended
  4523. Telnet  sessions)  or  a  lot of out-of-sequence data arrives.  It is wise to
  4524. keep an eye on the amount of available memory and to decrease the TCP  window
  4525. size (or limit the number of simultaneous connections) if it gets too low.
  4526.  
  4527. Depending on the channel access method and link level protocol, the use of  a
  4528. window  setting  that exceeds the MSS may cause an increase in channel colli-
  4529. sions. In particular, collisions between  data  packets  and  returning  ack-
  4530. nowledgements  during  a  bulk file transfer may become common. Although this
  4531. is, strictly speaking, not TCP's fault, it is possible  to  work  around  the
  4532. problem  at  the  TCP  level  by  decreasing  the window so that the protocol
  4533. operates in stop-and-wait mode.  This is done  by  making  the  window  value
  4534. equal to the MSS.
  4535.  
  4536. 8.5.  Summary
  4537.  
  4538. In most cases, the default values provided by Nos for each of  these  parame-
  4539. ters  will  work  correctly  and give reasonable performance. Only in special
  4540. circumstances such as operation over a very poor link or experimentation with
  4541. high speed modems should it be necessary to change them.
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.