home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / MISC / NETWORK / NOS_SLFP.ZIP / KA9QDOC.NR < prev    next >
Encoding:
Text File  |  1991-06-18  |  142.4 KB  |  3,600 lines

  1. .ds RF Jun 07, 1991
  2. .TL
  3. NET User Reference Manual (NOS Version)
  4. .AU
  5. Phil Karn, KA9Q
  6. .nr LL 6.5i
  7. .NH 1
  8. The NET.EXE Program
  9. .LP
  10. The MS-DOS executable file \fBnet.exe\fP provides Internet (TCP/IP),
  11. NET/ROM and AX.25
  12. facilities.  Because it has an internal multitasking operating system,
  13. \fBnet.exe\fP can act simultaneously as a client, a server and a packet switch
  14. for all three sets of protocols. That is, while a local user accesses remote
  15. services, the system can also provide those same services to remote users
  16. while also switching IP, NET/ROM and AX.25 packets and frames between other
  17. client and server nodes.
  18. .LP
  19. The keyboard and display is used by the local operator to control both host
  20. and gateway level functions, for which a number of commands are provided.
  21. .NH 2
  22. Installation
  23. .LP
  24. \fBNet.exe\fP uses the following directory structure:
  25. .DS
  26. /spool
  27. /spool/help
  28. /spool/mail
  29. /spool/mqueue
  30. /spool/rqueue
  31. /spool/news
  32. .DE
  33. .LP
  34. By default, the /spool directory is placed in the root directory of the
  35. current drive. However, a subdirectory may be specified with the 
  36. \fB-d\fP command-line option described below. If a subdirectory is
  37. given, the
  38. \fBalias, autoexec.net, dialer, domain.txt\fP and \fBftpusers\fP
  39. configuration files must also be located there.
  40. .LP
  41. The "/spool" directory and its sub-directories are used by the bbs,
  42. SMTP and NNTP services.
  43. The \fBareas, forward.bbs, history, mail.log, rewrite\fP and \fBsignatur\fP
  44. configuration files are located here.
  45. .NH 2
  46. net [-b] [-s <sockets>] [-d <directory>] [<startup file>]
  47. .NH 3
  48. -b
  49. .LP
  50. The \fB-b\fP option specifies the use of BIOS for console output;
  51. the default is to write directly to the video display buffer. Use
  52. this option if you are running under a windowing package and have
  53. trouble with output "bleeding through" on top of other windows.
  54. .NH 3
  55. -s
  56. .LP
  57. The \fB-s\fP option specifies the size of the
  58. \fIsocket\fP array to be allocated within \fBnet.exe\fP. This limits the number
  59. of network connections that may exist simultaneously.
  60. The default is 40.
  61. .NH 3
  62. -d
  63. .LP
  64. The \fB-d\fP option allows the user to specify a directory for the
  65. configuration and spool files; it defaults to the root directory of the system.
  66. .NH 3
  67. Startup file
  68. .LP
  69. After all command-line options, the name of a startup file may be specified.
  70. If no startup file is specified, \fBnet.exe\fP attempts to open a file named
  71. \fBautoexec.net\fP in the configuration directory of the current drive.
  72. If the file exists,
  73. it is read and executed as though its contents were typed on the
  74. console as commands.
  75. (See the \fBCommands\fP chapter.)
  76. This feature is useful for attaching communication
  77. interfaces, configuring network addresses, and starting the various services.
  78. .NH 1
  79. Console modes
  80. .LP
  81. The console may be in one of two modes: \fIcommand mode\fP and
  82. \fIconverse mode\fP.
  83. In \fIcommand mode\fP, the prompt \fBnet>\fP is displayed and any of the
  84. commands described in the \fBCommands\fP chapter may be entered.
  85. In \fIconverse mode\fP,
  86. keyboard input is processed according to the \fIcurrent session\fP.
  87. .LP
  88. Sessions come in many types, including \fITelnet, FTP, AX25,
  89. NETROM, Ping, More, Hopcheck\fP and \fITip\fP.
  90. In a Telnet, AX25, NETROM, or Tip session, keyboard input is sent to the
  91. remote system and any output from the remote system is displayed on the
  92. console.  In a FTP session, keyboard input is first examined to see if
  93. it is a known local command; if so it is executed locally.  If not, it
  94. is "passed through" to the remote FTP server.
  95. (See the \fBFTP Subcommands\fP chapter).
  96. In a Ping session the user may test the path to a
  97. remote site, and in a More session, the user may examine a local
  98. file. A Hopcheck session is used to trace the path taken by packets
  99. to reach a specified destination. A Tip session provides a "dumb terminal"
  100. service that bypasses all network protocols.
  101. .LP
  102. The keyboard also has \fIcooked\fP and \fIraw\fP states.
  103. In \fIcooked\fP state, input
  104. is line-at-a-time; the user may use the line editing characters ^U, ^R
  105. and backspace to erase the line, redisplay the line and erase the last
  106. character, respectively.  Hitting either return or line feed passes the
  107. complete line up to the application.
  108. In \fIraw\fP state, each character is
  109. immediately passed to the application as it is typed.
  110. .LP
  111. The keyboard is always in \fIcooked\fP state in command mode.
  112. It is also \fIcooked\fP in converse mode on an AX25, FTP or NET/ROM session.
  113. In a Telnet session it depends on
  114. whether the remote end has issued (and the local end has accepted) the
  115. Telnet WILL ECHO option (see the \fBecho\fP command).
  116. .LP
  117. On the IBM-PC, the user may escape back to \fIcommand mode\fP
  118. by hitting the F10 key.
  119. On other systems, the user must enter the \fIescape\fP character,
  120. which is by default control-] (hex 1d, ASCII GS).
  121. (Note that this is distinct from the ASCII character of the same name).
  122. The \fIescape\fP character can be changed (see the \fBescape\fP command).
  123. .LP
  124. In the IBM PC version, each session (including the command "session")
  125. has its own screen.
  126. When a new session is created,
  127. the command display is saved in memory and the screen is cleared.
  128. When the command escape key (usually F10) is hit,
  129. the current session screen is saved and the command screen is restored.
  130. When a session is resumed,
  131. its screen is restored exactly as it appeared when it was last current.
  132. .NH 1
  133. Commands
  134. .LP
  135. This chapter describes the commands recognized in command mode,
  136. or within a startup file such as \fBautoexec.net\fP.
  137. These are given in the following notation:
  138. .DS
  139. command
  140. command literal_parameter
  141. command subcommand <parameter>
  142. command [<optional_parameter>]
  143. command a | b
  144. .DE
  145. .LP
  146. Many commands take subcommands or parameters, which may be optional or
  147. required. In general, if a required subcommand or parameter is omitted,
  148. an error message will summarize the available subcommands or required
  149. parameters.  (Giving a '?' in place of the subcommand will also generate the
  150. message.  This is useful when the command word alone is a valid command.) If
  151. a command takes an optional value parameter, issuing the command without the
  152. parameter generally displays the current value of the variable. (Exceptions
  153. to this rule are noted in the individual command descriptions.)
  154. .LP
  155. Two or more parameters separated by vertical bar(s) denote a choice between
  156. the specified values.  Optional parameters are shown enclosed in [brackets],
  157. and a parameter enclosed in <angle brackets> should be replaced with an
  158. actual value or string.  For example, the notation \fB<hostid>\fP denotes an
  159. actual host or gateway, which may be specified in one of two ways:
  160. as a numeric IP address in dotted decimal notation (eg. 44.0.0.1), or
  161. as a symbolic name listed in the file \fBdomain.txt\fP.
  162. .LP
  163. All commands and many subcommands may be abbreviated. You only need
  164. type enough of a command's name to distinguish it from others that
  165. begin with the same series of letters. Parameters, however, must be
  166. typed in full.
  167. .LP
  168. Certain FTP subcommands (eg. \fBput, get, dir\fP, etc) are recognized
  169. only in converse mode with the appropriate FTP session; they are not
  170. recognized in command mode.
  171. (See the \fBFTP Subcommands\fP chapter.)
  172. .LP
  173. Note that certain commands may have been configured out of a given
  174. copy of \fBnet.exe\fP to save disk and memory.
  175. If a command has been configured out, it will not appear in the list
  176. produced by the "?" command, nor will it be recognized by the command
  177. interpreter.
  178. .NH 2
  179. <CR>
  180. .LP
  181. Entering a carriage return (empty line) while in command mode puts you in
  182. converse mode with the current session. If there is no current session,
  183. \fBnet.exe\fP remains in command mode.
  184. .NH 2
  185. !
  186. .LP
  187. An alias for the \fBshell\fP command.
  188. .NH 2
  189. #
  190. .LP
  191. Commands starting with the hash mark (#) are ignored. This is mainly useful
  192. for comments in the \fBautoexec.net\fP file.
  193. .NH 2
  194. abort [<session #>]
  195. .LP
  196. Abort a FTP \fBget, put\fP or \fBdir\fP operation in progress. If issued without
  197. an argument, the current session is aborted. (This command works only
  198. on FTP sessions.) When receiving a file, \fBabort\fP
  199. simply resets the data connection; the next incoming data packet will generate
  200. a TCP RST (reset) response to clear the remote server.  When
  201. sending a file, \fBabort\fP sends a premature end-of-file. Note that in both
  202. cases \fBabort\fP will leave a partial copy of the file on the destination
  203. machine, which must be removed manually if it is unwanted.
  204. .NH 2
  205. arp
  206. .LP
  207. Display the Address Resolution Protocol table that maps IP addresses
  208. to their subnet (link) addresses on subnetworks capable of broadcasting.
  209. For each IP address entry the subnet type (eg. Ethernet, AX.25), subnet
  210. address and time to expiration is shown. If the link address is currently
  211. unknown, the number of IP datagrams awaiting resolution is also shown.
  212. .NH 3
  213. arp add <hostid> ethernet | ax25 <ethernet address> | <ax25_address>
  214. .LP
  215. Add a permanent entry to the table. It will not time out
  216. as will an automatically-created entry, but must be removed with the
  217. \fBarp drop\fP command.
  218. .NH 3
  219. arp publish <hostid> ethernet | ax25 <ethernet address> | <ax25_address>
  220. .LP
  221. This command is similar to the \fBarp add\fP command, but
  222. system will also respond to any ARP request it sees on the network that seeks
  223. the specified address.  \fIUse this feature with great care.\fP
  224. .NH 3
  225. arp drop <hostid> ax25 | ethernet
  226. .LP
  227. Remove the specified entry from the ARP table.
  228. .NH 3
  229. arp flush
  230. .LP
  231. Drop all automatically-created entries in the ARP table. Permanent
  232. entries are not affected.
  233. .NH 2
  234. asystat
  235. .LP
  236. Display statistics on attached asynchronous communications interfaces
  237. (8250 or 16550A), if any. The display for each port consists of three
  238. lines. The first line gives the port label and the configuration flags;
  239. these indicate whether the port is a 16550A chip, the \fItrigger character\fP
  240. if any,
  241. whether CTS flow control is enabled,
  242. whether RLSD (carrier detect) line control is enabled,
  243. and the speed in bits per second.
  244. (Receiving the \fItrigger character\fP causes the driver
  245. to signal upper layer software that data is ready;
  246. it is automatically set to the appropriate frame end
  247. character for SLIP, PPP and NRS lines.)
  248. .LP
  249. The second line of the status display shows receiver (RX) event counts: the
  250. total number of receive interrupts, received characters, receiver overruns
  251. (lost characters) and the receiver \fIhigh water mark\fP.
  252. The high water mark is
  253. the maximum number of characters ever read from the device during a single
  254. interrupt. This is useful for monitoring system interrupt latency margins as
  255. it shows how close the port hardware has come to overflowing due to the
  256. inability of the CPU to respond to a receiver interrupt in time. 8250 chips
  257. have no FIFO, so the high water mark cannot go higher than 2 before overruns
  258. occur. The 16550A chip, however, has a 16-byte receive FIFO which the
  259. software programs to interrupt the CPU when the FIFO is one-quarter full.
  260. The high water mark should typically be 4 or 5 when a 16550A is used; higher
  261. values indicate that the CPU has at least once been slow to respond
  262. to a receiver interrupt.
  263. .LP
  264. When the 16550A is used, a count of FIFO timeouts is also displayed on the
  265. RX status line. These are generated automatically by the 16550A when three
  266. character intervals go by with more than 0 but less than 4 characters in the
  267. FIFO. Since the characters that make up a SLIP or NRS frame are normally
  268. sent at full line speed,
  269. this count will usually be a lower bound on the number of frames received
  270. on the port, as only the last fragment of a frame generally results
  271. in a timeout (and then only when the frame is not a multiple of 4 bytes
  272. long.)
  273. .LP
  274. Finally, the software fifo overruns and high water mark are displayed.
  275. These indicate whether the <bufsize> parameter on the attach command
  276. needs to be adjusted (see the \fBAttach Commands\fP chapter).
  277. .LP
  278. The third line shows transmit (TX) statistics,
  279. including a total count of transmit interrupts, transmitted characters,
  280. the length of the transmit queue in bytes,
  281. the number of status interrupts,
  282. and the number of THRE timeouts.
  283. The status interrupt count will be zero
  284. unless CTS flow control or RLSD line control has been enabled.
  285. The THRE timeout is a stopgap measure to catch lost transmit interrupts,
  286. which seem to happen when there is a lot of activity
  287. (ideally, this will be zero).
  288. .NH 2
  289. attach <hw type> ...
  290. .LP
  291. Configure and attach a hardware interface to the system.
  292. Detailed instructions for each driver are in the \fBAttach Commands\fP chapter.
  293. An easy way to obtain a summary of the parameters required for a given device
  294. is to issue a partial attach command (eg. \fBattach packet\fP).
  295. This produces a usage message giving the complete command format.
  296. .NH 2
  297. ax25 ...
  298. .LP
  299. These commands are used to control the AX.25 amateur radio link level
  300. protocol.
  301. .NH 3
  302. ax25 blimit [<count>]
  303. .LP
  304. Display or set the AX25 retransmission backoff limit. Normally each
  305. successive AX25 retransmission is delayed by twice the value of the
  306. previous interval; this is called \fIbinary exponential backoff\fP.
  307. When the backoff reaches the blimit setting it is held at that value,
  308. which defaults to 30.
  309. To prevent the possibility of "congestive collapse" on a loaded channel,
  310. blimit should be set at least as high as the number of stations sharing
  311. the channel.
  312. Note that this is applicable only on actual AX25 connections; UI frames
  313. will never be retransmitted by the AX25 layer.
  314. .NH 3
  315. ax25 dest
  316. .LP
  317. Display the AX25 destination monitoring database. Each callsign seen in
  318. the destination field of
  319. an AX25 frame is displayed (most recent first), along with the time
  320. since it was last referenced. The time since the same callsign was last
  321. seen in the source field of an AX25 frame on the same interface is also
  322. shown. If the callsign has never been seen in the source field of
  323. a frame, then this field is left blank. (This indicates that the
  324. destination is either a multicast address or a "hidden station".)
  325. .NH 3
  326. ax25 digipeat [on | off]
  327. .LP
  328. Display or set the digipeater enable flag.
  329. .NH 3
  330. ax25 flush
  331. .LP
  332. Clear the AX.25 "heard" list (see \fBax25 heard\fP).
  333. .NH 3
  334. ax25 heard
  335. .LP
  336. Display the AX.25 "heard" list. For each interface that is configured to
  337. use AX.25, a list of all callsigns heard through that interface is
  338. shown, along with a count of the number of packets heard from each station
  339. and the interval, in hr:min:sec format, since each station was last heard.
  340. The list is sorted in most-recently-heard order.
  341. The local station is included in the listing; the packet count reflects
  342. the number of packets transmitted. This count will be correct whether
  343. or not the modem monitors its own transmissions.
  344. .NH 3
  345. ax25 irtt [<milliseconds>]
  346. .LP
  347. Display or set the initial value of smoothed round trip time to be used
  348. when a new AX25 connection is created. The value is in milliseconds.
  349. The actual round trip time will be learned by measurement once the
  350. connection has been established.
  351. .NH 3
  352. ax25 kick <axcb>
  353. .LP
  354. Force a retransmission on the specified AX.25 control block.
  355. .NH 3
  356. ax25 maxframe [<count>]
  357. .LP
  358. Establish the maximum number of frames that will be allowed to remain
  359. unacknowledged at one time on new AX.25 connections. This number cannot
  360. be greater than 7.
  361. .NH 3
  362. ax25 mycall [<call>]
  363. .LP
  364. Display or set the local AX.25 address.  The standard format is used
  365. (eg. KA9Q-0 or WB6RQN-5).
  366. This command must be given before any \fBattach\fP commands
  367. using AX.25 mode are given.
  368. .NH 3
  369. ax25 paclen [<size>]
  370. .LP
  371. Limit the size of I-fields on new AX.25 connections.  If IP
  372. datagrams or fragments larger than this are transmitted, they will be
  373. transparently fragmented at the AX.25 level, sent as a series of I
  374. frames, and reassembled back into a complete IP datagram or fragment at
  375. the other end of the link. To have any effect on IP datagrams,
  376. this parameter should be less than or equal to
  377. the MTU of the associated interface.
  378. .NH 3
  379. ax25 pthresh [<size>]
  380. .LP
  381. Display or set the poll threshold to be used for new AX.25 Version 2
  382. connections.  The poll threshold controls retransmission behavior as
  383. follows. If the oldest unacknowledged I-frame size is less than the poll
  384. threshold, it will be sent with the poll (P) bit set if a timeout occurs.
  385. If the oldest unacked I-frame size is equal to or greater than the
  386. threshold, then a RR or RNR frame, as appropriate, with the poll bit set
  387. will be sent if a timeout occurs.
  388. .LP
  389. The idea behind the poll threshold is that the extra time needed to send a
  390. "small" I-frame instead of a supervisory frame when polling after a timeout
  391. is small, and since there's a good chance the I-frame will have to be sent
  392. anyway (i.e., if it were lost previously) then you might as well send it as
  393. the poll. But if the I-frame is large, send a supervisory (RR/RNR) poll
  394. instead to determine first if retransmitting the oldest unacknowledged
  395. I-frame is necessary; the timeout might have been caused by a lost
  396. acknowledgement.  This is obviously a tradeoff, so experiment with the
  397. poll threshold setting. The default is 128 bytes, one half the default
  398. value of \fBpaclen\fP.
  399. .NH 3
  400. ax25 reset <axcb>
  401. .LP
  402. Delete the AX.25 connection control block at the specified address.
  403. .NH 3
  404. ax25 retry [<count>]
  405. .LP
  406. Limit the number of successive unsuccessful retransmission attempts on
  407. new AX.25 connections. If this limit is exceeded, link re-establishment
  408. is attempted. If this fails \fBretry\fP times, then the connection
  409. is abandoned and all queued data is deleted. A value of 0 means "infinity";
  410. the retry limit is disabled.
  411. retry 
  412. .NH 3
  413. ax25 route
  414. .LP
  415. Display the AX.25 routing table that
  416. specifies the digipeaters to be used in reaching a given station.
  417. .NH 4
  418. ax25 route add <target> [digis ... ]
  419. .LP
  420. Add an entry to the AX.25 routing table.  An automatic \fBax25
  421. route add\fP is executed if digipeaters are specified in an AX25 \fBconnect\fP
  422. command, or if a connection is received from a remote station via
  423. digipeaters. Such automatic routing table entries won't override locally
  424. created entries, however.
  425. .NH 4
  426. ax25 route drop <target>
  427. .LP
  428. Drop an entry from the AX.25 routing table.
  429. .NH 3
  430. ax25 status [<axcb>]
  431. .LP
  432. Without an argument, display a one-line summary of each AX.25 control block.
  433. If the address of a particular control block is specified, the contents of
  434. that control block are dumped in more detail. Note that the send queue units
  435. are frames, while the receive queue units are bytes.
  436. .NH 3
  437. ax25 t3 [<milliseconds>]
  438. .LP
  439. Display or set the AX.25 idle "keep alive" timer. Value is in milliseconds.
  440. .NH 3
  441. ax25 version [1 | 2]
  442. .LP
  443. Display or set the version of the AX.25 protocol to attempt to use on
  444. new connections. The default is 1 (the version
  445. that does not use the poll/final bits).
  446. .NH 3
  447. ax25 window [<size>]
  448. .LP
  449. Set the number of bytes that can be pending on an AX.25 receive queue
  450. beyond which I frames will be answered with RNR (Receiver Not Ready)
  451. responses.  This presently applies only to suspended interactive AX.25
  452. sessions, since incoming I-frames containing network (IP, NET/ROM) packets
  453. are always processed immediately and are not placed on the receive queue.
  454. However, when an AX.25 connection carries both interactive
  455. and network packet traffic, an RNR generated because of
  456. backlogged interactive traffic will also stop network
  457. packet traffic from being sent.
  458. .NH 2
  459. BOOTP
  460. .LP
  461. The bootp client and server are added to KA9Q to provide automatic
  462. configuration capabilities.  With this suite of extensions, a KA9Q host
  463. can automatically configure its IP address, subnet mask, broadcast
  464. address, host name, the default gateway, the name servers, and default
  465. boot file.  This simplifies host configuration.
  466. .LP
  467. The bootp server supports dynamic IP address assignment.  If a bootp
  468. request is made by a host to the server, and the server doesn't have a
  469. static record for the PC making the request, an IP address may be
  470. assigned from a list of dynamic addresses.  This simplifies server
  471. configuration, so that machines don't require prior IP address
  472. assignment.  This is useful in environments such as university
  473. dormitories, where network service is provided, and the computers
  474. configurations change frequently.  When the server list of free
  475. addresses reaches a minimum threshold, it will begin attempts to
  476. reclaim the address.
  477. .LP
  478. The bootp client and server code are written according to RFC 951 and
  479. 1048.
  480. .NH 3
  481. bootp  [<net_name>] [silent] [noisy]
  482. .LP
  483. Send a request to a bootp server, and wait for a reply.  On receipt
  484. of the server reply, the information is used to configure the host.  If
  485. a reply is not received, the command will time out. Without arguments,
  486. \fBbootp\fP sends a request to the first interface in the interface list.
  487. .LP
  488. This command requires that there exist a routing entry for the
  489. IP broadcast address
  490. 255.255.255.255 pointing to the appropriate interface. If the
  491. interface uses ARP, there must also be an ARP entry that maps that address
  492. to the appropriate link level broadcast address.
  493. For example, if you have an Ethernet interface named "ethernet", use the
  494. following commands before the \fBbootp\fP command:
  495. .IP
  496. route add 255.255.255.255 ethernet
  497. .sp
  498. arp add 255.255.255.255 ether ff:ff:ff:ff:ff:ff
  499. .LP
  500. The following \fBbootp\fP subcommands are available:
  501. .NH 4
  502. bootp <net_name>
  503. .LP
  504. Send a request over the specified network.
  505. .NH 4
  506. bootp silent
  507. .LP
  508. Set bootp so that it will not print the configuration.
  509. .NH 4
  510. bootp noisy
  511. .LP
  512. Set bootp so that it will print the configuration.
  513. .NH 3
  514. bootpd ...
  515. .LP
  516. This command starts and stops the bootp server, and sets the
  517. configuration for the information it will provide in replies.  If the
  518. file \fBbootptab\fP exists, it will read the file for configuration
  519. information.  On receipt of a request, if \fBbootptab\fP has been changed,
  520. the server will reread the file for the changed configuration.
  521. The following subcommands are available:
  522. .NH 4
  523. bootpd start
  524. .LP
  525. Start the bootp server, reading from the file bootptab
  526. for configuration information.
  527. .NH 4
  528. bootpd stop
  529. .LP
  530. Stop the bootp server.
  531. .NH 4
  532. bootpd dns
  533. .LP
  534. Print the address of the domain name servers supplied in replies.
  535. .NH 4
  536. bootpd dns <IP addr of domain name server>...
  537. .LP
  538. Set the addresses.
  539. .NH 4
  540. bootpd dynip
  541. .LP
  542. Print the range and use of the dynamic IP address.
  543. .NH 4
  544. bootpd dynip <net_name> <IP address> <IP address>
  545. .LP
  546. Set the range of IP address to be used for network
  547. netname.  These address will be supplied to hosts that
  548. are not found in the static record.
  549. .NH 4
  550. bootpd dynip <netname> off
  551. .LP
  552. Turn off dynamic ip for network interface netname.
  553. .NH 4
  554. bootpd host
  555. .LP
  556. Print the information in the static host table.
  557. .NH 4
  558. bootpd host <hostname>  ethernet|ax25 <ethernet addr>|<ax25 addr> <ip addr> [boot file]
  559. .LP
  560. Add a host to the host table.  The LANSTAR packet
  561. drivers provide an Ethernet interface to upper layer
  562. applications, so configure a LANSTAR network as an
  563. Ethernet.
  564. .NH 4
  565. bootpd rmhost <hostname>
  566. .LP
  567. Remove host <hostname> from the static host tables.
  568. .NH 4
  569. bootpd homedir
  570. .LP
  571. Print the default directory for the bootp file name
  572. used when the bootp file is not specified in the static
  573. host record, and when dynamic addresses are supplied.
  574. Default is the null string.
  575. .NH 4
  576. bootpd homedir <directory name>
  577. .LP
  578. Set the default directory.
  579. .NH 4
  580. bootpd defaultfile
  581. .LP
  582. Print the default file for the bootp file name used
  583. when the bootp file is not specified in the static host
  584. record, and when dynamic addresses are supplied.
  585. Default is the null string.
  586. .NH 4
  587. bootpd defaultfile <filename>
  588. .LP
  589. Set the default file.
  590. .NH 4
  591. bootpd logfile
  592. .LP
  593. Print the status of logging to a log file.
  594. .NH 4
  595. bootpd logfile <filename | default> on|off
  596. .LP
  597. Sets the file for logging to <filename> or the default,
  598. bootplog.  Turn logging to that file on or off.
  599. .NH 4
  600. bootpd logscreen
  601. .LP
  602. Print the status of logging to the screen.
  603. .NH 4
  604. bootpd logscreen on|off
  605. .LP
  606. Turn logging to the screen on or off.
  607. .NH 2
  608. cd [<dirname>]
  609. .LP
  610. Change the current working directory, and display the new setting.
  611. Without an argument, \fBcd\fP simply displays the current directory
  612. without change.
  613. The \fBpwd\fP command is an alias for \fBcd\fP.
  614. .NH 2
  615. close [<session>]
  616. .LP
  617. Close the specified session; without an argument, close the current session.
  618. On an AX.25 session, this command initiates a disconnect.  On a FTP or
  619. Telnet session, this command sends a FIN (i.e., initiates a close) on the
  620. session's TCP connection.  This is an alternative to asking the remote
  621. server to initiate a close (\fBQUIT\fP to FTP, or the logout command appropriate
  622. for the remote system in the case of Telnet).  When either FTP or Telnet
  623. sees the incoming half of a TCP connection close, it automatically responds
  624. by closing the outgoing half of the connection.  Close is more graceful than
  625. the \fBreset\fP command, in that it is less likely to leave the remote TCP in a
  626. "half-open" state.
  627. .NH 2
  628. connect <iface> <callsign> [<digipeater> ... ]
  629. .LP
  630. Initiate a "vanilla" AX.25 session to the specified call sign using the
  631. specified interface. Data sent on this session goes out in
  632. conventional AX.25 packets with no upper layer protocol.  The de-facto
  633. presentation standard format is used, in that each packet holds one line
  634. of text, terminated by a carriage return.  A single AX.25 connection may
  635. be used for terminal-to-terminal, IP and NET/ROM traffic.
  636. The three types of data are automatically separated by their
  637. AX.25 Level 3 Protocol IDs.
  638. .LP
  639. Up to 7 optional digipeaters may be given; note that the word \fBvia\fP is NOT
  640. needed. If digipeaters are specified, they are automatically added to the
  641. AX25 routing table as though the \fBax25 route add\fP command had been given
  642. before issuing the \fBconnect\fP command.
  643. .NH 2
  644. delete <filename>
  645. .LP
  646. Delete a \fBfilename\fP in the current working directory.
  647. .NH 2
  648. detach <iface>
  649. .LP
  650. Detach a previously attached interface from the system. All IP routing
  651. table entries referring to this interface are deleted, and forwarding
  652. references by any other interface to this interface are removed.
  653. .NH 2
  654. dialer <iface> [<dialer-file> [<seconds> [<tests> [<hostid>]]]]
  655. .LP
  656. Setup an autodialer session for the interface.
  657. Whenever the interface is idle for the interval in <seconds>,
  658. the autodialer will ping the <hostid>.
  659. If there is no answer after <tests> attempts,
  660. or the interface is otherwise known to be down,
  661. the autodialer will execute the special commands contained in the <dialer-file>.
  662. .LP
  663. The <dialer-file> may have any valid name,
  664. and must be located in the configuration directory
  665. (see the \fBInstallion\fP section).
  666. The commands in the file are described in the \fBDialer Subcommands\fP chapter.
  667. .LP
  668. If the <dialer-file> is missing,
  669. any previous dialer command process will be removed.
  670. If <seconds> is missing,
  671. the <dialer-file> will be executed immediately without any further tests.
  672. If <tests> is missing,
  673. the default is 2.
  674. If <hostid> is missing
  675. and the interface uses the PPP encapsulation,
  676. the PPP LCP echo will be used instead.
  677. .NH 2
  678. dir [<dirname>]
  679. .LP
  680. List the contents of the specified directory on the console. If no argument
  681. is given, the current directory is listed. Note that this command works
  682. by first listing the directory into a temporary file, and then creating
  683. a \fBmore\fP session to display it. After this completes, the temporary
  684. file is deleted.
  685. .NH 2
  686. disconnect [<session #>]
  687. .LP
  688. An alias for the \fBclose\fP command (for the benefit of AX.25 users).
  689. .NH 2
  690. domain ...
  691. .LP
  692. These commands control the operation of the Internet
  693. Domain Name Service (DNS).
  694. .NH 3
  695. domain addserver <hostid>
  696. .LP
  697. Add one or more domain name server(s) to the list of name servers.
  698. .NH 3
  699. domain dropserver <hostid>
  700. .LP
  701. Remove one or more domain name server(s) from the list of name servers.
  702. .NH 3
  703. domain listservers
  704. .LP
  705. List the currently configured domain name servers, along with statistics
  706. on how many queries and replies have been exchanged with each one,
  707. response times, etc.
  708. .NH 3
  709. domain query <hostid>
  710. .LP
  711. Send a query to a domain server asking for all resource records
  712. associated with this <hostid>, and list the records.
  713. .NH 3
  714. domain retry [<count>]
  715. .LP
  716. Display or set the number of attempts to reach each server on the list
  717. during one call to the resolver.
  718. If this count is exceeded,
  719. a failure indication is returned.
  720. If set to 0, the list will cycle forever;
  721. this may be useful for unattended operation.
  722. The default is 3.
  723. .NH 3
  724. domain suffix [<domain suffix>]
  725. .LP
  726. Display or specify the default domain name suffix to be appended to
  727. a host name when it contains no periods. For example, if the suffix is
  728. set to \fBampr.org\fP and the user enters \fBtelnet ka9q\fP, the domain
  729. resolver will attempt to find \fBka9q.ampr.org\fP. If the host name being
  730. sought contains one or more periods, however, the default suffix is NOT
  731. applied (eg. \fBtelnet foo.bar\fP would NOT be turned into
  732. \fBfoo.bar.ampr.org\fP).
  733. .NH 3
  734. domain trace [on | off]
  735. .LP
  736. Display or set the flag controlling the tracing of domain server
  737. requests and responses. Trace messages will be seen only if a domain name
  738. being sought is not found in the local cache file, \fBdomain.txt\fP.
  739. .NH 3
  740. domain cache ...
  741. .LP
  742. These commands are used for the use of the resource record file \fBdomain.txt\fP,
  743. and the local memory cache.
  744. .NH 4
  745. domain cache clean [on | off]
  746. .LP
  747. Display or set the flag controlling the removal of resource records
  748. from the \fBdomain.txt\fP file whose time-to-live has reached zero.
  749. .LP
  750. When clean is off (the default), expired records will be retained;
  751. if no replacement can be obtained from another domain name server,
  752. these records will continue to be used.
  753. .LP
  754. When clean is on, expired records will be removed from the file
  755. whenever any new record is added to the file.
  756. .NH 4
  757. domain cache list
  758. .LP
  759. List the current contents of the local memory cache.
  760. .NH 4
  761. domain cache size [<count>]
  762. .LP
  763. Display or set the nominal maximum size of the local memory cache.
  764. The default is 20.
  765. .LP
  766. (Note: The cache may be temporarily larger when waiting for new records
  767. to be written to the \fBdomain.txt\fP file.)
  768. .NH 4
  769. domain cache wait [<seconds>]
  770. .LP
  771. Display or set the interval in seconds to wait for additional activity
  772. before updating the \fBdomain.txt\fP file.  The default is 300 seconds
  773. (5 minutes).
  774. .NH 2
  775. echo [accept | refuse]
  776. .LP
  777. Display or set the flag controlling client Telnet's response to a
  778. remote WILL ECHO offer.
  779. .LP
  780. The Telnet presentation protocol specifies that in the absence of a negotiated
  781. agreement to the contrary, neither end echoes data received from the other.
  782. In this mode, a Telnet client session echoes keyboard input locally and nothing
  783. is actually sent until a carriage return is typed. Local line editing is also
  784. performed: backspace deletes the last character typed, while control-U deletes
  785. the entire line.
  786. .LP
  787. When communicating from keyboard to keyboard the standard local echo mode is
  788. used, so the setting of this parameter has no effect. However, many
  789. timesharing systems (eg. UNIX) prefer to do their own echoing of typed input.
  790. (This makes screen editors work right, among other things). Such systems send
  791. a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet
  792. connection request. If \fBecho accept\fP is in effect, a client Telnet
  793. session will
  794. automatically return a DO ECHO response. In this mode, local echoing and
  795. editing is turned off and each key stroke is sent immediately (subject to the
  796. congestion control algorithms in TCP).  While this mode is just fine across an
  797. Ethernet, it is clearly inefficient and painful across slow paths like packet
  798. radio channels. Specifying \fBecho refuse\fP causes an incoming WILL ECHO
  799. offer to be answered with a DONT ECHO; the client Telnet session remains
  800. in the local echo mode.  Sessions already in the remote echo mode are
  801. unaffected. (Note: Berkeley Unix has a bug in that it will still echo input
  802. even after the client has refused the WILL ECHO offer. To get around this
  803. problem, enter the \fBstty -echo\fP command to the shell once you have
  804. logged in.)
  805. .NH 2
  806. eol [unix | standard]
  807. .LP
  808. Display or set Telnet's end-of-line behavior when in remote echo mode.
  809. In standard mode, each key is sent as-is. In unix mode, carriage returns
  810. are translated to line feeds.  This command is not necessary with all UNIX
  811. systems; use it only when you find that a particular system responds to
  812. line feeds but not carriage returns.  Only SunOS release 3.2 seems to
  813. exhibit this behavior; later releases are fixed.
  814. .NH 2
  815. escape [<char>]
  816. .LP
  817. Display or set the current command-mode escape character in hex.
  818. (This command is not provided on the IBM-PC; on the PC, the escape char is
  819. always F10.)
  820. .NH 2
  821. etherstat
  822. .LP
  823. Display 3-Com Ethernet controller statistics (if configured).
  824. .NH 2
  825. exit
  826. .LP
  827. Exit the \fBnet.exe\fP program and return to MS-DOS.
  828. .NH 2
  829. finger <user@hostid> [<user@hostid> ...]
  830. .LP
  831. Issue a network finger request for user \fBuser\fP at host \fBhostid\fP. This
  832. creates a client session which may be interrupted, resumed, reset, etc,
  833. just like a Telnet client session.
  834. .NH 2
  835. ftp <hostid>
  836. .LP
  837. Open an FTP control channel to the specified remote host and enter converse
  838. mode on the new session.  Responses from the remote server are displayed
  839. directly on the screen. See the \fBFTP Subcommands\fP chapter for descriptions
  840. of the commands available in a FTP session.
  841. .NH 2
  842. help
  843. .LP
  844. Display a brief summary of top-level commands.
  845. .NH 2
  846. hop ...
  847. .LP
  848. These commands are used to test the connectivity of the network.
  849. .NH 3
  850. hop check <hostid>
  851. .LP
  852. Initiate a \fIhopcheck\fP session to the specified host. This uses a series
  853. of UDP "probe" packets with increasing IP TTL fields to determine the
  854. sequence of gateways in the path to the specified destination. This
  855. function is patterned after the UNIX \fItraceroute\fP facility.
  856. .LP
  857. ICMP message tracing should be turned off before this command is
  858. executed (see the \fBicmp trace\fP command).
  859. .NH 3
  860. hop maxttl [<hops>]
  861. .LP
  862. Display or set the maximum TTL value to be used in hop check sessions.
  863. This effectively bounds the radius of the search.
  864. .NH 3
  865. hop maxwait [<seconds>]
  866. .LP
  867. Display or set the maximum interval that a hopcheck session
  868. will wait for responses at each stage of the trace. The default is 5 seconds.
  869. .NH 3
  870. hop queries [<count>]
  871. .LP
  872. Display or set the number of UDP probes that will be sent at each stage
  873. of the trace. The default is 3.
  874. .NH 3
  875. hop trace [on | off]
  876. .LP
  877. Display or set the flag that controls the display of additional information
  878. during a hop check session.
  879. .NH 2
  880. hostname [<name>]
  881. .LP
  882. Display or set the local host's name. By convention this should be the same
  883. as the host's primary domain name. This string
  884. is used only in the greeting messages
  885. of the various network servers;
  886. note that it does NOT set the system's IP address.
  887. .LP
  888. If <name> is the same as an <iface> (see the \fBAttach commands\fP chapter),
  889. this command will search for a CNAME domain resource record
  890. which corresponds to the IP address of the <iface>.
  891. .NH 2
  892. hs
  893. .LP
  894. Display statistics about the HS high speed HDLC driver (if configured
  895. and active).
  896. .NH 2
  897. icmp ...
  898. .LP
  899. These commands are used for the Internet Control Message Protocol service.
  900. .NH 3
  901. icmp echo [on | off]
  902. .LP
  903. Display or set the flag controlling
  904. the asynchronous display of ICMP Echo Reply packets.
  905. This flag must be on for one-shot pings to work (see the \fBping\fP command.)
  906. .NH 3
  907. icmp status
  908. .LP
  909. Display statistics about the
  910. Internet Control Message Protocol (ICMP), including the number of ICMP
  911. messages of each type sent or received. 
  912. .NH 3
  913. icmp trace [on | off]
  914. .LP
  915. Display or set the flag controlling
  916. the display of ICMP error messages. These informational
  917. messages are generated by Internet routers in response to routing,
  918. protocol or congestion problems. This option should be turned
  919. off before using the \fBhop check\fP facility because it
  920. relies on ICMP Time Exceeded messages, and the asynchronous
  921. display of these messages will be mingled with \fBhop check\fP command output.
  922. .NH 2
  923. ifconfig
  924. .LP
  925. Display a list of interfaces, with a short status for each.
  926. .NH 3
  927. ifconfig <iface>
  928. .LP
  929. Display an extended status of the interface.
  930. .NH 3
  931. ifconfig <iface> broadcast <address>
  932. .LP
  933. Set the broadcast address for the interface.
  934. The <address> takes the form of an IP address
  935. with 1's in the host part of the address.
  936. This is related to the \fBnetmask\fP sub-command.
  937. See also the \fBarp\fP command.
  938. .NH 3
  939. ifconfig <iface> encapsulation <name>
  940. .LP
  941. Not fully implemented.
  942. .NH 3
  943. ifconfig <iface> forward <forward-iface>
  944. .LP
  945. Set a forwarding interface for multiple channel interfaces.
  946. To remove the forward, set <forward-iface> to <iface>.
  947. .NH 3
  948. ifconfig <iface> ipaddress <hostid>
  949. .LP
  950. Set the IP address for this interface.
  951. It is standard Internet practice that each interface has its own address.
  952. For hosts with only one interface, the interface address is usually the
  953. same as the host address.
  954. See also the \fBhostname\fP and \fBip address\fP commands.
  955. .NH 3
  956. ifconfig <iface> linkaddress <hardware-dependant>
  957. .LP
  958. Set the hardware dependant address for this interface.
  959. .NH 3
  960. ifconfig <iface> mtu <mtu>
  961. .LP
  962. Set the MTU for this interface.
  963. See the \fBSetting ... MTU, MSS and Window\fP chapter for more information.
  964. .NH 3
  965. ifconfig <iface> netmask <address>
  966. .LP
  967. Set the sub-net mask for this interface.
  968. The <address> takes the form of an IP address
  969. with 1's in the network and subnet parts of the address,
  970. and 0's in the host part of the address.
  971. This is related to the \fBbroadcast\fP sub-command.
  972. See also the \fBroute\fP command.
  973. .NH 3
  974. ifconfig <iface> rxbuf <?>
  975. .LP
  976. Not yet implemented.
  977. .NH 2
  978. ip ...
  979. .LP
  980. These commands configure the Internet Protocol (IP) service.
  981. .NH 3
  982. ip address [<hostid>]
  983. .LP
  984. Display or set the default local IP address. This command must be given before
  985. an \fBattach\fP command if it is to be used as the default IP address for
  986. the interface.
  987. .NH 3
  988. ip rtimer [<seconds>]
  989. .LP
  990. Display or set the IP reassembly timeout. The default is 30 seconds.
  991. .NH 3
  992. ip status
  993. .LP
  994. Display Internet Protocol (IP) statistics, such as total packet counts
  995. and error counters of various types.
  996. .NH 3
  997. ip ttl [<hops>]
  998. .LP
  999. Display or set the time-to-live value placed in each outgoing IP datagram.
  1000. This limits the number of switch hops the datagram will be allowed to
  1001. take. The idea is to bound the lifetime of the packet should it become caught
  1002. in a routing loop, so make the value slightly larger than the number of
  1003. hops across the network you expect to transit packets.
  1004. The default is set at compilation time to the official recommended value
  1005. for the Internet.
  1006. .NH 2
  1007. isat [on | off]
  1008. .LP
  1009. Display or set the AT flag.
  1010. Currently, there is no sure-fire way to determine the type of clock-chip
  1011. being used.  If an AT type clock is in use, this command will allow
  1012. measurement of time in milliseconds, rather than clock ticks
  1013. (55 milliseconds per clock tick).
  1014. .NH 3
  1015. kick [<session>]
  1016. .LP
  1017. Kick all sockets associated with a session;
  1018. if no argument is given, kick the current session.
  1019. Performs the same function as the \fBax25 kick\fP and \fBtcp kick\fP commands,
  1020. but is easier to type.
  1021. .NH 2
  1022. log [stop | <filename>]
  1023. .LP
  1024. Display or set the \fBfilename\fP for logging server sessions. If
  1025. \fBstop\fP is given as the argument, logging is terminated
  1026. (the servers themselves are unaffected).
  1027. If a file name is given as an argument, server session log
  1028. entries will be appended to it.
  1029. .NH 2
  1030. mbox
  1031. .LP
  1032. Display the status of the mailbox server system (if configured).
  1033. .NH 2
  1034. memory ...
  1035. .LP
  1036. These commands are used to display memory allocation statistics.
  1037. .NH 3
  1038. memory free
  1039. .LP
  1040. Display the storage allocator free list. Each entry consists of a
  1041. starting address, in hex, and a size, in decimal bytes.
  1042. .NH 3
  1043. memory ibuffs
  1044. .LP
  1045. Display or set the number of buffers on the interrupt buffer pool.
  1046. The default is 5.
  1047. .NH 3
  1048. memory ibufsize
  1049. .LP
  1050. Display or set the size of each buffer on the interrupt buffer pool.
  1051. Since the interrupt buffer pool consists of fixed-size buffers, the
  1052. value chosen must be large enough to satisfy the needs of the most
  1053. demanding driver. The default is 2048.
  1054. .NH 3
  1055. memory sizes
  1056. .LP
  1057. Display a histogram of storage allocator request sizes. Each histogram
  1058. bin is a binary order of magnitude (i.e., a factor of 2).
  1059. .NH 3
  1060. memory status
  1061. .LP
  1062. Display a summary of storage allocator statistics. The first line
  1063. shows the base address of the heap, its total size, the amount of heap
  1064. memory available in bytes and as a percentage of the total heap size,
  1065. and the amount of memory left over (i.e., not placed on the heap at startup)
  1066. and therefore available for \fBshell\fP subcommands.
  1067. .LP
  1068. The second line shows the total number of calls to allocate and free blocks
  1069. of memory, the difference of these two values (i.e., the number of allocated
  1070. blocks outstanding), the number of allocation requests that were denied
  1071. due to lack of memory, and the number of calls to free() that attempted to
  1072. free garbage
  1073. (eg. by freeing the same block twice or freeing a garbled pointer).
  1074. .LP
  1075. The third line shows the number of calls to malloc and free that occurred
  1076. with interrupts off. In normal situations these values should be zero.
  1077. The fourth line shows statistics for the special pool of fixed-size buffers
  1078. used to satisfy requests for memory at interrupt time. The variables
  1079. shown are the number of buffers currently in the pool, their size, and
  1080. the number of requests that failed due to exhaustion of the pool.
  1081. .NH 2
  1082. mkdir <dirname>
  1083. .LP
  1084. Create a sub-directory in the current working directory.
  1085. .NH 2
  1086. mode <iface> [vc | datagram]
  1087. .LP
  1088. Control the default transmission mode on the specified AX.25 interface. 
  1089. In \fBdatagram\fP mode, IP packets are encapsulated in AX.25 UI frames and
  1090. transmitted without any other link level mechanisms, such as connections
  1091. or acknowledgements. 
  1092. .LP
  1093. In \fBvc\fP (virtual circuit) mode, IP packets are encapsulated in AX.25 I
  1094. frames and are acknowledged at the link level according to the AX.25
  1095. protocol.  Link level connections are opened if necessary.
  1096. .LP
  1097. In both modes, ARP is used to map IP to AX.25 addresses.  The defaults
  1098. can be overridden with the type-of-service (TOS) bits in the IP header. 
  1099. Turning on the "reliability" bit causes I frames to be used, while
  1100. turning on the "low delay" bit uses UI frames.  (The effect of turning
  1101. on both bits is undefined and subject to change).
  1102. .LP
  1103. In both modes, IP-level fragmentation is done if the datagram is larger
  1104. than the interface  MTU.  In virtual circuit mode, however, the resulting
  1105. datagram (or fragments) is further fragmented at the AX.25 layer if it
  1106. (or they) are still larger than the AX.25 \fBpaclen\fP parameter. In AX.25
  1107. fragmentation, datagrams are broken into several I frames and reassembled
  1108. at the receiving end before being passed to IP. This is preferable to
  1109. IP fragmentation whenever possible because of decreased overhead (the IP
  1110. header isn't repeated in each fragment) and increased robustness (a
  1111. lost fragment is immediately retransmitted by the link layer).
  1112. .NH 2
  1113. more <file> [<file> ...]
  1114. .LP
  1115. Display the specified file(s) a screen at a time. To proceed to the next
  1116. screen, press the space bar; to cancel the display, hit the 'q' key.
  1117. The \fBmore\fP command creates a session that you can suspend and resume
  1118. just like any other session.
  1119. .NH 2
  1120. param <iface> [<param> [value]] ...
  1121. .LP
  1122. Invoke a device-specific control routine.  The following parameter names
  1123. are recognized by the parameter command, but not all are supported by
  1124. each device type. Most commands deal only with half-duplex packet
  1125. radio interfaces.
  1126. .DS 
  1127. TxDelay - transmit keyup delay
  1128. Persist - P-persistence setting
  1129. SlotTime - persistence slot time setting
  1130. txTail - transmit done holdup delay
  1131. FullDup - enable/disable full duplex
  1132. Hardware - hardware specific command
  1133. TxMute - experimental transmit mute command
  1134. DTR - control Data Terminal Ready (DTR) signal to modem
  1135. RTS - control Request to Send (RTS) signal to modem
  1136. Speed - set line speed
  1137. EndDelay
  1138. Group
  1139. Idle
  1140. Min
  1141. MaxKey
  1142. Wait
  1143. Down - drop modem control lines
  1144. Up - raise modem control lines
  1145. Return - return a KISS TNC to command mode
  1146. .DE
  1147. .LP
  1148. Depending on the interface, some parameters can be read back by
  1149. omitting a new value. This is not possible with KISS TNCs as there
  1150. are no KISS commands for reading back previously sent parameters.
  1151. .LP
  1152. On a KISS TNC interface, the \fBparam\fP command generates and sends control
  1153. packets to the TNC.  Data bytes are treated as decimal.  For example,
  1154. \fBparam ax0 txdelay 255 \fP will set the keyup timer (type field = 1)
  1155. on the KISS TNC configured as ax0 to 2.55 seconds (255 x .01 sec).  On
  1156. all \fBasy\fP interfaces (slip, kiss/ax25, nrs, ppp)
  1157. the \fBparam <iface> speed\fP command allows the baud rate to be
  1158. read or set.
  1159. .LP
  1160. The implementation of this command for the various interface drivers is
  1161. incomplete and subject to change. 
  1162. .NH 2
  1163. ping <hostid> [<length> [<seconds> [<incflag>]]]
  1164. .LP
  1165. Ping (send ICMP Echo Request packets to) the specified host. By default
  1166. the data field contains only a small timestamp to aid in determining
  1167. round trip time; if the optional \fBlength\fP argument is given,
  1168. the appropriate number of data bytes (consisting of hex 55) are added to the
  1169. ping packets.
  1170. .LP
  1171. If interval is specified, pings will be repeated indefinitely
  1172. at the specified number of seconds;
  1173. otherwise a single, "one shot" ping is done.
  1174. Responses to one-shot pings appear asynchronously on the command screen,
  1175. while repeated pings create a session that may be suspended and resumed.
  1176. Pinging continues until the session is manually reset.
  1177. .LP
  1178. The \fBincflag\fP option causes a repeated ping to increment the
  1179. target IP address for each ping; it is an experimental feature for searching
  1180. blocks of IP addresses for active hosts.
  1181. .NH 2
  1182. ppp ...
  1183. .LP
  1184. These commands are used to configure Point to Point Protocol interfaces.
  1185. .LP
  1186. This implementation of PPP is designed to be as complete as possible.
  1187. Because of this, the number of options can be rather daunting.
  1188. However, a typical PPP configuration might include the following commands:
  1189. .DS
  1190. attach asy 0x3f8 4 ppp pp0 4096 1500 9600 r
  1191. dial pp0 dialer.pp0 30
  1192. #
  1193. ppp pp0 quick
  1194. ppp pp0 lcp open
  1195. #
  1196. route add default pp0
  1197. .DE
  1198. .NH 3
  1199. ppp <iface>
  1200. .LP
  1201. Display the status of the PPP interface.
  1202. .NH 3
  1203. ppp <iface> quick
  1204. .LP
  1205. Quick setup for the PPP link.
  1206. By popular demand, this command is a shortcut for the following commands:
  1207. .DS
  1208. ppp pp0 ipcp local compress tcp 16 1
  1209. ppp pp0 ipcp open
  1210. ppp pp0 lcp local accm 0
  1211. ppp pp0 lcp local acfc on
  1212. ppp pp0 lcp local pfc on
  1213. ppp pp0 lcp local magic on
  1214. .DE
  1215. .NH 3
  1216. ppp <iface> lcp ...
  1217. .LP
  1218. These commands are used for the LCP [Link Control Protocol]
  1219. configuration.
  1220. .NH 4
  1221. ppp <iface> lcp close
  1222. .LP
  1223. Shutdown the PPP interface.
  1224. .NH 4
  1225. ppp <iface> lcp local ...
  1226. .LP
  1227. These commands control the configuration of the local side of the link.
  1228. If an option is specified, the parameters will be used
  1229. as the initial values in configuration requests.
  1230. If not specified, that option will not be requested.
  1231. .LP
  1232. For each of these options,
  1233. the \fBallow\fP parameter will permit the remote
  1234. to include that option in its response,
  1235. even when the option is not included in the request.
  1236. By default, all options are allowed.
  1237. .NH 5
  1238. ppp <iface> lcp local accm [ <bitmap> | allow [on | off] ]
  1239. .LP
  1240. Display or set the Async Control Character Map.
  1241. The default is 0xffffffff.
  1242. .NH 5
  1243. ppp <iface> lcp local authenticate [ pap | none | allow [on | off] ]
  1244. .LP
  1245. Display or set the authentication protocol.
  1246. The default is \fBnone\fP.
  1247. .NH 5
  1248. ppp <iface> lcp local acfc [ on | off | allow [on | off] ]
  1249. .LP
  1250. Display or set the option to compress the address and control fields of
  1251. the PPP HLDC-like header.
  1252. This is generally desirable for slow asynchronous links,
  1253. and undesirable for fast or synchronous links.
  1254. The default is off.
  1255. .NH 5
  1256. ppp <iface> lcp local pfc [ on | off | allow [on | off] ]
  1257. .LP
  1258. Display or set the option to compress the protocol field of
  1259. the PPP HLDC-like header.
  1260. This is generally desirable for slow asynchronous links,
  1261. and undesirable for fast or synchronous links.
  1262. The default is off.
  1263. .NH 5
  1264. ppp <iface> lcp local magic [ on | off | <value> | allow [on | off] ]
  1265. .LP
  1266. Display or set the initial Magic Number.
  1267. The default is off (zero).
  1268. .NH 5
  1269. ppp <iface> lcp local mru [ <size> | allow [on | off] ]
  1270. .LP
  1271. Display or set the Maximum Receive Unit.
  1272. The default is 1500.
  1273. .NH 5
  1274. ppp <iface> lcp local default
  1275. .LP
  1276. Reset the options to their default values.
  1277. .NH 4
  1278. ppp <iface> lcp listen
  1279. .LP
  1280. Wait for the physical layer to come up,
  1281. then wait for configuration negotiation from the remote.
  1282. The \fBopen\fP command is preferred.
  1283. .NH 4
  1284. ppp <iface> lcp open
  1285. .LP
  1286. Wait for the physical layer to come up,
  1287. then initiate configuration negotiation.
  1288. .NH 4
  1289. ppp <iface> lcp remote ...
  1290. .LP
  1291. These commands control the configuration of the remote side of the link.
  1292. The options are identical to those of the local side.
  1293. If an option is specified, the parameters will be used
  1294. in responses to the remote's configuration requests.
  1295. If not specified, that option will be accepted if it is allowed.
  1296. .LP
  1297. For each of these options,
  1298. the \fBallow\fP parameter will permit the remote
  1299. to specify that option in its request.
  1300. By default, all options are allowed.
  1301. .NH 4
  1302. ppp <iface> lcp timeout [<seconds>]
  1303. .LP
  1304. Display or set the interval to wait between configuration
  1305. or termination attempts.
  1306. The default is 3 seconds.
  1307. .NH 4
  1308. ppp <iface> lcp try ...
  1309. .LP
  1310. These commands are used for the various counters.
  1311. .NH 5
  1312. ppp <iface> lcp try configure [<count>]
  1313. .LP
  1314. Display or set the number of configuration requests sent.
  1315. The default is 20.
  1316. .NH 5
  1317. ppp <iface> lcp try failure [<count>]
  1318. .LP
  1319. Display or set the number of bad configuration requests allowed from the remote.
  1320. The default is 10.
  1321. .NH 5
  1322. ppp <iface> lcp try terminate [<count>]
  1323. .LP
  1324. Display or set the number of termination requests sent before shutdown.
  1325. The default is 2.
  1326. .NH 3
  1327. ppp <iface> ipcp ...
  1328. .LP
  1329. These commands are used for the IPCP [Internet Protocol Control Protocol]
  1330. configuration.
  1331. .LP
  1332. The \fBclose, listen, open, timeout\fP and \fBtry\fP sub-commands
  1333. are identical to the LCP (described above).
  1334. .NH 4
  1335. ppp <iface> ipcp local ...
  1336. .LP
  1337. These commands control the configuration of the local side of the link.
  1338. If an option is specified, the parameters will be used
  1339. as the initial values in configuration requests.
  1340. If not specified, that option will not be requested.
  1341. .LP
  1342. For each of these options,
  1343. the \fBallow\fP parameter will permit the remote
  1344. to include that option in its response,
  1345. even when the option is not included in the request.
  1346. By default, all options are allowed.
  1347. .NH 5
  1348. ppp <iface> ipcp local address [ <hostid> | allow [on | off] ]
  1349. .LP
  1350. Display or set the local address for negotiation purposes.
  1351. If an address of 0 is specified,
  1352. the other side of the link will supply the address.
  1353. By default, no addresses are negotiated.
  1354. .NH 5
  1355. ppp <iface> ipcp local compress [ tcp <slots> [<flag>] | none | allow [on | off] ]
  1356. .LP
  1357. Display or set the compression protocol.
  1358. The default is \fBnone\fP.
  1359. .LP
  1360. The \fBtcp\fP <slots> specifies the number of "conversation" slots,
  1361. which must be 1 to 255.
  1362. (This may be limited at compilation time to a smaller number.)
  1363. A good choice is in the range 4 to 16.
  1364. .LP
  1365. The \fBtcp\fP <flag> is 0 (don't compress the slot number)
  1366. or 1 (OK to compress the slot number).
  1367. KA9Q can handle compressed slot numbers, so the default is 1.
  1368. .NH 4
  1369. ppp <iface> ipcp remote ...
  1370. .LP
  1371. These commands control the configuration of the remote side of the link.
  1372. The options are identical to those of the local side.
  1373. If an option is specified, the parameters will be used
  1374. in responses to the remote's configuration requests.
  1375. If not specified, that option will be accepted if it is allowed.
  1376. .LP
  1377. For each of these options,
  1378. the \fBallow\fP parameter will permit the remote
  1379. to specify that option in its request.
  1380. By default, all options are allowed.
  1381. .NH 4
  1382. ppp <iface> ipcp pool [<ip-address> [<count>]]
  1383. .LP
  1384. Specify a pool of addresses to be assigned to the <iface>.
  1385. The <count> is the number of addresses in the pool;
  1386. the default is 1.
  1387. .LP
  1388. The addresses will be used in rotation.
  1389. Overlapping series of addresses may be assigned to more than one <iface>,
  1390. and conflicts will be resolved.
  1391. .NH 3
  1392. ppp <iface> pap ...
  1393. .LP
  1394. These commands are used for the PAP [Password Authentication Protocol]
  1395. configuration.
  1396. .LP
  1397. The \fBtimeout\fP and \fBtry\fP sub-commands
  1398. are identical to the LCP (described above).
  1399. However, the terminate counter is unused.
  1400. .NH 4
  1401. ppp <iface> pap user [ <username> [<password>] ]
  1402. .LP
  1403. Display or set the username (the password may be set, but not displayed).
  1404. When the username is specified, but no password is supplied,
  1405. the \fBftpusers\fP file is searched for the password.
  1406. When a username/password is unknown or rejected,
  1407. a session will appear at the console to prompt for a new username/password.
  1408. .NH 3
  1409. ppp <iface> trace [<flags>]
  1410. .LP
  1411. Display or set the flags that control the logging of information
  1412. during PPP link configuration.
  1413. .LP
  1414. The flag value is 0 for none, 1 for basic, and 2 for general.
  1415. Values greater than 2 are usually not compiled,
  1416. and are described in the appropriate source files where they are defined.
  1417. .NH 2
  1418. ps
  1419. .LP
  1420. Display all current processes in the system. The fields are as follows:
  1421. .LP
  1422. \fBPID\fP - Process ID (the address of the process descriptor).
  1423. .LP
  1424. \fBSP\fP - The current value of the process stack pointer.
  1425. .LP
  1426. \fBstksize\fP - The size of the stack allocated to the process.
  1427. .LP
  1428. \fBmaxstk\fP - The apparent peak stack utilization of this process. This is
  1429. done in a somewhat heuristic fashion, so the numbers should be treated
  1430. as approximate. If this number reaches or exceeds the stksize figure,
  1431. the system is almost certain to crash; the \fBnet.exe\fP program
  1432. should be recompiled to give the process a larger allocation when it is started.
  1433. .LP
  1434. \fBevent\fP - The event this task is waiting for, if it is not runnable.
  1435. .LP
  1436. \fBfl\fP - Process status flags. There are three: I (Interrupts enabled),
  1437. W (Waiting for event) and S (Suspended). The I
  1438. flag is set whenever a task has executed a pwait() call (wait for
  1439. event) without first disabling hardware interrupts. Only tasks that
  1440. wait for hardware interrupt events will turn off this flag; this is
  1441. done to avoid critical sections and missed interrupts. The W flag
  1442. indicates that the process is waiting for an event; the \fBevent\fP
  1443. column will be non-blank. Note that although there may be several
  1444. runnable processes at any time (shown in the \fBps\fP listing as those
  1445. without the W flag and with blank event fields) only one
  1446. process is actually running at any one instant (The Refrigerator
  1447. Light Effect says that the \fBps\fP command is always the one running
  1448. when this display is generated.)
  1449. .NH 2
  1450. pwd [<dirname>]
  1451. .LP
  1452. An alias for the \fBcd\fP command.
  1453. .NH 2
  1454. record [off | <filename>]
  1455. .LP
  1456. Append to \fBfilename\fP all data received on the current
  1457. session.  Data sent on the current session is also written into the file
  1458. except for Telnet sessions in remote echo mode.  The command \fBrecord
  1459. off\fP stops recording and closes the file.
  1460. .NH 2
  1461. remote [-p <port>] [-k <key>] [-a <kickaddr>] <hostid> exit | reset | kick
  1462. .LP
  1463. Send a UDP packet to the specified host commanding it
  1464. to exit the \fBnet.exe\fP program, reset the processor,
  1465. or force a retransmission on TCP connections.  For this
  1466. command to be accepted, the remote system must be running the \fBremote\fP
  1467. server and the port number specified in the \fBremote\fP command must match
  1468. the port number given when the server was started on the remote system.
  1469. If the port numbers do not match, or if the remote server is not running
  1470. on the target system, the command packet is ignored.  Even if the
  1471. command is accepted there is no acknowledgement.
  1472. .LP
  1473. The \fBkick\fP command forces a retransmission timeout on all
  1474. TCP connections that the remote node may have with the local node.
  1475. If a connection is idle, a current ACK packet (without data) is sent.
  1476. If the -a option is used, connections to the specified host are
  1477. kicked instead. No key is required for the kick subcommand.
  1478. .LP
  1479. The \fBexit\fP and \fBreset\fP subcommands are mainly useful for
  1480. restarting the \fBnet.exe\fP program on a remote
  1481. unattended system after the configuration file has been updated.  The
  1482. remote system should invoke the \fBnet.exe\fP program automatically upon booting,
  1483. preferably in an infinite loop.  For example, under MS-DOS the boot disk
  1484. should contain the following in \fBautoexec.net\fP:
  1485. .DS
  1486. .ft CW
  1487. :loop
  1488. net
  1489. goto :loop
  1490. .ft P
  1491. .DE
  1492. .LP
  1493. .NH 2
  1494. remote -s <key>
  1495. .LP
  1496. The \fBexit\fP and \fBreset\fP subcommands of remote require a password.
  1497. The password is set
  1498. on a given system with the \fB-s\fP option, and it is specified in a command
  1499. to a remote system with the \fB-k\fP option. If no password is set with the
  1500. \fB-s\fP option, then the \fBexit\fP and \fBreset\fP subcommands are disabled.
  1501. .LP
  1502. Note that \fBremote\fP is an experimental feature in NOS; it is \fInot\fP
  1503. yet supported by any other TCP/IP implementation.
  1504. .NH 2
  1505. rename <oldfilename> <newfilename>
  1506. .LP
  1507. Rename \fBoldfilename\fP to \fBnewfilename\fP.
  1508. .NH 2
  1509. reset [<session>]
  1510. .LP
  1511. Reset the specified session; if no argument is given, reset the current
  1512. session.  This command should be used with caution since it does not
  1513. reliably inform the remote end that the connection no longer exists.  (In
  1514. TCP a reset (RST) message will be automatically generated should the remote
  1515. TCP send anything after a local reset has been done.  In AX.25 the DM
  1516. message performs a similar role.  Both are used to get rid of a lingering
  1517. half-open connection after a remote system has crashed.)
  1518. .NH 2
  1519. rip ...
  1520. .LP
  1521. These commands are used for the RIP service.
  1522. .NH 3
  1523. rip accept <gateway>
  1524. .LP
  1525. Remove the specified gateway from the RIP filter table, allowing future
  1526. broadcasts from that gateway to be accepted.
  1527. .NH 3
  1528. rip add <hostid> <seconds> [<flags>]
  1529. .LP
  1530. Add an entry to the RIP broadcast table. The IP routing table will be sent
  1531. to \fBhostid\fP every interval seconds. If
  1532. \fBflags\fP is specified as 1, then "split horizon" processing will
  1533. be performed
  1534. for this destination. That is, any IP routing table entries pointing to the
  1535. interface that will be used to send this update will be removed from the
  1536. update.  If split horizon processing is not specified, then all routing
  1537. table entries except those marked "private" will be sent in each update.
  1538. (Private entries are never sent in RIP packets).
  1539. .LP
  1540. Triggered updates are always done. That is, any change in the routing table
  1541. that causes a previously reachable destination to become unreachable will
  1542. trigger an update that advertises the destination with metric 15, defined to
  1543. mean "infinity".
  1544. .LP
  1545. Note that for RIP packets to be sent properly to a broadcast address, there
  1546. must exist correct IP routing and ARP table entries that will first steer
  1547. the broadcast to the correct interface and then place the correct link-level
  1548. broadcast address in the link-level destination field. If a standard IP
  1549. broadcast address convention is used (eg. 128.96.0.0 or 128.96.255.255)
  1550. then chances are you already have the necessary IP routing table entry, but
  1551. unusual subnet or cluster-addressed networks may require special attention.
  1552. However, an \fBarp add\fP command will be required to translate this address to
  1553. the appropriate link level broadcast address.  For example,
  1554. .sp
  1555. .DS I 0
  1556. .ft CW
  1557. arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff
  1558. .ft P
  1559. .DE
  1560. .sp
  1561. for an Ethernet network, and
  1562. .sp
  1563. .DS I 0
  1564. .ft CW
  1565. arp add 44.255.255.255 ax25 qst-0
  1566. .ft P
  1567. .DE
  1568. .sp
  1569. for an AX25 packet radio channel.
  1570. .NH 3
  1571. rip drop <dest>
  1572. .LP
  1573. Remove an entry from the RIP broadcast table.
  1574. .NH 3
  1575. rip merge [on | off]
  1576. .LP
  1577. This flag controls an experimental feature for consolidating redundant
  1578. entries in the IP routing table. When rip merging is enabled, the table is
  1579. scanned after processing each RIP update. An entry is considered redundant
  1580. if the target(s) it covers would be routed identically by a less "specific"
  1581. entry already in the table. That is, the target address(es) specified
  1582. by the entry in question must also match the target addresses of the
  1583. less specific entry and the two entries must have the same interface
  1584. and gateway fields. For example, if the routing table contains
  1585. .sp
  1586. .DS I 0
  1587. .ft CW
  1588. Dest            Len Interface    Gateway          Metric  P Timer  Use
  1589. 1.2.3.4         32  ethernet0    128.96.1.2       1       0 0      0
  1590. 1.2.3           24  ethernet0    128.96.1.2       1       0 0      0
  1591. .ft
  1592. .DE
  1593. .sp
  1594. then the first entry would be deleted as redundant since packets sent to
  1595. 1.2.3.4 will still be routed correctly by the second entry. Note that the
  1596. relative metrics of the entries are ignored.
  1597. .NH 3
  1598. rip refuse <gateway>
  1599. .LP
  1600. Refuse to accept RIP updates from the specified gateway by adding the
  1601. gateway to the RIP filter table. It may be later removed with the \fBrip
  1602. accept\fP command.
  1603. .NH 3
  1604. rip request <gateway>
  1605. .LP
  1606. Send a RIP Request packet to the specified gateway, causing it to reply
  1607. with a RIP Response packet containing its routing table.
  1608. .NH 3
  1609. rip status
  1610. .LP
  1611. Display RIP status, including a count of the number of packets sent
  1612. and received, the number of requests and responses, the number of
  1613. unknown RIP packet types, and the number of refused RIP updates from hosts
  1614. in the filter table. A list of the addresses and intervals
  1615. to which periodic RIP updates are being sent is also shown, along with
  1616. the contents of the filter table.
  1617. .NH 3
  1618. rip trace [0 | 1 | 2]
  1619. .LP
  1620. This variable controls the tracing of incoming and outgoing RIP packets.
  1621. Setting it to 0 disables all RIP tracing. A value of 1 causes changes
  1622. in the routing table to be displayed, while packets that cause no changes
  1623. cause no output. Setting the variable to 2 produces maximum output,
  1624. including tracing of RIP packets that cause no change in the routing table.
  1625. .NH 2
  1626. rmdir <dirname>
  1627. .LP
  1628. Remove a sub-directory from the current working directory.
  1629. .NH 2
  1630. route
  1631. .LP
  1632. With no arguments, \fBroute\fP displays the IP routing table.
  1633. .NH 3
  1634. route add <dest_hostid>[/bits] | default <iface> [<gateway_hostid> [<metric>]]
  1635. .LP
  1636. This command adds an entry to the routing table. It requires at least two
  1637. more arguments, the hostid of the target destination and the name of
  1638. the interface to which its packets should be sent.  If the destination is
  1639. not local, the gateway's hostid should also be specified. (If the interface
  1640. is a point-to-point link, then \fBgateway_hostid\fP may be omitted even if the
  1641. target is non-local because this field is only used to determine the
  1642. gateway's link level address, if any.  If the destination is directly
  1643. reachable, \fBgateway_hostid\fP is also unnecessary since the destination
  1644. address is used to determine the interface link address).
  1645. .LP
  1646. The optional \fB/bits\fP suffix to the destination host id specifies how
  1647. many leading bits in the host id are to be considered significant in the
  1648. routing comparisons.  If not specified, 32 bits (i.e., full significance) is
  1649. assumed.  With this option, a single routing table entry may refer to
  1650. many hosts all sharing a common bit string prefix in their IP addresses. 
  1651. For example, ARPA Class A, B and C networks would use suffixes of /8,
  1652. /16 and /24 respectively; the command
  1653. .DS I 0
  1654. .ft CW
  1655. route add 44/8 sl0 44.64.0.2
  1656. .ft P
  1657. .DE
  1658. .LP
  1659. causes any IP addresses beginning with "44" in the first 8 bits to be
  1660. routed to 44.64.0.2; the remaining 24 bits are "don't-cares".
  1661. .LP
  1662. When an IP address to be routed matches more than one entry in the routing
  1663. table, the entry with largest \fBbits\fP parameter (i.e., the "best" match)
  1664. is used. This allows individual hosts or blocks of hosts to be exceptions
  1665. to a more general rule for a larger block of hosts.
  1666. .LP
  1667. The special destination \fBdefault\fP is used to route datagrams to
  1668. addresses not matched by any other entries
  1669. in the routing table; it is equivalent to specifying a
  1670. \fB/bits\fP suffix of /0 to any destination hostid.  Care must be taken with
  1671. default entries since two nodes with default entries pointing at each
  1672. other will route packets to unknown addresses back and forth in a loop
  1673. until their time-to-live (TTL) fields expire.  (Routing loops for
  1674. specific addresses can also be created, but this is less likely to occur
  1675. accidentally). The best way to use default routes is to pick one node
  1676. in your network that has the "best" connections to the world outside
  1677. your network. Create a spanning tree with that node as the root and have
  1678. each node install a default route pointing in the direction of that node,
  1679. \fIwith the exception of the root node.\fP
  1680. .LP
  1681. Here are some examples of the \fBroute\fP command:
  1682. .DS I 0
  1683. .ft CW
  1684. # Route datagrams to IP address 44.0.0.3 to SLIP line #0.
  1685. # No gateway is needed because SLIP is point-to point.
  1686. route add 44.0.0.3 sl0 
  1687.  
  1688. # Route all default traffic to the gateway on the local Ethernet
  1689. # with IP address 44.0.0.1
  1690. route add default ec0 44.0.0.1
  1691.  
  1692. # The local Ethernet has an ARPA Class-C address assignment;
  1693. # route all IP addresses beginning with 192.4.8 to it
  1694. route add 192.4.8/24 ec0
  1695.  
  1696. # The station with IP address 44.0.0.10 is on the local AX.25 channel
  1697. route add 44.0.0.10 ax0
  1698. .ft P
  1699. .DE
  1700. .NH 3
  1701. route addprivate <dest hostid>[/bits] | default <iface> [<gateway hostid> [<metric>]]
  1702. .LP
  1703. This command is identical to \fBroute add\fP except that it also marks the new
  1704. entry as private; it will never be included in outgoing RIP updates.
  1705. .NH 3
  1706. route drop <dest hostid>
  1707. .LP
  1708. \fBroute drop\fP deletes an entry from the table. If a packet arrives for the
  1709. deleted address and a default route is in effect, it will be used.
  1710. .NH 2
  1711. session [<session #>]
  1712. .LP
  1713. Without arguments, displays the list of current sessions, including
  1714. session number, remote TCP or AX.25 address and the associated socket
  1715. index.  An asterisk (*) is shown next to the current
  1716. session; entering a blank line at this point puts you in converse mode with
  1717. that session.  Entering a session number as an argument to the \fBsession\fP
  1718. command will put you in \fIconverse\fP mode with that session.  If the Telnet
  1719. server is enabled, the user is notified of an incoming request and a
  1720. session number is automatically assigned.  The user may then select the
  1721. session normally to converse with the remote user as though the session
  1722. had been locally initiated. 
  1723. .NH 2
  1724. shell
  1725. .LP
  1726. Suspends \fBnet.exe\fP and executes a sub-shell
  1727. ("command processor" under MS-DOS).
  1728. When the sub-shell exits, \fBnet.exe\fP resumes
  1729. (under MS-DOS, enter the \fBexit\fP command).
  1730. Background activity (FTP servers, etc) is also suspended
  1731. while the subshell executes. Note that this will fail unless there is
  1732. sufficient unused memory for the sub-shell and whatever command the user
  1733. tries to run.
  1734. .NH 2
  1735. smtp ...
  1736. .LP
  1737. These commands control the operation of the Simple Mail Transfer Protocol
  1738. (that is, mail).
  1739. .NH 3
  1740. smtp gateway [<hostid>]
  1741. .LP
  1742. Displays or sets the host to be used as a "smart" mail relay. Any mail sent
  1743. to a host not in the host table will instead be sent to the gateway for
  1744. forwarding.
  1745. .NH 3
  1746. smtp kick
  1747. .LP
  1748. Run through the outgoing mail queue and attempt to deliver any pending mail.
  1749. This command allows the user to "kick" the mail system manually.
  1750. Normally, this command is periodically invoked by a timer
  1751. whenever \fBnet.exe\fP is running.
  1752. .NH 3
  1753. smtp maxclients [<count>]
  1754. .LP
  1755. Displays or sets the maximum number of simultaneous outgoing SMTP sessions
  1756. that will be allowed. The default is 10; reduce it if network congestion
  1757. is a problem.
  1758. .NH 3
  1759. smtp timer [<seconds>]
  1760. .LP
  1761. Displays or sets the interval between "kicks" (scans) of the outbound
  1762. mail queue. For example, \fBsmtp timer 600\fP will cause the system to check
  1763. for outgoing mail every 10 minutes and attempt to deliver anything it finds,
  1764. subject of course to the \fBsmtp maxclients\fP limit. Setting a value of zero
  1765. disables
  1766. queue scanning altogether, note that this is the default!  This value is
  1767. recommended for stand alone IP gateways that never handle mail, since it
  1768. saves wear and tear on the floppy disk drive.
  1769. .NH 3
  1770. smtp trace [<value>]
  1771. .LP
  1772. Displays or sets the trace flag in the SMTP client, allowing you to
  1773. watch SMTP's conversations as it delivers mail.  Zero (the default)
  1774. disables tracing.
  1775. .NH 2
  1776. socket [<socket #>]
  1777. .LP
  1778. Without an argument, displays all active sockets, giving their index
  1779. and type, the address of the associated protocol control block and the
  1780. and owner process ID and name. If the index to an active socket is
  1781. supplied, the status display for the appropriate protocol is called.
  1782. For example, if the socket refers to a TCP connection, the display will
  1783. be that given by the \fBtcp status\fP command with the protocol control
  1784. block address.
  1785. .NH 2
  1786. start ax25 | discard | echo | ftp | netrom | remote | smtp | telnet | ttylink
  1787. .LP
  1788. Start the specified Internet server, allowing remote connection requests.
  1789. .NH 2
  1790. stop ax25 | discard | echo | ftp | netrom | remote | smtp | telnet | ttylink
  1791. .LP
  1792. Stop the specified Internet server, rejecting any further remote connect
  1793. requests. Existing connections are allowed to complete normally.
  1794. .NH 2
  1795. tcp ...
  1796. .LP
  1797. These commands are used for the Transmission Control Protocol service.
  1798. .NH 3
  1799. tcp irtt [<milliseconds>]
  1800. .LP
  1801. Display or set the initial round trip time estimate, in milliseconds, to be
  1802. used for new TCP connections until they can measure and adapt to the
  1803. actual value.  The default is 5000 milliseconds (5 seconds).
  1804. Increasing this when operating
  1805. over slow channels will avoid the flurry of retransmissions that would
  1806. otherwise occur as the smoothed estimate settles down at the correct
  1807. value. Note that this command should be given before servers are started in
  1808. order for it to have effect on incoming connections.
  1809. .LP
  1810. TCP also caches measured round trip times and mean
  1811. deviations (MDEV) for current and recent destinations. Whenever a new
  1812. TCP connection is opened, the system first looks in this cache. If the
  1813. destination is found, the cached IRTT and MDEV values are used. If not,
  1814. the default IRTT value mentioned above is used, along with a MDEV of 0.
  1815. This feature is fully automatic, and it can improve performance greatly
  1816. when a series of connections are opened and closed to a given destination
  1817. (eg. a series of FTP file transfers or directory listings).
  1818. .NH 3
  1819. tcp kick <tcb_addr>
  1820. .LP
  1821. If there is unacknowledged
  1822. data on the send queue of the specified TCB, this command forces
  1823. an immediate retransmission. 
  1824. .NH 3
  1825. tcp mss [<size>]
  1826. .LP
  1827. Display or set the TCP Maximum Segment Size in bytes that will be sent on all
  1828. outgoing TCP connect request (SYN segments).  This tells the remote end the
  1829. size of the largest segment (packet) it may send. Changing MSS affects
  1830. only future connections; existing connections are unaffected.
  1831. .NH 3
  1832. tcp reset <tcb_addr>
  1833. .LP
  1834. Deletes the TCP control block at the specified address.
  1835. .NH 3
  1836. tcp rtt <tcb_addr> <rtt> <mdev>
  1837. .LP
  1838. Replaces the automatically computed round trip time and mean deviation
  1839. values in the specified TCB
  1840. with new values in milliseconds.  This command is useful to speed up
  1841. recovery from a series of lost packets since it provides a manual bypass
  1842. around the normal backoff retransmission timing mechanisms. 
  1843. .NH 3
  1844. tcp status [<tcb_addr>]
  1845. .LP
  1846. Without arguments, displays several TCP-level statistics, plus a summary of
  1847. all existing TCP connections, including TCB address, send and receive queue
  1848. sizes, local and remote sockets, and connection state. If \fBtcb_addr\fP is
  1849. specified, a more detailed dump of the specified TCB is generated, including
  1850. send and receive sequence numbers and timer information.
  1851. .NH 3
  1852. tcp window [<size>]
  1853. .LP
  1854. Displays or sets the default receive window size in bytes to be used by TCP
  1855. when creating new connections. Existing connections are unaffected.
  1856. .NH 2
  1857. telnet <hostid>
  1858. .LP
  1859. Creates a Telnet session to the specified host and enters converse mode.
  1860. .NH 2
  1861. tip <iface>
  1862. .LP
  1863. Creates a \fBtip\fP session that
  1864. connects to the specified interface in "dumb terminal" mode.
  1865. The interface must have already been attached with the \fBattach\fP command.
  1866. Any packet
  1867. traffic (IP datagrams, etc) routed to the interface while this session
  1868. exists will be discarded.
  1869. To close a \fBtip\fP session, use the \fBreset\fP command. It
  1870. will then revert to normal \fBslip, nrs\fP or \fBkiss\fP mode operation.
  1871. .LP
  1872. This feature is primarily useful for manually establishing SLIP connections.
  1873. At present, only the built-in "com" ports can be used with this command.
  1874. .NH 2
  1875. trace [<iface> [off | <btio> [<tracefile>]]]
  1876. .LP
  1877. Controls packet tracing by the interface drivers. Specific bits enable
  1878. tracing of the various interfaces and the amount of information produced.
  1879. Tracing is controlled on a per-interface basis; without arguments, \fBtrace\fP
  1880. gives a list of all defined interfaces and their tracing status.
  1881. Output can be limited to a single interface by specifying it, and the
  1882. control flags can be change by specifying them as well. The flags are
  1883. given as a hexadecimal number which is interpreted as follows:
  1884. .DS I 0
  1885. .ft CW
  1886.     O - Enable tracing of output packets if 1, disable if 0
  1887.     I - Enable tracing of input packets if 1, disable if 0
  1888.     T - Controls type of tracing:
  1889.     0 - Protocol headers are decoded, but data is not displayed
  1890.     1 - Protocol headers are decoded, and data (but not the
  1891.         headers themselves) are displayed as ASCII characters,
  1892.         64 characters/line. Unprintable characters are displayed
  1893.         as periods.
  1894.     2 - Protocol headers are decoded, and the entire packet
  1895.         (headers AND data) is also displayed in hexadecimal
  1896.         and ASCII, 16 characters per line.
  1897.     B - Broadcast filter flag. If set, only packets specifically addressed
  1898.     to this node will be traced; broadcast packets will not be displayed.
  1899. .ft
  1900. .DE
  1901. If \fBtracefile\fP is not specified, tracing will be to the console.
  1902. .NH 2
  1903. udp status
  1904. .LP
  1905. Displays the status of all UDP receive queues.
  1906. .NH 2
  1907. upload [<filename>]
  1908. .LP
  1909. Opens \fBfilename\fP and sends it on the current session as though it were
  1910. typed on the terminal.
  1911. .NH 2
  1912. watch
  1913. .LP
  1914. Displays the current software stopwatch values, with min and max readings
  1915. for each. This facility allows a programmer to measure the execution time
  1916. of critical sections of code with microsecond resolution.
  1917. This command is supported only on the IBM PC, and the meaning of each
  1918. stopwatch value depends on where the calls have been inserted for test
  1919. purposes; the distribution copy of \fBnet.exe\fP usually has no stopwatch calls.
  1920. .NH 2
  1921. ?
  1922. .LP
  1923. Same as the \fBhelp\fP command.
  1924. .NH 1
  1925. Attach Commands
  1926. .LP
  1927. This chapter details the attach commands for the various hardware interface
  1928. drivers. Not all of these drivers may be configured into every \fBnet.exe\fP
  1929. binary; a list of the available types may be obtained by entering the
  1930. command \fBattach ?\fP.
  1931. .LP
  1932. Some parameters are accepted by several drivers. They are:
  1933. .NH 3
  1934. <bufsize>
  1935. .LP
  1936. For asynchronous devices (eg. COM ports operating in SLIP or NRS mode)
  1937. this parameter specifies the size of the receiver's ring buffer.
  1938. It should be large enough to hold incoming data at full line speed for
  1939. the longest time that the system may be busy in MS-DOS or the BIOS doing
  1940. a slow I/O operation (eg. to a floppy disk). A kilobyte is usually more
  1941. than sufficient.
  1942. .LP
  1943. For synchronous devices (eg. the \fBscc, hs, pc100, hapn\fP
  1944. and \fBdrsi\fP interfaces operating in HDLC mode),
  1945. the bufsize parameter specifies the largest packet
  1946. that may be received on the interface.  This should be set by mutual
  1947. agreement among stations sharing the channel. For standard AX.25 with a
  1948. maximum I-frame data size of 256 bytes, a value of 325 should provide an
  1949. adequate safety margin. On higher speed channels (eg. 56kb/s) larger
  1950. values (eg. 2K bytes) will provide much better performance and allow
  1951. full-sized Ethernet packets to be carried without fragmentation.
  1952. .NH 3
  1953. <ioaddr>
  1954. .LP
  1955. The base address of the interface's control registers, in hex.
  1956. .NH 3
  1957. <vector>
  1958. .LP
  1959. The interface's hardware interrupt (IRQ) vector, in hex.
  1960. .NH 3
  1961. <iface>
  1962. .LP
  1963. The name (an arbitrary character string)
  1964. to be assigned to this interface. It is used to refer to the
  1965. interface in \fBifconfig\fP and \fBroute\fP commands and in \fBtrace\fP output.
  1966. .NH 3
  1967. <mtu>
  1968. .LP
  1969. The Maximum Transmission Unit size, in bytes.  Datagrams
  1970. larger than this limit will be fragmented at the IP layer into smaller
  1971. pieces. For AX.25 UI frames, this limits the size of the information field.
  1972. For AX.25 I frames, however, the \fBax25 paclen\fP parameter is also
  1973. relevant.  If
  1974. the datagram or fragment is still larger than \fBpaclen\fP, it is also
  1975. fragmented at the AX.25 level (as opposed to the IP level) before
  1976. transmission.  (See the \fBax25 paclen\fP command for further information).
  1977. .NH 3
  1978. <speed>
  1979. .LP
  1980. The speed in bits per second (eg. 2400).
  1981. .NH 2
  1982. attach 3c500 <ioaddr> <vector> arpa <iface> <qlen> <mtu> [<ip_addr>]
  1983. .LP
  1984. Attach a 3Com 3C501 Ethernet interface.  \fBqlen\fP is the maximum allowable
  1985. transmit queue length.  If the \fBip_addr\fP parameter is not given, the value
  1986. associated with a prior \fBip address\fP command will be used.
  1987. .LP
  1988. The use of this driver is not recommended; use the packet driver interface
  1989. with the loadable 3C501 packet driver instead.
  1990. .NH 2
  1991. attach asy <ioaddr> <vector> ax25 | nrs | ppp | slip <iface> <bufsize> <mtu>
  1992. <speed> [<crv>]
  1993. .LP
  1994. Attach a standard PC "com port" (asynchronous serial port),
  1995. using the National 8250 or 16550A chip.
  1996. Standard values on the IBM PC and clones for \fBioaddr\fP and \fBvector\fP
  1997. are 0x3f8 and 4 for COM1,
  1998. and 0x2f8 and 3 for COM2.
  1999. If the port uses a 16550A chip, it will be detected
  2000. automatically and the FIFOs enabled.
  2001. .NH 3
  2002. ax25
  2003. .LP
  2004. Similar to \fBslip\fP, except that an AX.25 header and a KISS TNC
  2005. control header are added to the front of the datagram before SLIP
  2006. encoding.  Either UI (connectionless) or I (connection-oriented) AX.25
  2007. frames can be used; see the \fBmode\fP command for details. 
  2008. .NH 3
  2009. nrs
  2010. .LP
  2011. Use the NET/ROM asynchronous framing technique for communication with
  2012. a local NET/ROM TNC.
  2013. .NH 3
  2014. ppp
  2015. .LP
  2016. Point-to-Point-Protocol.
  2017. Encapsulates datagrams in an HDLC-like frame.
  2018. This is a new Internet standard for point-to-point communication,
  2019. compatible with CCITT standards.
  2020. .NH 3
  2021. slip
  2022. .LP
  2023. Serial Line Internet Protocol.
  2024. Encapsulates IP datagrams directly in SLIP frames without a link
  2025. header. This is for operation on point-to-point lines and is compatible
  2026. with 4.2BSD UNIX SLIP.
  2027. .NH 3
  2028. <crv>
  2029. .LP
  2030. The optional flags are a string of characters "crv":
  2031. \fBc\fP enables RTS/CTS detection,
  2032. \fBr\fP enables RLSD (Carrier Detect) physical line sensing,
  2033. \fBv\fP enables Van Jacobson TCP/IP Header Compression,
  2034. and is valid only for SLIP.
  2035. .NH 2
  2036. attach drsi <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <ch_a_speed>
  2037. <ch_b_speed>
  2038. .LP
  2039. N6TTO driver for the Digital Radio Systems PCPA 8530 card.
  2040. Since there are two channels on the board, two interfaces are attached.
  2041. They will be named \fBiface\fP with 'a' and 'b' appended.
  2042. \fBbufsize\fP is the receiver buffer size in bytes;
  2043. it must be larger than the largest frame to be received.
  2044. \fBch_a_speed\fP and \fBch_b_speed\fP are the speeds, in bits/sec,
  2045. for the A and B channels, respectively.
  2046. .NH 2
  2047. attach eagle <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <speed>
  2048. .LP
  2049. WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
  2050. .NH 2
  2051. attach hapn <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> csma | full
  2052. .LP
  2053. KE3Z driver for the Hamilton Amateur Packet Network adapter (Intel 8273).
  2054. The \fBcsma | full\fP parameter specifies whether the port should operate in
  2055. carrier sense multiple access (CSMA) mode or in full duplex.
  2056. .NH 2
  2057. attach hs <ioaddr> <vector> ax25 <iface> <bufsize> <mtu> <keyup_delay> <p>
  2058. .LP
  2059. Attach a DRSI PCPA or Eagle Computer interface card
  2060. using a special "high speed" 8530 driver.
  2061. This driver uses busy-wait loops to send and receive
  2062. each byte instead of interrupts, making it usable with high speed modems
  2063. (such as the WA4DSY 56kb/s modem) on slow systems.
  2064. This does have the side effect of "freezing"
  2065. the system whenever the modem transmitter or receiver is active.
  2066. This driver can operate only in CSMA mode, and it is recommended that
  2067. no other interfaces requiring small interrupt latencies be attached to
  2068. the same machine.
  2069. .LP
  2070. The \fBkeyup_delay\fP parameter specifies the transmitter keyup delay in
  2071. milliseconds. The \fBp\fP value specifies the transmitter persistence
  2072. value in the range 1-255; the corresponding slot time is fixed at one
  2073. hardware clock tick, about 55 ms on the PC.
  2074. .LP
  2075. As with the other 8530 drivers, this driver actually attaches two interfaces,
  2076. one for each 8530 channel.
  2077. .NH 2
  2078. attach packet <intvec> <iface> <txqlen> <mtu>
  2079. .LP
  2080. Attach a separate software "packet driver" meeting the
  2081. FTP Software, Inc, Software Packet Driver specification.
  2082. The driver must have already been installed as a TSR
  2083. (e.g., by invocation in autoexec.bat).
  2084. Packet drivers in the Ethernet, ARCNET,
  2085. SLIP, SLFP, and KISS/AX25 classes are supported.
  2086. .LP
  2087. \fBintvec\fP is the software interrupt vector used for communication to the
  2088. packet driver, and \fBtxqlen\fP is the maximum number of packets that will
  2089. be allowed on the transmit queue.
  2090. .NH 2
  2091. attach pc100 <ioaddr> <vector> ax25 <iface> <bufsize> <speed>
  2092. .LP
  2093. Driver for the PACCOMM PC-100 (Zilog 8530) card.
  2094. Only AX.25 operation is supported.
  2095. .NH 2
  2096. attach scc <devices> init <addr> <spacing> <Aoff> <Boff> <Dataoff> <intack>
  2097. <vec> [p|r]<clock> [<hdwe>] [<param>]
  2098. .LP
  2099. PE1CHL driver to initialize a generic SCC (8530) interface board
  2100. prior to actually attaching it. The parameters are as follows:
  2101. .NH 3
  2102. <devices>
  2103. .LP
  2104. The number of SCC chips to support.
  2105. .NH 3
  2106. <addr>
  2107. .LP
  2108. The base address of the first SCC chip (hex).
  2109. .NH 3
  2110. <spacing>
  2111. .LP
  2112. The spacing between the SCC chip base addresses.
  2113. .NH 3
  2114. <Aoff>
  2115. .LP
  2116. The offset from a chip's base address to its channel A control register.
  2117. .NH 3
  2118. <Boff>
  2119. .LP
  2120. The offset from a chip's base address to its channel B control register.
  2121. .NH 3
  2122. <Dataoff>
  2123. .LP
  2124. The offset from each channel's control register to its data register.
  2125. .NH 3
  2126. <intack>
  2127. .LP
  2128. The address of the INTACK/Read Vector port. If none,
  2129. specify 0 to read from RR3A/RR2B.
  2130. .NH 3
  2131. <vec>
  2132. .LP
  2133. The CPU interrupt vector for all connected SCCs.
  2134. .NH 3
  2135. <clock>
  2136. .LP
  2137. The clock frequency (PCLK/RTxC) of all SCCs in hertz.
  2138. Prefix with 'p' for PCLK, 'r' for RTxC clock (for baudrate gen).
  2139. .NH 3
  2140. <hdwe>
  2141. .LP
  2142. Optional hardware type. The following values are currently supported:
  2143. 1 - Eagle card, 2 - PACCOMM PC-100, 4 - PRIMUS-PC card (DG9BL), 8 - DRSI
  2144. PCPA card.
  2145. .NH 3
  2146. <param>
  2147. .LP
  2148. Optional extra parameter. At present, this is used only with the PC-100
  2149. and PRIMUS-PC cards to set the modem mode. The value 0x22 is used with
  2150. the PC-100 and 0x2 is used with the PRIMUS-PC card.
  2151. .LP  
  2152. The \fBattach scc ... init\fP command must be given
  2153. before the interfaces are actually attached with the following command.
  2154. .NH 2
  2155. attach scc <chan> slip | kiss | nrs | ax25 <iface> <mtu> <speed> <bufsize> [<call>]
  2156. .LP
  2157. Attach an initialized SCC port to the system. The parameters are as follows:
  2158. .NH 3
  2159. <chan>
  2160. .LP
  2161. The SCC channel number to attach, 0 or 1 for the first chip's A or B port,
  2162. 2 or 3 for the second chip's A or B port, etc.
  2163. .NH 3
  2164. slip | kiss | nrs | ax25
  2165. .LP
  2166. The operating mode of the interface. \fBslip, kiss\fP
  2167. and \fBnrs\fP all operate the
  2168. port hardware in asynchronous mode; \fBslip\fP
  2169. is Internet-standard serial line
  2170. IP mode, \fBkiss\fP generates SLIP frames containing KISS TNC commands and
  2171. AX.25 packets and \fBnrs\fP uses NET/ROM local serial link framing conventions
  2172. to carry NET/ROM packets. Selecting \fBax25\fP mode puts the interface into
  2173. synchronous HDLC mode that is suitable for direct connection to a half duplex
  2174. radio modem.
  2175. .NH 3
  2176. <speed>
  2177. .LP
  2178. The interface speed in bits per second (eg. 1200).
  2179. Prefix with 'd' when an external divider
  2180. is available to generate the TX clock. When the clock source is PCLK,
  2181. this can be a /32 divider between TRxC and RTxC. When the clock is at RTxC,
  2182. the TX rate must be supplied at TRxC. This is needed only for full duplex
  2183. synchronous operation. When this arg is given as 'ext', the transmit and
  2184. receive clocks are external, and the internal baud rate generator (BRG)
  2185. and digital phase locked loop (DPLL) are not used.
  2186. .NH 2
  2187. Attach Examples
  2188. .LP
  2189. Here are some examples of the attach command:
  2190. .LP
  2191. .DS I 0
  2192. .ft CW
  2193. # Attach a 3Com Ethernet controller using the standard 3Com address and
  2194. # vector (i.e., as it comes out of the box) to use ARPA-standard encapsulation.
  2195. # The receive queue is limited to 5 packets, and outgoing packets larger
  2196. # than 1500 bytes will be fragmented
  2197. attach 3c500 0x300 3 arpa ec0 5 1500
  2198.  
  2199. # Attach the PC asynch card normally known as "com1" (the first controller)
  2200. # to operate in point-to-point slip mode at 9600 baud, calling it "sl0".
  2201. # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger
  2202. # than 256 bytes are fragmented.
  2203. attach asy 0x3f8 4 slip sl0 1024 256 9600
  2204.  
  2205. # Attach the secondary PC asynch card ("com2") to operate in AX.25 mode
  2206. # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it "ax0".
  2207. # By default, IP datagrams are sent in UI frames
  2208. attach asy 0x2f8 3 ax25 ax0 1024 576 9600
  2209.  
  2210. # Attach the packet driver loaded at interrupt 0x7e
  2211. # The packet driver is for an Ethernet interface
  2212. attach packet 0x7e ethernet 8 1500
  2213. .ft P
  2214. .DE
  2215. .LP
  2216. .NH 1
  2217. FTP Subcommands
  2218. .LP
  2219. During converse mode with an FTP server, everything typed on the console is
  2220. first examined to see if it is a locally-known command. If not, the line is
  2221. passed intact to the remote server on the control channel. If it is one of
  2222. the following commands, however, it is executed locally. (Note that this
  2223. generally involves other commands being sent to the remote server on the
  2224. control channel.)
  2225. .NH 2
  2226. dir [<file> | <directory> [<local file>]]
  2227. .LP
  2228. Without arguments,
  2229. \fBdir\fP requests that a full directory listing of the remote
  2230. server's current directory be sent to the terminal.  If one argument is
  2231. given, this is passed along in the LIST command; this can be a specific
  2232. file or subdirectory that is meaningful to the remote file system. If two
  2233. arguments are given, the second is taken as the local file into which the
  2234. directory listing should be put (instead of being sent to the console).
  2235. The PORT command is used before the LIST command is sent.
  2236. .NH 2
  2237. get <remote file> [<local file>]
  2238. .LP
  2239. Asks the remote server to send the file specified in the first argument.
  2240. The second argument, if given, will be the name of the file on the local
  2241. machine; otherwise it will have the same name as on the remote machine.
  2242. The PORT and RETR commands are sent on the control channel.
  2243. .NH 2
  2244. hash
  2245. .LP
  2246. A synonym for the \fBverbose 3\fP command.
  2247. .NH 2
  2248. ls [<file> | <directory> [<local file>]]
  2249. .LP
  2250. \fBls\fP is identical to the \fBdir\fP command except that the "NLST"
  2251. command is
  2252. sent to the server instead of the "LIST" command. This results in an
  2253. abbreviated directory listing, i.e., one showing only the file names
  2254. themselves without any other information.
  2255. .NH 2
  2256. mget <file> [<file> ...]
  2257. .LP
  2258. Fetch a collection of files from the server. File names may include
  2259. wild card characters; they will be interpreted and expanded into a
  2260. list of files by the remote
  2261. system using the NLST command. The files will have the same name on
  2262. the local system that they had on the server.
  2263. .NH 2
  2264. mkdir <remote directory>
  2265. .LP
  2266. Creates a directory on the remote machine.
  2267. .NH 2
  2268. mput <file> [<file> ...]
  2269. .LP
  2270. Send a collection of files to the server. File names may include
  2271. wild card characters; they will be expanded locally into a list
  2272. of files to be sent. The files will have the same name on the
  2273. server as on the local system.
  2274. .NH 2
  2275. put <local file> [<remote file>]
  2276. .LP
  2277. Asks the remote server to accept data, creating the file named in the
  2278. first argument. The second argument, if given, will be the name of the file
  2279. on the remote machine; otherwise it will have the same name as on the local
  2280. machine.  The PORT and STOR commands are sent on the control channel.
  2281. .NH 2
  2282. rmdir <remote directory>
  2283. .LP
  2284. Deletes a directory on the remote machine.
  2285. .NH 2
  2286. type [a | i | l <bytesize>]
  2287. .LP
  2288. Tells both the local client and remote server the type of file that is
  2289. to be transferred.  The default is 'a', which means ASCII (i.e., a text
  2290. file).  Type 'i' means \fIimage\fP, i.e., binary.  In ASCII mode, files are
  2291. sent as varying length lines of text in ASCII separated by cr/lf
  2292. sequences; in IMAGE mode, files are sent exactly as they appear in the
  2293. file system.  ASCII mode should be used whenever transferring text
  2294. between dissimilar systems (eg. UNIX and MS-DOS) because of their
  2295. different end-of-line and/or end-of-file conventions.  When exchanging
  2296. text files between machines of the same type, either mode will work but
  2297. IMAGE mode is usually faster.  Naturally, when exchanging raw
  2298. binary files (executables, compressed archives, etc) IMAGE mode must be
  2299. used.  Type 'l' (logical byte size) is used when exchanging binary files
  2300. with remote servers having oddball word sizes (eg. DECSYSTEM-10s and 20s).
  2301. Locally it works exactly like IMAGE, except that it notifies the
  2302. remote system how large the byte size is. \fBbytesize\fP is typically 8.
  2303. The type command sets the local transfer mode and generates the TYPE
  2304. command on the control channel. 
  2305. .NH 2
  2306. verbose [0 | 1 | 2 | 3]
  2307. .LP
  2308. Set or display the level of message output in file transfers.
  2309. \fBVerbose 0\fP gives the least output, and \fBverbose 3\fP the most,
  2310. as follows:
  2311. .DS I 0
  2312. 0 - Display error messages only.
  2313. 1 - Display error messages plus a one-line summary after each transfer
  2314.     giving the name of the file, its size, and the transfer time and rate.
  2315. 2 - Display error and summary messages plus the progress messages generated
  2316.     by the remote FTP server. (This setting is the default.)
  2317. 3 - Display all messages. In addition, a "hash mark" (#) is displayed for
  2318.     every 1,000 bytes sent or received.
  2319. .DE
  2320. If a command is sent to the
  2321. remote server because it is not recognized locally, the response
  2322. is always displayed, regardless of the setting of \fBverbose\fP.
  2323. This is necessary for commands like \fBpwd\fP (display working directory),
  2324. which would
  2325. otherwise produce no message at all if \fBverbose\fP were set to 0 or 1.
  2326. .NH 1
  2327. Dialer Subcommands
  2328. .LP
  2329. Each dialer command may (should) have a different dialer file.
  2330. The file resides in the configuration directory,
  2331. as specified in the \fBInstallation\fP section (see chapter 1).
  2332. A typical dialer file might be:
  2333. .DS
  2334. # Set the speed, and toggle DTR to ensure modem is in command mode.
  2335. control down
  2336. wait 3000
  2337. speed 2400
  2338. control up
  2339. wait 3000
  2340. # Dial, and wait for connection
  2341. send "atdt555-1212\\r"
  2342. wait 45000 "CONNECT " speed
  2343. wait 2000
  2344. # PAD specific initialization
  2345. send "\\r"
  2346. wait 15000 "Terminal ="
  2347. send "ppp\\r"
  2348. wait 10000 "\\r\\n"
  2349. .DE
  2350. .NH 3
  2351. control down | up
  2352. .LP
  2353. Control \fBasy\fP interface.
  2354. The \fBdown\fP option drops DTR and RTS.
  2355. The \fBup\fP option asserts DTR and RTS.
  2356. .NH 3
  2357. send "string" [<milliseconds>]
  2358. .LP
  2359. This dialer command will write the specified string to the interface.
  2360. The string quote marks are required,
  2361. and the string may not contain embedded control characters.
  2362. However, the standard C string escape sequences are recognized
  2363. (\\0 should not be used).
  2364. .LP
  2365. There may be a wait of <milliseconds> between each character.
  2366. This is used when the dialer cannot process a string at modem speeds.
  2367. .NH 3
  2368. speed [ 9600 | 4800 | 2400 | 1200 | 300 ]
  2369. .LP
  2370. This dialer command will set the speed of the interface to one of the
  2371. available speeds.
  2372. If the speed is missing,
  2373. the speed will be displayed in the dialer session window.
  2374. .NH 3
  2375. wait <milliseconds> [ "test string" ] [ speed ]
  2376. .LP
  2377. If only the time is specified,
  2378. the dialer pauses for the desired number of milliseconds.
  2379. .LP
  2380. Otherwise, the dialer reads until the test string is detected on the interface.
  2381. If the string is not detected within the desired time,
  2382. the autodialer will reset.
  2383. The string quote marks are required,
  2384. and the string may not contain embedded control characters.
  2385. However, the standard C string escape sequences are recognized
  2386. (\\0 should not be used).
  2387. .LP
  2388. Finally, if the \fIspeed\fP parameter is specified,
  2389. the dialer will continue to read characters until a non-digit is detected.
  2390. The string read is converted to an integer,
  2391. and used to set the interface speed.
  2392. If the trailing non-digit is not detected within the desired time,
  2393. or the integer value is not a valid speed,
  2394. the autodialer will reset.
  2395. The \fIspeed\fP feature is useful for reading back the CONNECT <speed>
  2396. message generated by Hayes-compatible modems.
  2397. .NH 1
  2398. The /ftpusers File
  2399. .LP
  2400. Since MS-DOS is a single-user operating system (some might say it is
  2401. a glorified bootstrap loader), it provides
  2402. no access control; all files can be read, written or deleted by the
  2403. local user.  It is usually undesirable to give such open access to a
  2404. system to remote network users.  \fBNet.exe\fP therefore provides its own
  2405. access control mechanisms.
  2406. .LP
  2407. The file \fB/ftpusers\fP controls remote FTP and mailbox access.
  2408. The FTP default
  2409. is \fIno\fP access; if this file does not exist, the FTP server will be
  2410. unusable.  A remote user must first "log in" to the system with the USER
  2411. and PASS commands, giving a valid name and password listed in \fB/ftpusers\fP,
  2412. before he or she can transfer files. 
  2413. .LP
  2414. Each entry in \fB/ftpusers\fP consists of a single line of the form
  2415. .DS I 0
  2416. .ft CW
  2417. username password /path permissions
  2418. .ft P
  2419. .DE
  2420. .LP
  2421. There must be exactly four fields, and there must be exactly one space
  2422. between each field.  Comments may be added after the last field. 
  2423. Comment lines begin with '#' in column one. 
  2424. .LP
  2425. \fBusername\fP is the user's login name.
  2426. .LP
  2427. \fBpassword\fP is the required password.  Note that this is in
  2428. plain text; therefore it is not a good idea to give general read
  2429. permission to the root directory.  A password of '*' (a single asterisk)
  2430. means that any password is acceptable. 
  2431. .LP
  2432. \fB/path\fP is the allowable prefix on accessible files.  Before any
  2433. file or directory operation, the current directory and the user-
  2434. specified file name are joined to form an absolute path name in
  2435. "canonical" form (i.e., a full path name starting at the root, with "./"
  2436. and "../" references, as well as redundant /'s, recognized and removed). 
  2437. The result MUST begin with the allowable path prefix; if not, the
  2438. operation is denied.  This field must always begin with a
  2439. "/", i.e., at the root directory. 
  2440. .LP
  2441. \fBpermissions\fP is a decimal number granting permission for read,
  2442. create and write operations.  If the low order bit (0x1) is set, the
  2443. user is allowed to read a file subject to the path name prefix
  2444. restriction.  If the next bit (0x2) is set, the user is allowed to
  2445. create a new file if it does not overwrite an existing file.  If the
  2446. third bit (0x4) is set, the user is allowed to write a file even if it
  2447. overwrites an existing file, and in addition he may delete files.  Again,
  2448. all operations are allowed subject to the path name prefix restrictions. 
  2449. Permissions may be combined by adding bits, for example, 0x3 (= 0x2 + 0x1)
  2450. means that the user is given read and create permission, but not
  2451. overwrite/delete permission.
  2452. .LP
  2453. For example, suppose \fB/ftpusers\fP on machine
  2454. pc.ka9q.ampr.org contains the line
  2455. .DS I 0
  2456. .ft CW
  2457. friendly test /testdir 7
  2458. .ft P
  2459. .DE
  2460. .LP
  2461. A session using this account would look like this:
  2462. .DS I 0
  2463. .ft CW
  2464. net> ftp pc.ka9q.ampr.org
  2465. Resolving pc.ka9q.ampr.org... Trying 128.96.160.1...
  2466. FTP session 1 connected to pc.ka9q.ampr.org
  2467. 220 pc.ka9q.ampr.org FTP version 900418 ready at Mon May 7 16:27:18 1990
  2468. Enter user name: friendly
  2469. 331 Enter PASS command
  2470. Password: test [not echoed]
  2471. 230 Logged in
  2472. ftp>
  2473. .ft P
  2474. .DE
  2475. .LP
  2476. The user now has read, write, overwrite and delete privileges for any file
  2477. under /testdir; he may not access any other files.
  2478. .LP
  2479. Here are some more sample entries in \fB/ftpusers\fP:
  2480. .DS I 0
  2481. .ft CW
  2482. karn foobar / 7         # User "karn" with password "foobar" may read,
  2483.                         # write, overwrite and delete any file on the
  2484.                         # system.
  2485.  
  2486. guest bletch /g/bogus 3 # User "guest" with password "bletch" may read
  2487.                         # any file under /g/bogus and its subdirectories,
  2488.                         # and may create a new file as long as it does
  2489.                         # not overwrite an existing file. He may NOT
  2490.                         # delete any files.
  2491.  
  2492. anonymous * /public 1   # User "anonymous" (any password) may read files
  2493.                         # under /public and its subdirectories; he may
  2494.                         # not create, overwrite or delete any files.
  2495. .ft
  2496. .DE
  2497. .LP
  2498. This last entry is the standard convention for keeping a repository of
  2499. public files; in particular, the username "anonymous" is an established
  2500. ARPA convention. 
  2501. .NH 1
  2502. The \fBdomain.txt\fP File
  2503. .LP
  2504. \fBNet.exe\fP translates domain names (eg. "pc.ka9q.ampr.org") to IP addresses
  2505. (eg. 128.96.160.3) through the use of an Internet Domain Name resolver and
  2506. a local "cache" file, \fBdomain.txt\fP.
  2507. Whenever the user specifies a domain name,
  2508. the local cache is searched for the desired entry.
  2509. If it is present, it is used;
  2510. if not, and if domain name server(s) have been configured,
  2511. a query is sent over the network to the current server.
  2512. If the server responds,
  2513. the answer is added to the \fBdomain.txt\fP file for future use.
  2514. If the server does not respond, any additional servers on the list are
  2515. tried in a round-robin fashion until one responds,
  2516. or the retry limit is reached (see the \fBdomain retry\fP command).
  2517. If \fBdomain.txt\fP does not contain the
  2518. desired entry and there are no configured domain name servers,
  2519. then the request immediately fails.
  2520. .LP
  2521. If a domain name server is available, and if all references to host-ids in
  2522. your /\fBautoexec.net\fP file are in IP address format, then it is
  2523. possible to start with a completely empty \fBdomain.txt\fP file
  2524. and have \fBnet.exe\fP build it for you.
  2525. However, you may wish to add your own entries to \fBdomain.txt\fP,
  2526. either because you prefer to use symbolic domain names in your
  2527. /\fBautoexec.net\fP file
  2528. or you don't have access to a domain server and you need to create entries
  2529. for all of the hosts you may wish to access.
  2530. .LP
  2531. Each entry takes one line,
  2532. and the fields are separated by any combination of tabs or spaces.
  2533. For example:
  2534. .DS I 0
  2535. pc.ka9q.ampr.org.    IN    A    128.96.160.3
  2536. .DE
  2537. \fBIN\fP is the \fIclass\fP of the record.
  2538. It means \fIInternet\fP, and it will be found in all entries.
  2539. \fBA\fP is the \fItype\fP of the record, and it means that this is
  2540. an \fIaddress\fP record.
  2541. Domain name \fBpc.ka9q.ampr.org\fP therefore has Internet
  2542. address 128.96.160.3.
  2543. .LP
  2544. Another possible entry is the \fBCNAME\fP (Canonical Name) record.
  2545. For example:
  2546. .DS I 0
  2547. ka9q.ampr.org.        IN    CNAME    pc.ka9q.ampr.org.
  2548. .DE
  2549. This says that domain name "ka9q.ampr.org" is actually an alias for the
  2550. system with (primary, or \fIcanonical\fP) domain name "pc.ka9q.ampr.org."
  2551. When a domain name having a \fBCNAME\fP
  2552. record is given to \fBnet.exe\fP, the system
  2553. automatically follows the reference to the canonical name and returns the
  2554. IP address associated with that entry.
  2555. .LP
  2556. Entries added automatically by \fBnet.exe\fP will have an additional field between
  2557. the domain name and the class (\fBIN\fP) field.  For example:
  2558. .DS I 0
  2559. pc.ka9q.ampr.org.    3600    IN    A    128.96.160.3
  2560. .DE
  2561. This is the \fItime-to-live\fP value, in seconds, associated with the record
  2562. received from the server. Clients (such as \fBnet.exe\fP) caching these records are
  2563. supposed to delete them after the time-to-live interval has expired,
  2564. allowing for the possibility that the information in the record may become
  2565. out of date.
  2566. .LP
  2567. This implementation of \fBnet.exe\fP will decrement the TTL to zero, but will not
  2568. delete the record unless the "clean" flag is on
  2569. (see the \fBdomain cache clean\fP command).
  2570. When a remote server is not available, the old entry will be used.
  2571. .LP
  2572. When the \fITTL\fP value is missing (as in the examples above),
  2573. the record will never expire, and must be managed by hand.
  2574. Since \fBdomain.txt\fP is a plain text file,
  2575. it may be easily edited by the user to add, change or delete records.
  2576. .LP
  2577. Additional types of records include MX (mail exchanger),
  2578. NS (name server) and SOA (start of
  2579. authority) may appear in \fBdomain.txt\fP from remote server responses. Only
  2580. MX is currently used by \fBnet.exe\fP (in the mailbox). The others
  2581. are retained for future development
  2582. (such as the incorporation of a smarter resolver or a full-blown
  2583. domain name server).
  2584. .NH 1
  2585. Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window
  2586. .LP
  2587. Many \fBnet.exe\fP users are confused by these parameters and do not know how to
  2588. set them properly. This chapter will first review these parameters and
  2589. then discuss how to choose values for them. Special emphasis is given to
  2590. avoiding interoperability problems that may appear when communicating
  2591. with non-\fBnet.exe\fP implementations of AX.25.
  2592. .NH 2
  2593. Hardware Parameters
  2594. .LP
  2595. .NH 3
  2596. Bufsize
  2597. .LP
  2598. This parameter is required by most of \fBnet.exe\fP's built-in HDLC drivers
  2599. (eg. those for the DRSI PCPA and the Paccomm PC-100). It specifies the size
  2600. of the buffer to be allocated for each receiver port. HDLC frames
  2601. larger than this value cannot be received.
  2602. .LP
  2603. There is no default \fBbufsize\fP; it must be specified in the \fBattach\fP
  2604. command for the interface.
  2605. .NH 2
  2606. AX25 Parameters
  2607. .NH 3
  2608. Paclen
  2609. .LP
  2610. Paclen limits the size of the data field in an AX.25 I-frame. This
  2611. value does \fInot\fP include the AX.25 protocol header (source,
  2612. destination and digipeater addresses).
  2613. .LP
  2614. Since unconnected-mode (datagram) AX.25 uses UI frames, this parameter
  2615. has no effect in unconnected mode.
  2616. .LP
  2617. The default value of \fBpaclen\fP is 256 bytes.
  2618. .NH 3
  2619. Maxframe
  2620. .LP
  2621. This parameter controls the number of I-frames that \fBnet.exe\fP may send
  2622. on an AX.25 connection before it must stop and wait for an acknowledgement.
  2623. Since the AX.25/LAPB sequence number field is 3 bits wide, this number
  2624. cannot be larger than 7.
  2625. .LP
  2626. Since unconnected-mode (datagram) AX.25 uses UI frames that do not have
  2627. sequence numbers, this parameter does \fInot\fP apply to unconnected
  2628. mode.
  2629. .LP
  2630. The default value of \fBmaxframe\fP in \fBnet.exe\fP is 1.
  2631. .NH 2
  2632. IP and TCP Parameters
  2633. .NH 3
  2634. MTU
  2635. .LP
  2636. The MTU (Maximum Transmission Unit) is an interface parameter that
  2637. limits the size of the largest IP
  2638. datagram that it may handle.  IP datagrams routed to
  2639. an interface that are larger than its MTU are each split into two or more
  2640. \fIfragments\fP.
  2641. Each fragment has its own IP header and is handled by the network
  2642. as if it were a distinct IP datagram, but when it arrives at
  2643. the destination it is held by the IP layer until all of the other fragments
  2644. belonging to the original datagram have arrived. Then they are reassembled
  2645. back into the complete, original IP datagram. 
  2646. The minimum acceptable interface MTU is 28
  2647. bytes: 20 bytes for the IP (fragment) header, plus 8 bytes of data.
  2648. .LP
  2649. There is no default MTU in \fBnet.exe\fP; it must be explicitly specified for
  2650. each interface as part of the \fBattach\fP command.
  2651. .NH 3
  2652. MSS
  2653. .LP
  2654. MSS (Maximum Segment Size) is a TCP-level parameter that limits the
  2655. amount of data that the \fIremote\fP TCP will send in a single TCP
  2656. packet. MSS values are exchanged in the SYN (connection request)
  2657. packets that open a TCP connection. In the \fBnet.exe\fP implementation of TCP,
  2658. the MSS actually used by TCP is further reduced in order to avoid
  2659. fragmentation at the local IP interface. That is, the local TCP asks IP
  2660. for the MTU of the interface that will be used to reach the
  2661. destination. It then subtracts 40 from the MTU value to allow for the
  2662. overhead of the TCP and IP headers. If the result is less than the MSS
  2663. received from the remote TCP, it is used instead.
  2664. .LP
  2665. The default value of \fBMSS\fP is 512 bytes.
  2666. .NH 3
  2667. Window
  2668. .LP
  2669. This is a TCP-level parameter that controls how much data the local TCP
  2670. will allow the remote TCP to send before it must stop and wait for an
  2671. acknowledgement. The actual window value used by TCP when deciding how
  2672. much more data to send is referred to as the \fIeffective window\fP.
  2673. This is the smaller of two values: the window advertised by the remote
  2674. TCP minus the unacknowledged data in flight, and the \fIcongestion
  2675. window\fP, an automatically computed time-varying estimate of how much
  2676. data the network can handle.
  2677. .LP
  2678. The default value of \fBWindow\fP is 2048 bytes.
  2679. .NH 2
  2680. Discussion
  2681. .LP
  2682. .NH 3
  2683. IP Fragmentation vs AX.25 Segmentation
  2684. .LP
  2685. IP-level fragmentation often makes it possible to interconnect two
  2686. dissimilar networks, but it is best avoided whenever possible.
  2687. One reason is that when a single IP fragment is lost, all other fragments
  2688. belonging to the same datagram are effectively also lost and
  2689. the entire datagram must be retransmitted by the source.
  2690. Even without loss, fragments require the allocation of temporary buffer
  2691. memory at the destination, and it is never easy
  2692. to decide how long to wait for missing fragments before
  2693. giving up and discarding those that have already arrived.
  2694. A reassembly timer controls this process.
  2695. In \fBnet.exe\fP it is (re)initialized with the \fBip rtimer\fP parameter
  2696. (default 30 seconds) whenever progress is made in reassembling a datagram
  2697. (i.e., a new fragment is received).
  2698. It is not necessary that all of the fragments belonging to a datagram
  2699. arrive within a single timeout interval, only that the interval between
  2700. fragments be less than the timeout.
  2701. .LP
  2702. Most subnetworks that carry IP have MTUs of 576 bytes or more, so
  2703. interconnecting them with subnetworks having smaller values can result in
  2704. considerable fragmentation. For this reason, IP implementors working with
  2705. links or subnets having unusually small packet size limits are encouraged
  2706. to use
  2707. \fItransparent fragmentation\fP,
  2708. that is, to devise schemes to break up large IP
  2709. datagrams into a sequence of link or subnet frames that are immediately
  2710. reassembled on the other end of the link or subnet into the original, whole IP
  2711. datagram without the use of IP-level fragmentation. Such a
  2712. scheme is provided in AX.25 Version 2.1.  It can break
  2713. a large IP or NET/ROM datagram into a series of \fBpaclen\fP-sized
  2714. AX.25 segments (not to be confused with TCP segments),
  2715. one per AX.25 I-frame, for transmission and reassemble them into
  2716. a single datagram at the other end of the link before handing it up to the
  2717. IP or NET/ROM module.  Unfortunately, the segmentation procedure is a new
  2718. feature in AX.25 and is not yet widely implemented;
  2719. in fact, \fBnet.exe\fP is so far
  2720. the only known implementation. This creates some interoperability problems
  2721. between \fBnet.exe\fP and non-\fBnet.exe\fP nodes, in particular, standard
  2722. NET/ROM nodes being used to carry IP datagrams. This problem is discussed
  2723. further in the section on setting the MTU.
  2724. .NH 3
  2725. Setting paclen and bufsize
  2726. .LP
  2727. The more data you put into an AX.25 I frame, the smaller the AX.25
  2728. headers are in relation to the total frame size. In other words, by
  2729. increasing \fBpaclen\fP, you lower the AX.25 protocol overhead. Also, large
  2730. data packets reduce the overhead of keying up a transmitter, and this
  2731. can be an important factor with higher speed modems. On the other hand,
  2732. large frames make bigger targets for noise and interference. Each link
  2733. has an optimum value of \fBpaclen\fP that is best discovered by experiment.
  2734. .LP
  2735. Another thing to remember when setting \fBpaclen\fP is that the AX.25 version
  2736. 2.0 specification limits it to 256 bytes. Although \fBnet.exe\fP can handle
  2737. much larger values, some other AX.25 implementations (including
  2738. digipeaters) cannot and this
  2739. may cause interoperability problems. Even \fBnet.exe\fP may have trouble with
  2740. certain KISS TNCs because of fixed-size buffers. The original KISS TNC
  2741. code for the TNC-2 by K3MC can handle frames limited in size only by
  2742. the RAM in the TNC, but some other KISS TNCs cannot.
  2743. .LP
  2744. \fBNet.exe\fP's built-in HDLC drivers (SCC, PC-100, DRSI, etc) allocate receive
  2745. buffers according to the maximum expected frame size, so it is
  2746. important that these devices be configured with the correct
  2747. \fBbufsize\fP. To do this, you must know the size of the largest
  2748. possible frame that can be received. The \fBpaclen\fP parameter
  2749. controls only the size of the data field in an I-frame and not the
  2750. total size of the frame as it appears on the air. The AX.25 spec allows
  2751. up to 8 digipeaters, so the largest possible frame is (\fBpaclen\fP + 72)
  2752. bytes. So you should make \fBbufsize\fP at least this large.
  2753. .LP
  2754. Another important consideration is that the more recent versions of NOS
  2755. improve interrupt response by maintaining a special pool of buffers for use
  2756. by the receive routines.  These buffers are configured by the
  2757. \fBmemory nibufs\fP and \fPmemory ibufsize\fP commands.
  2758. \fBibufsize\fP defaults to 2048 bytes. The setting of \fBibufsize\fP
  2759. limits \fBbufsize\fP; in fact, attempting to set a larger value may
  2760. cause the driver not to work at all. This situation can be detected by
  2761. running the \fBmemory status\fP command and looking for a non-zero count
  2762. of \fBIbuffail\fP events, although these events can also occur
  2763. occasionally during normal operation.
  2764. .LP
  2765. One of the drawbacks of AX.25 that there is no way for one station to tell
  2766. another how large a packet it is willing to accept.  This requires the
  2767. stations sharing a channel to agree beforehand on a maximum packet size.
  2768. TCP is different, as we shall see.
  2769. .NH 3
  2770. Setting Maxframe
  2771. .LP
  2772. For best performance on a half-duplex radio channel, \fBmaxframe\fP should
  2773. always be set to 1. The reasons are explained in the paper \fILink Level
  2774. Protocols Revisited\fP by Brian Lloyd and Phil Karn, which appeared in the
  2775. proceedings of the ARRL 5th Computer Networking Conference in 1986.
  2776. .NH 3
  2777. Setting MTU
  2778. .LP
  2779. TCP/IP header overhead considerations similar to those of the AX.25 layer
  2780. when setting \fBpaclen\fP apply when choosing an MTU.  However, certain
  2781. subnetwork types supported by \fBnet.exe\fP have well-established MTUs, and
  2782. these should
  2783. always be used unless you know what you're doing: 1500 bytes for Ethernet,
  2784. and 508 bytes for ARCNET.
  2785. The MTU for PPP is automatically negotiated, and defaults to 1500.
  2786. Other subnet types, including SLIP and AX.25, are
  2787. not as well standardized.
  2788. .LP
  2789. SLIP has no official MTU, but the most common
  2790. implementation (for BSD UNIX) uses an MTU of 1006 bytes.  Although
  2791. \fBnet.exe\fP has no hard wired limit on the size of a received SLIP frame,
  2792. this is not true for other systems.
  2793. Interoperability problems may therefore result if larger MTUs are used in
  2794. \fBnet.exe\fP.
  2795. .LP
  2796. Choosing an MTU for an AX.25 interface is more complex. When the interface
  2797. operates in datagram (UI-frame) mode, the \fBpaclen\fP parameter does not
  2798. apply. The MTU effectively becomes the \fBpaclen\fP of the link.  However,
  2799. as mentioned earlier, large packets sent on AX.25 \fIconnections\fP are
  2800. automatically segmented into I-frames no larger than \fBpaclen\fP bytes.
  2801. Unfortunately, as also mentioned earlier, \fBnet.exe\fP is so far the only known
  2802. implementation of the new AX.25 segmentation procedure. This is fine as long
  2803. as all of the NET/ROM nodes along a path are running \fBnet.exe\fP, but since the main
  2804. reason \fBnet.exe\fP supports NET/ROM is to allow use of existing NET/ROM networks,
  2805. this is unlikely.
  2806. .LP
  2807. So it is usually important to avoid AX.25 segmentation when running IP over
  2808. NET/ROM.  The way to do this is to make sure that packets larger
  2809. than \fBpaclen\fP are never handed to AX.25.  A NET/ROM transport header is
  2810. 5 bytes long and a NET/ROM network header takes 15 bytes, so 20 bytes must
  2811. be added to the size of an IP datagram when figuring the size of the AX.25
  2812. I-frame data field. If \fBpaclen\fP is 256, this leaves 236 bytes for the IP
  2813. datagram. This is the default MTU of the \fBnetrom\fP pseudo-interface, so
  2814. as long as \fBpaclen\fP is at least 256 bytes, AX.25 segmentation can't
  2815. happen. But if smaller values of \fBpaclen\fP are used, the \fBnetrom\fP MTU
  2816. must also be reduced with the \fBifconfig\fP command.
  2817. .LP
  2818. On the other hand, if you're running IP directly on top of AX.25, chances
  2819. are all of the nodes are running \fBnet.exe\fP and support AX.25 segmentation.
  2820. In this case there is no reason not to use a larger MTU and let
  2821. AX.25 segmentation do its thing. If you choose
  2822. an MTU on the order of 1000-1500 bytes, you can largely avoid IP-level
  2823. fragmentation and reduce TCP/IP-level header overhead on file transfers
  2824. to a very low level.
  2825. And you are still free to pick whatever \fBpaclen\fP value is
  2826. appropriate for the link.
  2827. .NH 3
  2828. Setting MSS
  2829. .LP
  2830. The setting of this TCP-level parameter is somewhat less critical than the
  2831. IP and AX.25 level parameters already discussed, mainly because it is
  2832. automatically lowered according to the MTU of the local interface when a
  2833. connection is created. Although this is, strictly speaking, a protocol
  2834. layering violation (TCP is not supposed to have any knowledge of the
  2835. workings of lower layers) this technique does work well in practice.
  2836. However, it can be fooled; for example, if a routing change occurs after the
  2837. connection has been opened and the new local interface has a smaller MTU
  2838. than the previous one, IP fragmentation may occur in the local system.
  2839. .LP
  2840. The only drawback to setting a large MSS is that it might cause avoidable
  2841. fragmentation at some other point within the network path if it includes a
  2842. "bottleneck" subnet with an MTU smaller than that of the local interface.
  2843. (Unfortunately, there is presently no way to know when this is the case.
  2844. There is ongoing work within the Internet Engineering Task Force on a "MTU
  2845. Discovery" procedure to determine the largest datagram that may be sent over
  2846. a given path without fragmentation, but it is not yet complete.)
  2847. Also, since the MSS you specify is sent to the remote system, and not all
  2848. other TCPs do the MSS-lowering procedure yet, this might cause the remote
  2849. system to generate IP fragments unnecessarily.
  2850. .LP
  2851. On the other hand, a too-small MSS can result in a considerable performance
  2852. loss, especially when operating over fast LANs and networks that can handle
  2853. larger packets. So the best value for MSS is probably 40 less than the
  2854. largest MTU on your system, with the 40-byte margin allowing for the TCP and
  2855. IP headers. For example, if you have a SLIP interface with a 1006 byte MTU
  2856. and an Ethernet interface with a 1500 byte MTU, set MSS to 1460 bytes. This
  2857. allows you to receive maximum-sized Ethernet packets, assuming the path to
  2858. your system does not have any bottleneck subnets with smaller MTUs.
  2859. .NH 3
  2860. Setting Window
  2861. .LP
  2862. A sliding window protocol like TCP cannot transfer more than one window's
  2863. worth of data per round trip time interval. So this TCP-level parameter
  2864. controls the ability of the remote TCP to keep a long "pipe" full. That is,
  2865. when operating over a path with many hops, offering a large TCP window will
  2866. help keep all those hops busy when you're receiving data. On the other hand,
  2867. offering too large a window can congest the network if it cannot buffer all
  2868. that data. Fortunately, new algorithms for dynamic controlling the
  2869. effective TCP flow control window have been developed over the past few
  2870. years and are now widely deployed.
  2871. \fBNet.exe\fP includes them, and you can watch them
  2872. in action with the \fBtcp status <tcb>\fP or \fBsocket <sockno>\fP commands.
  2873. Look at the \fBcwind\fP (congestion window) value.
  2874. .LP
  2875. In most cases it is safe to set the TCP window to a small integer
  2876. multiple of the MSS (eg. 4 times), or larger if necessary to fully utilize a
  2877. high bandwidth*delay product path. One thing to keep in mind, however, is
  2878. that advertising a certain TCP window value declares that the system has
  2879. that much buffer space available for incoming data.
  2880. \fBNet.exe\fP does not actually preallocate this space;
  2881. it keeps it in a common pool and may well "overbook" it,
  2882. exploiting the fact that many TCP connections are idle for long periods
  2883. and gambling that most applications will read incoming data from an active
  2884. connection as soon as it arrives, thereby quickly freeing the buffer memory.
  2885. However, it is possible to run \fBnet.exe\fP out of memory if excessive TCP window
  2886. sizes are advertised and either the applications go to sleep indefinitely
  2887. (eg. suspended Telnet sessions) or a lot of out-of-sequence data arrives.
  2888. It is wise to keep an eye on the amount of available memory and to decrease
  2889. the TCP window size (or limit the number of simultaneous connections) if it
  2890. gets too low.
  2891. .LP
  2892. Depending on the channel access method and link level protocol, the use
  2893. of a window setting that exceeds the MSS may cause an increase in channel
  2894. collisions. In particular, collisions between data packets and returning
  2895. acknowledgements during a bulk file transfer
  2896. may become common. Although this is, strictly speaking,
  2897. not TCP's fault, it is possible to work around the problem at the TCP level
  2898. by decreasing the window so that the protocol operates in stop-and-wait mode.
  2899. This is done by making the window value equal to the MSS.
  2900. .NH 2
  2901. Summary
  2902. .LP
  2903. In most cases, the default values provided by \fBnet.exe\fP for each of these
  2904. parameters
  2905. will work correctly and give reasonable performance. Only in special
  2906. circumstances such as operation over a very poor link or experimentation
  2907. with high speed modems should it be necessary to change them.
  2908. .NH 1
  2909. Mail Forwarding
  2910. .NH 2
  2911. Intended audience
  2912. .LP
  2913. This section is
  2914. intended for the NOS system operator desiring to
  2915. enable the forwarding of mail to other systems. They are NOT intended
  2916. as a user guide for the mail capabilities of NOS.
  2917. .NH 2
  2918. Background
  2919. .LP
  2920. This section of the NOS docs deals with the intricacies of mail
  2921. forwarding. You should read and understand this documentation
  2922. thoroughly before attempting to forward mail through your NOS box to
  2923. the AX.25 BBS world, otherwise you might grossly misconfigure your
  2924. system and be the unhappy recipient of flames from BBS sysops.
  2925. .LP
  2926. This section does NOT deal with the minutae of the mailbox and its
  2927. various commands; it assumes that you understand concepts such as user
  2928. areas (both public and private) and how to list and send mail. If you
  2929. need help with these, please look elsewhere in the NOS docs.
  2930. .LP
  2931. Apart from the usual domain.txt and other files necessary for ordinary
  2932. functionality of NOS, three files are important in the mail forwarding
  2933. process. These are: /spool/forward.bbs, /alias and /spool/rewrite.
  2934. The contents of these will now be addressed individually.
  2935. .NH 2
  2936. /spool/forward.bbs
  2937. .LP
  2938. This file describes the actions taken by NOS in forwarding to AX.25
  2939. BBSes. The file contains a series of forwarding records, each record
  2940. being separated by a line containing two or more hyphens. The template
  2941. for a forwarding record is:
  2942.  
  2943. .nf
  2944. BBS callsign
  2945. Connection route
  2946. Connection commands                <zero or more lines>
  2947. List of areas to be forwarded      <one per line>
  2948. ------------                       <end of record>
  2949. .fi
  2950. .NH 2
  2951. BBS callsign
  2952. .LP
  2953. This is simply the ordinary call of the remote BBS. A typical (but not
  2954. random!) entry might be simply the line:
  2955.  
  2956. sm0rgv
  2957.  
  2958. The callsign may be followed, on the same line, by a comma separated
  2959. list of valid intervals when forwarding is to take place. Each valid
  2960. interval is a four digit number: the first two digits are the
  2961. beginning hour of the valid interval, the last two digits are the
  2962. final hour of the valid interval. For example, if the first line of a
  2963. forwarding record looks like:
  2964.  
  2965. sm0rgv 0006,1414
  2966.  
  2967. then forwarding to sm0rgv will take place only during hours numbered
  2968. 00, 01, 02, 03, 04, 05, 06 and 14. Ticks of the mbox timer outside of
  2969. these times will not cause mail to be forwarded to sm0rgv. The default
  2970. interval for forwarding is 0023.
  2971. .NH 2
  2972. Connection route
  2973. .LP
  2974. This is the method by which communication is to be established with
  2975. the remote BBS. The first token on the line is the type of protocol to
  2976. be used. This is one of ax25, netrom or tcp. Following this is
  2977. whatever further information the chosen protocol requires to make the
  2978. connection. An example connection route for a simple ax25 connection
  2979. on interface ax0 is:
  2980.  
  2981. ax25 ax0 g3dlh
  2982.  
  2983. .NH 2
  2984. Connection commands
  2985. .LP
  2986. Connection commands may, optionally, follow the connection route.
  2987. These take the form of a full stop (period), followed by the command
  2988. which will be transmitted once the connection defined in the first
  2989. line of the connection route is established.
  2990.  
  2991. For example, suppose that we wish to establish a netrom connection
  2992. with sm0rgv-2, through the netrom node #sth67. Then the connection
  2993. route and connection command portion of the record would look like:
  2994.  
  2995. .nf
  2996. netrom #sth67
  2997.  .c sm0rgv-2     [ Please note that the full stop would be placed at
  2998.                    the beginning of the line; I have placed it here
  2999.                    indented by one column simply so that gateways
  3000.                    which handle this message do not complain at
  3001.                    having a line beginning with a full stop; this
  3002.                    convention is followed throughout this documentation]
  3003. .fi
  3004. .LP
  3005. If the station is reached through digipeating, then the digipeater
  3006. callsigns should be in the ax25 route to the destination callsign.
  3007. That is, if you wish to forward traffic to w0ljf, using k2na as a
  3008. digipeater, then you should have the line:
  3009.  
  3010. ax25 route add w0ljf k2na
  3011.  
  3012. in your autoexec file.
  3013.  
  3014. .NH 2
  3015. List of areas to be forwarded
  3016. .LP
  3017. This is a list, one per line, of entries in the /spool/mail directory
  3018. which will be forwarded to the remote BBS. An entry of the form:
  3019.  
  3020. callsign
  3021.  
  3022. will cause the file /spool/mail/callsign.txt to be scanned for unread
  3023. messages. Any such messages are sent to the remote BBS and deleted
  3024. from the file.
  3025.  
  3026. One can also forward user areas using this mechanism. To do this,
  3027. simply place a line containing the name of the area in the record. So,
  3028. to forward amsat bulletins to the BBS, one would have a line:
  3029.  
  3030. amsat
  3031.  
  3032. This will search the /spool/mail/amsat.txt file; any messages
  3033. contained therein which have not been forwarded to the BBS in question
  3034. will be forwarded. They will NOT be deleted. The determining factor as
  3035. to whether or not entries are deleted is that if the filename is
  3036. present in the /spool/areas file, then there is NO deletion, otherwise
  3037. there is.
  3038.  
  3039. Please note that ONLY FILES IN /spool/mail are checked. In particular,
  3040. the outbound SMTP mail queue is NOT checked.
  3041. .NH 2
  3042. Changing the recipient address
  3043. .LP
  3044. Normally, NOS uses the information in the To: header line to determine
  3045. the parameters used by the "S" command during BBS forwarding. As the
  3046. To: header is unchanged by all /alias and /spool/rewrite machinations,
  3047. the mail will be sent to the BBS addressed precisely as the originator
  3048. of the message typed it. Occasionally, one might want to change this
  3049. behaviour. In this case, a line of the form:
  3050.  
  3051. area  new_address
  3052.  
  3053. in the list of areas to be forwarded will replace the originally typed
  3054. destination with the string new_address instead.
  3055. .NH
  3056. /alias
  3057. .LP
  3058. The alias file is used to map LOCAL names to other names, which may be
  3059. either local or remote; additionally, from a single input message, the
  3060. alias file permits one to produce multiple output messages. Thus,
  3061. typical uses for the /alias file are: converting one local name to
  3062. another, converting a local name to a remote name, and exploding a
  3063. mail message so that it is passed on to several recipients.
  3064.  
  3065. The format of a record in the alias file is very simple:
  3066.  
  3067. .nf
  3068. aliasname    recipient1 recipient2 recipient3
  3069. <tab> or <SP>    recipient4 ... recipientN
  3070.  
  3071. .fi
  3072. .LP
  3073. There is no separation between records in the /alias file other than a newline.
  3074.  
  3075. The aliasname is a local username; that is, it does not contain an "@"
  3076. symbol. When the alias file is processed, if the destination of the
  3077. message matches precisely the aliasname, then the mail is redirected
  3078. to ALL of the alieased recipients.
  3079.  
  3080. Scanning of the /alias file is performed by the SMTP server. The SMTP
  3081. timer (which controls the SMTP client) is kicked whenever the mailbox
  3082. or SMTP server queues something for delivery by SMTP. Mail transport
  3083. within a single NOS system is performed through the SMTP client/server
  3084. mechanism. The result of these facts is that as soon as a piece of
  3085. mail is entered to the mailbox, the SMTP client is kicked and attempts
  3086. to deliver the mail (which has already been scanned by the rewrite
  3087. mechanism \(em see below). If the mail is local to the NOS system
  3088. (i.e. no "@" sign in the address), then the /alias file will be
  3089. scanned and the name mappings take place.
  3090.  
  3091. A few lines in the /alias file might look something like:
  3092.  
  3093. .nf
  3094. bdale    bdale@n3eua
  3095. local    fred@k0yum bdale@n3eua bill@ai0c.co.usa.na
  3096.     n5op@n5op jim@k0jtz n0esg@n0esg
  3097. g4bki    g4bki@gb7bil._2712.gbr.eu
  3098.  
  3099. .fi
  3100. .LP
  3101. The system must know how to deliver traffic to each of the individual
  3102. addresses in the style in which they are entered in the /alias file.
  3103. If the system does not know how to deliver one of the new addresses,
  3104. then it will send it to the SMTP gateway station defined by the 'smtp
  3105. gateway' command.
  3106.  
  3107. Note that it is reasonable, and sometimes desireable, to have alias
  3108. records of the form:
  3109.  
  3110. area    area dest1 dest2 ...
  3111.  
  3112. As the /alias file is scanned only once (see below), this does not
  3113. result in an infinite recursion.
  3114. .NH
  3115. /spool/rewrite
  3116. .LP
  3117.  
  3118. The rewrite file is used to perform a one-to-one mapping between
  3119. destination addresses as received by NOS and destination addresses as
  3120. actually used by NOS. Each record within the rewrite file comprises a
  3121. single line, containing either two or three entries separated by
  3122. spaces. The first field is the template field; if a destination
  3123. address matches the template, it is replaced by the second field. The
  3124. third field, which is optional, is the single letter "r", which, if
  3125. present, tells NOS to rescan the rewrite file, using the new
  3126. destination address to attempt to match against the templates.
  3127.  
  3128. A template may contain asterisks. These stand for a match of any
  3129. number of characters (including zero). In the second field, the
  3130. character "$", followed by a single digit in the range 1 to 9,
  3131. represents the string that matched the respective asterisk in the
  3132. template. By way of example, suppose that there is a line in the
  3133. rewrite file which looks like:
  3134.  
  3135. *@* $1%$2@g1emm.ampr.org
  3136.  
  3137. Then, any traffic reaching the system through the mailbox or the SMTP
  3138. server, but which is supposed to go to a remote system, will be
  3139. redirected to go through g1emm.ampr.org. Suppose that a user logs on,
  3140. and sends a message to n0gbe@nq0i. Then the rewrite file attempts to
  3141. match "n0gbe@nq0i" against the entry *@*. It matches, and assignes $1
  3142. the value n0gbe, and $2 the value nq0i. The mail file as written to
  3143. the disk will no longer be to n0gbe@nq0i, but, rather, to
  3144. n0gbe%nq0i@g1emm.ampr.org. [The nomenclature
  3145. station1%station2@station3 means the final destination is
  3146. station1@station2, and this traffic is to be routed through the
  3147. gateway station3.]
  3148.  
  3149. As soon as a template match is found, the conversion is performed and
  3150. scanning is stopped, unless the third "r" field is present, in which
  3151. case scanning restarts from the top of the file.
  3152.  
  3153. N.B. It is a good idea to have a line of the form:
  3154.  
  3155. *@*.ampr.org $1@$2.ampr.org
  3156.  
  3157. at the beginning of your rewrite file. This will cause all amprnet
  3158. traffic to be caught early in the rewrite scan, and no further
  3159. scanning (and, hence, no unexpected substitutions) will take place.
  3160. .NH 2
  3161. Scanning procedure
  3162. .LP
  3163. The two files which are used to determine the disposition of traffic
  3164. are scanned under slightly different circumstances. Note that neither
  3165. the /alias nor the /spool/rewrite scan makes any actual changes to the
  3166. contents of the traffic. In particular, the To: field remains exactly
  3167. as it was first entered into the system.
  3168.  
  3169. There are four possible entry routes for traffic into the system:
  3170. SMTP, through the mailbox by a user, through the mailbox by a BBS, and
  3171. via an external program (like BM) or creation of the files manually.
  3172. NOS determines if a piece of traffic was entered into the system by a
  3173. BBS by looking for a BBS system ID (like the "[NET-H$]" block issued
  3174. by NOS) on the incoming connection prior to messages being uploaded.
  3175. .NH 2
  3176. Traffic received by SMTP server
  3177. .LP
  3178. 1. The rewrite file is scanned and any changes applied (unless the
  3179. traffic was recieved through the local mailbox; in that case, this
  3180. step does not occur);
  3181. .br
  3182. 2. If the traffic appears to be local then the alias file is scanned
  3183. and any changes or explosions applied.
  3184. .br
  3185. 3. Any copies local to the system are delivered; copies for remote
  3186. delivery are placed in the SMTP queue.
  3187. .NH 2
  3188. Traffic received by mailbox from user
  3189. .LP
  3190. 1. The rewrite file is scanned and any changes applied;
  3191. .br
  3192. 2. The traffic is passed to the SMTP client.
  3193. .NH 2
  3194. Traffic received by mailbox from BBS
  3195. .LP
  3196. 1. The rewrite file is scanned and any changes applied;
  3197. .br
  3198. 2. The traffic is passed to the SMTP client.
  3199. .NH 2
  3200. Traffic entered by external mechanism
  3201. .LP
  3202. 1. No scanning occurs;
  3203. .br
  3204. 2. The traffic is passed to the SMTP client.
  3205. .NH 2
  3206. Headers
  3207. .LP
  3208. Appropriate RFC-822 headers are added to all incoming traffic. Traffic
  3209. entering through the mailbox recieves a full complement of RFC-822
  3210. headers; traffic coming through the SMTP server has only a "Received:"
  3211. header applied. On forwarding to a BBS, if an item of traffic contains
  3212. BBS R: headers, the RFC-822 header is converted to an appropriate R:
  3213. line at the time that NOS forwards the message. (This change only
  3214. occurs for BBS forwarding; forwarding by SMTP retains the RFC-822
  3215. headers.)
  3216. .NH 2
  3217. Bulletin Identifiers (BIDs)
  3218. .LP
  3219. The AX.25 BBS system has evolved a reasonably efficient way of
  3220. reducing overhead when forwarding bulletins. When a bulletin is
  3221. originated on a BBS, it is given a unique bulletin identifier (BID).
  3222. This BID should (theoretically) travel with the bulletin, and should
  3223. never be changed during the distribution of the bulletin. Each system
  3224. keeps track of all received BIDs. If a forwarding station wishes to
  3225. forward a bulletin to a BBS, then the receiving station checks its
  3226. local list of known BIDs and informs the transmitting station if it
  3227. already posesses the bulletin in question. The NOS mailbox conforms to
  3228. this protocol. Received BIDs are stored in the file /spool/history,
  3229. and are encoded in the Message-ID: header line of the message by NOS.
  3230. Messages forwarded from areas listed in the /areas file will have
  3231. their BID (re)generated from the Message-ID: line. Note that ALL
  3232. messages from public areas are forwarded with a BID, whether or not
  3233. the message was produced with the "SB" command. Like other BBSes, NOS
  3234. will inform a transmitting station not to transmit a bulletin if it is
  3235. one that NOS already has locally; likewise, it understands similar
  3236. messages from other stations to which it tries to forward.
  3237.  
  3238. Note that the BID mechanism is not a part of the SMTP world. If you
  3239. are forwarding bulletins through SMTP, there is no mechanism by which
  3240. the receiving station can reject the attempted delivery of a bulletin,
  3241. even if it already exists on the recipient system. (Note that a
  3242. possible workaround is to deliver bulletins to TCP/IP stations using
  3243. TCP instead of SMTP. Alternatively, one could use NNTP, as NNTP
  3244. commands utilise the Message-ID: line, from which the BID is derived.)
  3245. The BID is preserved no matter which mechanism is used to deliver the
  3246. bulletin.
  3247.  
  3248. .NH 2
  3249. Traffic in practice
  3250. .LP
  3251. Now, the big question is, how does one set up these various files to
  3252. perform intelligent manipulation of mail? A number of examples follow.
  3253. Note that, often, there is more than one way to accomplish an
  3254. objective. The following are merely examples (and not necessarily the
  3255. most efficient method possible for any given case). The format used
  3256. will be:
  3257.  
  3258. typed destination -> intended destination
  3259.  
  3260. followed by the necessary entries in the alias (/alias), rewrite
  3261. (/spool/rewrite) and forwarding (/spool/forward.bbs) files.
  3262.  
  3263. .NH 2
  3264. Using familiar names \(em SMTP destination
  3265. .LP
  3266. .nf
  3267. bdale -> bdale@n3eua.ampr.org
  3268.  
  3269. alias:
  3270. bdale    bdale@n3eua.ampr.org
  3271.  
  3272. rewrite:
  3273. forward:
  3274.  
  3275. .NH 2
  3276. Exploding local mail
  3277. .LP
  3278. .nf
  3279. sysops -> nq0i, n5op@n5op.ampr.org
  3280.  
  3281. alias:
  3282. sysops    nq0i n5op@n5op@ampr.org
  3283.  
  3284. rewrite:
  3285. forward:
  3286.  
  3287. .NH 2
  3288. Using familiar names \(em BBS forwarding
  3289. .LP
  3290. .nf
  3291. g4bki -> g4bki@gb7bil._2712.gbr.eu, to be forwarded by ai0c
  3292.  
  3293. alias:
  3294. rewrite:
  3295. forward:
  3296. ai0c
  3297. ax25 ax1 ai0c
  3298. g4bki g4bki@gb7bil._2712.gbr.eu
  3299. ai0c
  3300.  
  3301. .NH 2
  3302. Handling incoming bulletins by subject
  3303. .LP
  3304. .nf
  3305. tcpip@* -> nq0i, tcpip, bdale@n3eua.ampr.org, ai0c@ai0c [a BBS]
  3306.  
  3307. alias:
  3308. tcpip    nq0i tcpip bdale@n3eua.ampr.org ai0c
  3309.  
  3310. rewrite:
  3311. tcpip@* tcpip
  3312.  
  3313. forward:
  3314. ai0c
  3315. ax25 ai0c
  3316. ai0c
  3317.  
  3318. .fi
  3319. Let's walk through the above example. An incoming item comes in
  3320. addressed to TCPIP@ALLUS. A scan is made through the rewrite file, and
  3321. a match is found. The item is redirected to tcpip. The alias file is
  3322. scanned; a total of four copies of the item exist after this, three in
  3323. local areas tcpip, nq0i and ai0c, and one on the SMTP queue (for
  3324. bdale@n3eua.ampr.org). When the mailbox timer next ticks, the mail in
  3325. the local ai0c area will be forwarded on the ax1 interface to ai0c.
  3326.  
  3327. .NH 2
  3328. Routing based on Hierarchical addressing
  3329.  
  3330. .LP
  3331. .nf
  3332. Wyoming -> KE7VS (SMTP)
  3333. Nebraska -> AG0N (BBS over the NETROM, NETROM ID WNBBS)
  3334. Europe -> W0LJF (BBS over AX.25)
  3335.  
  3336. alias:
  3337. rewrite:
  3338. *.noam            $1.na r
  3339. *.us              $1.usa.na r
  3340. *.usa             $1.usa.na r
  3341.  
  3342. *.ne              $1.ne.usa.na r
  3343. *.wy              $1.wy.usa.na r
  3344.  
  3345. *@*.*.wy.usa.na   $1%$2.$3.wy.usa.na@ke7vs
  3346. *@*.wy.usa.na     $1%$2.wy.usa.na@ke7vs
  3347.  
  3348. *.ne.usa.na     ag0n
  3349.  
  3350. *.eu            w0ljf
  3351.  
  3352. forward:
  3353. ag0n
  3354. netrom ax0 wnbbs
  3355. ag0n
  3356. ----------
  3357. w0ljf
  3358. ax25 ax1 w0ljf
  3359. w0ljf
  3360. ----------
  3361.  
  3362. .fi
  3363. Why is the example rewrite file apparently so complicated? This is to
  3364. handle poorly constructed hierarchical addresses in a reasonable way.
  3365. A full U.S. hierarchical address has the form:
  3366. callsign@BBS.#localid.state.usa.na. Many states have no #localid
  3367. field. In the example rewrite file above, the first three lines
  3368. convert non-standard, but frequently used, U.S. designators to the
  3369. more standard format. It is common for users not to use a full
  3370. hierarchical address if the destination is relatively local. For
  3371. eample, a user might easily use only .wy instead of the full
  3372. .wy.usa.na if he is geographically close to Wyoming. The second
  3373. grouping of two lines handles this problem. Note the third, "r", field
  3374. in all the entries so far.
  3375.  
  3376. The remainder of the file handles properly formatted hierarchical
  3377. addresses. The two Wyoming entries handle the cases with and without a
  3378. #localid field. Differentiation between these cases is not necessary
  3379. for BBS forwarding.
  3380. .NH 2
  3381. General bulletin handling
  3382. .LP
  3383. The details of bulletin handling will vary somewhat from place to
  3384. place, as there are several distinct styles of bulletin handling
  3385. currently in use in the AX.25 BBS world. In general, it is necessary
  3386. to arrange one's system so that it accepts bulletins from BBSes,
  3387. forwards them to one or more stations, and also handles intelligently
  3388. bulletins input by users into NOS.
  3389.  
  3390. Suppose that we sish to handle bulletins @JUNK. We are to deposit them
  3391. locally in the junk area, and also forward to BBS g4bki. We also know
  3392. that we generally receive @JUNK bulletins from g4amj, a local BBS
  3393. which handles much bulletin traffic.
  3394. .nf
  3395. alias:
  3396. rewrite:
  3397. *@junk   junk
  3398.  
  3399. forward:
  3400. g4bki
  3401. ax25 ax1 g4bki
  3402. g4bki
  3403. junk
  3404. ----------
  3405. g4amj
  3406. ax25 ax1 g4amj
  3407. g4amj
  3408. junk
  3409. ----------
  3410.  
  3411. .fi
  3412. All incoming @JUNK traffic is written to the junk area (which should
  3413. be an explicit entry in the /spool/areas file). Each tick of the
  3414. mailbox timer, NOS scans the junk area for traffic not forwarded to
  3415. g4bki or g4amj and attempts to deliver unforwarded bulletins. Usually,
  3416. g4amj will respond with a "Have it" message and the bulletin will not
  3417. be forwarded. Any bulletins @JUNK deposited locally by users will
  3418. automatically be sent to both g4bki and g4amj.
  3419. .NH
  3420. Questions and Answers
  3421. .LP
  3422. Q. Under what circumstances does NOS request reverse forwarding from a BBS?
  3423.  
  3424. A. NOS requests a reverse forward after completing any forwards of its
  3425. own to the BBS. If no traffic was queued for a given BBS, then no
  3426. connection is attempted, so no reverse forward request is issued.
  3427.  
  3428. Q. What kinds of message types does the NOS mbox support?
  3429.  
  3430. A. Basically, NOS supports all two letter commands starting with an
  3431. "S". If the mailbox has not received an SID banner (the "[NET-H$]")
  3432. from a connected station, then an SF command will send a followup to
  3433. the address specified on the command line. The SR command will send a
  3434. reply to the current message. One can also issue the command "SR
  3435. <number>", where <number> is the number of the message to which you
  3436. want to generate a reply. All other variations cause an
  3437. X-BBS-Msg-Type: header to be added to the message. When a message with
  3438. such a line is forwarded to a BBS, it is sent to the BBS with the
  3439. appropriate message type as the second letter in the "S" command to
  3440. the BBS.
  3441.  
  3442. If NOS has received a valid SID, then ALL S commands are handled by
  3443. the X-BBS-Msg-Type: mechanism outlined above.
  3444. .bp
  3445. .NH
  3446. Logic map of the mailbox
  3447.  
  3448. .LP
  3449. .nf
  3450. ============== AX.25 === NET/ROM === Ethernet === Loopback =================
  3451.        |                   |                   |                   |
  3452.        |                   |                   |                   |
  3453. +--------------+    +--------------+    +--------------+    +--------------+
  3454. |              |    |              |    |              |    |              |
  3455. |   Mailbox    |    | SMTP client  |    | SMTP server  |    | BBS Forward  |
  3456. |              |    |              |    |              |    |              |
  3457. +--------------+    +--------------+    +--------------+    +--------------+
  3458.        |                   ^                   |                   ^
  3459.        |                   |                   |                   |
  3460.        v                   |                   v                   |
  3461. +--------------+    +--------------+    +--------------+    +--------------+
  3462. |              |    |              |    |              |    |              |
  3463. | Add RFC822   |    | Use MX or A  |    | Add Received |    | Add own R:   |
  3464. | header suite |    | type records |    | line         |  +>| line         |
  3465. |              |    |              |    |              |  | |              |
  3466. +--------------+    +--------------+    +--------------+  | +--------------+
  3467.        |                   ^                   |          |        ^
  3468.        |                   |                   |          |        |
  3469.        v                   |                   v          |        |
  3470. +--------------+    +--------------+    +--------------+  | +--------------+
  3471. |              |    |              |    |              |  | |              |
  3472. | Get Rewrite  |    | Use optional |    | Apply Rewrite|  | | Strip RFC822 |
  3473. | file address |    | SMTP gateway |    | file address |  | | header suite |
  3474. |              |    |              |    |              |  | |              |
  3475. +--------------+    +--------------+    +--------------+  | +--------------+
  3476.        |                   ^                   |          |        ^
  3477.        |                   |                   |          |        | Yes
  3478.        v                   |                   v          |        |
  3479. +--------------+           |            +--------------+  | +--------------+
  3480. |              |   No      |            |              |  | |              |
  3481. | Local addr?  |-------+   |            | Alias file   |  +-| Any R: lines?|
  3482. |              |       |   |            |              | No |              |
  3483. +--------------+       |   |            +--------------+    +--------------+
  3484.        |               |   |                |  |  |                ^
  3485.        | Yes           |   |                |  |  |                |
  3486.        v               |   |                v  v  v                |
  3487. +--------------+       v   |            +--------------+    +--------------+
  3488. |              |    +--------------+    |              |    |              |
  3489. | Apply Rewrite|    |              | No | Local        |Yes | /spool/mail/ |
  3490. | file address |--->| SMTP queue   |<---| address?     |--->| directory    |
  3491. |              |    |              |    |              |    |              |
  3492. +--------------+    +--------------+    +--------------+    +--------------+
  3493. .fi
  3494. .NH 1
  3495. Credits
  3496. .LP
  3497. Several people have contributed to this manual. I would particularly
  3498. like to thank Bill Simpson and Michael Westerhof, KA9WSB,
  3499. for their significant editorial contributions to this document.
  3500. Deborah Swanberg wrote the original BOOTP documentation,.
  3501. and G4AMJ/NQ0I and SM0RGV contributed the section on mail forwarding.
  3502. .LP
  3503. Although I am the primary author of this software package, many others have
  3504. contributed substantial additions and refinements.
  3505. Here is a partial list; additions and corrections are welcome.
  3506. See the individual source code files for additional authorship details.
  3507. .NH 2
  3508. ARCNET
  3509. .LP
  3510. Written by Russ Nelson of Clarkson University.
  3511. .NH 2
  3512. Autodialer
  3513. .LP
  3514. Bill Simpson substantially rewrote my original version and created
  3515. a much improved control file format.
  3516. .NH 2
  3517. Bootstrap Protocol (BOOTP)
  3518. .LP
  3519. Written by Deborah Swanberg of the University of Michigan.
  3520. .NH 2
  3521. Domain resolver
  3522. .LP
  3523. Bill Simpson substantially extended my original version, adding record
  3524. caching and automatic expiration.
  3525. .NH 2
  3526. DRSI driver
  3527. .LP
  3528. Written by Stu Phillips, N6TTO.
  3529. .NH 2
  3530. Eagle 8530 board driver
  3531. .LP
  3532. Written by Art Goldman, WA3CVG, and Richard Bisbey, NG6Q.
  3533. .NH 2
  3534. HAPN 8273 HDLC board driver
  3535. .LP
  3536. Written by Jon Bloom, KE3Z, with fixes by John Tanner, VK2ZXQ.
  3537. .NH 2
  3538. Hop Check utility
  3539. .LP
  3540. Written by Katie Stevens of UC Davis; enhancements by Bill Simpson.
  3541. .NH 2
  3542. Mailbox server & SMTP
  3543. .LP
  3544. My original, primitive SMTP server was
  3545. vastly enhanced and expanded by Bdale Garbee, N3EUA and Dave Trulli,
  3546. NN2Z. Anders Klemets, SM0RGV, wrote the first "mailbox" specifically
  3547. for AX.25; he then expanded it into a full-blown bulletin board system
  3548. and integrated it with the SMTP facilities.
  3549. .NH 2
  3550. NET/ROM
  3551. .LP
  3552. The original NET/ROM code was done by Dan Frank, W9NK. It was ported
  3553. to the NOS platform by Anders Klemets, SM0RGV.
  3554. .NH 2
  3555. Netnews Transfer Protocol (NNTP)
  3556. .LP
  3557. Written by Anders Klements, SM0RGV, with help from Bernie Roehl and
  3558. Gerard Van Der Grinten, PA0GRI.
  3559. .NH 2
  3560. Packet Drivers
  3561. .LP
  3562. Although not really part of this package, the Clarkson Packet Driver
  3563. Collection by Russ Nelson of Clarkson University has enormously enhanced
  3564. the utility of this package by allowing it to use virtually every PC
  3565. Ethernet controller board on the market.
  3566. .NH 2
  3567. PI 8530 DMA HDLC driver
  3568. .LP
  3569. Written by Dave Perry, VE3IFB.
  3570. .NH 2
  3571. Post Office Protocol (POP)
  3572. .LP
  3573. Originally authored by Mike Stockett, WA7DYX. Updates and modifications
  3574. by Allen Gwinn, N5CKP, Gerard Van Der Grinten, PA0GRI, and Mark Edwards,
  3575. WA6SMN.
  3576. .NH 2
  3577. Point to Point Protocol (PPP)
  3578. .LP
  3579. Written by Katie Stevens of UC Davis, based on the original
  3580. implementation by Drew Perkins of CMU. Updated by Bill Simpson and
  3581. Glenn McGregor of the University of Michigan.
  3582. .NH 2
  3583. Routing Information Protocol (RIP)
  3584. .LP
  3585. Original (pre-NOS) version written by Al Broscious N3FCT.
  3586. .NH 2
  3587. SCC - Generic 8530 driver
  3588. .LP
  3589. Originally written for the old "NET" code
  3590. by Rob Janssen, PE1CHL. Ported to NOS by Ken Mitchum, KY3B.
  3591. .NH 2
  3592. Socket-level stream compression
  3593. .LP
  3594. Written by Anders Klemets, SM0RGV
  3595. .NH 2
  3596. TCP/IP Header Compression
  3597. .LP
  3598. Adapted from Van Jacobson's original BSD UNIX implementation by
  3599. Katie Stevens of UC Davis. Updated by Bill Simpson.
  3600.