ࡱ;  VW Root Entry FjFHCompObjbWordDocument @ ObjectPool;; v  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwxyz{|}~  SummaryInformationM gM #\(#(\\\Y!&\] #% m#(C@6>#AqA ݶRWe,A [1BB #]kA oG> ]#h?A `kA)LkB nA n T,B"o&#=asUUB ! WYZ.] PE$0Bt6$S#Q .R9Q /3!  # #0gR)Q$GӃDR)!t@t? Steven R. Sampson@Av@x@=Hio(@y0Microsoft Word 6.0x18ࡱ;   FMicrosoft Word 6.0 Document MSWordDocWord.Document.6;  Oh+'0$H l   Dh C:\WINWORD\TEMPLATE\NORMAL.DOTJNOS Reference ManualTCP/IP System for the PCSteven R. SampsonST8ZZZZhh||{|}w   ++++Q,R,S,/3\Z_Z`Z\\]\]]]^^^^^M_P_Q_R____ a atmwmxmym{{b}c}d}r}s}''' ''''66888:8;8oozzzzף:>FKMNOP&Times New RomanTimes New Roman Symbol&ArialArial BookmanBookman Old Style1CourierCourier New5Courier NewWingdings!hEM3[io(xio(x$cJNOS Reference ManualTCP/IP System for the PCSteven R. SampsonSteven R. Sampsonࡱ;   ܥe- deR@ [@ @ @ @ @ $] EG    ( d ] @ @ d     Tݰ c @ QV  @ @ rd is acceptable. /path is the allowable prefix on accessible files. Before any file or directory operation, the current directory and the user specified file name are joined to form an absolute path name in canonical form (i.e., a full path name starting at the root, with ./ and ../ references, as well as redundant /s, recognized and removed). The result must begin with the allowable path prefix; if not, the operation is denied. This field must always begin with a /, i.e., at the root directory. Multiple directories can be specified by separating them with a ; character and no whitespace around them. Permissions is a decimal number granting permission for read, create and write operations. If the low order bit (0x1) is set, the user is allowed to read a file subject to the path name prefix restriction. If the next bit (0x2) is set, the user is allowed to create a new file if it does not overwrite an existing file. If the third bit (0x4) is set, the user is allowed to write a file even if it overwrites an existing file, and in addition he may delete files. Again, all operations are allowed subject to the path name prefix restrictions. Permissions may be combined by adding bits, for example, 0x3 (= 0x2 + 0x1) means that the user is given read and create permission, but not overwrite/delete permission. Additional permission bits used by the mailbox and PPP are: 1 Read files 2 Create new files 4 Overwrite and delete existing files 8 AX.25 gateway operation allowed 16 Telnet gateway operation allowed 32 Net/Rom gateway operation allowed 64 Remote sysop access allowed (Powerful) 128 This user is a LID, banned from BBS access 256 Priv bit for PPP connection 512 Priv bit for peerID/pass lookup 1024 disallow send commands (except to SYSOP) 2048 disallow read commands 4096 disallow 3rd party mail 8192 This station is a known BBS ip_address is used for PPP only and is the remote IP address of the connected system. A username of univperm has special meaning in the validation mechanism. If univperm is included as a valid user in ftpusers then any unknown user (not in FTPUSERS) will be mapped into univperm and get its permission bits and file path. If univperm is not included in FTPUSERS, unknown users are not permitted nor validated. For example, suppose ftpusers on machine ka9q.ampr.org contains the line: friendly test /testdir 7 A session using this account would look like this: net> ftp ka9q.ampr.org Resolving ka9q.ampr.org ... Trying 44.0.0.1 ... FTP session 1 connected to ka9q.ampr.org 220 ka9q.ampr.org FTP ready Enter user name: friendly 331 Enter PASS command Password: test [not echoed] 230 Logged in ftp> The user now has read, write, overwrite and delete privileges for any file under /TESTDIR; they may not access any other files. Here are some more sample entries in ftpusers: karn foobar / 7 # User karn with password foobar may read, # write, overwrite and delete any file on the system. guest bletch /g/bogus;/public 3 # User guest with password bletch may read # any file under /g/bogus and its subdirectories, # and /public and its subdirectories, # and may create a new file as long as it does # not overwrite an existing file. He may NOT # delete any files. anonymous * /public 1 # User anonymous (any password) may read files # under /public and its subdirectories; he may # not create, overwrite or delete any files. This last entry is the standard convention for keeping a repository of public files; in particular, the username anonymous is an established convention. 1.1.3 NET.RC Text file used to list the hostname, logins, and passwords to be issued when the administrator performs an FTP. Each line starts with the name of the FTP station followed by an user and password login statement which is sent to the server for validation. The name, user and password are separated with a space. Not a tab or more than one space character. Following is a sample: ucsd.edu anonymous nightly@nbc.com unix.ka9q.ampr.org guest pa0gri 1.1.4 ALIAS 1.1.5 DOMAIN.TXT 1.1.6 POPUSERS 1.1.7 ONEXIT.NOS 1.1.8 FINGER 1.1.9 FINGER/DBASE.DAT 1.1.10 PUBLIC 1.1.11 SPOOL 1.1.11 SPOOL/AREAS 1.1.12 SPOOL/MAIL 1.1.13 SPOOL/MQUEUE 1.1.14 SPOOL/RQUEUE 1.1.15 SPOOL/REWRITE 1.1.16 SPOOL/FTPMOTD.TXT 1.1.17 SPOOL/SIGNATUR 1.1.18 SPOOL/HISTORY 1.1.19 SPOOL/HELP 1.1.20 SPOOL/MOTD.TXT 1.1.21 SPOOL/USERS.DAT 1.1.22 SPOOL/FORWARD.BBS 1.1.23 SPOOL/EXPIRE.DAT 1.1.24 SPOOL/NEWS 1.1.25 SPOOL/NEWS/ACTIVE 1.1.26 SPOOL/NEWS/POINTER 1.1.27 SPOOL/NEWS/INFO 1.1.28 SPOOL/NEWS/HELP 1.1.29 SPOOL/NEWS/HISTORY 1.1.30 SPOOL/NEWS/FORWARD 1.1.31 SPOOL/NEWS/POLL 1.2 Starting NOS When NOS is executed without arguments, it attempts to open the file AUTOEXEC.NOS in the root directory of the current drive. If it exists, it is read and executed as though its contents were typed on the console as commands. This feature is useful for attaching communication interfaces, configuring network addresses, and starting the various services. Starting NOS is usually done through the AUTOEXEC.BAT batch file. This batch file should be designed so that a power reset will automatically reboot the computer and restart the program. NOS also features a remote control reboot command, and the batch file should also handle this case. First Ill show you how the command is executed from the command line, and then will cover a sample batch file. When the exit command is given inside NOS, the commands given in the file ONEXIT.NOS are executed first before returning to DOS. Administrators should switch to the Unix style of specifying subdirectories. You will get into trouble with the DOS style. For example: nos d\nos is not always the same as: nos d/nos And will cause you to consume many a sixpack trying to do a mindmeld with what the multitudes of NOS hackers decided. Sure it might work with this version, but the next hacker may change everything. So meldUnixStyle. The syntax for beginning NOS operation is: nos [ [b] [c num] [d dir] [f filename] [n] [r rows] ... ... [s sockets] [v] [x dir] startup filename ] The switches have the following meaning: b Enables screen output through the BIOS (default direct video) c Define the number of columns on screen (default checks hardware) d Define the root directory for the NOS file structure Ignored if the f option is used f Define filename for the directory structure configuration file. Takes priority over d option n Disables seperate window for tracing (default enabled) r Define the number of rows on screen (default checks hardware) s Define the number of connection sockets (default 40) v Enables verbose output of AUTOEXEC.NOS and its read progress (default nonverbose) After all command line options, the name of an alternate startup file may be specified. This file is then opened and read instead of AUTOEXEC.NOS. 1.3.1 AUTOEXEC.BAT 1.3.2 CONFIG.SYS 1.4. DOS environment variables. The following environment variables can be used to specify things to NOS. 1.4.1 TZ The TZ variable should be set to the local timezone. Default is UTC. This is used on the timestamp in SMTP. 1.4.2 MAILER The MAILER specifies what program should be started when the mail command is entered. Default is BM.EXE (not included in the distribution generally). 1.4.3 COMSPEC The COMSPEC specifies what command shell will be used to shell out of NOS. This is normally set by DOS startup to COMMAND.COM. Default is also COMMAND.COM. 1.4.4 TMP The TMP variable is used to create a spot where temporary files are created. Without TMP being set the temp files are created in the root directory. A sample is: set TMP=C:\tmp\ 1.4.5 USER The USER variable is used by FTP and RLOGIN to set the username for the rlogin daemon on the remote system. The default when not setting USER is guest. With FTP the user is suggested in the user name prompt. If a carriage return only is given the suggested name is used, otherwise the given name. 1.5 Console modes The console may be in one of two modes: command mode and converse mode. In command mode, the prompt net> is displayed and any of the commands described in the Administrator commands section may be entered. In converse mode, keyboard input is processed according to the current session. Sessions come in many types: Telnet, Ttylink, Rlogin, FTP, AX25, Finger, Command, Net/Rom, Ping, More, Dial, Dir, PPP PAP, Hopcheck and Tip. In a Telnet, Ttylink, AX25, Net/Rom, Rlogin, or Tip session, keyboard input is sent to the remote system and any output from the remote system is displayed on the console. In an FTP session, keyboard input is first examined to see if it is a known local command; if so it is executed locally. If not, it is passed through to the remote FTP server. (See the FTP Subcommands chapter). In a Ping session the user may test the path to a remote site, in a More session, the user may examine a local file. A Hopcheck session is used to trace the path taken by packets to reach a specified destination. A Finger session is used to peek at a remote system for its users (and what they are doing on some UNIX systems). PPP PAP is used as a link setup like slip between two systems. The keyboard also has cooked and raw states. In cooked state, input is lineatatime; the user may use the line editing characters ^U, ^R, ^B, ^W and backspace to erase the line, redisplay the line, redisplay the remainder of the previous line, erase last word and erase the last character, respectively. Hitting either return or line feed passes the complete line up to the application. In raw mode, each character is immediately passed to the application as it is typed. The keyboard is always in cooked state in command mode. It is also cooked in converse mode on an AX25, FTP or Net/Rom session. In a Telnet or Ttylink session it depends on whether the remote end has issued (and the local end has accepted) the Telnet WILL ECHO option. (See the echo command). In DOS, the user may escape back to command mode by hitting the F10 key or the escape key. On other systems, the user must enter the escape character, which is by default control] (hex 1d, ASCII GS). (Note that this is distinct from the ASCII character of the same name). The escape character can be changed (see the escape command). The F10 key can be redefined with the fkey command so the user is now warned to leave one escape possibility open for himself. Setting both F10 and escape to unreachable codes renders a system unescapable and the user hung in a session. In the DOS version, each session (including the command session) has its own screen. When a new session is created, the command display is saved in memory and the screen is cleared. When the command escape key (usually F10 or ^]) is hit, the current session screen is saved and the command screen is restored. When a session is resumed, its screen is restored exactly as it appeared when it was last current. NOS expects that the driver NANSI.SYS is loaded to support the screen and terminal emulation routines. ANSI.SYS has many problems and should not be used. Users of DesqView should be ok with DVANSI.SYS. 2.0 Administrator Commands This section lists the commands that may be given at the net> command prompt. Each of these commands may be installed in the AUTOEXEC.NOS startup configuration file, or they may be entered online. These commands are listed in alphabetical order below. Many commands take subcommands or parameters, which may be optional or required. In general, if a required subcommand or parameter is omitted, an error message will summarize the available subcommands or required parameters. (Giving a ? in place of the subcommand will also generate the message. This is useful when the command word alone is a valid command.) If a command takes an optional value parameter, issuing the command without the parameter generally displays the current value of the variable. (Exceptions to this rule are noted in the individual command descriptions.) Two or more parameters separated by vertical bars denote a choice between the specified values. Optional parameters are shown enclosed in [brackets], and a parameter enclosed in should be replaced with an actual value or string. For example, the notation denotes an actual host or gateway, which may be specified in one of two ways: as a numeric IP address in dotted decimal notation (eg. 44.0.0.1.), or as a symbolic name listed in the file domain.txt. All commands and many subcommands may be abbreviated. You only need type enough of a commands name to distinguish it from others that begin with the same series of letters. Parameters, however, must be typed in full. Certain FTP subcommands (eg. put, get, dir, etc) are recognized only in converse mode with the appropriate FTP session; they are not recognized in command mode. (See the FTP Subcommands chapter.) 2.1 Entering a carriage return (empty line) while in command mode puts you in converse mode with the current session. If there is no current session, NOS remains in command mode and re-issues the net> prompt. 2.2 # Starts a comment. All text after it to the end of line is ignored. Generally used in the AUTOEXEC.NOS start up file. 2.3 ! ! [command] shell [command] Brings you to the DOS prompt or executes the command given. Puts the NOS program in background if the MULTITASK switch is on, otherwise leaves NOS in the paused state. Use the DOS exit command to return back to NOS. 2.4 ? ? help Shows the list of administrator commands. Same as the HELP command. 2.5 ABORT abort Abort a FTP get, put or dir operation in progress. If issued without an argument, the current session is aborted. (This command only works on FTP sessions.) When receiving a file, abort simply resets the data connection; the next incoming data packet will generate a TCP RST (reset) response to clear the remote server. When sending a file, abort sends a premature endoffile. Note that in both cases abort will leave a partial copy of the file on the destination machine, which must be removed manually if it is unwanted. 2.6 ARP Display the Address Resolution Protocol table that maps IP addresses to their subnet (link) addresses on subnetworks capable of broadcasting. For each IP address entry the subnet type (eg. Ethernet, AX.25), subnet address and time to expiration is shown. If the link address is currently unknown, the number of IP datagrams awaiting resolution is also shown. 2.6.1 arp add ether|ax25|netrom|arcnet| | Add a permanent entry to the table. It will not time out as will an automatically created entry, but must be removed with the arp drop command. 2.6.2 arp drop ether|ax25|netrom|arcnet Delete a permanent entry from the arp table. 2.6.3 arp flush Drop all automatically created entries in the ARP table. Permanent entries are not affected. 2.6.4 arp publish ether|ax25|netrom|arcnet | This command is similar to the arp add command, but the system will also respond to any ARP request it sees on the network that seeks the specified address. (Use this feature with great care.) 2.7 ASYSTAT asystat Display statistics on attached asynchronous communications interfaces (8250 or 16550A), if any. The display for each port consists of three lines. The first line gives the port label and the configuration flags; these indicate whether the port is a 16550A chip, the trigger character if any, whether CTS flow control is enabled, whether RLSD (carrier detect) line control is enabled, and the speed in bits per second. (Receiving the trigger character causes the driver to signal upper layer software that data is ready; it is automatically set to the appropriate frame end character for SLIP, PPP and NRS lines.) The second line of the status display shows receiver (RX) event counts: the total number of receive interrupts, received characters, receiver overruns (lost characters) and the receiver high water mark. The high water mark is the maximum number of characters ever read from the device during a single interrupt. This is useful for monitoring system interrupt latency margins as it shows how close the port hardware has come to overflowing due to the inability of the CPU to respond to a receiver interrupt in time. 8250 chips have no FIFO, so the high water mark cannot go higher than 2 before overruns occur. The 16550A chip, however, has a 16byte receive FIFO which the software programs to interrupt the CPU when the FIFO is onequarter full. The high water mark should typically be 4 or 5 when a 16550A is used; higher values indicate that the CPU has at least once been slow to respond to a receiver interrupt. When the 16550A is used, a count of FIFO timeouts is also displayed on the RX status line. These are generated automatically by the 16550A when three character intervals go by with more than 0 but less than 4 characters in the FIFO. Since the characters that make up a SLIP or NRS frame are normally sent at full line speed, this count will usually be a lower bound on the number of frames received on the port, as only the last fragment of a frame generally results in a timeout (and then only when the frame is not a multiple of four bytes long.) Finally, the software FIFO overruns and high water mark are displayed. These indicate whether the parameter on the attach command needs to be adjusted (see the Attach Commands section). The third line shows transmit (TX) statistics, including a total count of transmit interrupts, transmitted characters, the length of the transmit queue in bytes, the number of status interrupts, and the number of THRE timeouts. The status interrupt count will be zero unless CTS flow control or RLSD line control has been enabled. The THRE timeout is a stop-gap measure to catch lost transmit interrupts, which seem to happen when there is a lot of activity (ideally, this will be zero). 2.8 AT 2.9 ATTACH attach The most common hardware interface is the Arcnet , Ethernet , and the PC Serial ports. Most other interface boards have a similar syntax but have necessary differences. Try the SCC driver first on internal PC board type TNCs (except Gracillis card), and then possibly a custom driver. The other popular driver is the Crynwr Packet drivers. An easy way to obtain a summary of the parameters required for a given device is to issue a partial attach command (e.g., attach packet.) This produces a usage message giving the complete command format. The details are highly interface dependent, and software dependent on the configuration flags in the source code file CONFIG.H when the software was built. Not all of the drivers listed below will be included in your copy of NOS. Detailed instructions for each driver are in the Attach Commands section. Drivers are available for the following hardware types: 2.9.1 attach 3c500 Obsolete. Dont use this one anymore. Use the Crynwr Packet driver instead. 2.9.2 attach asy Standard PC asynchronous interface (comm port) using the National 8250, 16450, or 16550A chip. 2.9.3 attach axip A wormhole ax25 digipeater device. 2.9.4 attach arcnet An Arcnet driver via the Packet driver. 2.9.5 attach drsi Obsolete, use the SCC Driver. 2.9.6 attach eagle Obsolete, use the SCC Driver. 2.9.7 attach hapn Obsolete, use the SCC Driver. 2.9.8 attach hs Special high speed 8530 driver for the WA4DSY 56kb/s modem. 2.9.9 attach kiss This enables a multiplexed serial port TNC to be used for the second channel. It is used to connect a second port to an already attached asy interface. It will copy most of the parameters of its parent port. 2.9.10 attach netrom This is a pseudo-interface to enable Net/Rom operations. 2.9.11 attach packet Driver for use with separate Crynwr Packet drivers meeting the FTP Software, Inc, Software Packet Driver specification. 2.9.12 attach pc100 Obsolete, use the SCC Driver. 2.9.13 attach pi DMA driven 8530 SCC board. 2.9.14 attach scc SCC Driver for generic 8530 cards. 2.9.15 attach slfp Serial Line Framing Protocol packet driver. 2.10 ATTENDED attended [off | on] Displays or sets the global I am present flag in NOS. This flag is used in the welcome header by incoming ttylink connections, and chat requests from the BBS. 2.11 AUTOROUTE autoroute Displays or sets the IP autorouting option. When set all AX.25 IP packets are analyzed and remembered. 2.12 AX25 ax25 These commands are for AX.25 interfaces. 2.12.1 ax25 bc [on | off] The bc command displays or enables or disables broadcasts via interface interface when on | off are given. 2.12.2 ax25 bcinterval [] The bcinterval displays or sets the time in seconds between bc broadcasts. On display both the interval and the countdown values are shown. 2.12.3 ax25 bckick The bckick command issues a direct broadcast to interface interface when so enabled by a ax25 bc on command. 2.12.4 ax25 bctext [broadcast text] The bctext command displays or sets the text to be send for broadcast messages send out every bcinterval seconds. 2.12.5 ax25 blimit [] Display or set the AX.25 retransmission backoff limit. Normally each successive AX.25 retransmission is delayed by twice the value of the previous interval; this is called binary exponential backoff. When the backoff reaches the blimit setting it is held at that value, which defaults to 30. To prevent the possibility of congestive collapse on a loaded channel, blimit should be set at least as high as the number of stations sharing the channel. Note that this is applicable only on actual AX.25 connections; UI frames will never be retransmitted by the AX25 layer. 2.12.6 ax25 dest See AX.25 hearddest command. This is a shorthand version of it. 2.12.7 ax25 digipeat [on | off] Display or set the digipeater enable flag. If the axip interface is used this flag must be on , otherwise the digipeat function will not work at all. 2.12.8 ax25 filter <0 | 1 | 2 | 3> The filter commands enables or disables the logging in the heard lists of source and destination ax25_addresses. This is a bitwise or function where the 01 value is for source stations and the 02 value for destination stations. When the bit is off, logging is enabled, when on disabled. 2.12.9 ax25 flush Clear the AX.25 heard list. 2.12.10 ax25 heard [] Display the AX.25 heard list. For each interface that is configured to use AX.25, a list of all ax25_addresses heard through that interface is shown, along with a count of the number of packets heard from each station and the interval, in hr:min:sec format, since each station was last heard. The local station always appears first in the listing; the packet count actually reflects the number of packets transmitted. This entry is always present even if no packets have been sent. If interface is given, only the heard list for that interface is displayed. Note that logging of heard stations is controlled with the ax25 filter command. 2.12.11 ax25 hearddest [] Displays the destination list, i.e. the addressed to stations. Next to the time the last transmission to that station the time that station replied (if heard) is displayed. This gives a good reference to see if a station is reachable and responding. 2.12.12 ax25 irtt [] Display or set the initial value of smoothed round trip time to be used when a new AX.25 connection is created. The value is in milliseconds. The actual round trip time will be learned by measurement once the connection has been established. 2.12.13 ax25 kick Force a retransmission on the specified AX.25 control block. The control block address can be found with the ax25 status command. 2.12.14 ax25 maxframe [] Establish the maximum number of frames that will be allowed to remain unacknowledged at one time on new AX.25 connections. This number cannot be greater than 7. Without count it will display the current setting. Note that the maximum outstanding frame count only works with virtual connections. UI frames are not affected. 2.12.15 ax25 mycall [] Display or set the default local AX.25 address. The standard format is used, (e.g., KA9Q1). This command must be given before any attach commands using AX.25 mode are given. 2.12.16 ax25 paclen [] Limit the size of Ifields on new AX.25 connections. If IP datagrams or fragments larger than this are transmitted, they will be transparently fragmented at the AX.25 level, sent as a series of I frames, and reassembled back into a complete IP datagram or fragment at the other end of the link. To have any effect on IP datagrams, this parameter should be less than or equal to the MTU of the associated interface. 2.12.17 ax25 pthresh [] Display or set the poll threshold to be used for new AX.25 Version 2 connections. The poll threshold controls retransmission behavior as follows. If the oldest unacknowledged Iframe size is less than the poll threshold, it will be sent with the poll (P) bit set if a timeout occurs. If the oldest unacked Iframe size is equal to or greater than the threshold, then a RR or RNR frame, as appropriate, with the poll bit set will be sent if a timeout occurs. The idea behind the poll threshold is that the extra time needed to send a small Iframe instead of a supervisory frame when polling after a timeout is small, and since theres a good chance the Iframe will have to be sent anyway (i.e., if it were lost previously) then you might as well send it as the poll. But if the Iframe is large, send a supervisory (RR/RNR) poll instead to determine first if retransmitting the oldest unacknowledged Iframe is necessary; the timeout might have been caused by a lost acknowledgement. This is obviously a tradeoff, so experiment with the poll threshold setting. The default is 128 bytes, one half the default value of paclen. 2.12.18 ax25 reset Delete the AX.25 connection control block at the specified address. 2.12.19 ax25 retry [] Limit the number of successive unsuccessful retransmission attempts on new AX.25 connections. If this limit is exceeded, link reestablishment is attempted. If this fails retry times, then the connection is abandoned and all queued data is deleted. 2.12.20 ax25 route Display the AX.25 routing table that specifies the digipeaters to be used in reaching a given station. 2.12.20.1 ax25 route add [digis ... ] Add an entry to the AX.25 routing table. An automatic ax25 route add is executed if digipeaters are specified in an AX25 connect command, or if a connection is received from a remote station via digipeaters. Such automatic routing table entries wont override locally created entries, however. 2.12.20.2 ax25 route drop Drop an entry for target from the AX.25 routing table. 2.12.20.3 ax25 route mode [vc | datagram | interface] Sets the mode to vc | datagram | interface for target. Interface is the default for that interface. VC is a virtual circuit (AX.25 I-frames connected mode) and datagram is unconnected mode, (AX.25 UI-frames). 2.12.21 ax25 status [] Without an argument, display a oneline summary of each AX.25 control block. If the address of a particular control block is specified, the contents of that control block are dumped in more detail. Note that the send queue units are frames, while the receive queue units are bytes. 2.12.22 ax25 t3 [] Display or set the AX.25 idle keep alive timer. Value is in milliseconds. 2.12.23 ax25 t4 [] Display or set the AX.25 Link redundancy timer. Value is in seconds. When no exchange has been had during this time the link is reset and closed. 2.12.24 ax25 timertype [l | e | o] Sets or displays the type of timer used for retransmission and recovery: linear, exponential or original. 2.12.25 ax25 version [1 | 2] Display or set the version of the AX.25 protocol to attempt to use on new connections. The default is 2 (the version that uses the poll/final bits). 2.12.26 ax25 window [] Set the number of bytes that can be pending on an AX.25 receive queue beyond which I frames will be answered with RNR (Receiver Not Ready) responses. This presently applies only to suspended interactive AX.25 sessions, since incoming Iframes containing network (IP, Net/Rom) packets are always processed immediately and are not placed on the receive queue. However, when an AX.25 connection carries both interactive and network packet traffic, an RNR generated because of backlogged interactive traffic will also stop network packet traffic from being sent. 2.13 BBS bbs Starts a telnet session with the BBS. You must have the telnet server running. See section 3.0 for user commands. 2.14 BOOTP bootp This is a bootp server/client. Not used or tested. 2.14.1 bootp start Starts the bootp server. 2.14.2 bootp stop Stops the bootp server. 2.14.3 bootp dns [] Display or set the list of domain name servers for bootp. 2.12.4 bootp dyip [ | | off] Display or set the interface address range. The range is between ipaddr1 and ipaddr2, both in dot notation. 2.14.5 bootp host [ [boot file]] Display or activate a bootp process. Hardware type is Net/Rom, Ethernet, Appletalk or AX.25. Hardware addr is the interface name. IP addr must be in dot notation. 2.14.6 bootp rmhost Delete ipaddr from the host table. 2.14.7 bootp homedir [ | default] Display or set the directory where the bootp files reside. The default directory is /BPFILES. 2.14.8 bootp defaultfile [ | default] Display or set the file name of the bootp file. The default is /BOOT. 2.14.9 bootp logfile [ | default] [on | off] Starts or stops the logging of bootp requests to filename. The default filename is BOOTPLOG. 2.14.10 bootp logscreen [on | off] Enables or disables the logging of bootp to the screen. 2.15 BOOTPD bootpd This starts the server daemon for bootp. 2.16 BULLETIN 2.17 CONNECT connect 2.18 CALLSERVER 2.19 CALLBOOK callbook 2.20 CALLSERVER2 2.21 CD cd 2.22 CDROM 2.23 CLOSE close [] Close the specified session; without an argument, close the current session. On an AX.25 session, this command initiates a disconnect. On a FTP or Telnet session, this command sends a FIN (i.e., initiates a close) on the sessions TCP connection. This is an alternative to asking the remote server to initiate a close (QUIT to FTP, or the logout command appropriate for the remote system in the case of Telnet). When either FTP or Telnet sees the incoming half of a TCP connection close, it automatically responds by closing the outgoing half of the connection. Close is more graceful than the reset command, in that it is less likely to leave the remote TCP in a halfopen state. 2.24 CLS cls Clears the current session screen (command screen). 2.25 COMM comm The comm command sends textstring via interface. This can be used to send straight text to a TNC still in TAPR command mode during NOS startup. Note that to preserve spaces tabs etc. to include the string between double quote characters: comm ax1 start kiss 2.26 CONVERS 2.27 COPY copy Same function as DOS. 2.28 DISCONNECT 2.29 DIR dir [base directory] Same function as DOS. 2.30 DELETE delete Same function as DOS 2.31 DETACH detach 2.32 DIALER dialer [ [ [ []]]] 2.33 DOMAIN 2.34 DUMP 2.35 ERRORS 2.36 ECHO 2.37 EOL 2.38 ESCAPE 2.39 EXIT exit Causes the commands in ONEXIT.NOS to be executed before terminating the NOS program and returning to DOS. 2.40 EXPIRE 2.41 FINGER finger [name [@host]] 2.42 FKEY 2.43 FTP ftp 2.44 FTYPE 2.45 FTPTDISC 2.46 HELP ? help Displays a list of the commands available in your configured version. Additions and deletions are generally contained in the source code file CONFIG.H, and the program is then re-compiled. 2.47 HISTORY 2.48 HOP 2.49 HOSTNAME 2.50 ICMP 2.51 IFCONFIG 2.52 INFO 2.53 IP 2.54 ISAT 2.55 KICK 2.56 LOCK lock This command locks the keyboard. It is useful in an uncontrolled environment. After the password is set, you can use the lock command without any parameters, as it will use the previous assigned password. 2.57 LOG 2.58 LZW lzw lzw [mode] lzw [bits] 2.59 MAIL mail This command will load and shell out to execute the program given in your defined MAILER environment variable of AUTOEXEC.BAT. If MAILER is undefined, the BM.EXE program is the default (not included in distribution generally). If MULTITASK is enabled, and memory is sufficient, the NOS program will continue running in the background. Lack of memory may cause lock up errors. 2.60 MBOX mbox The mailbox routines are massive. There are basically two programs threaded together here. The first is NOS, the second is the BBS clone. The MBOX command has the following subcommands. 2.60.1 attend 2.60.2 bbsonly mbox bbsonly [on | off] Used to configure an interface for BBS users only. Typically an HF interface or backbone interface would be configured this way. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.3 convers 2.60.4 fwdinfo 2.60.5 haddress 2.60.6 header 2.60.7 hideport mbox hideport [on | off] The interface specified is not listed when mailbox users do a (P)ort command. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.8 jumpstart 2.60.9 kick 2.60.10 mailfor 2.60.11 mailstats 2.60.12 maxmsg 2.60.13 mport 2.60.14 newmail 2.60.15 noax25 mbox noax25 [on | off] Used to configure an interface so that AX.25 connections to the mailbox are not permitted. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.16 nobid 2.60.17 nrid 2.60.18 past 2.60.19 password 2.60.20 qth 2.60.21 secure 2.60.22 sendquery mbox sendquery [on | off] Used to configure an interface so that it will prompt you for confirmation of saving your mail. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. Recommend you turn this OFF! Really a stupid addition. 2.60.23 smtptoo 2.60.24 status 2.60.25 sysoponly mbox sysoponly [on | off] Used to configure an interface for sysops only. All other connects will be rejected. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.26 timer 2.60.27 tdisc 2.60.28 tmsg 2.60.29 trace 2.60.30 usersonly mbox usersonly [on | off] Used to configure an interface for users only. A pop up BBS would then be ignored. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.31 utc 2.60.32 zipcode 2.61 MEMORY 2.62 MKDIR mkdir Same function as DOS. 2.63 MODE mode 2.64 MORE more [searchstring] 2.65 MOTD 2.66 MULTITASK 2.67 NETROM netrom interface [n | v] The interface name must have been previously opened. The last parameter enables nonverbose (n) or verbose (v). Default is nonverbose. The MTU of the netrom interface is automatically reduced by the netrom protocols 20 bytes (ax25 paclen  20). If this computed value is greater than or equal to the ifconfig MTU value, then the computed value is discarded. netrom route sort [alias | call] The Net/Rom table of nodes can be sorted by alias or callsign.The sorted item appears first for each heard station, when performing an AX.25 heard command. 2.68 NNTP 2.69 NRSTAT 2.70 OLDBID 2.71 PARAM param 2.72 PING ping [ [ [incflag]]] 2.73 PISTATUS 2.74 POP 2.75 POPMAIL 2.76 PPP 2.77 PROMPT 2.78 PS 2.79 PWD Shows the Present Working Directory. Use CD to change. 2.80 RARP 2.81 RDATE 2.82 RECORD 2.83 REMOTE remote [p port] [k key] [a kickaddr] 2.84 RENAME rename Same function as DOS. 2.85 REPEAT repeat [args...] 2.86 RESET 2.87 RIP 2.88 RLOGIN rlogin Used with Unix( systems to log into a pseudoterminal port. 2.89 RMDIR rmdir Same function as DOS. 2.90 ROUTE 2.91 RSPF 2.92 SESSION 2.93 SCCSTAT sccstat 2.94 SHELL ! [command] shell [command] Suspends NOS and executes a subshell (command processor under DOS). When the subshell exits, NOS resumes (under DOS, enter the exit command). Note: see the COMSPEC environment variable. Background activity (FTP servers, etc) is also suspended while the sub-shell executes. Note that this will fail unless there is sufficient unused memory for the subshell and whatever command the user tries to run. When shelled out, ttylink incoming connections are refused and a system unattended message is reported to the remote. 2.95 SKICK skick 2.96 SMTP 2.97 SPLIT split Same as the CONNECT command but uses the split window feature. The edit line is line 25, and your sent text is highlighted. Received text is normal. See also the Net/Rom SPLIT command. 2.98 SOCKET 2.99 SOURCE source 2.100 START start 2.101 STOP stop 2.102 STATUS 2.103 TCP tcp These commands are used for the Transmission Control Protocol service. 2.103.1 tcp access [/bits] [] Set or display access control for TCP connection requests. This command implements TCP access control to NOS. Permit enables destaddr packets of type TCP to be routed through to the TCP layer. Deny disables those. If low port is given as the keyword all, all socket numbers 0 to 65534 are permitted (or denied, depending on the permit or deny keyword). If only lowport is given, only that portnumber is checked. If lowport and highport are given, checking is done according to that range. If a TCP access table is defined, all undefined ranges will be denied. Some samples: tcp access permit 44.0.0.0/8 3600 3601 tcp access deny all 3600 3601 tcp access permit 44.137.0.0/16 all 2.103.2 tcp irtt [] Display or set the initial round trip time estimate, in milliseconds, to be used for new TCP connections until they can measure and adapt to the actual value. The default is 5000 milliseconds (5 seconds). Increasing this when operating over slow channels will avoid the flurry of retransmissions that would otherwise occur as the smoothed estimate settles down at the correct value. Note that this command should be given before servers are started in order for it to have effect on incoming connections. TCP also keeps a cache of measured round trip times and mean deviations (MDEV) for current and recent destinations. Whenever a new TCP connection is opened, the system first looks in this cache. If the destination is found, the cached IRTT and MDEV values are used. If not, the default IRTT value mentioned above is used, along with a MDEV of 0. This feature is fully automatic, and it can improve performance greatly when a series of connections are opened and closed to a given destination (eg. a series of FTP file transfers or directory listings). 2.103.3 tcp kick If there is unacknowledged data on the send queue of the specified TCB, this command forces an immediate retransmission. 2.103.4 tcp mss [] Display or set the TCP Maximum Segment Size in bytes that will be sent on all outgoing TCP connect request (SYN segments). This tells the remote end the size of the largest segment (packet) it may send. Changing MSS affects only future connections; existing connections are unaffected. 2.103.5 tcp reset Deletes the TCP control block at the specified address. 2.103.6 tcp rtt Replaces the automatically computed round trip time in the specified TCB with the rtt in milliseconds. This command is useful to speed up recovery from a series of lost packets since it provides a manual bypass around the normal backoff retransmission timing mechanisms. 2.103.7 tcp status [] Without arguments, displays several TCPlevel statistics, plus a summary of all existing TCP connections, including TCB address, send and receive queue sizes, local and remote sockets, and connection state. If tcb_addr is specified, a more detailed dump of the specified TCB is generated, including send and receive sequence numbers and timer information. 2.103.8 tcp syndata [yes | no] Display or set the TCP SYN + Data piggy-backing flag. Some TCP systems cannot handle SYN + Data together. 2.103.9 tcp timertype [linear | exponential] Displays the current setting or sets the timer type backoff algorithm. 2.103.10 tcp trace [yes | no] Display or set the TCP trace flag on or off. 2.103.11 tcp window [] Displays or sets the default receive window size in bytes to be used by TCP when creating new connections. Existing connections are unaffected. 2.104 TAIL tail Shows the last 18 lines of the specified text file, or 2000 characters of a binary file. 2.105 TELNET telnet [port] 2.106 TTYLINK ttylink [port] Same as Telnet but uses the pseudosplit window feature. 2.107 THIRDPARTY thirdparty [on | off] This command was put in for Amateurs overseas who have restrictions on passing mail not originated by the connected stations. This is useful also for making a personal mailbox, rather than a public one. Without the option it shows the current state. 2.108 TIP tip 2.109 TSYNC_STAT Used with the Gracilis PackeTwin card. Shows a quick one line status of activity. 2.110 TSYDUMP tsydump [0 | 1] Used with the Gracilis PackeTwin card. Shows a detailed report of card status and the register values. This is formated very poorly however, and takes more than a page to show. 2.111 TRACE trace [interface] [mode] Used to monitor packets. TRACE alone shows all tracing status, and given an interface name shows only the one. The mode is selected from one of the following using either the text or hex mode command. The commonly used setting is trace ax0 111 which will perform input, output, ascii tracing. TEXT HEX  - input 10 input 0 output 1 output 0 broadcast 0 broadcast 1000 raw 2000 raw 0 ascii 100 ascii 0 hex 200 hex 0 off 0 2.112 STRACE strace [on | off] Used to direct TRACE to a sperate window. When on, the session window is reached with the F9 key. When off, the TRACE is directed to the current window. Leaving off the option lists the current state. 2.113 UDP udp [status] The User Datagram Protocol has one option, to list its status. Functions that use UDP for example, are the REMOTE and DOMAIN DNS commands. 2.114 UPLOAD upload [filename] Opens filename and sends it on the current session as though it were typed at the terminal. For uploading files or text. 2.115 WATCH watch Displays the current software stopwatch values, with min and max readings for each. This facility allows a programmer to measure the execution time of critical sections of code with microsecond resolution. This command is supported only on the PC, and the meaning of each stopwatch value depends on where the calls have been inserted for test purposes; the distribution copy of NOS usually has no stopwatch calls. 2.116 WATCHDOG watchdog [on | off] Enables or disables the watchdog timer. If internal operations cease for 300 seconds and the watchdog is enabled, a system reset is performed. See the remote command for setting up AUTOEXEC.BAT. 2.117 WRITE write 2.118 WRITEALL writeall 3.0 User Commands This section lists the commands which the users may enter when connected to the mailbox system. 3.1 @ Go to SYSOP mode (if permitted) 3.2 ? Give short list of all commands 3.3 A Give list of message areas without descriptions 3.3.1 AF Give the areas list with descriptions (if set) 3.3.2 A name Change to area name 3.4 B Bye (ie. disconnect) 3.5 C Convers bridge (like DxCLUSTER), if available 3.5.1 C node Netrom connection, if permitted and available 3.5.2 C iface call AX.25 connection, if permitted 3.5.3 CA Connect to callbook server (if available) 3.6 D filename Download textfile filename 3.6.1 DU Uuencode first, and then download (for binary files) 3.7 E Show the escape character 3.7.1 E char Set the escape character to char (one character!) 3.8 F Finger users (show user info available) 3.8.1 F user Finger a listed user (show his brag info) 3.8.2 F user@host Finger an user at a remote machine 3.9 H Help 3.10 I Info on system 3.11 J Just heard, on all interfaces 3.11.1 J iface Just heard on specified interface 3.12 K # # Kill message # (one or more numbers accepted) 3.12.1 KM Kill Mine, kills all read messages 3.13 L List new messages 3.13.1 LA List ALL messages in current area 3.13.2 LB List messages with message type B (bulletins) 3.13.3 LM List mine, lists new messages 3.13.4 LL n List last n messages 3.13.5 LT List message with message type T (traffic) 3.13.6 L> xyz List only message with string xyz in the To: field 3.14 M Shows current mailbox users 3.14.1 ML Shows all past users since system startup 3.14.2 ML n Shows the n past users since startup 3.14.3 ML call Shows when call logged on last 3.14.4 MM name Move the current message to new area name (SYSOP) 3.14.5 MM x [y,z] name Move messages x,y and z in current area to new area name 3.14.6 MS Show messages status 3.15 N Alphabetical listing of known netrom nodes (if available) 3.15.1 NR Shows all netrom neighbor nodes 3.16 O Chat with operator (if system is attended) 3.17 P Give a list of the interface ports of the system 3.18 R n Read message n (a list of numbers is accepted) 3.18.1 RH n Read with headers (same as V command) 3.18.2 RM Read Mine, reads all unread messages 3.19 S Send message (defaults to private) 3.19.1 SB Send bulletin (be carefull!) 3.19.2 SC Send with Carbon Copy to others 3.19.3 SF Forward current message to someone else 3.19.4 SF n Forward message number n to someone else 3.19.5 SP Send private message 3.19.6 ST Send traffic message 3.19.7 SR Send a reply to the current message 3.19.8 SR n Send a reply to message number n 3.20 T host Telnet to hostname (if permitted) 3.21 U file Upload a textfile 3.22 V n Verbose read of message n (a list is accepted) 3.22.1 VM Verbose read of all unread messages 3.23 W What files ? in the current directory 3.23.1 W path Listing of the directory path. Wildcards ie.*, are accepted 3.24 X Toggle Expert status 3.24.1 XA Toggle current areaindication in prompt 3.24.2 XM Show number of lines before moreprompt 3.24.3 XM n Set moreprompt to n lines 3.24.4 XN Toggle the Netrom lookalike prompt on/off 3.25 Z file Zap (delete) a file (if permitted) 4.0 How to design a network There are two types of networks, connectionless and conectionoriented. This software uses both modes at the basic network level. On the one hand it interacts reasonably with Net/Rom and Rose virtual connections, and on the other, works very well with datagram only circuits. If you were given a clean slate, your goal would be to have two ports on each node. One would be available for AX.25 connections from the users operating unsophisticated Terminal Node Controllers (TNCs). The other would be connected to a higher speed system of IP datagrams on top of AX.25 only. It will prove very difficult to marry both types of circuits and achieve any speed. By using a pure datagram IP backbone you can achieve much greater throughput than a Net/Rom or Rose. 5.0 Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window Many NOS users are confused by these parameters and do not know how to set them properly. This chapter will first review these parameters and then discuss how to choose values for them. 5.1 Hardware Parameters 5.1.1 Bufsize This parameter is required by most of NOSs builtin HDLC drivers (eg. those for the DRSI PCPA and the Paccomm PC100). It specifies the size of the buffer to be allocated for each receiver port. HDLC frames larger than this value cannot be received. There is no default bufsize; it must be specified in the attach command for the interface. 5.2 AX.25 Parameters 5.2.1 Paclen Paclen limits the size of the data field in an AX.25 Iframe. This value does not include the AX.25 protocol header (source, destination and digipeater addresses). Since unconnectedmode (datagram) AX.25 uses UI frames, this parameter has no effect in unconnected mode. The default value of paclen is 256 bytes. 5.2.2 Maxframe This parameter controls the number of Iframes that NOS may send on an AX.25 connection before it must stop and wait for an acknowledgement. Since the AX.25/LAPB sequence number field is 3bits wide, this number cannot be larger than seven. Numbers larger than one usually fail due to congestion. The unconnectedmode (datagram) AX.25 uses UI frames that do not have sequence numbers, so this parameter does not apply to unconnected mode. The default value of maxframe in NOS is one frame. 5.3 IP and TCP Parameters 5.3.1 MTU The MTU (Maximum Transmission Unit) is an interface parameter that limits the size of the largest IP datagram that it may handle. IP datagrams routed to an interface that are larger than its MTU are each split into two or more fragments. Each fragment has its own IP header and is handled by the network as if it were a distinct IP datagram, but when it arrives at the destination it is held by the IP layer until all of the other fragments belonging to the original datagram have arrived. Then they are reassembled back into the complete, original IP datagram. The minimum acceptable interface MTU is 28 bytes: 20 bytes for the IP (fragment) header, plus 8 bytes of data. There is no default MTU in NOS; it must be explicitly specified for each interface as part of the attach command. 5.3.2 MSS MSS (Maximum Segment Size) is a TCPlevel parameter that limits the amount of data that the remote TCP will send in a single TCP packet. MSS values are exchanged in the SYN (connection request) packets that open a TCP connection. In the NOS implementation of TCP, the MSS actually used by TCP is further reduced in order to avoid fragmentation at the local IP interface. That is, the local TCP asks IP for the MTU of the interface that will be used to reach the destination. It then subtracts 40 from the MTU value to allow for the overhead of the TCP and IP headers. If the result is less than the MSS received from the remote TCP, it is used instead. The default value of MSS is 512 bytes. 5.3.3 Window This is a TCPlevel parameter that controls how much data the local TCP will allow the remote TCP to send before it must stop and wait for an acknowledgement. The actual window value used by TCP when deciding how much more data to send is referred to as the effective window. This is the smaller of two values: the window advertised by the remote TCP minus the unacknowledged data in flight, and the congestion window, an automatically computed timevarying estimate of how much data the network can handle. The default value of Window is 2048 bytes. 5.4 Discussion 5.4.1 IP Fragmentation IP-level fragmentation often makes it possible to interconnect two dissimilar networks, but it is best avoided whenever possible. One reason is that when a single IP fragment is lost, all other fragments belonging to the same datagram are effectively also lost and the entire datagram must be retransmitted by the source. Even without loss, fragments require the allocation of temporary buffer memory at the destination, and it is never easy to decide how long to wait for missing fragments before giving up and discarding those that have already arrived. A reassembly timer controls this process. In NOS it is (re)initialized with the IP rtimer parameter (default 30 seconds) whenever progress is made in reassembling a datagram (i.e., a new fragment is received). It is not necessary that all of the fragments belonging to a datagram to arrive within a single timeout interval, only that the interval between fragments be less than the timeout. Most subnetworks that carry IP have MTUs of 576 bytes or more, so interconnecting them with subnetworks having smaller values can result in considerable fragmentation. For this reason, IP implementors working with links or subnets having unusually small packet size limits are encouraged to use transparent fragmentation, that is, to devise schemes to break up large IP datagrams into a sequence of link or subnet frames that are immediately reassembled on the other end of the link or subnet into the original, whole IP datagram without the use of IPlevel fragmentation. 5.4.2 Setting paclen and bufsize The more data you put into an AX.25 I frame, the smaller the AX.25 headers are in relation to the total frame size. In other words, by increasing paclen, you lower the AX.25 protocol overhead. Also, large data packets reduce the overhead of keying up a transmitter, and this can be an important factor with higher speed modems. On the other hand, large frames make bigger targets for noise and interference. Each link has an optimum value of paclen that is best discovered by experiment. Although NOS can handle larger paclen values than 256, some other AX.25 implementations (including digipeaters) cannot and this may cause interoperability problems. Even NOS may have trouble with certain KISS TNCs because of fixedsize buffers. The original KISS TNC code for the TNC2 by K3MC can handle frames limited in size only by the RAM in the TNC, but some other KISS TNCs cannot. NOSs built @ @ $@ B @ @ @ @ P Network Operating System Reference Manual WG7J Version August 1993 Copyright ( 1990 by KA9Q, Philip R. Karn Jr. Copyright ( 1993 by WG7J, Johannes K. Reinalda 1.0 Introduction This document is designed to enable a relatively sophisticated DOS computerin HDLC driver SCC allocates receive buffers according to the maximum expected frame size, so it is important that these devices be configured with the correct bufsize. To do this, you must know the size of the largest possible frame that can be received. The paclen parameter controls only the size of the data field in an Iframe and not the total size of the frame as it appears on the air. The AX.25 spec allows up to 8 digipeaters, so the largest possible frame is (paclen + 72) bytes. So you should make bufsize at least this large. Another important consideration is that the more recent versions of NOS improve interrupt response by maintaining a special pool of buffers for use by the receive routines. These buffers are currently fixed in size to 2048 bytes and this can be changed only by editing config.h and recompiling NOS. This limits bufsize. In fact, attempting to set a larger value may cause the driver not to work at all. This situation can be detected by running the memory status command and looking for a nonzero count of Ibuffail events, although these events can also occur occasionally during normal operation. One of the drawbacks of AX.25 that there is no way for one station to tell another how large a packet it is willing to accept. This requires the stations sharing a channel to agree beforehand on a maximum packet size. TCP is different, as we shall see. 5.4.3 Setting Maxframe For best performance on a halfduplex radio channel, maxframe should always be set to one. The reasons are explained in the paper Link Level Protocols Revisited by Brian Lloyd and Phil Karn, which appeared in the proceedings of the ARRL 5th Computer Networking Conference in 1986. 5.4.4 Setting MTU TCP/IP header overhead considerations similar to those of the AX.25 layer when setting paclen apply when choosing an MTU. However, certain subnetwork types supported by NOS have wellestablished MTUs, and these should always be used unless you know what youre doing: 1500 bytes for Ethernet , and 508 bytes for Arcnet(. The MTU for PPP is automatically negotiated, and defaults to 1500. Other subnet types, including SLIP and AX.25, are not as well standardized. SLIP has no official MTU, but the most common implementation (for BSD Unix ) uses an MTU of 1006 bytes. Although NOS has no hard wired limit on the size of a received SLIP frame, this is not true for other systems. Interoperability problems may therefore result if larger MTUs are used in NOS. Choosing an MTU for an AX.25 interface is more complex. When the interface operates in datagram (UIframe) mode, the paclen parameter does not apply. The MTU effectively becomes the paclen of the link. It is usually important to avoid AX.25 segmentation when running IP over Net/Rom. The way to do this is to make sure that packets larger than paclen are never handed to AX.25. A Net/Rom transport header is five bytes long and a Net/Rom network header takes 15 bytes, so 20 bytes must be added to the size of an IP datagram when figuring the size of the AX.25 Iframe data field. If paclen is 256, this leaves 236 bytes for the IP datagram. This is the default MTU of the netrom pseudointerface, so as long as paclen is at least 256 bytes, AX.25 segmentation cant happen. But if smaller values of paclen are used, the netrom MTU must also be reduced with the ifconfig command. 5.4.5 Setting MSS The setting of this TCPlevel parameter is somewhat less critical than the IP and AX.25 level parameters already discussed, mainly because it is automatically lowered according to the MTU of the local interface when a connection is created. Although this is, strictly speaking, a protocol layering violation (TCP is not supposed to have any knowledge of the workings of lower layers) this technique does work well in practice. However, it can be fooled; for example, if a routing change occurs after the connection has been opened and the new local interface has a smaller MTU than the previous one, IP fragmentation may occur in the local system. The only drawback to setting a large MSS is that it might cause avoidable fragmentation at some other point within the network path if it includes a bottleneck subnet with an MTU smaller than that of the local interface. (Unfortunately, there is presently no way to know when this is the case. There is ongoing work within the Internet Engineering Task Force on a MTU Discovery procedure to determine the largest datagram that may be sent over a given path without fragmentation, but it is not yet complete.) Also, since the MSS you specify is sent to the remote system, and not all other TCPs do the MSSlowering procedure yet, this might cause the remote system to generate IP fragments unnecessarily. On the other hand, a toosmall MSS can result in a considerable performance loss, especially when operating over fast LANs and networks that can handle larger packets. So the best value for MSS is probably 40 less than the largest MTU on your system, with the 40byte margin allowing for the TCP and IP headers. For example, if you have a SLIP interface with a 1006 byte MTU and an Ethernet interface with a 1500 byte MTU, set MSS to 1460 bytes. This allows you to receive maximumsized Ethernet packets, assuming the path to your system does not have any bottleneck subnets with smaller MTUs. 5.4.6 Setting Window A sliding window protocol like TCP cannot transfer more than one windows worth of data per round trip time interval. So this TCPlevel parameter controls the ability of the remote TCP to keep a long pipe full. That is, when operating over a path with many hops, offering a large TCP window will help keep all those hops busy when youre receiving data. On the other hand, offering too large a window can congest the network if it cannot buffer all that data. Fortunately, new algorithms for dynamic controlling the effective TCP flow control window have been developed over the past few years and are now widely deployed. NOS includes them, and you can watch them in action with the tcp status or socket commands. Look at the cwind (congestion window) value. In most cases it is safe to set the TCP window to a small integer multiple of the MSS, (eg. four times), or larger if necessary to fully utilize a high bandwidth*delay product path. One thing to keep in mind, however, is that advertising a certain TCP window value declares that the system has that much buffer space available for incoming data. NOS does not actually pre-allocate this space; it keeps it in a common pool and may well over book it, exploiting the fact that many TCP connections are idle for long periods and gambling that most applications will read incoming data from an active connection as soon as it arrives, thereby quickly freeing the buffer memory. However, it is possible to run NOS out of memory if excessive TCP window sizes are advertised and either the applications go to sleep indefinitely (eg. suspended Telnet sessions) or a lot of outofsequence data arrives. It is wise to keep an eye on the amount of available memory and to decrease the TCP window size (or limit the number of simultaneous connections) if it gets too low. Depending on the channel access method and link level protocol, the use of a window setting that exceeds the MSS may cause an increase in channel collisions. In particular, collisions between data packets and returning acknowledgements during a bulk file transfer may become common. Although this is, strictly speaking, not TCPs fault, it is possible to work around the problem at the TCP level by decreasing the window so that the protocol operates in stopandwait mode. This is done by making the window value equal to the MSS. 5.5 Summary In most cases, the default values provided by NOS for each of these parameters will work correctly and give reasonable performance. Only in special circumstances such as operation over a very poor link or experimentation with high speed modems should it be necessary to change them. THIS STUFF WILL NEED TO BE MOVED TO PROPER SECTIONS ABOVE 3.18. connect [ ... ] Initiate a vanilla AX.25 session to the specified ax25_addr using the specified interface. Data sent on this session goes out in conventional AX.25 packets with no upper layer protocol. The defacto presentation standard format is used, in that each packet holds one line of text, terminated by a carriage return. A single AX.25 connection may be used for terminaltoterminal, IP and Net/Rom traffic. The three types of data being automatically separated by their AX.25 Level 3 Protocol IDs. Up to eight optional digipeaters may be given; note that the word via is not needed. If digipeaters are specified, they are automatically added to the AX25 routing table as though the ax25 route add command had been given before issuing the connect command. 3.19. delete The filename is removed from the file system. 3.20. detach Detach a previously attached interface from the system. All IP routing table entries referring to this interface are deleted, and forwarding references by any other interface to this interface are removed. 3.21. dialer [ [ [ []]]] Setup an autodialer session for the interface. Whenever the interface is idle for the interval in , the autodialer will ping the . If there is no answer after attempts, the autodialer will execute the special commands contained in the . If the interval in is zero, a previous dialer command process will be removed. If the number of is zero, the will be executed without pinging the . The file may have any valid name, and must be located in the configuration root directory (see the Installation section). The commands in the file are described in the Dialer Subcommands chapter. Commands in file are: 3.21.1. control 3.21.2. send [] Sends string to the interface. If milliseconds is given, inter character timing is milliseconds milliseconds. 3.21.3. speed Displays or sets the current interface speed. 3.21.4. status 3.21.5. wait [ [speed]] Wait the amount of milliseconds. If string is given, incoming characters from the interface are compared with string. If an compare is found and speed is the string speed, the next numbers read from the interface is the new baud rate used. This works like HAYES response CONNECT 9600. The wait command could have been wait 10000 CONNECT speed. This waits 10 seconds for the CONNECT response from the modem. 3.22. dir [] List the contents of the specified directory on the console. If no argument is given, the current directory is listed. Note that this command works by first listing the directory into a temporary file, and then creating a more session to display it. After this completes, the temporary file is deleted. 3.23. disconnect [] An alias for the close command (for the benefit of AX.25 users). 3.24. domain The domain commands control and show the working of the name to internet address mapping software. NOS currently only has a client with a simple file reading local server. A real server is needed to service the community for their growing needs. 3.24.1. domain addserver Add a domain name server to the list of name servers. Note that, when this command is given in the autoexec.nos file the ip address command should given before this command is used. (If not, NOS will not know how to resolve the address, and an answer will never be recognized, or worse: just plain hangs the system.) 3.24.2. domain cache Following commands work on the domain cache. These are resource records (see RFC 1033/1034) held in memory. 3.24.2.1. domain cache clean [yes | no] Displays or sets the discard of expired resource records. Expired records have their timeout value decremented to zero. Normally resource records get a default timeout value of 1800 seconds. After this time they are considered old and if referenced again the domain name resolver should be enquired again. When clean is off (the default), expired records will be retained; if no replacement can be obtained from another domain name server, these records will continue to be used. When clean is on, expired records will be removed from the file whenever any new record is added to the file. 3.24.2.2. domain cache list This command shows the current content of the in memory cache for resource records. 3.24.2.3. domain cache size [size] Display or set the nominal maximum size of the local memory cache. The default is 20. (Note: The cache may be temporarily larger when waiting for new records to be written to the /domain.txt file.) 3.24.2.4. domain cache wait [seconds] Display or set the interval in seconds to wait for additional activity before updating the domain.txt file. The default is 300 seconds (5 minutes). 3.24.3. domain dropserver Remove a domain name server from the list of name servers. You are warned when you delete the last name server. 3.24.4. domain listservers List the currently configured domain name servers, along with statistics on how many queries and replies have been exchanged with each one, response times, etc. 3.24.5. domain maxwait [timeout] This sets a timeout value (1 to 255 seconds) to a query or domain name server. This is not set for a already defined server but will be used for a newly defined name server. Also the value is used for domain nslookups. Note that name servers (IBM-PC based) can have trouble finding records in an large database. The default is set to 30 seconds. 3.24.6. domain retry [retries] The retry value (number) limits the number of queries send out to remote domain name resolvers before giving up and telling you that host xyzzy.ampr.org does not exist. The total time lost with a query is retries * timeout * number of domain servers defined. 3.24.7. domain suffix [domain suffix | none] Display or specify the default domain name suffix to be appended to a host name when it contains no periods. For example, if the suffix is set to ampr.org. and the user enters telnet ka9q, the domain resolver will attempt to find ka9q.ampr.org.. If the host name being sought contains one or more periods, however, the default suffix is not applied if the last part of the name is less than 5 characters and contains only letters; e.g., telnet foo.bar would not be turned into foo.bar.ampr.org. telnet foo.ka9q will be turned into foo.ka9q.ampr.org. Note that a trailing dot (.) is required for the suffix definition (eg, ampr.org.). If the suffix is the string none (without trailing period) the current suffix is cleared and forgotten. 3.24.8. domain trace [on | off] Display or set the flag controlling the tracing of domain server requests and responses. Trace messages will be seen only if a domain name being sought is not found in the local cache file, domain.txt. 3.24.9. domain translate [off | on] Display or set the flag that controls the translation of IP address in dot notation into symbolic names. The translation process makes heavy use of reverse domain name lookups. Do not set this flag unless you have a good and fast connection to a domain name server or have a fast domain.txt handler and domain.txt contains all the INADDR.ARPA. records you ever wanted. 3.24.10. domain verbose [off | on] Display or set the flag controlling the return of a full name (true) or only the first name (dot delimiter) (false). This is for IP address to name translation only. 3.24.11. domain xyzzy This is (when spelled fully) a magic word to enable domain queries to outside domain servers when reading commands from the startup file. This should only be used by those who have reliable access to a domain name server. 3.25. drsistat Obsolete. Showed the statistics for all configured DRSI boards. 3.26. dump [decimalrange] The dump command shows memory in hex and ascii. Hexaddress is a 32 bit value split into page segment and page offset. A splitting colon is not used nor accepted. If decimalrange is not given, 128 bytes are displayed. dump . displays memory starting at the end of a previous dump command. 3.27. echo [accept | refuse] Display or set the flag controlling client Telnets response to a remote WILL ECHO offer. The Telnet presentation protocol specifies that in the absence of a negotiated agreement to the contrary, neither end echoes data received from the other. In this mode, a Telnet client session echoes keyboard input locally and nothing is actually sent until a carriage return is typed. Local line editing is also performed: backspace deletes the last character typed, while controlU deletes the entire line. When communicating from keyboard to keyboard the standard local echo mode is used, so the setting of this parameter has no effect. However, many timesharing systems (eg. UNIX ) prefer to do their own echoing of typed input. (This makes screen editors work right, among other things). Such systems send a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet connection request. If echo accept is in effect, a client Telnet session will automatically return a DO ECHO response. In this mode, local echoing and editing is turned off and each key stroke is sent immediately (subject to the Nagle tinygram algorithm in TCP). While this mode is just fine across an Ethernet, it is clearly inefficient and painful across slow paths like packet radio channels. Specifying echo refuse causes an incoming WILL ECHO offer to be answered with a DONT ECHO; the client Telnet session remains in the local echo mode. Sessions already in the remote echo mode are unaffected. (Note: Berkeley Unix has a bug in that it will still echo input even after the client has refused the WILL ECHO offer. To get around this problem, enter the stty echo command to the shell once you have logged in.) 3.28. eol [unix | standard] Display or set Telnets endofline behavior when in remote echo mode. In standard mode, each key is sent asis. In unix mode, carriage returns are translated to line feeds. This command is not necessary with all UNIX systems; use it only when you find that a particular system responds to line feeds but not carriage returns. Only SunOS release 3.2 seems to exhibit this behavior; later releases are fixed. 3.29. escape [] Display or set the current commandmode escape character in hex. In DOS, the escape character is default ^]. The alternate escape key is F10 unless F10 is redefined with fkey. 3.30. etherstat Obsolete. Displayed 3Com Ethernet controller statistics. Use the packet driver. 3.31. exit Exit the NOS program and return to the operating system. 3.32. finger | <@hostid> Issue a network finger request for user user at host hostid. This creates a client session which may be interrupted, resumed, reset, etc, just like a Telnet client session. If only @hostid is given, all users on that host are identified. 3.33. fkey [ []] Fkey displays or sets values for the programmable keys on the IBM-PC keyboard. fkey alone gives a display of all remapable keys and their number. fkey number displays the current value for that key. fkey number string assigns string to that key. Control characters can be created by prefixing then with an ^ character. A cr is ^M. To insert an ^ in the string 2 ^s next to each other are needed. Following is the map of keys and their number. F1 is function key 1. Sf1 is Shift function key 1. Cf1 is Control function key 1. Af1 is Alt function key 1. Etc. The right most row is the numeric keypad. key number key number key number key number key number f1 59 sf1 84 cf1 94 af1 104 pgup 73 f2 60 sf2 85 cf2 95 af2 105 pgdn 81 f3 61 sf3 86 cf3 96 af3 106 home 71 f4 62 sf4 87 cf4 97 af4 107 end 79 f5 63 sf5 88 cf5 98 af5 108 arup 72 f6 64 sf6 89 cf6 99 af6 109 ardn 80 f7 65 sf7 90 cf7 100 af7 110 ar l 75 f8 66 sf8 91 cf8 101 af8 111 ar r 77 f9 67 sf9 92 cf9 102 af9 112 ins 82 f10 68 sf10 93 cf10 103 af10 113 del 83 The mapping is taken to look like a VT-100/ANSI keyboard. Currently assigned value strings for following keys: number string key 59 33OP /* F1 */ 60 33OQ /* F2 */ 61 33OR /* F3 */ 62 33OS /* F4 */ 71 10 /* home*/ 72 33[A /* up arrow*/ 73 25 /* pgup */ 75 33[D /* left arrow */ 77 33[C /* right arrow */ 79 05 /* end */ 80 33[B /* down arrow */ 81 12 /* pgdn */ 82 01 /* ins */ 83 177 /* del */ 3.34. ftp Open an FTP control channel to the specified remote host and enter converse mode on the new session. Responses from the remote server are displayed directly on the screen. See the FTP Subcommands chapter for descriptions of the commands available in a FTP session. 3.35. ftype [ascii | binary | image | logical ] This command displays or sets the default start file mode (ascii or binary) for ftp transfers. If ftype binary or image is given the next ftp session started will be in binary type. No binary command is needed once the session is started. In case of logical, the word size is set to size. 3.36. help Display a brief summary of toplevel commands. 3.37. hop These commands are used to test the connectivity of the network. 3.37.1. hop check Initiate a hopcheck session to the specified host. This uses a series of UDP probe packets with increasing IP TTL fields to determine the sequence of gateways in the path to the specified destination. This function is patterned after the UNIX traceroute facility. ICMP message tracing should be turned off before this command is executed (see the icmp trace command). 3.37.2. hop maxttl [] Display or set the maximum TTL value to be used in hop check sessions. This effectively bounds the radius of the search. 3.37.3. hop maxwait [] Display or set the maximum interval, in seconds, that a hopcheck session will wait for responses at each stage of the trace. The default is 5 seconds. 3.37.4. hop queries [] Display or set the number of UDP probes that will be sent at each stage of the trace. The default is three. 3.37.5. hop trace [on | off] Display or set the flag that controls the display of additional information during a hop check session. 3.38. hostname [] Display or set the local hosts name. By convention this should be the same as the hosts primary domain name. This string is used only in the greeting messages of the various network servers; note that it does NOT set the systems IP address. If is the same as an (see the Attach commands chapter), this command will search for a CNAME domain resource record which corresponds to the IP address of the . 3.39. hs Display statistics about the HS high speed HDLC driver (if configured and active). 3.40. icmp These commands are used for the Internet Control Message Protocol service. 3.40.1. icmp echo [on | off] Display or set the flag controlling the asynchronous display of ICMP Echo Reply packets. This flag must be on for oneshot pings to work (see the ping command.) 3.40.2. icmp status Display statistics about the Internet Control Message Protocol (ICMP), including the number of ICMP messages of each type sent or received. 3.40.3. icmp trace [on | off] Display or set the flag controlling the display of ICMP error messages. These informational messages are generated by Internet routers in response to routing, protocol or congestion problems. This option should be turned off before using the hop check facility because it relies on ICMP Time Exceeded messages, and the asynchronous display of these messages will be mingled with hop check command output. 3.41. ifconfig Display a list of interfaces, with a short status for each. 3.41.1. ifconfig [ [[[ ] ] .... ] When only iface is given, a extended interface status is displayed. Multiple subcommand / parameter can be put on one line. 3.41.2. ifconfig broadcast Set the broadcast address of interface iface to addr. Addr can either be an ax25_addr or an ether_addr, depending on the interface type, with 1s in the host part of the address. This is related to the netmask subcommand. See also the arp command. 3.41.3. ifconfig description [description] This command sets the interface description to the string specified. If no string is supplied, the current description is cleared. The description is displayed with the ifconfig iface command (no parameters) and with the mailbox commands. 3.41.4. ifconfig encapsulation Sets the encapsulation for interface iface to slip / ax25 / ether / encap / ppp. 3.41.5. ifconfig forward When a forward is defined, all output for interface iface is redirected to the interface directed by iface2. To remove the forward, set to . 3.41.6. ifconfig ipaddress Set the IP address to addr for this interface. This might be necessary when a system acts as a gateway. Like an system with IP address 44.137.1.8 has an Internet access via its Ethernet. The Internet IP address could be 129.179.122.10. An ifconfig en0 ipaddress 129.179.122.10 sets the correct address for that interface. Now routing to that system will work. (Note that the 44.x.x.x address is not connected to the Internet.) See also the hostname and IP address commands. 3.41.7. ifconfig linkaddress Set the hardware dependant address for this interface. For AX.25 this can be the callsign, for Ethernet a new Ethernet address. 3.41.8. ifconfig mtu Set the maximum transfer unit to param octets (bytes). See the Setting ... MTU, MSS and Window chapter for more information. 3.41.9. ifconfig netmask
Set the subnet mask for this interface. The
takes the form of an IP address with 1s in the network and subnet parts of the address, and 0s in the host part of the address. Sample: ifconfig en0 netmask 0xffffff00 for a class C network (24 bits). This is related to the broadcast subcommand. See also the route command. 3.41.10. ifconfig rxbuf Set the receive buffer size. 3.42. info Info gives information about the version of NOS currently running and its built-in configuration. The configuration info is built with defines in config.h in the source distribution. That way it gives automatically correct configuration information. 3.43. ip These commands are used for the Internet Protocol service. 3.43.1. ip access [/] [higport] Set or display access control for IP routing functions. This command implements router access functions to NOS. Permit enables destaddr packets of type protocol to be routed via ifname. Deny disables those. Protocol can be TCP or UDP. Only those two protocol types are checked. If lowport is given as keyword all, all ports are assumed. If only lowport is given, that port is only checked for permission. If lowport and highport are given, that is the range of ports permitted/denied. Destaddr can be the word all for all addresses possible. The ip access delete must match a previous defined permit or deny to be able to delete that definition. Some samples: ip access permit 44/8 ax0 tcp 20 25 ip access deny all ax0 tcp 1 1023 ip access permit all ax0 udp all If no access list is created, all interfaces might carry all types. If an access control is defined for an interface there must be an permit defined for that interface to allow traffic. Thus a partial denial without an permit is an complete denial for that interface. 3.43.2. ip access trace The IP access trace command shows the decisions made during access control for given address. Specifying the address 0 disables the trace. No subnet bits are recognized, just a full 32 bits address. This is a debug tool. 3.43.3. ip address [] Display or set the default local IP address. This command must be given before an attach command if it is to be used as the default IP address for the interface. 3.43.4. ip rtimer [] Display or set the IP reassembly timeout. The default is 30 seconds. Value is in seconds. 3.43.5. ip status Display Internet Protocol (IP) statistics, such as total packet counts and error counters of various types. 3.43.6. ip ttl [] Display or set the default timetolive value placed in each outgoing IP datagram. This limits the number of switch hops the datagram will be allowed to take. The idea is to bound the lifetime of the packet should it become caught in a routing loop, so make the value slightly larger than the number of hops across the network you expect to transit packets. The default is set at compilation time to the official recommended value for the Internet. 3.44. isat [on | off] Display or set the IBM-AT flag. Normally this flag is set when an interface is attached with an interrupt of 8 or higher. This is to signal that the second interrupt controller in an AT also needs a return of interrupt signal. If an AT type clock is in use, this command will allow measurement of time in milliseconds, rather than clock ticks (55 milliseconds per clock tick). During I/O initialization this flag is set if the monitor prom has the standard byte 0xfc at address f000:fffe. 3.45. kick [] Kick all sockets associated with a session; if no argument is given, kick the current session. Performs the same function as the AX.25 kick and tcp kick commands, but is easier to type. 3.46. lock [password ] Locks the keyboard or defines a password string. If password is given then is saved as the unlock string. If no parameters are supplied, the keyboard becomes locked when a password was specified earlier. If the keyboard is locked, the password is requested. If a correct password is supplied, the keyboard becomes unlocked. The setting of the password and locking of the keyboard can only been done by the system console keyboard or autoexec.nos startup file. The password can not been shown. 3.47. log [stop | ] Display the current log filename or set the filename for logging server sessions. If stop is given as the argument, logging is terminated (the servers themselves are unaffected). If a file name is given as an argument, server session log entries will be appended to it. 3.48. lzw [] LZW is the data compression capability on some sockets. This command set defines or changes their definition. Normally leave this set default. 3.48.1. lzw mode Displays or sets the compression method used on data compression for specific sockets. Currently SMTP can use compression. 3.48.2. lzw bits Displays or sets the number of bits used for the compression size. The more bits defined the larger the table space needed. Range is 9 to 16. 3.49. mail This command will start a shell escape command. The mailer used is defined with the DOS environment variable MAILER, which defaults to BM.EXE. 3.50. mbox [] Display the status of the mailbox server system (if configured). 3.50.1. mbox attend [yes | no] Displays or sets the attended flag on. This is used to announce in the mailbox if the station manager is willing to attend his station (chat). 3.50.2. mbox expert Display or set the level expected of a mailbox user. When set, they get a short > prompt. When not set a long prompt is send with the first letter of each mailbox command as prompt. The user can then set Xpert mode to get the short prompt. 3.50.3. mbox fwdinfo [forward info] Displays or sets the mailbox forward info to be included in the R: line for forwarded BBS bulletins. An empty string () as info clears the info field. Sample: netrom fwdinfo HNLNET BBS Will show [HNLNET BBS] in the R: line. 3.50.4. mbox haddress [homeaddress] Displays or sets the home address field to be included in the R: line for forwarded BBS bulletins. An empty string () clears the field. Sample: netrom haddress #CRV.OR.USA Will show @WG7J#CRV.OR.USA in the R: line. (when ax mycall is WG7J) 3.50.5. mbox jumpstart Displays or sets the mailbox jumpstart code. When set and an known node connects to the mailbox, no extra line needs to be send to activate the mailbox but the prompt is send directly. Warning: When set, it takes a while to hear all nodes and an AX25 connect could have an wrong start as there is no wait for a level 3 protocol check. Especially RSPF in virtual mode could course serious problems. 3.50.6. mbox kick To kick the mailbox back in activity after retry timeouts. 3.50.7. mbox maxmsg To display or set the maximum number of messages per area when a notes file is shown to a user. This reserves lots of memory for every mailbox session. 3.50.8. mbox motd [message string] Display or set the mailbox welcoming Message Of The Day. 3.50.9. mbox nrid Displays or sets the Net/Rom id flag. When set the node id is displayed on the prompt line. 3.50.10. mbox operator [
] The operator command shows or sets an alternate address for the control operator. When set and mbox attend is off or the user is shelled out and an mbox user requests an Operator command, the ttylink session is redirected to the address specified. Else it works as before that the mbox user is notified with Unattended. When the system pointed to by address has also set its attended to off, then an Unattended is replied with as well (but generated by the remote station). This is a flaky way of having an attended unattended system. 3.50.11. mbox password Sets a password string to be presented to Sysops entering that mode in the mailbox (using the @ command and having that privilege set to their login name/password in ftpusers). When a password is defined (max 30 characters) then they are prompted with 5 numbers before letting them in. The five numbers represent the 5 character locations in the string defined, whereby the first character is number 0. Multiple lines of 5 characters can be send to fool snoopers. The end of password sending is signaled with an empty line. If there was a good response, sysop mode is entered. The setting of the password can only been done by the system console or autoexec.nos startup file. The password can not been shown. 3.50.12. mbox qth [qth info] Displays or sets the info for qth in the R: line for forwarded BBS messages. Sample: netrom qth Driebruggen, NL 3.50.13. mbox secure Displays or sets the security option for mailbox gateway users. If set, users coming in via telnet to the bbs are not allowed to use the gateway. If not set anybody can use the gateway. (Note: No check for Bozos). Also the mailbox send command is disabled except for AX.25 and Net/Rom connects. 3.50.14. mbox smtptoo Displays or sets the flag to include SMTP headers in BBS messages. When set SMTP headers are included in messages. When not set not included. 3.50.15. mbox status An alias for just entering mbox on the prompt line. 3.50.16. mbox timer [] Display the current interval and time remaining or set the mailbox forwarding timer. 3.50.17. mbox tiptimeout Displays or sets the timeout value for tip connection timeout. After timeout seconds of no activity the connection is closed. 3.50.18. mbox trace [yes | no] Displays or sets mailbox forward trace code flag. 3.50.19. mbox utc Displays or sets the offset you are according to UTC time. Positive and negative numbers are supported and full leap year and month calculation are done. This is used by the mailbox forwarding to give a standard time in the R: line. 3.50.20. mbox zipcode zip Displays or sets the info for the zip field for R: line BBS header lines. This field is max 7 characters long as released. For USA the zip is only 6 numbers long. Netherlands has 4 figures a space and 2 letters. Guess every PTT wants something they invented their own. Sample: netrom zip 3465 TJ or: netrom zip 54551 3.51. memory These commands are used for memory allocation. 3.51.1. memory debug [on|off] Displays or sets the memory allocator debug flag. If set debug information is written to the log file containing most flags and parameters from the memory allocation routines. 3.51.2. memory efficient [yes | no] Displays or sets the search algorithm for buffer memory. When set, the search is always started from the beginning of the free list. This is slower but keeps memory fragmentation to a minimum. When clear, search is started on the end, accounting for more memory fragmentation but keeping speed. The current release defaults to yes. 3.51.3. memory freelist Display the storage allocator free list. Each entry consists of a starting address, in hex, and a size, in decimal bytes. 3.51.4. memory ibufsize [] Display or set the size of the buffers in the interrupt buffer pool. The size should be set to the largest type of buffer plus a header size of 22. For example: If your ax25 is the only interface and a packet length of 256 is defined, the ibufsize should be 256 + 10 * 6 + 22. The 10 * 6 is the ax25 header (source , destination and 8 digipeaters). 3.51.5. memory minheap [] Displays or sets the minimum heap size to be allocated before shell escaping to MS-DOS. This assures a free heap so that NOS can run for awhile without getting short on memory. 3.51.6. memory nibufs [] Display or set the number of interrupt buffer pool buffers. If the number of buffers is set, the statistics in the memory status display are reset for number of interrupt buffer fails. The minimum available value is set to the requested number of buffers. A rule of thumb for the number of buffers is to watch the statistics and keep a minimum of 2 free buffers. Increase or decrease as required. 3.51.7. memory sizes Display a histogram of storage allocator request sizes. Each histogram bin is a binary order of magnitude (i.e., a factor of 2). 3.51.8. memory status Display a summary of storage allocator statistics. The first line shows the base address of the heap, its total size, the amount of heap memory available in bytes and as a percentage of the total heap size, and the amount of memory left over (i.e., not placed on the heap at startup) and therefore available for shell subcommands. The second line shows the total number of calls to allocate and free blocks of memory, the difference of these two values (i.e., the number of allocated blocks outstanding), the number of allocation requests that were denied due to lack of memory, and the number of calls to free() that attempted to free garbage (eg. by freeing the same block twice or freeing a garbled pointer). The third line shows the garbage collection status. Garbage collection is a separate process running every second. If memory is low garbage collection routines are called in Red alert mode, else in Yellow alert. The fourth line shows the number of calls to malloc and free that occurred with interrupts off. In normal situations these values should be zero. The fourth line shows statistics for the special pool of fixedsize buffers used to satisfy requests for memory at interrupt time. The variables shown are the number of buffers currently in the pool, their size, and the number of requests that failed due to exhaustion of the pool. The fifth line shows the current setting of the interrupt buffer pool, its minimal value and the number of no buffers available. These statistics are reset when a memory nibufs command is given. 3.51.9. memory thresh [] Displays or sets the memory threshold size in bytes. If memory gets below this value, no more new sessions are started or accepted. 3.52. mkdir Create a subdirectory in the current working directory. 3.53. mode [vc | datagram] Control the default transmission mode on the specified AX.25 interface. In datagram mode, IP packets are encapsulated in AX.25 UI frames and transmitted without any other link level mechanisms, such as connections or acknowledgements. In vc (virtual circuit) mode, IP packets are encapsulated in AX.25 I frames and are acknowledged at the link level according to the AX.25 protocol. Link level connections are opened if necessary. In both modes, ARP is used to map IP to AX.25 addresses. The defaults can be overridden with the typeofservice (TOS) bits in the IP header. Turning on the reliability bit causes I frames to be used, while turning on the low delay bit uses UI frames. (The effect of turning on both bits is undefined and subject to change). In both modes, IPlevel fragmentation is done if the datagram is larger than the interface MTU. In virtual circuit mode, however, the resulting datagram (or fragments) is further fragmented at the AX.25 layer if it (or they) are still larger than the AX.25 paclen parameter. In AX.25 fragmentation, datagrams are broken into several I frames and reassembled at the receiving end before being passed to IP. This is preferable to IP fragmentation whenever possible because of decreased overhead (the IP header isnt repeated in each fragment) and increased robustness (a lost fragment is immediately retransmitted by the link layer). 3.54. more [ ...] Display the specified file(s) a screen at a time. To proceed to the next screen, press the space bar; to cancel the display, hit the q key. A CR advances a line. The more command creates a session that you can suspend and resume just like any other session. 3.55. motd [] Display the current message or sets the welcome message to the defined string. 3.56. multitask [on | off] Displays or sets the multi task flag. If set NOS continues to service its interrupts and handling of normal operation when put in the background by executing a shell escape. Some programs do not like to miss this valuable time taken away and weird results can happen. Clearing the flag stops all activity from NOS when put in the background. This command is not used when running on top of Windows or other systems which multitask already. 3.57. netrom 3.57.1. netrom acktime [] Displays or sets the ack delay timer, similar to AX.25 t2. 3.57.2. netrom alias This sets the Net/Rom alias for this station. Other stations can connect to the AX.25 callsign and to the Net/Rom alias (when set). The alias is broadcasted with a Net/Rom broadcast. 3.57.3. netrom bcnodes Initiates an immediate broadcast of nodelist on iface. 3.57.4. netrom call Displays or sets the call to be used by the Net/Rom interface. Note: this is a shortcut for the ifconfig netrom linkaddress call command. 3.57.5. netrom connect Start a connection to node. 3.57.6. netrom choketime [] Display or set the time breaking a send choke. Choke is the term netrom uses for flow control conditions. 3.57.7. netrom derate [on | off] Display or set automatic derating of netrom routes on link failure. 3.57.8. netrom interface Define a Net/Rom interface iface. The quality can be between 1 and 255. For compatibility with other implementations, set this to 192 normally. A check is made that the interface is of type AX.25. Note: the alias is not specified on this line anymore. Use netrom alias command. 3.57.9. netrom irtt [] Display or set the initial round trip time. 3.57.10. netrom kick <&nrcb> Give the control block a kick to get activity going again. 3.57.11. netrom load [] Reloads a saved Net/Rom node list to continue from where you left when you saved the list. All entrys read are time decremented as if normal time just went on. If it took some time (obsotimer * x) your list could be empty as they all timed out. 3.57.12. netrom minquality [] Display or set the minimum quality for recognizing a node entry. Entrys below this value are not considered valuable for usage. 3.57.13. netrom nodefilter Node filtering. 3.57.13.1. netrom nodefilter add Allow neighbor to give us node updates. 3.57.13.2. netrom nodefilter drop Disallow neighbor to give us node updates. 3.57.13.3. netrom nodefilter mode [none | accept | reject] Display or set the initial filter schema. None accepts all. Accept,accepts only from nodes defined in netrom nodefilter add lists. Reject,no accepts from nodes defined in netrom nodefilter add lists. 3.57.14. netrom nodetimer [] Display or set the interval our node list is transmitted. 3.57.15. netrom obsotimer [] Display or set the time a node quality gets decremented. 3.57.16. netrom promiscuous [off | on] Enables nodes with a higher quality than defined with minquality. If on, all nodes are received, independent of nodefilter. 3.57.17. netrom qlimit [] Display or set the maximum queue limit. Similar to AX.25 window. 3.57.18. netrom reset <&nrcb> Remove the control block. You can find the control block with socket. 3.57.19. netrom retries [] Display or set the maximum number of retries on connect, disconnect or data. 3.57.20. netrom route Net/Rom routing commands. 3.57.20.1. netrom route add Add a Net/Rom route. 3.57.20.2. netrom route drop Delete a Net/Rom route. 3.57.20.3. netrom route info Display the route it would take to get to destination. 3.57.21. netrom status Displays all Net/Rom connections. 3.57.22. netrom save [] Saves the current Net/Rom node list in memory to /netrom.sav or filename, if given. 3.57.23. netrom timertype [exponential | linear] Displays or sets the type of backoff. 3.57.24. netrom ttl [] Display or set the maximum number of hops a frame might hop before discarded, if it did not reach its destination before. 3.57.25. netrom user [] Display or set our Net/Rom user name. This is used on outgoing connects. 3.57.26. netrom verbose [off | on] Display or set the verbose flag. If set all nodes known to us are transmitted each time the nodetimer expires. If off, only your stations node ident is send out. 3.57.27. netrom window [] Display or set the size of the sliding window. This is the largest send and receive window we might negotiate. 3.58. nntp Network news transfer protocol has the following subcommands: 3.58.1. nntp addserver [] [] Add a nntp news server to query every seconds interval for new articles specified by the nntp groups command. Range can be a limit in time to query like nntp addserver someserver 600 22:0023:00, to only query the server between 10 and 11pm. Multiple nntp add can be used co concatenate groups (up to 512 bytes) The interval seconds can be set to 0, so that normally the nntp client does not query the server regularly but an nntp kick nntpserver can be used to start a session. 3.58.2. nntp directory Show or set default directory for spooling news. This is not the control directory but the (alternate) place to spool articles to. 3.58.3. nntp dropserver 3.58.4. nntp groups [ ...] Set or display currently set newsgroups. 3.58.5. nntp kick Kick the client to get in touch with the named server. 3.58.6. nntp listservers Lists the currently defined servers. 3.59. nntp quiet [yes | no] Shows or sets the flag controlling the display of newly received nntp news messages. The SMTP quiet flag controls the beep following the message. If both are off, nothing is shown, keeping the display from getting hung on more when running unattended. 3.60. nntp trace Sets or shows the current trace level for the nntp client. 0 No tracing 1 (default) displays serious errors. 2 displays as 1 and transient errors. 3 displays as 2 and session progress. 4 displays as 3 and actual received articles. 5 displays errors. 3.61. nrstat Displays the NRS interface statistics. 3.62. param [ ...] Invoke a device specific control routine. On a KISS TNC interface, this sends control packets to the TNC. Data bytes are treated as decimal. For example: param ax0 1 255 will set the Transmit Delay timer (type field = 1) on the KISS TNC configured as ax0 to 2.55 seconds (255 x .01 sec). On a SLIP interface, the param command allows the baud rate to be read (without arguments) or set. On asy lines DTR and RTS can be (and possibly should be) set with: param iface dtr 1 and param iface rts 1 The implementation of this command for the various interface drivers is incomplete and subject to change. Current commands defined are: 0 Data  Normal KISS data 1 TxDelay  set TX delay for TNC 2 Persist  set persistence delay for TNC 3 Slottime  set slottime delay for TNC 4 TxTail  set TX tail delay for TNC 5 Fulldup  set Full duplex for TNC 6 Hardware  Hardware dependent 7 TxMute  8 DTR  0 = down, 1 = up 9 RTS  0 = down, 1 = up 10 Speed  baud rate 11 Enddelay  12 Group  13 Idle  14 Min  15 Maxkey  16 Wait  17 Parity  0 = none, 1 = even, 2 = odd parity 129 Down  130 Up  254 Return2  Some tncs need this 255 Return  Reset a TNC from KISS to command mode 3.63. ping [ [ []]] Ping (send ICMP Echo Request packets to) the specified host. By default the data field contains only a small timestamp to aid in determining round trip time; if the optional length argument is given, the appropriate number of data bytes (consisting of hex 55) are added to the ping packets. If milliseconds is specified, pings will be repeated indefinitely at the specified number of milliseconds; otherwise a single, one shot ping is done. Responses to oneshot pings appear asynchronously on the command screen, while repeated pings create a session that may be suspended and resumed. Pinging continues until the session is manually reset. The incflag option causes a repeated ping to increment the target IP address for each ping; it is an experimental feature for searching blocks of IP addresses for active hosts. 3.64. pop The pop client provides an automatic interface to the pop server that is totally transparent to the user; all that the user needs to do is to set a few key parameters and the client will take it from there, apart from registering with the server station manager for setting up the user data. (see pop userdata command. To read more about pop, read RFC 937. The following paragraph describe the pop subcommands. 3.64.1. pop mailbox [] Show the defined name or sets the name to name for POP mail queries to the mailhost. The server keeps the mail in the mailbox name located in /spool/mail/name.txt. This is a mandatory parameter. 3.64.2. pop mailhost [] Show the currently defined host address for a pop server or sets the IP address to the system named ipaddr for POP connections. This is a mandatory parameter. 3.64.3. pop kick Start a POP connection now. (one shot connection) 3.64.4. pop timer [] Show the current setting and time remaining until next server enquiry or when seconds is given, defines the interval that a pop connection is started every to retrieve mail from the server system. When the timer is not set the client is only started with a pop kick command. 3.64.5. pop userdata Sets up the userdata used for validation on the POP server system. Note that and are case sensitive. When only pop userdata is entered to show the values only the is shown. Remember: the name and password should also be defined at the server site in the popusers file. 3.65. popmail Popmail is a newer implementation of the pop client/server. It can handle both pop2 and pop3 type pop client/servers. For functionality see pop but the subcommands are different. 3.65.1. popmail addserver [][hh:mmhh:mm] Add host as a pop server. When seconds is given, a timer is started to query the host with that interval for mail. If not specified no querying to the pop host will be started. You have to do that manually with a kick. When hh:mmhh:mm is given then only in that exact timeframe are queries to the host made (allowed). Protocol is either POP2 or POP3, depending on the mail service the host is providing. Note: pop2 is superseded by pop3. Mailbox is the mailbox name on the host where fore mail has to be picked up. Username and password are this systems validation parameters for the host. Note that on entering this command the host name is looked up. If nonexistent an error message is presented. 3.65.2. popmail dropserver Drops host from the list of pop servers to be queried. All references to the entry are deleted from the current system. 3.65.3. popmail kick Starts a pop session with host to retrieve mail. This command is needed when no interval is specified with the popmail addserver command. 3.65.4. popmail list Lists the current popmail server table. 3.65.5. popmail quiet Displays or sets the notification of new mail arriving via pop. 3.65.6. popmail trace Displays or sets the trace level of pop sessions. Current trace levels are: 0  No tracing 1  Serious errors reported 2  Transient errors reported 3 - Session progress reported Note that tracing only goes to the log file. 3.66. ppp These commands are used for Point to Point Protocol interfaces. This implementation of PPP is designed to be as complete as possible. Because of this, the number of options can be rather daunting. However, a typical PPP configuration might include the following commands: attach asy 0x3f8 4 ppp pp0 4096 1500 9600 dial pp0 30 3 dialer.pp0 # ppp pp0 lcp local accm 0 ppp pp0 lcp local compress address on ppp pp0 lcp local compress protocol on ppp pp0 lcp local magic on ppp pp0 lcp open active # ppp pp0 ipcp local compress tcp 16 1 ppp pp0 ipcp open active # route add default pp0 3.66.1. ppp Display the status of the PPP interface. 3.66.2. ppp lcp ... These commands are used for the LCP [Link Control Protocol] configuration. 3.66.2.1. ppp lcp close Shutdown the PPP interface. 3.66.2.2. ppp lcp local ... These commands control the configuration of the local side of the link. If an option is specified, the parameters will be used as the initial values in configuration requests. If not specified, that option will not be requested. For each of these options, the allow parameter will permit the remote to include that option in its response, even when the option is not included in the request. By default, all options are allowed. 3.66.2.2.1. ppp lcp local accm [ | allow [on | off] ] Display or set the Async Control Character Map. The default is 0xffffffff. 3.66.2.2.2. ppp lcp local authenticate [ pap | none | allow [on | off] ] Display or set the authentication protocol. The default is none. 3.66.2.2.3. ppp lcp local compress address/control [ on | off | allow [on | off] ] Display or set the option to compress the address and control fields of the PPP HLDClike header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. 3.66.2.2.4. ppp lcp local compress protocol [ on | off | allow [on | off] ] Display or set the option to compress the protocol field of the PPP HLDClike header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. 3.66.2.2.5. ppp lcp local magic [ on | off | | allow [on | off] ] Display or set the initial Magic Number. The default is off (zero). 3.66.2.2.6. ppp lcp local mru [ | allow [on | off] ] Display or set the Maximum Receive Unit. The default is 1500. 3.66.2.2.7. ppp lcp local default Reset the options to their default values. 3.66.2.3. ppp lcp open active | passive Wait for the physical layer to come up. If active, initiate configuration negotiation. If passive, wait for configuration negotiation from the remote. 3.66.2.4. ppp lcp remote ... These commands control the configuration of the remote side of the link. The options are identical to those of the local side. If an option is specified, the parameters will be used in responses to the remotes configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the allow parameter will permit the remote to specify that option in its request. By default, all options are allowed. 3.66.2.5. ppp lcp timeout [] Display or set the interval to wait between configuration or termination attempts. The default is 3 seconds. 3. user to install and operate the WG7J version of the KA9Q NOS program. Please document any errors you find in this guide and report or correct them. The software is in a continuous revision, and errors are very likely to occur. As an user you should document these errors and try to find the reason why it is occurring. When posting an error report please list the version you are using, and what youve done or suspect will resolve the error. Its generally not useful to report something as merely broke. Sinc66.2.6. ppp lcp try ... These commands are used for the various counters. 3.66.2.6.1. ppp lcp try configure [] Display or set the number of configuration requests sent. The default is 10. 3.66.2.6.2. ppp lcp try failure [] Display or set the number of bad configuration requests allowed from the remote. The default is 5. 3.66.2.6.3. ppp lcp try terminate [] Display or set the number of termination requests sent before shutdown. The default is 2. 3.66.3. ppp ipcp ... These commands are used for the IPCP [Internet Protocol Control Protocol] configuration. The close, open, timeout and try subcommands are identical to the LCP (described above). 3.66.3.1. ppp ipcp local ... These commands control the configuration of the local side of the link. If an option is specified, the parameters will be used as the initial values in configuration requests. If not specified, that option will not be requested. For each of these options, the allow parameter will permit the remote to include that option in its response, even when the option is not included in the request. By default, all options are allowed. 3.66.3.1.1. ppp ipcp local address [ | allow [on | off] ] Display or set the local address for negotiation purposes. If an address of 0 is specified, the other side of the link will supply the address. By default, no addresses are negotiated. 3.66.3.1.2. ppp ipcp local compress [ tcp [] | none | allow [on | off] ] Display or set the compression protocol. The default is none. The tcp specifies the number of conversation slots, which must be 1 to 255. (This may be limited at compilation time to a smaller number.) A good choice is in the range 4 to 16. The tcp is 0 (dont compress the slot number) or 1 (OK to compress the slot number). KA9Q can handle compressed slot numbers, so the default is 1. 3.66.3.2. ppp ipcp remote ... These commands control the configuration of the remote side of the link. The options are identical to those of the local side. If an option is specified, the parameters will be used in responses to the remotes configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the allow parameter will permit the remote to specify that option in its request. By default, all options are allowed. 3.66.4. ppp pap ... These commands are used for the PAP [Password Authentication Protocol] configuration. The timeout and try subcommands are identical to the LCP (described above). However, the terminate counter is unused. 3.66.4.1. ppp pap user [ [] ] Display or set the username (the password may be set, but not displayed). When the username is specified, but no password is supplied, the /ftpusers file is searched for the password. When a username/password is unknown or rejected, a session will appear at the console to prompt for a new username/password. 3.66.5. ppp trace [] Display or set the flags that control the logging of information during PPP link configuration. The flag value is 0 for none, 1 for basic, and 2 for general. Values greater than 2 are usually not compiled, and are described in the appropriate source files where they are defined. 3.67. ps Display all current processes in the system. The fields are as follows: PID  Process ID (the address of the process descriptor). SP  The current value of the process stack pointer. stksize  The size of the stack allocated to the process. maxstk  The apparent peak stack utilization of this process. This is done in a somewhat heuristic fashion, so the numbers should be treated as approximate. If this number reaches or exceeds the stksize figure, the system is almost certain to crash; the nos.exe program should be recompiled to give the process a larger allocation when it is started. event  The event this task is waiting for, if it is not runnable. fl  Process status flags. There are three: I (Interrupts enabled), W (Waiting for event) and S (suspended). The I flag is set whenever a task has executed a pwait() call (wait for event) without first disabling hardware interrupts. Only tasks that wait for hardware interrupt events will turn off this flag; this is done to avoid critical sections and missed interrupts. The W flag indicates that the process is waiting for an event; the event column will be nonblank. Note that although there may be several runnable processes at any time (shown in the ps listing as those without the W flag and with blank event fields) only one process is actually running at any one instant (The Refrigerator Light Effect says that the ps command is always the one running when this display is generated.) 3.68. pwd [] An alias for the cd command. 3.69. rarp This uses the reverse address resolution protocol. 3.69.1. rarp query This starts a reverse resolution request via iface to find the IP address for callsign. It counts down for 10 seconds before giving up listening for an answer. 3.70. record [off | ] Append to filename all data received on the current session. Data sent on the current session is also written into the file except for Telnet sessions in remote echo mode. The command record off stops recording and closes the file. 3.71. remote [p ] [k ] [a ] exit | reset | kick Send a UDP packet to the specified host commanding it to exit the NOS program, reset the processor, or force a retransmission on TCP connections. For this command to be accepted, the remote system must be running the remote server and the port number specified in the remote command must match the port number given when the server was started on the remote system. If the port numbers do not match, or if the remote server is not running on the target system, the command packet is ignored. Even if the command is accepted there is no acknowledgement. The kick command forces a retransmission timeout on all TCP connections that the remote node may have with the local node. If the a option is used, connections to the specified host are kicked instead. No key is required for the kick subcommand. The exit and reset subcommands are mainly useful for restarting the nos program on a remote unattended system after the configuration file has been updated. The remote system should invoke the NOS program automatically upon booting, preferably in an infinite loop. For example, under MSDOS the boot disk should contain the following in autoexec.bat: :loop nos goto :loop 3.71.1. remote s The exit and reset subcommands of remote require a password. The password is set on a given system with the s option, and it is specified in a command to a remote system with the k option. If no password is set with the s option, then the exit and reset subcommands are disabled. Note that remote is an experimental feature in NOS; it is not yet supported by any other TCP/IP implementation. 3.72. rename Rename oldfilename to newfilename. 3.73. reset [] Reset the specified session; if no argument is given, reset the current session. This command should be used with caution since it does not reliably inform the remote end that the connection no longer exists. (In TCP a reset (RST) message will be automatically generated should the remote TCP send anything after a local reset has been done. In AX.25 the DM message performs a similar role. Both are used to get rid of a lingering halfopen connection after a remote system has crashed.) 3.74. rip These commands are used for the RIP service. 3.74.1. rip accept Remove the specified gateway from the RIP filter table, allowing future broadcasts from that gateway to be accepted. 3.74.2. rip add [] Add an entry to the RIP broadcast table. The IP routing table will be sent to hostid every interval of seconds. If flags is specified as 1, then split horizon processing will be performed for this destination. That is, any IP routing table entries pointing to the interface that will be used to send this update will be removed from the update. If split horizon processing is not specified, then all routing table entries except those marked private will be sent in each update. (Private entries are never sent in RIP packets). Triggered updates are always done. That is, any change in the routing table that causes a previously reachable destination to become unreachable will trigger an update that advertises the destination with metric 15, defined to mean infinity. Note that for RIP packets to be sent properly to a broadcast address, there must exist correct IP routing and ARP table entries that will first steer the broadcast to the correct interface and then place the correct linklevel broadcast address in the linklevel destination field. If a standard IP broadcast address convention is used (eg. 128.96.0.0 or 128.96.255.255) then chances are you already have the necessary IP routing table entry, but unusual subnet or clusteraddressed networks may require special attention. However, an arp add command will be required to translate this address to the appropriate link level broadcast address. For example: arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff for an Ethernet network, and: arp add 44.255.255.255 ax25 qst0 for an AX.25 packet radio channel. (If multiple AX.25 interfaces, make a unique address for each interface.) 3.74.3. rip drop Remove an entry from the RIP broadcast table. 3.74.4. rip merge [on | off] This flag controls an experimental feature for consolidating redundant entries in the IP routing table. When rip merging is enabled, the table is scanned after processing each RIP update. An entry is considered redundant if the target(s) it covers would be routed identically by a less specific entry already in the table. That is, the target address(es) specified by the entry in question must also match the target addresses of the less specific entry and the two entries must have the same interface and gateway fields. For example, if the routing table contains: Dest Len Interface Gateway Metric P Timer Use 1.2.3.4 32 en0 128.96.1.2 1 0 0 0 1.2.3 24 en0 128.96.1.2 1 0 0 0 then the first entry would be deleted as redundant since packets sent to 1.2.3.4 will still be routed correctly by the second entry. Note that the relative metrics of the entries are ignored. 3.74.5. rip refuse Refuse to accept RIP updates from the specified gateway by adding the gateway to the RIP filter table. It may be later removed with the rip accept command. 3.74.6. rip request Send a RIP Request packet to the specified gateway, causing it to reply with a RIP Response packet containing its routing table. 3.74.7. rip status Display RIP status, including a count of the number of packets sent and received, the number of requests and responses, the number of unknown RIP packet types, and the number of refused RIP updates from hosts in the filter table. A list of the addresses and intervals to which periodic RIP updates are being sent is also shown, along with the contents of the filter table. 3.74.8. rip trace [0 | 1 | 2] This variable controls the tracing of incoming and outgoing RIP packets. Setting it to 0 disables all RIP tracing. A value of 1 causes changes in the routing table to be displayed, while packets that cause no changes cause no output. Setting the variable to 2 produces maximum output, including tracing of RIP packets that cause no change in the routing table. 3.74.9. rip ttl Displays or sets the time to live timer to seconds. Normal timeout value is 240 seconds. This is not the ttl in a rip broadcast (16 = infinite). Set this timer before starting rip. Change this timer only in cooperation with your surrounding nodes. Default is 240 seconds. 3.75. rlogin host Sets up an rlogin session via port 511 to a UNIX compatible station. Default terminal is an ansi (as defined with the fkeys) compatible terminal. Default user name is guest. (Redefine with set USER= environment variable). 3.76. rmdir Remove a subdirectory from the current working directory. 3.77. route With no arguments, route displays the IP routing table. 3.77.1. route add [/bits] | default [ | direct []] This command adds an entry to the routing table. It requires at least two more arguments, the hostid of the target destination and the name of the interface to which its packets should be sent. If the destination is not local, the gateways hostid should also be specified. (If the interface is a pointtopoint link, then gateway_hostid may be omitted even if the target is nonlocal because this field is only used to determine the gateways link level address, if any. If the destination is directly reachable, gateway_hostid is also unnecessary since the destination address is used to determine the interface link address). If rspf is used and the system is a switch / router to multiple routes the keyword direct can be used i.s.o a gateway_hostid to set the metric higher as the default 1. This way routes advertized by other rspf stations can be cheaper and get selected. If direct is given but metric not, an new algorithm is used to set the metric dependent on the number of subnet mask bits. The optional /bits suffix to the destination host id specifies how many leading bits in the host id are to be considered significant in the routing comparisons. If not specified, 32 bits (i.e., full significance) is assumed. With this option, a single routing table entry may refer to many hosts all sharing a common bit string prefix in their IP addresses. For example, ARPA Class A, B and C networks would use suffixes of /8, /16 and /24 respectively; the command route add 44/8 sl0 44.64.0.2 causes any IP addresses beginning with 44 in the first 8 bits to be routed to 44.64.0.2; the remaining 24 bits are dontcares. When an IP address to be routed matches more than one entry in the routing table, the entry with largest bits parameter (i.e., the best match) is used. This allows individual hosts or blocks of hosts to be exceptions to a more general rule for a larger block of hosts. The special destination default is used to route datagrams to addresses not matched by any other entries in the routing table; it is equivalent to specifying a /bits suffix of /0 to any destination hostid. Care must be taken with default entries since two nodes with default entries pointing at each other will route packets to unknown addresses back and forth in a loop until their timetolive (TTL) fields expire. (Routing loops for specific addresses can also be created, but this is less likely to occur accidentally). There are two built-in interfaces: loopback and encap. Loopback is for internal purposes only. The encap is an IP encapsulator interface. This is used to encapsulate a complete IP datagram into a IP datagram so that it gets piggybacked. It is often used to carry ampr.org datagrams (net44) over the Internet. Note that the Internet is fully connected and that ampr.org is (at least) very loose. This way two sites can interchange net44 datagrams to each other. Some extra notes: A Internet gateway has 2 IP addresses: one on ampr.org and one on the Internet. You should make sure that the interface connected to the Internet has the ifconfig ipaddr set correctly. Note: This previously only worked as a gateway for other stations. There was some guessing needed in picking an IP address when encap was used locally. The guessing always selects the worst guess. (always wrong with a 2.7 Murphy factor) The code now uses the local IP address as source when the route starts at the local station. If this is not what you want, you can overrule this by setting the IP address of the pseudo encap interface to what you want it to be. Some extra notes on encap: Suppose I have 3 systems on an Ethernet with network 129.179.122.128/25. In the office I have another network linked to the Internet. The addresses there are in the 129.179.122.0/25 range. Now I have a radio link with 44.137.0.2 and 44.137.1.2 on respective sites. On the 44.137.0.2 system I have: route add 44.0.0.0/8 encap 44.137.1.1 99 On a Next system on my local Ethernet I have 44.137.0.1 / 129.179.122.129. To get from that system to say 44.62.0.1 I have to add an encap to my local gateway with route add 44.0.0.0/8 encap 129.179.122.130. The following: route add default en0 129.179.122.130 gives me access to the Internet. Otherwise it will look up the address for the interface to be used to reach 129.179.122.130 and will use 129.179.122.129. Now 44.62.0.1 will NEVER know where it came from. So adding the encap on the second system solves the problem. Here are some examples of the route command: # Route datagrams to IP address 44.0.0.3 to SLIP line #0. # No gateway is needed because SLIP is pointto point. route add 44.0.0.3 sl0 # Route all default traffic to the gateway on the local Ethernet # with IP address 44.0.0.1 route add default en0 44.0.0.1 # The local Ethernet has an ARPA ClassC address assignment; # route all IP addresses beginning with 192.4.8 to it route add 192.4.8/24 en0 # The station with IP address 44.0.0.10 is # on the local AX.25 channel route add 44.0.0.10 ax0 # An encapsulation link to 192.4.8.12 where the subnet 44.64.0.0 is # accessible. The internet does not know where we are but we just # use them with what they know: route add 44.64.0.0/16 encap 192.4.8.12 4 3.77.2. route addprivate [/bits] | default [ []] This command is identical to route add except that it also marks the new entry as private; it will never be included in outgoing RIP updates. 3.77.3. route drop Route drop deletes an entry from the table. If a packet arrives for the deleted address and a default route is in effect, it will be used. 3.78. rspf RSPF is the Radio Shortest Path First protocol. Each station listens for RRH (Router to Router Hello) messages. When such a RRH message is received, NOS will figure out if the link is bidirectional by pinging the other station. The protocol is described in the RSPF 2.1 specification. 3.78.1. rspf interface is the required interface rspf should use. quality is from 1 to 127 horizon is between 1 to 255 End nodes should have the quality set to 1. Immediate nodes normally set the quality to 8. The normally used value for horizon is 32. 3.78.2. rspf mode [vc | datagram | none] Without arguments, displays the preferred mode for RSPF. Modes are VC (Virtual Circuit) and Datagram. none resets the preferred mode. 3.78.3. rspf rrhtimer [seconds] Without arguments, displays the RRH timer value. 3.78.4. rspf suspecttimer [seconds] Without arguments, displays the suspect timer value. 3.78.5. rspf timer [seconds] Without arguments, displays the update timer value. To activate RSPF, do the following. Set the broadcast address for the destination interface, example ax0: ifconfig ax0 broadcast 44.255.255.255 This automatically creates a routing entry for 44.255.255.255 in the routing table. If intend to use RSPF on more than one interface, those interfaces must each have different broadcast addresses. Else the routing entries will be overwritten by the next definition. Configure ax0 as an RSPF interface with horizon 32 and a quality of 1 (hops). This is typical for an end node. replace the 1 with an 8 for immediate nodes: rspf interface ax0 1 32 Set the interval between RRH messages. rspf rrhtimer 900 Define how long it takes until an idle link is suspected to be bad. rspf suspecttimer 2000 Set the interval between routing updates. rspf timer 900 3.79. sccstat Display the scc driver statistics. 3.80. session [[] [flowmode [on | off]]] Without arguments, displays the list of current sessions, including session number, remote TCP or AX.25 address and the address of the TCP or AX.25 control block. An asterisk (*) is shown next to the current that session. Entering a session number as an argument to the session command will put you in converse mode with that session. If the Telnet session; entering a blank line at this point puts you in converse mode with server is enabled, the user is notified of an incoming request and a session number is automatically assigned. The user may then select the session normally to converse with the remote user as though the session had been locally initiated. Adding the flowmode displays or enables / disables setting of *more* handling for that session. This is handy for example by long directory listings coming from an ftp session. Escaping to command mode before issuing the dir command and entering session # flowmode on gives a page at a time to look at. At any time you can escape out again and switch flowmode off. Note that a ftp session has its own flow command built-in. See FTP commands later in this manual. 3.82. skick #socket This is a shorthand for the various kick subcommands. This one searches the socket for correct type and kicks the transport layer. 3.83. smtp These commands are used for the Simple Message Transport Protocol service (that is, mail). 3.83.1. smtp batch [yes | no] If set smtp will batch the commands into one frame. When off only one command is send and a response is waited for. Some old and flaky smtp servers cannot handle more than one command at a time. NOS can handle multiple. If you are not hindered by an old smpt server, setting batch reduces bandwidth. 3.83.2. smtp gateway [host] Displays or sets the host to be used as a smart mail relay. Any mail spooled for a host which is not in the domain.txt file, will instead be sent to the gateway for forwarding. 3.83.3. smtp kick Run through the outgoing mail queue and attempt to deliver any pending mail. This command allows the user to kick the mail system manually. Normally, this command is periodically invoked by a timer whenever NOS is running. 3.83.4. smtp kill [job] Kill the job and delete the message. 3.83.5. smtp list List the current jobs. A L means locked and in progress. It is wise to add in autoexec.bat a del /spool/mqueue/*.lck command. 3.83.6. smtp maxclients [count] Displays or sets the maximum number of simultaneous outgoing SMTP sessions that will be allowed. The default is 10; reduce it if network congestion is a problem. 3.83.7. smtp mode [queue | route] Sets the smtp delivery mode. If queue, all messages are left in /spool/rqueue for external forwarding and handling. If route, messages are handled for both local and remote forwarding. 3.83.8. smtp mxlookup [yes | no] Displays or sets a flag enabling or disabling MX record lookups. This can be enabled if a domain server is available in the near distance (reachable). It should be disabled (default) if no domain server is in reach to satisfy the MX query. Note that MX record handling is very limited in NOS. If an answer from a domain name server comes in it is taken to be the destination. 3.83.9. smtp quiet [yes | no] Enables or disables the message that new mail arrived at this system. 3.83.10. smtp timer [] Displays or sets the interval, between scans of the outbound mail queue. For example, smtp timer 600 will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds, subject of course to the smtp maxclients limit. Setting a value of zero disables queue scanning altogether, note that this is the default! This value is recommended for stand alone IP gateways that never handle mail, since it saves wear and tear on the disk drive. 3.83.11. smtp trace [value] Displays or sets the trace flag in the SMTP client, allowing you to watch SMTPs conversations as it delivers mail. Zero (the default) disables tracing. 3.84. socket [[] [flowmode [yes | no]]] Without an argument, displays all active sockets, giving their index and type, the address of the associated protocol control block and the and owner process ID and name. If the index to an active socket is supplied, the status display for the appropriate protocol is called. For example, if the socket refers to a TCP connection, the display will be that given by the tcp status command with the protocol control block address. Flow mode can be set or cleared on a session if so wanted. This comes in handy when a large directory is displayed by ftp. Escaping from the session just before entering dir and setting flowmode and returning to that session, gives a screen full at a time with more processing. 3.85. source Read subsequent commands from filename until EOF. Then resume reading commands from the previous stream. This can be used to keep routing statements in a separate file, which can be read at some point in autoexec.nos. 3.86. start ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink Start the specified Internet server, allowing remote connection requests. 3.87. status Displays load information on NOS. When started, how long running, open files etc. 3.88. stop ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink Stop the specified Internet server, rejecting any further remote connect requests. Existing connections are allowed to complete normally. 3.89. tail This command displays the last couple of lines of file filename. 3.91. telnet [] Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 23. 3.92. test Start an internal test for an overflow problem that might appear in the clock function of some AT computers. 3.93. thirdparty [yes | no] This is a restriction setter for some countries where stations are not allowed to handle third-party mail traffic. 3.94. ttylink [] Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 87. This uses a split screen interface for easy conversation. 3.95. tip Creates a tip session that connects to the specified interface in dumb terminal mode. The interface must have already been attached with the attach command. Any packet traffic (IP datagrams, etc) routed to the interface while this session exists will be discarded. To close a tip session, use the reset command. It will then revert to normal SLIP, NRS or KISS mode operation. This feature is primarily useful for manually establishing SLIP connections. At present, only the builtin comm ports can be used with this command. 3.96. trace [ [off | []]] Controls packet tracing by the interface drivers. Specific bits enable tracing of the various interfaces and the amount of information produced. Trace output to the screen is only send to the command screen, when in a session tracing to the screen is suspended. (From version 2.0l) Tracing is controlled on a perinterface basis; without arguments, trace gives a list of all defined interfaces and their tracing status. Output can be limited to a single interface by specifying it, and the control flags can be change by specifying them as well. The flags are given as a hexadecimal number which is interpreted as follows: O  Enable tracing of output packets if 1, disable if 0 I  Enable tracing of input packets if 1, disable if 0 T  Controls type of tracing: 0  Protocol headers are decoded, but data is not displayed 1  Protocol headers are decoded, and data (but not the headers themselves) are displayed as ASCII characters, 64 characters/line. Unprintable characters are displayed as periods. 2  Protocol headers are decoded, and the entire packet (headers AND data) is also displayed in hexadecimal and ASCII, 16 characters per line. B  Broadcast filter flag. If set, only packets specifically addressed to this node will be traced; broadcast packets will not be displayed. If tracefile is not specified, tracing will be to the console. 3.97. udp status Displays the status of all UDP receive queues. 3.98. verbose [0 | 1 | 2 | 3] Set or display the level of message output in file transfers. Verbose 0 gives the least output, and verbose 3 the most, as follows: 0  Display error messages only. 1  Display error messages plus a oneline summary after each transfer giving the name of the file, its size, and the transfer time and rate. 2  Display error and summary messages plus the progress messages generated by the remote FTP server. (This setting is the default.) 3  Display all messages. In addition, a hash mark (#) is displayed for every 1,000 bytes sent or received. If a command is sent to the remote server because it is not recognized locally, the response is always displayed, regardless of the setting of verbose. This is necessary for commands like pwd (display present working directory), which would otherwise produce no message at all if verbose were set to 0 or 1. 4. Attach Commands This chapter details the attach commands for the various hardware interface drivers. Not all of these drivers may be configured into every NOS binary; a list of the available types may be obtained by entering the command attach ?. Some parameters are accepted by several drivers. They are: 4.0.1. For asynchronous devices (eg. COM ports operating in SLIP or NRS mode) this parameter specifies the size of the receivers ring buffer. It should be large enough to hold incoming data at full line speed for the longest time that the system may be busy in DOS or the BIOS doing a slow I/O operation (eg. to a floppy disk). A kilobyte is usually more than sufficient. For synchronous devices (e.g., the SCC, or HS interfaces operating in HDLC mode), the bufsize parameter specifies the largest packet that may be received on the interface. This should be set by mutual agreement among stations sharing the channel. For standard AX.25 with a maximum Iframe data size of 256 bytes, a value of 325 should provide an adequate safety margin. On higher speed channels (eg. 56kb/s) larger values (eg. 2K bytes) will provide much better performance and allow fullsized Ethernet packets to be carried without fragmentation. 4.0.2. The base address of the interfaces control registers.This might be specified in hex as 0xnnn or decimal. (nnn is the hexadecimal number). 4.0.3. The interfaces hardware interrupt (IRQ) vector, in decimal. When a vector is followed by the character c then the vector is added in a interrupt chain. This way multiple devices can share the same interrupt vector (hardware changes might be necessary). A sample is the use of a four port communications board sharing the same vector. The first attach command has a plain vector and the following have the c appended. Note that the highest speed port should be defined last (as it is served first by the chaining). Do not specify the c with the first attach statement in that group as unpredictable results will occur. attach asy 0x3f8 4 ax25 ax0 2048 256 1200 attach asy 0x3f0 4c ax25 ax1 2048 256 9600 4.0.4. The name (an arbitrary character string) to be assigned to this interface. It is used to refer to the interface in ifconfig and route commands and in trace output. 4.0.5. The Maximum Transmission Unit size, in bytes. Datagrams larger than this limit will be fragmented at the IP layer into smaller pieces. For AX.25 UI frames, this limits the size of the information field. For AX.25 I frames, however, the AX.25 paclen parameter is also relevant. If the datagram or fragment is still larger than paclen, it is also fragmented at the AX.25 level (as opposed to the IP level) before transmission. (See the AX.25 paclen command for further information). 4.0.6. The interface speed in baud (eg. 4800). 4.1. attach 3c500 arpa [] Obsolete. 4.2. attach asy ax25 | nrs | ppp | slip | raw [] Attach a standard comm port (asynchronous serial port), using the National 8250 or 16550A chip. Standard values for ioaddr and vector are 0x3f8 and 4 for COM1, and 0x2f8 and 3 for COM2. If the port uses a 16550A chip, it will be detected automatically and the FIFOs enabled. 4.2.1. ax25 Similar to SLIP, except that an AX.25 header and a KISS TNC control header are added to the front of the datagram before SLIP encoding. Either UI (connectionless) or I (connectionoriented) AX.25 frames can be used; see the mode command for details. 4.2.2. nrs Use the Net/Rom asynchronous framing technique for communication with a local Net/Rom TNC. If using TheNet X-1J or greater you should use the KISS mode. 4.2.3. ppp PointtoPointProtocol. Encapsulates datagrams in an HDLClike frame. This is a new Internet standard for pointtopoint communication, compatible with CCITT standards. 4.2.4. slip Serial Line Internet Protocol. Encapsulates IP datagrams directly in SLIP frames without a link header. This is for operation on pointtopoint lines and is compatible with 4.2BSD UNIX SLIP. 4.2.5. raw Raw serial line without protocol , special for lpd server. 4.2.6. The optional flags are a string of the characters vf. v enables Van Jacobson TCP/IP Header Compression, and is valid only for SLIP. f forces the FIFO on for 16550AFN compatible chips not detected by software (unpredictable results will occur when specified on a non-16550 type chip). 4.3. attach axip This creates a RFC 1226 compatible AX.25 frame encapsulator for transmission of AX.25 frames over the Internet. Iface will be the name of the interface, ip_addr the address of the remote system and callsign the AX.25 callsign this station is listening on for frames to digipeat. Note that each attached axip interface should have a different callsign to listen to and this should also be different from other callsigns used on this station. 4.4. attach drsi ax25 Obsolete. 4.5. attach eagle ax25 Obsolete. 4.6. attach hapn ax25 csma | full Obsolete. 4.7. attach hs ax25

Attach a DRSI or Eagle Computer interface card using a special high speed 8530 driver. This driver uses busywait loops to send and receive each byte instead of interrupts, making it usable with high speed modems (such as the WA4DSY 56kb/s modem) on slow systems. This does have the side effect of freezing the system whenever the modem transmitter or receiver is active. This driver can operate only in CSMA mode, and it is recommended that no other interfaces requiring small interrupt latencies be attached to the same machine. The keyup_delay parameter specifies the transmitter keyup delay in byte time intervals. The p value specifies the transmitter persistence value in the range 1255; the corresponding slot time is fixed at one hardware clock tick, about 55 ms using DOS. As with the other 8530 drivers, this driver actually attaches two interfaces, one for each 8530 channel. 4.8. attach packet Driver for use with separate software packet drivers meeting the FTP Software, Inc, Software Packet Driver specification. The driver must have already been installed before the attach command is given. Packet drivers in the Ethernet, ARCNET, SLIP, SLFP, and KISS/AX25 classes are supported. intvec is the software interrupt vector used for communication to the packet driver, and txqlen is the maximum number of packets that will be allowed on the transmit queue. 4.9. attach pc100 ax25 Obsolete. 4.10. attach scc init [p | r] [] [] Driver to initialize a generic SCC (8530) interface board prior to actually attaching it. The parameters are as follows: 4.10.1. The number of SCC chips to support. 4.10.2. The base address of the first SCC chip (hexadecimal only). 4.10.3. The spacing between the SCC chip base addresses. 4.10.4. The offset from a chips base address to its channel A control register. 4.10.5. The offset from a chips base address to its channel B control register. 4.10.6. The offset from each channels control register to its data register. 4.10.7. The address of the INTACK/Read Vector port. If none, specify 0 to read from RR3A/RR2B. 4.10.8. The CPU interrupt vector for all connected SCCs. 4.10.9. The clock frequency (PCLK/RTxC) of all SCCs in hertz. Prefix with p for PCLK, r for RTxC clock (for baudrate gen). 4.10.10. Optional hardware type. The following values are currently supported: 1  Eagle card 2  PACCOMM PC100 4  PRIMUSPC card (DG9BL) 8  DRSI PCPA card. 4.10.11. Optional extra parameter. At present, this is used only with the PC100 and PRIMUSPC cards to set the modem mode. The value 0x22 is used with the PC100 and 0x2 is used with the PRIMUSPC card. The attach scc ... init command must be given before the interfaces are actually attached with the following command. 4.11. attach scc slip | kiss | nrs | ax25 [] Attach an initialized SCC port to the system. The parameters are as follows: 4.11.1. The SCC channel number to attach, 0 or 1 for the first chips A or B port, 2 or 3 for the second chips A or B port, etc. 4.11.2. slip | kiss | nrs | ax25 The operating mode of the interface. slip, kiss and nrs all operate the port hardware in asynchronous mode; slip is Internetstandard serial line IP mode, KISS generates SLIP frames containing KISS TNC commands and AX.25 packets and nrs uses Net/Rom local serial link framing conventions to carry Net/Rom packets. Selecting AX.25 mode puts the interface into synchronous HDLC mode that is suitable for direct connection to a half duplex radio modem. 4.11.3. The interface speed in baud (eg. 4800). Prefix with d when an external divider is available to generate the TX clock. When the clock source is PCLK, this can be a /32 divider between TRxC and RTxC. When the clock is at RTxC, the TX rate must be supplied at TRxC. This is needed only for full duplex synchronous operation. When this arg is given as ext, the transmit and receive clocks are external, and the internal baud rate generator (BRG) and digital phase locked loop (DPLL) are not used. 4.12. Attach Examples Here are some examples of the attach command: # Attach the PC asynch card normally known as com1 (the first controller) # to operate in pointtopoint slip mode at 9600 baud, calling it sl0. # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger # than 256 bytes are fragmented. attach asy 0x3f8 4 slip sl0 1024 256 9600 # Attach the secondary PC asynch card (com2) to operate in AX.25 mode # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it ax0. # By default, IP datagrams are sent in UI frames attach asy 0x2f8 3 ax25 ax0 1024 576 9600 # Attach a axip wormhole attach axip ai0 256 129.179.122.10 pa0gri11 # on the other side of the wormhole attach axip ai0 256 129.179.122.130 pa0gri12 # Now assume 129.179.122.10 has a AX.25 interface # with callsign pa0gri10 and 129.179.122.130 a # interface with callsign pa0gri8 # Now a AX.25 frame like: # pe1chl>pa0gri11>pa0gri8>pe1dna [ data] # Received by pa0gri11, set the hasbeendigipeated # change the interface callsign with the one it really came in from # and encapsulates it in a IP frame type 93 and ships it to # 129.179.122.130 # pe1chl>pa0gri10*>pa0gri8>pe1dna [ data] # Arrived at 129.179.122.130 the next digi is searched for # and found. The frame is changed into: # pe1chl>pa0gri10*>pa0gri12*>pe1dna [ data] # so that on the way back the frame will find the # right interface. # Attach the packet driver loaded at interrupt 0x6b # The packet driver is for an Ethernet interface attach packet 0x6b ethernet 15 1500 5. FTP Subcommands During converse mode with an FTP server, everything typed on the console is first examined to see if it is a locallyknown command. If not, the line is passed intact to the remote server on the control channel. If it is one of the following commands, however, it is executed locally. (Note that this generally involves other commands being sent to the remote server on the control channel.) 5.1. dir [ | []] Without arguments, dir requests that a full directory listing of the remote servers current directory be sent to the terminal. If one argument is given, this is passed along in the LIST command; this can be a specific file or subdirectory that is meaningful to the remote file system. If two arguments are given, the second is taken as the local file into which the directory listing should be put (instead of being sent to the console). The PORT command is used before the LIST command is sent. 5.2. flow [off|on] Displays or sets the more processing on the current ftp session. When set to on, a more prompt is displayed after each screen full of data. You can do the same with a session # flow command. Note that this is a local extension to the standard ftp command set. 5.3. get [] Asks the remote server to send the file specified in the first argument. The second argument, if given, will be the name of the file on the local machine; otherwise it will have the same name as on the remote machine. The PORT and RETR commands are sent on the control channel. 5.4. hash A synonym for the verbose 3 command. 5.5. ls [ | []] This is identical to the dir command except that the NLST command is sent to the server instead of the LIST command. This results in an abbreviated directory listing, i.e., one showing only the file names themselves without any other information. 5.6. mget [ ...] Fetch a collection of files from the server. File names may include wild card characters; they will be interpreted and expanded into a list of files by the remote system using the NLST command. The files will have the same name on the local system that they had on the server. 5.7. mkdir Creates a directory on the remote machine if authorized. 5.8. mput [ ...] Send a collection of files to the server. File names may include wild card characters; they will be expanded locally into a list of files to be sent. The files will have the same name on the server as on the local system. 5.9. put [] Asks the remote server to accept data, creating the file named in the first argument. The second argument, if given, will be the name of the file on the remote machine; otherwise it will have the same name as on the local machine. The PORT and STOR commands are sent on the control channel. 5.10. rmdir Deletes a directory on the remote machine if authorized. 5.11. type [a | i | l ] Tells both the local client and remote server the type of file that is to be transferred. The default, (which can be changed with the ftype command) is a, which means ASCII (i.e., a text file). Type i means image, i.e., binary. In ASCII mode, files are sent as varying length lines of text in ASCII separated by cr/lf sequences; in IMAGE mode, files are sent exactly as they appear in the file system. ASCII mode should be used whenever transferring text between dissimilar systems (e.g., UNIX and MSDOS ) because of their different endofline and/or endoffile conventions. When exchanging text files between machines of the same type, either mode will work but IMAGE mode is usually faster. Naturally, when exchanging raw binary files (executable, compressed archives, etc) IMAGE mode must be used. Type l (logical byte size) is used when exchanging binary files with remote servers having oddball word sizes (e.g., DECSYSTEM10s and 20s). Locally it works exactly like IMAGE, except that it notifies the remote system how large the byte size is. Bytesize is typically 8. The type command sets the local transfer mode and generates the TYPE command on the control channel. 5.12. verbose [0 | 1 | 2 | 3] Set or display the level of message output in file transfers. Verbose 0 gives the least output, and verbose 3 the most, as follows: 0  Display error messages only. 1  Display error messages plus a oneline summary after each transfer giving the name of the file, its size, and the transfer time and rate. 2  Display error and summary messages plus the progress messages generated by the remote FTP server. (This setting is the default.) 3  Display all messages. In addition, a hash mark (#) is displayed for every 1,000 bytes sent or received. If a command is sent to the remote server because it is not recognized locally, the response is always displayed, regardless of the setting of verbose. This is necessary for commands like pwd (display working directory), which would otherwise produce no message at all if verbose were set to 0 or 1. 6. Dialer Subcommands Each dialer command may (should) have a different dialer file. The file resides in the configuration directory, as specified in the Installation section (see chapter 1). A typical dialer file might be: # Set the speed, and toggle DTR to ensure modem is in command mode. control down wait 3000 speed 2400 control up wait 3000 # Dial, and wait for connection send atdt5551212\r wait 45000 CONNECT speed wait 2000 # PAD specific initialization send \r wait 15000 Terminal = send ppp\r wait 10000 \r\n 6.0.1. control down | up Control asy interface. The down option drops DTR and RTS. The up option asserts DTR and RTS. 6.0.2. send string This dialer command will write the specified string to the interface. The string quote marks are required, and the string may not contain embedded control characters. However, the standard C string escape sequences are recognized (\0 should not be used). 6.0.3. speed [ 9600 | 4800 | 2400 | 1200 | 300 ] This dialer command will set the speed of the interface to one of the available speeds. If the speed is missing, the speed will be displayed in the dialer session window. 6.0.4. wait [ test string ] [ speed ] If only the time is specified, the dialer pauses for the desired number of milliseconds. Otherwise, the dialer reads until the test string is detected on the interface. If the string is not detected within the desired time, the autodialer will reset. The string quote marks are required, and the string may not contain embedded control characters. However, the standard C Language string escape sequences are recognized (\0 should not be used). Finally, if the speed parameter is specified, the dialer will continue to read characters until a nondigit is detected. The string read is converted to an integer, and used to set the interface speed. If the trailing non-digit is not detected within the desired time, or the integer value is not a valid speed, the autodialer will reset. 7. Installation NOS uses the following file and directory structure: ~/alias ~/autoexec.nos ~/dialer ~/domain.txt ~/ftpusers ~/net.rc ~/netrom.sav ~/popusers ~/finger/ ~/etc/printcap ~/etc/lpdperms ~/etc/log ~/spool/areas ~/spool/mail.log ~/spool/net.log ~/spool/forward.bbs ~/spool/history ~/spool/rewrite ~/spool/help/ ~/spool/mail/ ~/spool/mqueue/ ~/spool/news/ ~/spool/news/active ~/spool/news/pointer ~/spool/news/info ~/spool/news/help ~/spool/news/history ~/spool/news/forward ~/spool/news/poll ~/spool/rqueue/ ~/spool/signatur/ ~/spool/lpd/ The ~ symbol in front of all files is a directory offset definable with the d option on the NOS command line. Any name may be chosen and is default empty. (eg. just /) If for example d/net is given, the structure shifts to /net/... The alias, autoexec.nos, dialer, domain.txt net.rc, popusers and ftpusers configuration files are located here. The netrom.sav file will be created there. The /spool directory and its subdirectories are used by the BBS, SMTP and NNTP services. The areas, forward.bbs, history, mail.log and rewrite configuration files are located here. The /spool/news directory can have many subdirectories and each subdirectory can have subdirectories. Newsgroups are split into hierarchical directory structures. A news article in newsgroup rec.amateur.radio.packet will end up in /spool/news/rec/amateur/radio/packet.txt. 7.2. The /popusers File Here are the username / password combinations defined for the POP users. It has a simple convention: user:password: For every POP user such a line has to be added. The user and password fields should match the pop userdata statement of the remote user. Both user and password have to be delimited with a colon character. 7.4. The /domain.txt File NOS translates domain names (eg. ka9q.ampr.org) to IP addresses (eg. 44.0.0.1) through the use of an Internet Domain Name resolver and a local cache file, domain.txt. Whenever the user specifies a domain name, the local cache is searched for the desired entry. If it is present, it is used; if not, and if domain name server(s) have been configured, a query is sent over the network to the current server. If the server responds, the answer is added to the domain.txt file for future use. If the server does not respond, any additional servers on the list are tried in a roundrobin fashion until one responds, or the retry limit is reached (see the domain retry command). If domain.txt does not contain the desired entry and there are no configured domain name servers, then the request immediately fails. If a domain name server is available, and if all references to hostids in your /autoexec.nos file are in IP address format, then it is possible to start with a completely empty domain.txt file and have NOS build it for you. However, you may wish to add your own entries to domain.txt, either because you prefer to use symbolic domain names in your /autoexec.nos file or you dont have access to a domain server and you need to create entries for all of the hosts you may wish to access. Each entry takes one line, and the fields are separated by tabs. For example: ka9q.ampr.org. IN A 44.0.0.1 IN is the class of the record. It means Internet, and it will be found in all entries. A is the type of the record, and it means that this is an address record. Domain name ka9q.ampr.org therefore has Internet address 44.0.0.1. Another possible entry is the CNAME (Canonical Name) record. For example: ka9q.ampr.org. IN CNAME pc.ka9q.ampr.org. This says that domain name ka9q.ampr.org is actually an alias for the system with (primary, or canonical) domain name pc.ka9q.ampr.org. When a domain name having a CNAME record is given to NOS, the system automatically follows the reference to the canonical name and returns the IP address associated with that entry. Entries added automatically by NOS will have an additional field between the domain name and the class (IN) field. For example: pc.ka9q.ampr.org. 3600 IN A 44.0.0.1 This is the timetolive value, in seconds, associated with the record received from the server. Clients (such as NOS) caching these records are supposed to delete them after the timetolive interval has expired, allowing for the possibility that the information in the record may become out of date. This implementation of NOS will decrement the TTL to zero, but will not delete the record unless the clean flag is on (see the domain cache clean command). When a remote server is not available, the old entry will be used. When the TTL value is missing (as in the examples above), the record will never expire, and must be managed by hand. Since domain.txt is a plain text file, it may be easily edited by the user to add, change or delete records. Additional types of records, include NS (name server) and SOA (start of authority) may appear in domain.txt from remote server responses. These are not currently used by NOS but are retained for future development (such as the incorporation of a domain name server into NOS itself). 7.5. The /alias file. SMTP server ALIAS file. This is for resolving a given target address into a single or multiple entry mail list. Format: mail_list_name call_1@host_1 [call_2@host_2]......# comments pa0gri gvdg@fridley.cdh.cdc.com kelvin g1emm@g1emm.ampr.org # bob gb3xp@gb3xp.ampr.org ian g3rra@g3rra.ampr.org jim g1wkk@g1wkk.ampr.org john g5ds%gb3kp@gb3xp.ampr.org ted gb3kp%gb3kp@gb3xp.ampr.org ron g6vug@g6vug.ampr.org tim g4uqe@g4uqe.ampr.org gareth g6kvk%gb7spv@gb3xp.ampr.org bolton gb7tcp%gb7crg@gb3xp.ampr.org julian g7efe%gb7cfb@gb3xp.ampr.org # world g3rra@g3rra.ampr.org gb3xp@gb3xp.ampr.org g1plt@g1plt.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g6kvk%gb7spv@gb3xp.ampr.org g1ttg@g1ttg.ampr.org g6vug@g6vug.ampr.org g6kqz@g6kqz.ampr.org g4uqe@g4uqe.ampr.org g8ogr@g8ogr.ampr.org g4xwv@g4xwv.ampr.org # locals g3rra@g3rra.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g4bio@g4bio.ampr.org g1plt@g1plt.ampr.org g4uqe@g4uqe.ampr.org g6kqz@g6kqz.ampr.org g4tnu@g4tnu.ampr.org g6xqb@g6xqb.ampr.org Note that it is reasonable, and sometimes desirable, to have alias records in the form: area area dest1 dest2 As the /alias file is scanned only once, this does not result in an infinite recursion. 7.6. The /spool/areas file. This file is a header file shown to a mailbox user when he requests the a display. It should show all public mailboxes to read. Here is a sample:  PublicMailAreas ------- | General  Any old chitchat that is clean. | TcpIp  General Discussion IP messages | Bugs  Where to report bugs | Updates  NOS version UPDATES | | -------- 7.7. The /spool/forward.bbs file. The mailbox reads a forwarding file, spool/forward.bbs. Here is a sample file: wb0ttw 0006 ax25 ax0 wb0ttw wb0ttw w0tn mspbul all  wb0gdb netrom #msparh .c msparh all  The first word on the first line in a forwarding record is the name of the BBS to forward to. This should be the same type of name which is shown by the mbox status command. The second word is optional. It specifies a range of hours when forwarding may take place. 0006 means that there will only be forwarding to this station between midnight and 6am. The second line specifies how to establish the connection. It should start with the protocol (ax25, connect, tcp, telnet or netrom) and be followed by all the parameters which are necessary when NOS has to establish a connection. Directly after the second line, there may be lines that start with a dot. What follows after the dot will be send to the remote BBS as soon as the connection is established. Then follows the names of a number of message areas, public or private. Finally, there should be a couple of  signs to separate one forwarding record from another. Also terminate the file with a last line of dashes. 7.8. The /spool/rewrite file. Read the rewrite file for lines where the first word is a regular expression and the second word are rewriting rules. An optional third field, containing just the letter r, when present, instructs NOS to restart the rewrite file, using the new destination address. The special character $ followed by a digit denotes the string that matched a * character. The * characters are numbered from 1 to 9. Example: the line *@*.* $2@$1.ampr.org would rewrite the address foo@bar.xxx to bar@foo.ampr.org. # *@g1emm.ampr.org $1 *@g1emm.ampr $1 *@g1emm $1 # *!*!*!*!*!*!* $7%$6@$5@$4@$3@$2@$1 *!*!*!*!*!* $6%$5@$4@$3@$2@$1 *!*!*!*!* $5%$4@$3@$2@$1 *!*!*!* $4%$3@$2@$1 *!*!* $3%$2@$1 *!* $2@$1 !* $1 r # # TheX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUY[\]^`abcdefghijklmnopqrstuvwxyz{|}~e there are many ways in which the program can be compiled, Ill assume you enabled them all, and describe each command or feature. Be warned that you really cant enable them all, because you will run out of memory in both segment size, and the 640k DOS limit. As with any document there may be errors, but my intention was to use angle brackets <, > for mandatory syntax, and square brackets [, ] for optional syntax. 1.0.1 The NOS.EXE Program The DOS executable file NOS.EXE (hereafter called NOS) provides Internet TCP/IP, Net/Rom, and AX.25 facilities. Because it has an internal multitasking operating system, NOS can act simultaneously as a client, a server and a packet switch for all three sets of protocols. That is, while a local user accesses remote services, the system can also provide those same services to remote users while also switching IP, Net/Rom and AX.25 packets and frames between other client and server nodes. The keyboard and display is used by the local operator to control both host ant the rewrite file, using the new destination address. The special character $ followed by a digit denotes the string that matched a * character. The * characters are numbered from 1 to 9. Example: the line *@*.* $2@$1.ampr.org would rewrite the address foo@bar.xxx to bar@foo.ampr.org. # *@g1emm.ampr.org $1 *@g1emm.ampr $1 *@g1emm $1 # *!*!*!*!*!*!* $7%$6@$5@$4@$3@$2@$1 *!*!*!*!*!* $6%$5@$4@$3@$2@$1 *!*!*!*!* $5%$4@$3@$2@$1 *!*!*!* $4%$3@$2@$1 *!*!* $3%$2@$1 *!* $2@$1 !* $1 r # # The End PAGE 1-44 PAGE 1-43 PAGE  PAGE  PAGE 1-44 PAGE 1-43 @ @ 1-1161-1171-1161-117 FTPUSERS 1-361-371-361-37 1-1161-1171-1161-117g9h91:9:;;L;e;;<<<=+=3=4=5=t=====>>e?f?@@AAAAAA?B@BLBMB_B`BqBrBBBBBBBBBBBBBCCCC1C2CJCKCbCcCtCuCCCCCCCCCCC D DDD-H7H8HSH]H^HjIIII:JJJ?LLLL]c]c]c`LLLLL M+M,MvM~MMMMMNNN8OAOBOOOO(Q9Q:QQ]T]]]]bbodsdtdddPeUeVeeeeeeffgg&g=g>gSillzm{mOxUxVx`xax|*|+|w||||||}1}2};}<}\}m}n}}}}}}}}}};~L~M~12k]c]cVa  *:;Vghʀ׀؀ـ"#^lm ƒÃOPdeAKL]^ωЉghvw%:;EFnoxy,-67V]cct  ' 4 G Y m !!2!J!\!u!!!!!!" """%&&&A&L&+L&-'X'''')(l(((&)_))),*-*****++P+Y+Z++++j,x,y,-- ------///;0*;0036 9o;;;<>AQBVBWB$C*C+CCCCCCCDDDDDDDDDE!G)G*GHHHkIzIII*III7JIJkJJEKQKRKZKMPUQzS>T&V-V8V9VgVWXYZZPZaZbZZZZZ [[7[I[J[h[{[|[[[[+[[[[\,\-\\]]L]a]b]]]] ^^^:^L^M^p^^^^^^^^u____` ` ``G`m`n````+`aaa#bIbJbbbbe%e&efeeef@fAf`grgsgggg3jXjYjSkvkwkilllm%m&minnn;oXoYop+pqqruuuuuuvw wpwwwxxx!y`yay2zOzPzj{{{{{{|||}4}5}}}} !%+%()A]^MEbcBCABzŅ҅Ӆ+%6>?NYdew"+,0dno~ϊ*67I^jk~ʋ֋+֋ njȌՌˍԍ  *+I )*<N`+`jkpϑޑߑ&5EScdgxÔӔ +7FXY+Ǘٗڗ./U9EUVWcnoښ*NXdp{|*|ǝ՝ޝJT_kwxɞʞ8CLXYgן,'78FQRhr}~Uamnͣףأ0d¦+,NOHp + >[\ήSrsݰ RpqLWXhβϲ BTUlfpq+µõܵ !+4>HUdowƷ4ABT͹ٹڹ~*eqrļ׼ؼ89`6lپ 9xڿ @u(Vp!W+$T OzR3i6T6SHef]Tlz{,,;<e&@JK^h)P_v)foro)u ".I-  +      s          @ZPrs?ghJ-)LM9:a|}?@T w x !4!5!"""#"c"""###-$%m*-m***$,:,;,,,,M-X-Y----...#1^1112:2q2223M333344/4C4W4p444445!5;5T5-T5m5n555666777 888y8889 :%:&::::W;u;v;;;<h<<<u=->6>7>>>>> ? ????N@-N@l@m@BBBNBBBCECFC?DtDuDdEEEF,F-FFFFH I IIII/JZJ[JKPbPPPPQQQRRRxSSSSTTpTTTJV`VaVKXbXcXYGYHY@[^[_[m\\]5]6]]]]Z^e^f^-f^^__Q_p_q_```a7a8aaabFbGbbb=c]c^cdeezTzUz{o)*cr6@Ae؋ً+,֌׌-׌0UVۏÑđԑ 1fg͒ΒW~-^|}Õ3VWqՖ,WXɗ@qr0RSb  Ko-m9cd#?@>WXR_`DTp :[Ҥ!:Shv-٥CDͩΩiJjk NlmدȰ ų`|}-}Edeõĵ;Yη5[ܸ !"KghӹԹ»-»  U/B TtuGoݿ!"`~b !Sk-q@{e[emK-Kqr23Xlm7    :WXn- >iSpq +,6TU,89q1@L&--8e.Ihi =UV& M   4 5     * +  F G    CDy-5[e@RJKNfg )*"#hDe-efCcd>!Z![!!&"'"$%%%+&s&&&&'h'':(P(Q((((7)B)C))))A*a*b*!+3+4+,E--E-x-y-//!0X0v00!1Z1f111<2222223"3#3334V444%5I5}6677729X;h;i;;<<W=w>>->>>>>???pAAAAAAA=BdByCCCDDD%E0E1EEEEFFFFFFHRHSH J=JgJhJrJJJJ-JKKKTKlKMNNOOAPP1Q2Qv?v wMwZwdwowzwwwwwwwx x-x?x@xYxZxxxxyyyz-zzz|}~~7~?~N~W~d~o~x~~~~~~~~~~%3AQ_s Sde}-}~لڄ<Y=t͎‘2:wϒ"B\vq)-d gateway level functions, for which a number of commands are provided. 1.1 Disk Configuration and files This section describes the disk configuration and the purpose and samples of the various files. 1.1.1 AUTOEXEC.NOS Text file used to completely configure NOS to your stations requirements. Order is important. Generally you set everything up before starting up the servers. 1.1.2 FTPUSERS Since DOS is a singleuser operating system, it provides no access control; all files can be read, written or delete( YZdeno˞̞JKST?CDԢբFnoz{ƣǣ{|vwѥҥ&GH_`ݦަRS^_ԧ,@PYhr~eEIJŬ N߭*ǮЮٮڮ   ϯۯ;YZ(0:pyz~гݳ&4rv fĹ:DO`kwļż/0W`ο]cdοۿPY} <F\jkyz 9:HRSir~Van.@Abc*+;<LMNoXlhMGb01]cJbd by the local user. It is usually undesirable to give such open access to a system to remote network users. NOS therefore provides its own access control mechanisms. The file FTPUSERS controls remote FTP and mailbox access. The FTP default is no access; if this file does not exist, the FTP server will be unusable. A remote user must first log in to the system with the USER and PASS commands, giving a valid name and password listed in FTPUSERS, before anyone can transfer files. Each entry in FTPUSERS consists of a single line of the form: username password /path permissions ip_address There must be at least four fields, and there must be exactly one space between each field. Comments may be added after the last field. Comment lines begin with # in column one. Username is the users login name. Password is the required password. Note that this is in plain text; therefore it is not a good idea to give general read permission to the root directory. A password of * (a single asterisk) means that any passwo BBS as soon as the connection is established. Then follows the names of a number of message areas, public or private. Finally, there should be a couple of  signs to separate one forwarding record from another. Also terminate the file with a last line of dashes. 7.8. The /spool/rewrite file. Read the rewrite file for lines where the first word is a regular expression and the second word are rewriting rules. An optional third field, containing just the letter r, when present, instructs NOS to restart the rewrite file, using the new destination address. The special character $ followed by a digit denotes the string that matched a * character. The * characters are numbered from 1 to 9. Example: the line *@*.* $2@$1.ampr.org would rewrite the address foo@bar.xxx to bar@foo.ampr.org. # *@g1emm.ampr.org $1 *@g1emm.ampr $1 *@g1emm $1 # *!*!*!*!*!*!* $7%$6@$5@$4@$3@$2@$1 *!*!*!*!*!* $6%$5@$4@$3@$2@$1 *!*!*!*!* $5%$4@$3@$2@$1 *!*!*!* $4%$3@$2@$1 *!*!* $3%$2@$1 *!* $2@$1 !* $1 r # # The End PAGE 1-34 PAGE 1-35 PAGE  PAGE  PAGE 1-34 PAGE 1-118 @ @ 1-1181-1171-118[5[@[L\\bbhh3p6pyy||ܚ%bl  {|}w`b   ++++Q,R,S,/35799(P+PPP\Z_Z`Z\\]\]]]^^^^^M_P_Q_V]c]ch]^J]cV]cZQ_R____ a atmwmxmym{{q|t|b}c}d}r}s}''' ''''66888:8;8ooqrzzzzף  !#$*+,./56:;<>?EFKLP uDPV]c]c^LMNOPQu]cP KKKK L*LKLLLLM0NIN|NNNNO"O9OUOcOhOiOOP(PWPPPPQ4QcQQQQQRGRHRRRjTTTT$$$$$$$$$=$$$$$$$$$$$$=$$$$$$$$$$$$$$$$$-TTTTTUU)U?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwxyz{|}~SummaryInformationM gM #\(#(\\\Y!&\] #% m#(C@6>#AqA ݶRWe,A [1BB #]kA oG> ]#h?A `kA)LkB nA n T,B"o&#=asUUB ! WYZ.] PE$0Bt6$S#Q .R9Q /3!  # #0gR)Q$GӃDR)!t@t? Steven R. Sampson@Av@x@szGo)@U0Microsoft Word 6.0w17ࡱ;  FMicrosoft Word 6.0 Document MSWordDocWord.Document.6;  Oh+'0$H l   Dh KF*; whSjC:\WINWORD\TEMPLATE\NORMAL.DOTJNOS Reference ManualTCP/IP System for the PCSteven R. Sampson      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ k) means that any password is acceptable. /path is the allowable prefix on accessible files. Before any file or directory operation, the current directory and the user specified file name are joined to form an absolute path name in canonical form (i.e., a full path name starting at the root, with ./ and ../ references, as well as redundant /s, recognized and removed). The result must begin with the allowable path prefix; if not, the operation is denied. This field must always begin with a /, i.e., at the root directory. Multiple directories can be specified by separating them with a ; character and no whitespace around them. Permissions is a decimal number granting permission for read, create and write operations. If the low order bit (0x1) is set, the user is allowed to read a file subject to the path name prefix restriction. If the next bit (0x2) is set, the user is allowed to create a new file if it does not overwrite an existing file. If the third bit (0x4) is set, the user is allowed to write a file even if it overwrites an existing file, and in addition he may delete files. Again, all operations are allowed subject to the path name prefix restrictions. Permissions may be combined by adding bits, for example, 0x3 (= 0x2 + 0x1) means that the user is given read and create permission, but not overwrite/delete permission. Additional permission bits used by the mailbox and PPP are: 1 Read files 2 Create new files 4 Overwrite and delete existing files 8 AX.25 gateway operation allowed 16 Telnet gateway operation allowed 32 Net/Rom gateway operation allowed 64 Remote sysop access allowed (Powerful) 128 This user is a LID, banned from BBS access 256 Priv bit for PPP connection 512 Priv bit for peerID/pass lookup 1024 disallow send commands (except to SYSOP) 2048 disallow read commands 4096 disallow 3rd party mail 8192 This station is a known BBS ip_address is used for PPP only and is the remote IP address of the connected system. A username of univperm has special meaning in the validation mechanism. If univperm is included as a valid user in ftpusers then any unknown user (not in FTPUSERS) will be mapped into univperm and get its permission bits and file path. If univperm is not included in FTPUSERS, unknown users are not permitted nor validated. For example, suppose ftpusers on machine ka9q.ampr.org contains the line: friendly test /testdir 7 A session using this account would look like this: net> ftp ka9q.ampr.org Resolving ka9q.ampr.org ... Trying 44.0.0.1 ... FTP session 1 connected to ka9q.ampr.org 220 ka9q.ampr.org FTP ready Enter user name: friendly 331 Enter PASS command Password: test [not echoed] 230 Logged in ftp> The user now has read, write, overwrite and delete privileges for any file under /TESTDIR; they may not access any other files. Here are some more sample entries in ftpusers: karn foobar / 7 # User karn with password foobar may read, # write, overwrite and delete any file on the system. guest bletch /g/bogus;/public 3 # User guest with password bletch may read # any file under /g/bogus and its subdirectories, # and /public and its subdirectories, # and may create a new file as long as it does # not overwrite an existing file. He may NOT # delete any files. anonymous * /public 1 # User anonymous (any password) may read files # under /public and its subdirectories; he may # not create, overwrite or delete any files. This last entry is the standard convention for keeping a repository of public files; in particular, the username anonymous is an established convention. 1.1.3 NET.RC Text file used to list the hostname, logins, and passwords to be issued when the administrator performs an FTP. Each line starts with the name of the FTP station followed by an user and password login statement which is sent to the server for validation. The name, user and password are separated with a space. Not a tab or more than one space character. Following is a sample: ucsd.edu anonymous nightly@nbc.com unix.ka9q.ampr.org guest pa0gri 1.1.4 ALIAS 1.1.5 DOMAIN.TXT 1.1.6 POPUSERS 1.1.7 ONEXIT.NOS 1.1.8 FINGER 1.1.9 FINGER/DBASE.DAT 1.1.10 PUBLIC 1.1.11 SPOOL 1.1.12 SPOOL/AREAS 1.1.13 SPOOL/MAIL 1.1.14 SPOOL/MQUEUE 1.1.15 SPOOL/RQUEUE 1.1.16 SPOOL/REWRITE 1.1.17 SPOOL/FTPMOTD.TXT 1.1.18 SPOOL/SIGNATUR 1.1.19 SPOOL/HISTORY 1.1.20 SPOOL/HELP 1.1.21 SPOOL/MOTD.TXT 1.1.22 SPOOL/USERS.DAT 1.1.23 SPOOL/FORWARD.BBS 1.1.24 SPOOL/EXPIRE.DAT 1.1.25 SPOOL/NEWS 1.1.26 SPOOL/NEWS/ACTIVE 1.1.27 SPOOL/NEWS/POINTER 1.1.28 SPOOL/NEWS/INFO 1.1.29 SPOOL/NEWS/HELP 1.1.30 SPOOL/NEWS/HISTORY 1.1.31 SPOOL/NEWS/FORWARD 1.1.32 SPOOL/NEWS/POLL 1.2 Starting NOS When NOS is executed without arguments, it attempts to open the file AUTOEXEC.NOS in the root directory of the current drive. If it exists, it is read and executed as though its contents were typed on the console as commands. This feature is useful for attaching communication interfaces, configuring network addresses, and starting the various services. Starting NOS is usually done through the AUTOEXEC.BAT batch file. This batch file should be designed so that a power reset will automatically reboot the computer and restart the program. NOS also features a remote control reboot command, and the batch file should also handle this case. First Ill show you how the command is executed from the command line, and then will cover a sample batch file. When the exit command is given inside NOS, the commands given in the file ONEXIT.NOS are executed first before returning to DOS. Administrators should switch to the Unix style of specifying subdirectories. You will get into trouble with the DOS style. For example: nos d\nos is not always the same as: nos d/nos And will cause you to consume many a sixpack trying to do a mindmeld with what the multitudes of NOS hackers decided. Sure it might work with this version, but the next hacker may change everything. So meldUnixStyle. The syntax for beginning NOS operation is: nos [ [b] [c num] [d dir] [f filename] [n] [r rows] ... ... [s sockets] [v] [x dir] startup filename ] The switches have the following meaning: b Enables screen output through the BIOS (default direct video) c Define the number of columns on screen (default checks hardware) d Define the root directory for the NOS file structure. Ignored if the f option is used f Define filename for the directory structure configuration file. Takes priority over d option n Disables seperate window for tracing (default enabled) r Define the number of rows on screen (default checks hardware) s Define the number of connection sockets (default 40) v Enables verbose output of AUTOEXEC.NOS and its read progress (default nonverbose) After all command line options, the name of an alternate startup file may be specified. This file is then opened and read instead of AUTOEXEC.NOS. 1.3 DOS Startup Files 1.3.1 AUTOEXEC.BAT 1.3.2 CONFIG.SYS 1.4. DOS environment variables. The following environment variables can be used to specify things to NOS. 1.4.1 TZ The TZ variable should be set to the local timezone. Default is UTC. This is used on the timestamp in SMTP. 1.4.2 MAILER The MAILER specifies what program should be started when the mail command is entered. Default is BM.EXE (not included in the distribution generally). 1.4.3 COMSPEC The COMSPEC specifies what command shell will be used to shell out of NOS. This is normally set by DOS startup to COMMAND.COM. Default is also COMMAND.COM. 1.4.4 TMP The TMP variable is used to create a spot where temporary files are created. Without TMP being set the temp files are created in the root directory. A sample is: set TMP=C:\tmp\ 1.4.5 USER The USER variable is used by FTP and RLOGIN to set the username for the rlogin daemon on the remote system. The default when not setting USER is guest. With FTP the user is suggested in the user name prompt. If a carriage return only is given the suggested name is used, otherwise the given name. 1.5 Console modes The console may be in one of two modes: command mode and converse mode. In command mode, the prompt net> is displayed and any of the commands described in the Administrator commands section may be entered. In converse mode, keyboard input is processed according to the current session. Sessions come in many types: Telnet, Ttylink, Rlogin, FTP, AX25, Finger, Command, Net/Rom, Ping, More, Dial, Dir, PPP PAP, Hopcheck and Tip. In a Telnet, Ttylink, AX25, Net/Rom, Rlogin, or Tip session, keyboard input is sent to the remote system and any output from the remote system is displayed on the console. In an FTP session, keyboard input is first examined to see if it is a known local command; if so it is executed locally. If not, it is passed through to the remote FTP server. (See the FTP Subcommands chapter). In a Ping session the user may test the path to a remote site, in a More session, the user may examine a local file. A Hopcheck session is used to trace the path taken by packets to reach a specified destination. A Finger session is used to peek at a remote system for its users (and what they are doing on some UNIX systems). PPP PAP is used as a link setup like slip between two systems. The keyboard also has cooked and raw states. In cooked state, input is lineatatime; the user may use the line editing characters ^U, ^R, ^B, ^W and backspace to erase the line, redisplay the line, redisplay the remainder of the previous line, erase last word and erase the last character, respectively. Hitting either return or line feed passes the complete line up to the application. In raw mode, each character is immediately passed to the application as it is typed. The keyboard is always in cooked state in command mode. It is also cooked in converse mode on an AX25, FTP or Net/Rom session. In a Telnet or Ttylink session it depends on whether the remote end has issued (and the local end has accepted) the Telnet WILL ECHO option. (See the echo command). In DOS, the user may escape back to command mode by hitting the F10 key or the escape key. On other systems, the user must enter the escape character, which is by default control] (hex 1d, ASCII GS). (Note that this is distinct from the ASCII character of the same name). The escape character can be changed (see the escape command). The F10 key can be redefined with the fkey command so the user is now warned to leave one escape possibility open for himself. Setting both F10 and escape to unreachable codes renders a system unescapable and the user hung in a session. In the DOS version, each session (including the command session) has its own screen. When a new session is created, the command display is saved in memory and the screen is cleared. When the command escape key (usually F10 or ^]) is hit, the current session screen is saved and the command screen is restored. When a session is resumed, its screen is restored exactly as it appeared when it was last current. NOS expects that the driver NANSI.SYS is loaded to support the screen and terminal emulation routines. ANSI.SYS has many problems and should not be used. Users of DesqView should be ok with DVANSI.SYS. 2.0 Administrator Commands This section lists the commands that may be given at the net> command prompt. Each of these commands may be installed in the AUTOEXEC.NOS startup configuration file, or they may be entered online. These commands are listed in alphabetical order below. Many commands take subcommands or parameters, which may be optional or required. In general, if a required subcommand or parameter is omitted, an error message will summarize the available subcommands or required parameters. (Giving a ? in place of the subcommand will also generate the message. This is useful when the command word alone is a valid command.) If a command takes an optional value parameter, issuing the command without the parameter generally displays the current value of the variable. (Exceptions to this rule are noted in the individual command descriptions.) Two or more parameters separated by vertical bars denote a choice between the specified values. Optional parameters are shown enclosed in [brackets], and a parameter enclosed in should be replaced with an actual value or string. For example, the notation denotes an actual host or gateway, which may be specified in one of two ways: as a numeric IP address in dotted decimal notation (eg. 44.0.0.1.), or as a symbolic name listed in the file domain.txt. All commands and many subcommands may be abbreviated. You only need type enough of a commands name to distinguish it from others that begin with the same series of letters. Parameters, however, must be typed in full. Certain FTP subcommands (eg. put, get, dir, etc) are recognized only in converse mode with the appropriate FTP session; they are not recognized in command mode. (See the FTP Subcommands chapter.) 2.1 Carriage Return Entering a carriage return (empty line) while in command mode puts you in converse mode with the current session. If there is no current session, NOS remains in command mode and re-issues the net> prompt. 2.2 # Starts a comment. All text after it to the end of line is ignored. Generally used in the AUTOEXEC.NOS start up file. 2.3 ! ! [command] shell [command] Brings you to the DOS prompt or executes the command given. Puts the NOS program in background if the MULTITASK switch is on, otherwise leaves NOS in the paused state. Use the DOS exit command to return back to NOS. 2.4 ? ? help Shows the list of administrator commands. Same as the HELP command. 2.5 ABORT abort Abort a FTP get, put or dir operation in progress. If issued without an argument, the current session is aborted. (This command only works on FTP sessions.) When receiving a file, abort simply resets the data connection; the next incoming data packet will generate a TCP RST (reset) response to clear the remote server. When sending a file, abort sends a premature endoffile. Note that in both cases abort will leave a partial copy of the file on the destination machine, which must be removed manually if it is unwanted. 2.6 ARP Display the Address Resolution Protocol table that maps IP addresses to their subnet (link) addresses on subnetworks capable of broadcasting. For each IP address entry the subnet type (eg. Ethernet, AX.25), subnet address and time to expiration is shown. If the link address is currently unknown, the number of IP datagrams awaiting resolution is also shown. 2.6.1 arp add ether|ax25|netrom|arcnet| | Add a permanent entry to the table. It will not time out as will an automatically created entry, but must be removed with the arp drop command. 2.6.2 arp drop ether|ax25|netrom|arcnet Delete a permanent entry from the arp table. 2.6.3 arp flush Drop all automatically created entries in the ARP table. Permanent entries are not affected. 2.6.4 arp publish ether|ax25|netrom|arcnet | This command is similar to the arp add command, but the system will also respond to any ARP request it sees on the network that seeks the specified address. (Use this feature with great care.) 2.7 ASYSTAT asystat Display statistics on attached asynchronous communications interfaces (8250 or 16550A), if any. The display for each port consists of three lines. The first line gives the port label and the configuration flags; these indicate whether the port is a 16550A chip, the trigger character if any, whether CTS flow control is enabled, whether RLSD (carrier detect) line control is enabled, and the speed in bits per second. (Receiving the trigger character causes the driver to signal upper layer software that data is ready; it is automatically set to the appropriate frame end character for SLIP, PPP and NRS lines.) The second line of the status display shows receiver (RX) event counts: the total number of receive interrupts, received characters, receiver overruns (lost characters) and the receiver high water mark. The high water mark is the maximum number of characters ever read from the device during a single interrupt. This is useful for monitoring system interrupt latency margins as it shows how close the port hardware has come to overflowing due to the inability of the CPU to respond to a receiver interrupt in time. 8250 chips have no FIFO, so the high water mark cannot go higher than 2 before overruns occur. The 16550A chip, however, has a 16byte receive FIFO which the software programs to interrupt the CPU when the FIFO is onequarter full. The high water mark should typically be 4 or 5 when a 16550A is used; higher values indicate that the CPU has at least once been slow to respond to a receiver interrupt. When the 16550A is used, a count of FIFO timeouts is also displayed on the RX status line. These are generated automatically by the 16550A when three character intervals go by with more than 0 but less than 4 characters in the FIFO. Since the characters that make up a SLIP or NRS frame are normally sent at full line speed, this count will usually be a lower bound on the number of frames received on the port, as only the last fragment of a frame generally results in a timeout (and then only when the frame is not a multiple of four bytes long.) Finally, the software FIFO overruns and high water mark are displayed. These indicate whether the parameter on the attach command needs to be adjusted (see the Attach Commands section). The third line shows transmit (TX) statistics, including a total count of transmit interrupts, transmitted characters, the length of the transmit queue in bytes, the number of status interrupts, and the number of THRE timeouts. The status interrupt count will be zero unless CTS flow control or RLSD line control has been enabled. The THRE timeout is a stop-gap measure to catch lost transmit interrupts, which seem to happen when there is a lot of activity (ideally, this will be zero). 2.8 AT 2.9 ATTACH attach The most common hardware interface is the Arcnet , Ethernet , and the PC Serial ports. Most other interface boards have a similar syntax but have necessary differences. Try the SCC driver first on internal PC board type TNCs (except Gracillis card), and then possibly a custom driver. The other popular driver is the Crynwr Packet drivers. An easy way to obtain a summary of the parameters required for a given device is to issue a partial attach command (e.g., attach packet.) This produces a usage message giving the complete command format. The details are highly interface dependent, and software dependent on the configuration flags in the source code file CONFIG.H when the software was built. Not all of the drivers listed below will be included in your copy of NOS. Detailed instructions for each driver are in the Attach Commands section. Drivers are available for the following hardware types: 2.9.1 attach 3c500 Obsolete. Dont use this one anymore. Use the Crynwr Packet driver instead. 2.9.2 attach asy Standard PC asynchronous interface (comm port) using the National 8250, 16450, or 16550A chip. 2.9.3 attach axip A wormhole ax25 digipeater device. 2.9.4 attach arcnet An Arcnet driver via the Packet driver. 2.9.5 attach drsi Obsolete, use the SCC Driver. 2.9.6 attach eagle Obsolete, use the SCC Driver. 2.9.7 attach hapn Obsolete, use the SCC Driver. 2.9.8 attach hs Special high speed 8530 driver for the WA4DSY 56kb/s modem. 2.9.9 attach kiss This enables a multiplexed serial port TNC to be used for the second channel. It is used to connect a second port to an already attached asy interface. It will copy most of the parameters of its parent port. 2.9.10 attach netrom This is a pseudo-interface to enable Net/Rom operations. 2.9.11 attach packet Driver for use with separate Crynwr Packet drivers meeting the FTP Software, Inc, Software Packet Driver specification. 2.9.12 attach pc100 Obsolete, use the SCC Driver. 2.9.13 attach pi DMA driven 8530 SCC board. 2.9.14 attach scc SCC Driver for generic 8530 cards. 2.9.15 attach slfp Serial Line Framing Protocol packet driver. 2.10 ATTENDED attended [off | on] Displays or sets the global I am present flag in NOS. This flag is used in the welcome header by incoming ttylink connections, and chat requests from the BBS. 2.11 AUTOROUTE autoroute Displays or sets the IP autorouting option. When set all AX.25 IP packets are analyzed and remembered. 2.12 AX25 ax25 These commands are for AX.25 interfaces. 2.12.1 ax25 bc [on | off] The bc command displays or enables or disables broadcasts via interface interface when on | off are given. 2.12.2 ax25 bcinterval [] The bcinterval displays or sets the time in seconds between bc broadcasts. On display both the interval and the countdown values are shown. 2.12.3 ax25 bckick The bckick command issues a direct broadcast to interface interface when so enabled by a ax25 bc on command. 2.12.4 ax25 bctext [broadcast text] The bctext command displays or sets the text to be send for broadcast messages send out every bcinterval seconds. 2.12.5 ax25 blimit [] Display or set the AX.25 retransmission backoff limit. Normally each successive AX.25 retransmission is delayed by twice the value of the previous interval; this is called binary exponential backoff. When the backoff reaches the blimit setting it is held at that value, which defaults to 30. To prevent the possibility of congestive collapse on a loaded channel, blimit should be set at least as high as the number of stations sharing the channel. Note that this is applicable only on actual AX.25 connections; UI frames will never be retransmitted by the AX25 layer. 2.12.6 ax25 dest See AX.25 hearddest command. This is a shorthand version of it. 2.12.7 ax25 digipeat [on | off] Display or set the digipeater enable flag. If the axip interface is used this flag must be on , otherwise the digipeat function will not work at all. 2.12.8 ax25 filter <0 | 1 | 2 | 3> The filter commands enables or disables the logging in the heard lists of source and destination ax25_addresses. This is a bitwise or function where the 01 value is for source stations and the 02 value for destination stations. When the bit is off, logging is enabled, when on disabled. 2.12.9 ax25 flush Clear the AX.25 heard list. 2.12.10 ax25 heard [] Display the AX.25 heard list. For each interface that is configured to use AX.25, a list of all ax25_addresses heard through that interface is shown, along with a count of the number of packets heard from each station and the interval, in hr:min:sec format, since each station was last heard. The local station always appears first in the listing; the packet count actually reflects the number of packets transmitted. This entry is always present even if no packets have been sent. If interface is given, only the heard list for that interface is displayed. Note that logging of heard stations is controlled with the ax25 filter command. 2.12.11 ax25 hearddest [] Displays the destination list, i.e. the addressed to stations. Next to the time the last transmission to that station the time that station replied (if heard) is displayed. This gives a good reference to see if a station is reachable and responding. 2.12.12 ax25 irtt [] Display or set the initial value of smoothed round trip time to be used when a new AX.25 connection is created. The value is in milliseconds. The actual round trip time will be learned by measurement once the connection has been established. 2.12.13 ax25 kick Force a retransmission on the specified AX.25 control block. The control block address can be found with the ax25 status command. 2.12.14 ax25 maxframe [] Establish the maximum number of frames that will be allowed to remain unacknowledged at one time on new AX.25 connections. This number cannot be greater than 7. Without count it will display the current setting. Note that the maximum outstanding frame count only works with virtual connections. UI frames are not affected. 2.12.15 ax25 mycall [] Display or set the default local AX.25 address. The standard format is used, (e.g., KA9Q1). This command must be given before any attach commands using AX.25 mode are given. 2.12.16 ax25 paclen [] Limit the size of Ifields on new AX.25 connections. If IP datagrams or fragments larger than this are transmitted, they will be transparently fragmented at the AX.25 level, sent as a series of I frames, and reassembled back into a complete IP datagram or fragment at the other end of the link. To have any effect on IP datagrams, this parameter should be less than or equal to the MTU of the associated interface. 2.12.17 ax25 pthresh [] Display or set the poll threshold to be used for new AX.25 Version 2 connections. The poll threshold controls retransmission behavior as follows. If the oldest unacknowledged Iframe size is less than the poll threshold, it will be sent with the poll (P) bit set if a timeout occurs. If the oldest unacked Iframe size is equal to or greater than the threshold, then a RR or RNR frame, as appropriate, with the poll bit set will be sent if a timeout occurs. The idea behind the poll threshold is that the extra time needed to send a small Iframe instead of a supervisory frame when polling after a timeout is small, and since theres a good chance the Iframe will have to be sent anyway (i.e., if it were lost previously) then you might as well send it as the poll. But if the Iframe is large, send a supervisory (RR/RNR) poll instead to determine first if retransmitting the oldest unacknowledged Iframe is necessary; the timeout might have been caused by a lost acknowledgement. This is obviously a tradeoff, so experiment with the poll threshold setting. The default is 128 bytes, one half the default value of paclen. 2.12.18 ax25 reset Delete the AX.25 connection control block at the specified address. 2.12.19 ax25 retry [] Limit the number of successive unsuccessful retransmission attempts on new AX.25 connections. If this limit is exceeded, link reestablishment is attempted. If this fails retry times, then the connection is abandoned and all queued data is deleted. 2.12.20 ax25 route Display the AX.25 routing table that specifies the digipeaters to be used in reaching a given station. 2.12.20.1 ax25 route add [digis ... ] Add an entry to the AX.25 routing table. An automatic ax25 route add is executed if digipeaters are specified in an AX25 connect command, or if a connection is received from a remote station via digipeaters. Such automatic routing table entries wont override locally created entries, however. 2.12.20.2 ax25 route drop Drop an entry for target from the AX.25 routing table. 2.12.20.3 ax25 route mode [vc | datagram | interface] Sets the mode to vc | datagram | interface for target. Interface is the default for that interface. VC is a virtual circuit (AX.25 I-frames connected mode) and datagram is unconnected mode, (AX.25 UI-frames). 2.12.21 ax25 status [] Without an argument, display a oneline summary of each AX.25 control block. If the address of a particular control block is specified, the contents of that control block are dumped in more detail. Note that the send queue units are frames, while the receive queue units are bytes. 2.12.22 ax25 t3 [] Display or set the AX.25 idle keep alive timer. Value is in milliseconds. 2.12.23 ax25 t4 [] Display or set the AX.25 Link redundancy timer. Value is in seconds. When no exchange has been had during this time the link is reset and closed. 2.12.24 ax25 timertype [l | e | o] Sets or displays the type of timer used for retransmission and recovery: linear, exponential or original. 2.12.25 ax25 version [1 | 2] Display or set the version of the AX.25 protocol to attempt to use on new connections. The default is 2 (the version that uses the poll/final bits). 2.12.26 ax25 window [] Set the number of bytes that can be pending on an AX.25 receive queue beyond which I frames will be answered with RNR (Receiver Not Ready) responses. This presently applies only to suspended interactive AX.25 sessions, since incoming Iframes containing network (IP, Net/Rom) packets are always processed immediately and are not placed on the receive queue. However, when an AX.25 connection carries both interactive and network packet traffic, an RNR generated because of backlogged interactive traffic will also stop network packet traffic from being sent. 2.13 BBS bbs Starts a telnet session with the BBS. You must have the telnet server running. See section 3.0 for user commands. 2.14 BOOTP bootp This is a bootp server/client. Not used or tested. 2.14.1 bootp start Starts the bootp server. 2.14.2 bootp stop Stops the bootp server. 2.14.3 bootp dns [] Display or set the list of domain name servers for bootp. 2.12.4 bootp dyip [ | | off] Display or set the interface address range. The range is between ipaddr1 and ipaddr2, both in dot notation. 2.14.5 bootp host [ [boot file]] Display or activate a bootp process. Hardware type is Net/Rom, Ethernet, Appletalk or AX.25. Hardware addr is the interface name. IP addr must be in dot notation. 2.14.6 bootp rmhost Delete ipaddr from the host table. 2.14.7 bootp homedir [ | default] Display or set the directory where the bootp files reside. The default directory is BPFILES. 2.14.8 bootp defaultfile [ | default] Display or set the file name of the bootp file. The default is /BOOT. 2.14.9 bootp logfile [ | default] [on | off] Starts or stops the logging of bootp requests to filename. The default filename is BOOTPLOG. 2.14.10 bootp logscreen [on | off] Enables or disables the logging of bootp to the screen. 2.15 BOOTPD bootpd This starts the server daemon for bootp. 2.16 BULLETIN 2.17 CONNECT connect 2.18 CALLSERVER 2.19 CALLBOOK callbook 2.20 CALLSERVER2 2.21 CD cd 2.22 CDROM 2.23 CLOSE close [] Close the specified session; without an argument, close the current session. On an AX.25 session, this command initiates a disconnect. On a FTP or Telnet session, this command sends a FIN (i.e., initiates a close) on the sessions TCP connection. This is an alternative to asking the remote server to initiate a close (QUIT to FTP, or the logout command appropriate for the remote system in the case of Telnet). When either FTP or Telnet sees the incoming half of a TCP connection close, it automatically responds by closing the outgoing half of the connection. Close is more graceful than the reset command, in that it is less likely to leave the remote TCP in a halfopen state. 2.24 CLS cls Clears the current session screen (command screen). 2.25 COMM comm The comm command sends textstring via interface. This can be used to send straight text to a TNC still in TAPR command mode during NOS startup. Note that to preserve spaces tabs etc. to include the string between double quote characters: comm ax1 start kiss 2.26 CONVERS 2.27 COPY copy Same function as DOS. 2.28 DISCONNECT 2.29 DIR dir [base directory] Same function as DOS. 2.30 DELETE delete Same function as DOS 2.31 DETACH detach 2.32 DIALER dialer [ [ [ []]]] 2.33 DOMAIN 2.34 DUMP 2.35 ERRORS 2.36 ECHO 2.37 EOL 2.38 ESCAPE 2.39 EXIT exit Causes the commands in ONEXIT.NOS to be executed before terminating the NOS program and returning to DOS. 2.40 EXPIRE 2.41 FINGER finger [name [@host]] 2.42 FKEY 2.43 FTP ftp 2.44 FTYPE 2.45 FTPTDISC 2.46 HELP ? help Displays a list of the commands available in your configured version. Additions and deletions are generally contained in the source code file CONFIG.H, and the program is then re-compiled. 2.47 HISTORY 2.48 HOP 2.49 HOSTNAME 2.50 ICMP 2.51 IFCONFIG 2.52 INFO 2.53 IP 2.54 ISAT 2.55 KICK 2.56 LOCK lock This command locks the keyboard. It is useful in an uncontrolled environment. After the password is set, you can use the lock command without any parameters, as it will use the previous assigned password. 2.57 LOG 2.58 LZW lzw lzw [mode] lzw [bits] 2.59 MAIL mail This command will load and shell out to execute the program given in your defined MAILER environment variable of AUTOEXEC.BAT. If MAILER is undefined, the BM.EXE program is the default (not included in distribution generally). If MULTITASK is enabled, and memory is sufficient, the NOS program will continue running in the background. Lack of memory may cause lock up errors. 2.60 MBOX mbox The mailbox routines are massive. There are basically two programs threaded together here. The first is NOS, the second is the BBS clone. The MBOX command has the following subcommands. 2.60.1 attend 2.60.2 bbsonly mbox bbsonly [on | off] Used to configure an interface for BBS users only. Typically an HF interface or backbone interface would be configured this way. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.3 convers 2.60.4 fwdinfo 2.60.5 haddress 2.60.6 header 2.60.7 hideport mbox hideport [on | off] The interface specified is not listed when mailbox users do a (P)ort command. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.8 jumpstart 2.60.9 kick 2.60.10 mailfor 2.60.11 mailstats 2.60.12 maxmsg 2.60.13 mport 2.60.14 newmail 2.60.15 noax25 mbox noax25 [on | off] Used to configure an interface so that AX.25 connections to the mailbox are not permitted. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.16 nobid 2.60.17 nrid 2.60.18 past 2.60.19 password 2.60.20 qth 2.60.21 secure 2.60.22 sendquery mbox sendquery [on | off] Used to configure an interface so that it will prompt you for confirmation of saving your mail. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. Recommend you turn this OFF! Really a stupid addition. 2.60.23 smtptoo 2.60.24 status 2.60.25 sysoponly mbox sysoponly [on | off] Used to configure an interface for sysops only. All other connects will be rejected. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.26 timer 2.60.27 tdisc 2.60.28 tmsg 2.60.29 trace 2.60.30 usersonly mbox usersonly [on | off] Used to configure an interface for users only. A pop up BBS would then be ignored. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.31 utc 2.60.32 zipcode 2.61 MEMORY 2.62 MKDIR mkdir Same function as DOS. 2.63 MODE mode 2.64 MORE more [searchstring] 2.65 MOTD 2.66 MULTITASK 2.67 NETROM netrom interface [n | v] The interface name must have been previously opened. The last parameter enables nonverbose (n) or verbose (v). Default is nonverbose. The MTU of the netrom interface is automatically reduced by the netrom protocols 20 bytes (ax25 paclen  20). If this computed value is greater than or equal to the ifconfig MTU value, then the computed value is discarded. netrom route sort [alias | call] The Net/Rom table of nodes can be sorted by alias or callsign.The sorted item appears first for each heard station, when performing an AX.25 heard command. 2.68 NNTP 2.69 NRSTAT 2.70 OLDBID 2.71 PARAM param 2.72 PING ping [ [ [incflag]]] 2.73 PISTATUS 2.74 POP 2.75 POPMAIL 2.76 PPP 2.77 PROMPT 2.78 PS 2.79 PWD Shows the Present Working Directory. Use CD to change. 2.80 RARP 2.81 RDATE 2.82 RECORD 2.83 REMOTE remote [p port] [k key] [a kickaddr] 2.84 RENAME rename Same function as DOS. 2.85 REPEAT repeat [args...] 2.86 RESET 2.87 RIP 2.88 RLOGIN rlogin Used with Unix( systems to log into a pseudoterminal port. 2.89 RMDIR rmdir Same function as DOS. 2.90 ROUTE 2.91 RSPF 2.92 SESSION 2.93 SCCSTAT sccstat 2.94 SHELL ! [command] shell [command] Suspends NOS and executes a subshell (command processor under DOS). When the subshell exits, NOS resumes (under DOS, enter the exit command). Note: see the COMSPEC environment variable. Background activity (FTP servers, etc) is also suspended while the sub-shell executes. Note that this will fail unless there is sufficient unused memory for the subshell and whatever command the user tries to run. When shelled out, ttylink incoming connections are refused and a system unattended message is reported to the remote. 2.95 SKICK skick 2.96 SMTP 2.97 SPLIT split Same as the CONNECT command but uses the split window feature. The edit line is line 25, and your sent text is highlighted. Received text is normal. See also the Net/Rom SPLIT command. 2.98 SOCKET 2.99 SOURCE source 2.100 START start 2.101 STOP stop 2.102 STATUS 2.103 TCP tcp These commands are used for the Transmission Control Protocol service. 2.103.1 tcp access [/bits] [] Set or display access control for TCP connection requests. This command implements TCP access control to NOS. Permit enables destaddr packets of type TCP to be routed through to the TCP layer. Deny disables those. If low port is given as the keyword all, all socket numbers 0 to 65534 are permitted (or denied, depending on the permit or deny keyword). If only lowport is given, only that portnumber is checked. If lowport and highport are given, checking is done according to that range. If a TCP access table is defined, all undefined ranges will be denied. Some samples: tcp access permit 44.0.0.0/8 3600 3601 tcp access deny all 3600 3601 tcp access permit 44.137.0.0/16 all 2.103.2 tcp irtt [] Display or set the initial round trip time estimate, in milliseconds, to be used for new TCP connections until they can measure and adapt to the actual value. The default is 5000 milliseconds (5 seconds). Increasing this when operating over slow channels will avoid the flurry of retransmissions that would otherwise occur as the smoothed estimate settles down at the correct value. Note that this command should be given before servers are started in order for it to have effect on incoming connections. TCP also keeps a cache of measured round trip times and mean deviations (MDEV) for current and recent destinations. Whenever a new TCP connection is opened, the system first looks in this cache. If the destination is found, the cached IRTT and MDEV values are used. If not, the default IRTT value mentioned above is used, along with a MDEV of 0. This feature is fully automatic, and it can improve performance greatly when a series of connections are opened and closed to a given destination (eg. a series of FTP file transfers or directory listings). 2.103.3 tcp kick If there is unacknowledged data on the send queue of the specified TCB, this command forces an immediate retransmission. 2.103.4 tcp mss [] Display or set the TCP Maximum Segment Size in bytes that will be sent on all outgoing TCP connect request (SYN segments). This tells the remote end the size of the largest segment (packet) it may send. Changing MSS affects only future connections; existing connections are unaffected. 2.103.5 tcp reset Deletes the TCP control block at the specified address. 2.103.6 tcp rtt Replaces the automatically computed round trip time in the specified TCB with the rtt in milliseconds. This command is useful to speed up recovery from a series of lost packets since it provides a manual bypass around the normal backoff retransmission timing mechanisms. 2.103.7 tcp status [] Without arguments, displays several TCPlevel statistics, plus a summary of all existing TCP connections, including TCB address, send and receive queue sizes, local and remote sockets, and connection state. If tcb_addr is specified, a more detailed dump of the specified TCB is generated, including send and receive sequence numbers and timer information. 2.103.8 tcp syndata [yes | no] Display or set the TCP SYN + Data piggy-backing flag. Some TCP systems cannot handle SYN + Data together. 2.103.9 tcp timertype [linear | exponential] Displays the current setting or sets the timer type backoff algorithm. 2.103.10 tcp trace [yes | no] Display or set the TCP trace flag on or off. 2.103.11 tcp window [] Displays or sets the default receive window size in bytes to be used by TCP when creating new connections. Existing connections are unaffected. 2.104 TAIL tail Shows the last 18 lines of the specified text file, or 2000 characters of a binary file. 2.105 TELNET telnet [port] 2.106 TTYLINK ttylink [port] Same as Telnet but uses the pseudosplit window feature. 2.107 THIRDPARTY thirdparty [on | off] This command was put in for Amateurs overseas who have restrictions on passing mail not originated by the connected stations. This is useful also for making a personal mailbox, rather than a public one. Without the option it shows the current state. 2.108 TIP tip 2.109 TSYNC_STAT Used with the Gracilis PackeTwin card. Shows a quick one line status of activity. 2.110 TSYDUMP tsydump [0 | 1] Used with the Gracilis PackeTwin card. Shows a detailed report of card status and the register values. This is formated very poorly however, and takes more than a page to show. 2.111 TRACE trace [interface] [mode] Used to monitor packets. TRACE alone shows all tracing status, and given an interface name shows only the one. The mode is selected from one of the following using either the text or hex mode command. The commonly used setting is trace ax0 111 which will perform input, output, ascii tracing. TEXT HEX  - input 10 input 0 output 1 output 0 broadcast 0 broadcast 1000 raw 2000 raw 0 ascii 100 ascii 0 hex 200 hex 0 off 0 2.112 STRACE strace [on | off] Used to direct TRACE to a sperate window. When on, the session window is reached with the F9 key. When off, the TRACE is directed to the current window. Leaving off the option lists the current state. 2.113 UDP udp [status] The User Datagram Protocol has one option, to list its status. Functions that use UDP for example, are the REMOTE and DOMAIN DNS commands. 2.114 UPLOAD upload [filename] Opens filename and sends it on the current session as though it were typed at the terminal. For uploading files or text. 2.115 WATCH watch Displays the current software stopwatch values, with min and max readings for each. This facility allows a programmer to measure the execution time of critical sections of code with microsecond resolution. This command is supported only on the PC, and the meaning of each stopwatch value depends on where the calls have been inserted for test purposes; the distribution copy of NOS usually has no stopwatch calls. 2.116 WATCHDOG watchdog [on | off] Enables or disables the watchdog timer. If internal operations cease for 300 seconds and the watchdog is enabled, a system reset is performed. See the remote command for setting up AUTOEXEC.BAT. 2.117 WRITE write 2.118 WRITEALL writeall 3.0 User Commands This section lists the commands which the users may enter when connected to the mailbox system. 3.1 @ Go to SYSOP mode (if permitted) 3.2 ? Give short list of all commands 3.3 A Give list of message areas without descriptions 3.3.1 AF Give the areas list with descriptions (if set) 3.3.2 A name Change to area name 3.4 B Bye (ie. disconnect) 3.5 C Convers bridge (like DxCLUSTER), if available 3.5.1 C node Netrom connection, if permitted and available 3.5.2 C iface call AX.25 connection, if permitted 3.5.3 CA Connect to callbook server (if available) 3.6 D filename Download textfile filename 3.6.1 DU Uuencode first, and then download (for binary files) 3.7 E Show the escape character 3.7.1 E char Set the escape character to char (one character!) 3.8 F Finger users (show user info available) 3.8.1 F user Finger a listed user (show his brag info) 3.8.2 F user@host Finger an user at a remote machine 3.9 H Help 3.10 I Info on system 3.11 J Just heard, on all interfaces 3.11.1 J iface Just heard on specified interface 3.12 K # # Kill message # (one or more numbers accepted) 3.12.1 KM Kill Mine, kills all read messages 3.13 L List new messages 3.13.1 LA List ALL messages in current area 3.13.2 LB List messages with message type B (bulletins) 3.13.3 LM List mine, lists new messages 3.13.4 LL n List last n messages 3.13.5 LT List message with message type T (traffic) 3.13.6 L> xyz List only message with string xyz in the To: field 3.14 M Shows current mailbox users 3.14.1 ML Shows all past users since system startup 3.14.2 ML n Shows the n past users since startup 3.14.3 ML call Shows when call logged on last 3.14.4 MM name Move the current message to new area name (SYSOP) 3.14.5 MM x [y,z] name Move messages x,y and z in current area to new area name 3.14.6 MS Show messages status 3.15 N Alphabetical listing of known netrom nodes (if available) 3.15.1 NR Shows all netrom neighbor nodes 3.16 O Chat with operator (if system is attended) 3.17 P Give a list of the interface ports of the system 3.18 R n Read message n (a list of numbers is accepted) 3.18.1 RH n Read with headers (same as V command) 3.18.2 RM Read Mine, reads all unread messages 3.19 S Send message (defaults to private) 3.19.1 SB Send bulletin (be carefull!) 3.19.2 SC Send with Carbon Copy to others 3.19.3 SF Forward current message to someone else 3.19.4 SF n Forward message number n to someone else 3.19.5 SP Send private message 3.19.6 ST Send traffic message 3.19.7 SR Send a reply to the current message 3.19.8 SR n Send a reply to message number n 3.20 T host Telnet to hostname (if permitted) 3.21 U file Upload a textfile 3.22 V n Verbose read of message n (a list is accepted) 3.22.1 VM Verbose read of all unread messages 3.23 W What files ? in the current directory 3.23.1 W path Listing of the directory path. Wildcards ie.*, are accepted 3.24 X Toggle Expert status 3.24.1 XA Toggle current areaindication in prompt 3.24.2 XM Show number of lines before moreprompt 3.24.3 XM n Set moreprompt to n lines 3.24.4 XN Toggle the Netrom lookalike prompt on/off 3.25 Z file Zap (delete) a file (if permitted) 4.0 How to design a network There are two types of networks, connectionless and conectionoriented. This software uses both modes at the basic network level. On the one hand it interacts reasonably with Net/Rom and Rose virtual connections, and on the other, works very well with datagram only circuits. If you were given a clean slate, your goal would be to have two ports on each node. One would be available for AX.25 connections from the users operating unsophisticated Terminal Node Controllers (TNCs). The other would be connected to a higher speed system of IP datagrams on top of AX.25 only. It will prove very difficult to marry both types of circuits and achieve any speed. By using a pure datagram IP backbone you can achieve much greater throughput than a Net/Rom or Rose. 5.0 Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window Many NOS users are confused by these parameters and do not know how to set them properly. This chapter will first review these parameters and then discuss how to choose values for them. 5.1 Hardware Parameters 5.1.1 Bufsize This parameter is required by most of NOSs builtin HDLC drivers (eg. those for the DRSI PCPA and the Paccomm PC100). It specifies the size of the buffer to be allocated for each receiver port. HDLC frames larger than this value cannot be received. There is no default bufsize; it must be specified in the attach command for the interface. 5.2 AX.25 Parameters 5.2.1 Paclen Paclen limits the size of the data field in an AX.25 Iframe. This value does not include the AX.25 protocol header (source, destination and digipeater addresses). Since unconnectedmode (datagram) AX.25 uses UI frames, this parameter has no effect in unconnected mode. The default value of paclen is 256 bytes. 5.2.2 Maxframe This parameter controls the number of Iframes that NOS may send on an AX.25 connection before it must stop and wait for an acknowledgement. Since the AX.25/LAPB sequence number field is 3bits wide, this number cannot be larger than seven. Numbers larger than one usually fail due to congestion. The unconnectedmode (datagram) AX.25 uses UI frames that do not have sequence numbers, so this parameter does not apply to unconnected mode. The default value of maxframe in NOS is one frame. 5.3 IP and TCP Parameters 5.3.1 MTU The MTU (Maximum Transmission Unit) is an interface parameter that limits the size of the largest IP datagram that it may handle. IP datagrams routed to an interface that are larger than its MTU are each split into two or more fragments. Each fragment has its own IP header and is handled by the network as if it were a distinct IP datagram, but when it arrives at the destination it is held by the IP layer until all of the other fragments belonging to the original datagram have arrived. Then they are reassembled back into the complete, original IP datagram. The minimum acceptable interface MTU is 28 bytes: 20 bytes for the IP (fragment) header, plus 8 bytes of data. There is no default MTU in NOS; it must be explicitly specified for each interface as part of the attach command. 5.3.2 MSS MSS (Maximum Segment Size) is a TCPlevel parameter that limits the amount of data that the remote TCP will send in a single TCP packet. MSS values are exchanged in the SYN (connection request) packets that open a TCP connection. In the NOS implementation of TCP, the MSS actually used by TCP is further reduced in order to avoid fragmentation at the local IP interface. That is, the local TCP asks IP for the MTU of the interface that will be used to reach the destination. It then subtracts 40 from the MTU value to allow for the overhead of the TCP and IP headers. If the result is less than the MSS received from the remote TCP, it is used instead. The default value of MSS is 512 bytes. 5.3.3 Window This is a TCPlevel parameter that controls how much data the local TCP will allow the remote TCP to send before it must stop and wait for an acknowledgement. The actual window value used by TCP when deciding how much more data to send is referred to as the effective window. This is the smaller of two values: the window advertised by the remote TCP minus the unacknowledged data in flight, and the congestion window, an automatically computed timevarying estimate of how much data the network can handle. The default value of Window is 2048 bytes. 5.4 Discussion 5.4.1 IP Fragmentation IP-level fragmentation often makes it possible to interconnect two dissimilar networks, but it is best avoided whenever possible. One reason is that when a single IP fragment is lost, all other fragments belonging to the same datagram are effectively also lost and the entire datagram must be retransmitted by the source. Even without loss, fragments require the allocation of temporary buffer memory at the destination, and it is never easy to decide how long to wait for missing fragments before giving up and discarding those that have already arrived. A reassembly timer controls this process. In NOS it is (re)initialized with the IP rtimer parameter (default 30 seconds) whenever progress is made in reassembling a datagram (i.e., a new fragment is received). It is not necessary that all of the fragments belonging to a datagram to arrive within a single timeout interval, only that the interval between fragments be less than the timeout. Most subnetworks that carry IP have MTUs of 576 bytes or more, so interconnecting them with subnetworks having smaller values can result in considerable fragmentation. For this reason, IP implementors working with links or subnets having unusually small packet size limits are encouraged to use transparent fragmentation, that is, to devise schemes to break up large IP datagrams into a sequence of link or subnet frames that are immediately reassembled on the other end of the link or subnet into the original, whole IP datagram without the use of IPlevel fragmentation. 5.4.2 Setting paclen and bufsize The more data you put into an AX.25 I frame, the smaller the AX.25 headers are in relation to the total frame size. In other words, by increasing paclen, you lower the AX.25 protocol overhead. Also, large data packets reduce the overhead of keying up a transmitter, and this can be an important factor with higher speed modems. On the other hand, large frames make bigger targets for noise and interference. Each link has an optimum value of paclen that is best discovered by experiment. Although NOS can handle larger paclen values than 256, some other AX.25 implementations (including digipeaters) cannot and this may cause interoperability problems. Even NOS may have trouble with certain KISS TNCs because of fixedsize buffers. The original KISS TNC code for the TNC2 by K3MC can handle frames limited in size only by the RAM in the TNC, but some other KISS TNCs cannot. NOSs builtin HDLC driver SCC allocates receive buffers according to the maximum expected frame size, so it is important that these devices be configured with the correct bufsize. To do this, you must know the size of the largest possible frame that can be received. The paclen parameter controls only the size of the data field in an Iframe and not the total size of the frame as it appears on the air. The AX.25 spec allows up to 8 digipeaters, so the largest possible frame is (paclen + 72) bytes. So you should make bufsize at least this large. Another important consideration is that the more recent versions of NOS improve interrupt response by maintaining a special pool of buffers for use by the receive routines. These buffers are currently fixed in size to 2048 bytes and this can be changed only by editing config.h and recompiling NOS. This limits bufsize. In fact, attempting to set a larger value may cause the driver not to work at all. This situation can be detected by running the memory status command and looking for a nonzero count of Ibuffail events, although these events can also occur occasionally during normal operation. One of the drawbacks of AX.25 that there is no way for one station to tell another how large a packet it is willing to accept. This requires the stations sharing a channel to agree beforehand on a maximum packet size. TCP is different, as we shall see. 5.4.3 Setting Maxframe For best performance on a halfduplex radio channel, maxframe should always be set to one. The reasons are explained in the paper Link Level Protocols Revisited by Brian Lloyd and Phil Karn, which appeared in the proceedings of the ARRL 5th Computer Networking Conference in 1986. 5.4.4 Setting MTU TCP/IP header overhead considerations similar to those of the AX.25 layer when setting paclen apply when choosing an MTU. However, certain subnetwork types supported by NOS have wellestablished MTUs, and these should always be used unless you know what youre doing: 1500 bytes for Ethernet , and 508 bytes for Arcnet(. The MTU for PPP is automatically negotiated, and defaults to 1500. Other subnet types, including SLIP and AX.25, are not as well standardized. SLIP has no official MTU, but the most common implementation (for BSD Unix ) uses an MTU of 1006 bytes. Although NOS has no hard wired limit on the size of a received SLIP frame, this is not true for other systems. Interoperability problems may therefore result if larger MTUs are used in NOS. Choosing an MTU for an AX.25 interface is more complex. When the interface operates in datagram (UIframe) mode, the paclen parameter does not apply. The MTU effectively becomes the paclen of the link. It is usually important to avoid AX.25 segmentation when running IP over Net/Rom. The way to do this is to make sure that packets larger than paclen are never handed to AX.25. A Net/Rom transport header is five bytes long and a Net/Rom network header takes 15 bytes, so 20 bytes must be added to the size of an IP datagram when figuring the size of the AX.25 Iframe data field. If paclen is 256, this leaves 236 bytes for the IP datagram. This is the default MTU of the netrom pseudointerface, so as long as paclen is at least 256 bytes, AX.25 segmentation cant happen. But if smaller values of paclen are used, the netrom MTU must also be reduced with the ifconfig command. 5.4.5 Setting MSS The setting of this TCPlevel parameter is somewhat less critical than the IP and AX.25 level parameters already discussed, mainly because it is automatically lowered according to the MTU of the local interface when a connection is created. Although this is, strictly speaking, a protocol layering violation (TCP is not supposed to have any knowledge of the workings of lower layers) this technique does work well in practice. However, it can be fooled; for example, if a routing change occurs after the connection has been opened and the new local interface has a smaller MTU than the previous one, IP fragmentation may occur in the local system. The only drawback to setting a large MSS is that it might cause avoidable fragmentation at some other point within the network path if it includes a bottleneck subnet with an MTU smaller than that of the local interface. (Unfortunately, there is presently no way to know when this is the case. There is ongoing work within the Internet Engineering Task Force on a MTU Discovery procedure to determine the largest datagram that may be sent over a given path without fragmentation, but it is not yet complete.) Also, since the MSS you specify is sent to the remote system, and not all other TCPs do the MSSlowering procedure yet, this might cause the remote system to generate IP fragments unnecessarily. On the other hand, a toosmall MSS can result in a considerable performance loss, especially when operating over fast LANs and networks that can handle larger packets. So the best value for MSS is probably 40 less than the largest MTU on your system, with the 40byte margin allowing for the TCP and IP headers. For example, if you have a SLIP interface with a 1006 byte MTU and an Ethernet interface with a 1500 byte MTU, set MSS to 1460 bytes. This allows you to receive maximumsized Ethernet packets, assuming the path to your system does not have any bottleneck subnets with smaller MTUs. 5.4.6 Setting Window A sliding window protocol like TCP cannot transfer more than one windows worth of data per round trip time interval. So this TCPlevel parameter controls the ability of the remote TCP to keep a long pipe full. That is, when operating over a path with many hops, offering a large TCP window will help keep all those hops busy when youre receiving data. On the other hand, offering too large a window can congest the network if it cannot buffer all that data. Fortunately, new algorithms for dynamic controlling the effective TCP flow control window have been developed over the past few years and are now widely deployed. NOS includes them, and you can watch them in action with the tcp status or socket commands. Look at the cwind (congestion window) value. In most cases it is safe to set the TCP window to a small integer multiple of the MSS, (eg. four times), or larger if necessary to fully utilize a high bandwidth*delay product path. One thing to keep in mind, however, is that advertising a certain TCP window value declares that the system has that much buffer space available for incoming data. NOS does not actually pre-allocate this space; it keeps it in a common pool and may well over book it, exploiting the fact that many TCP connections are idle for long periods and gambling that most applications will read incoming data from an active connection as soon as it arrives, thereby quickly freeing the buffer memory. However, it is possible to run NOS out of memory if excessive TCP window sizes are advertised and either the applications go to sleep indefinitely (eg. suspended Telnet sessions) or a lot of outofsequence data arrives. It is wise to keep an eye on the amount of available memory and to decrease the TCP window size (or limit the number of simultaneous connections) if it gets too low. Depending on the channel access method and link level protocol, the use of a window setting that exceeds the MSS may cause an increase in channel collisions. In particular, collisions between data packets and returning acknowledgements during a bulk file transfer may become common. Although this is, strictly speaking, not TCPs fault, it is possible to work around the problem at the TCP level by decreasing the window so that the protocol operates in stopandwait mode. This is done by making the window value equal to the MSS. 5.5 Summary In most cases, the default values provided by NOS for each of these parameters will work correctly and give reasonable performance. Only in special circumstances such as operation over a very poor link or experimentation with high speed modems should it be necessary to change them. THIS STUFF WILL NEED TO BE MOVED TO PROPER SECTIONS ABOVE 3.18. connect [ ... ] Initiate a vanilla AX.25 session to the specified ax25_addr using the specified interface. Data sent on this session goes out in conventional AX.25 packets with no upper layer protocol. The defacto presentation standard format is used, in that each packet holds one line of text, terminated by a carriage return. A single AX.25 connection may be used for terminaltoterminal, IP and Net/Rom traffic. The three types of data being automatically separated by their AX.25 Level 3 Protocol IDs. Up to eight optional digipeaters may be given; note that the word via is not needed. If digipeaters are specified, they are automatically added to the AX25 routing table as though the ax25 route add command had been given before issuing the connect command. 3.19. delete The filename is removed from the file system. 3.20. detach Detach a previously attached interface from the system. All IP routing table entries referring to this interface are deleted, and forwarding references by any other interface to this interface are removed. 3.21. dialer [ [ [ []]]] Setup an autodialer session for the interface. Whenever the interface is idle for the interval in , the autodialer will ping the . If there is no answer after attempts, the autodialer will execute the special commands contained in the . If the interval in is zero, a previous dialer command process will be removed. If the number of is zero, the will be executed without pinging the . The file may have any valid name, and must be located in the configuration root directory (see the Installation section). The commands in the file are described in the Dialer Subcommands chapter. Commands in file are: 3.21.1. control 3.21.2. send [] Sends string to the interface. If milliseconds is given, inter character timing is milliseconds milliseconds. 3.21.3. speed Displays or sets the current interface speed. 3.21.4. status 3.21.5. wait [ [speed]] Wait the amount of milliseconds. If string is given, incoming characters from the interface are compared with string. If an compare is found and speed is the string speed, the next numbers read from the interface is the new baud rate used. This works like HAYES response CONNECT 9600. The wait command could have been wait 10000 CONNECT speed. This waits 10 seconds for the CONNECT response from the modem. 3.22. dir [] List the contents of the specified directory on the console. If no argument is given, the current directory is listed. Note that this command works by first listing the directory into a temporary file, and then creating a more session to display it. After this completes, the temporary file is deleted. 3.23. disconnect [] An alias for the close command (for the benefit of AX.25 users). 3.24. domain The domain commands control and show the working of the name to internet address mapping software. NOS currently only has a client with a simple file reading local server. A real server is needed to service the community for their growing needs. 3.24.1. domain addserver Add a domain name server to the list of name servers. Note that, when this command is given in the autoexec.nos file the ip address command should given before this command is used. (If not, NOS will not know how to resolve the address, and an answer will never be recognized, or worse: just plain hangs the system.) 3.24.2. domain cache Following commands work on the domain cache. These are resource records (see RFC 1033/1034) held in memory. 3.24.2.1. domain cache clean [yes | no] Displays or sets the discard of expired resource records. Expired records have their timeout value decremented to zero. Normally resource records get a default timeout value of 1800 seconds. After this time they are considered old and if referenced again the domain name resolver should be enquired again. When clean is off (the default), expired records will be retained; if no replacement can be obtained from another domain name server, these records will continue to be used. When clean is on, expired records will be removed from the file whenever any new record is added to the file. 3.24.2.2. domain cache list This command shows the current content of the in memory cache for resource records. 3.24.2.3. domain cache size [size] Display or set the nominal maximum size of the local memory cache. The default is 20. (Note: The cache may be temporarily larger when waiting for new records to be written to the /domain.txt file.) 3.24.2.4. domain cache wait [seconds] Display or set the interval in seconds to wait for additional activity before updating the domain.txt file. The default is 300 seconds (5 minutes). 3.24.3. domain dropserver Remove a domain name server from the list of name servers. You are warned when you delete the last name server. 3.24.4. domain listservers List the currently configured domain name servers, along with statistics on how many queries and replies have been exchanged with each one, response times, etc. 3.24.5. domain maxwait [timeout] This sets a timeout value (1 to 255 seconds) to a query or domain name server. This is not set for a already defined server but will be used for a newly defined name server. Also the value is used for domain nslookups. Note that name servers (IBM-PC based) can have trouble finding records in an large database. The default is set to 30 seconds. 3.24.6. domain retry [retries] The retry value (number) limits the number of queries send out to remote domain name resolvers before giving up and telling you that host xyzzy.ampr.org does not exist. The total time lost with a query is retries * timeout * number of domain servers defined. 3.24.7. domain suffix [domain suffix | none] Display or specify the default domain name suffix to be appended to a host name when it contains no periods. For example, if the suffix is set to ampr.org. and the user enters telnet ka9q, the domain resolver will attempt to find ka9q.ampr.org.. If the host name being sought contains one or more periods, however, the default suffix is not applied if the last part of the name is less than 5 characters and contains only letters; e.g., telnet foo.bar would not be turned into foo.bar.ampr.org. telnet foo.ka9q will be turned into foo.ka9q.ampr.org. Note that a trailing dot (.) is required for the suffix definition (eg, ampr.org.). If the suffix is the string none (without trailing period) the current suffix is cleared and forgotten. 3.24.8. domain trace [on | off] Display or set the flag controlling the tracing of domain server requests and responses. Trace messages will be seen only if a domain name being sought is not found in the local cache file, domain.txt. 3.24.9. domain translate [off | on] Display or set the flag that controls the translation of IP address in dot notation into symbolic names. The translation process makes heavy use of reverse domain name lookups. Do not set this flag unless you have a good and fast connection to a domain name server or have a fast domain.txt handler and domain.txt contains all the INADDR.ARPA. records you ever wanted. 3.24.10. domain verbose [off | on] Display or set the flag controlling the return of a full name (true) or only the first name (dot delimiter) (false). This is for IP address to name translation only. 3.24.11. domain xyzzy This is (when spelled fully) a magic word to enable domain queries to outside domain servers when reading commands from the startup file. This should only be used by those who have reliable access to a domain name server. 3.25. drsistat Obsolete. Showed the statistics for all configured DRSI boards. 3.26. dump [decimalrange] The dump command shows memory in hex and ascii. Hexaddress is a 32 bit value split into page segment and page offset. A splitting colon is not used nor accepted. If decimalrange is not given, 128 bytes are displayed. dump . displays memory starting at the end of a previous dump command. 3.27. echo [accept | refuse] Display or set the flag controlling client Telnets response to a remote WILL ECHO offer. The Telnet presentation protocol specifies that in the absence of a negotiated agreement to the contrary, neither end echoes data received from the other. In this mode, a Telnet client session echoes keyboard input locally and nothing is actually sent until a carriage return is typed. Local line editing is also performed: backspace deletes the last character typed, while controlU deletes the entire line. When communicating from keyboard to keyboard the standard local echo mode is used, so the setting of this parameter has no effect. However, many timesharing systems (eg. UNIX ) prefer to do their own echoing of typed input. (This makes screen editors work right, among other things). Such systems send a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet connection request. If echo accept is in effect, a client Telnet session will automatically return a DO ECHO response. In this mode, local echoing and editing is turned off and each key stroke is sent immediately (subject to the Nagle tinygram algorithm in TCP). While this mode is just fine across an Ethernet, it is clearly inefficient and painful across slow paths like packet radio channels. Specifying echo refuse causes an incoming WILL ECHO offer to be answered with a DONT ECHO; the client Telnet session remains in the local echo mode. Sessions already in the remote echo mode are unaffected. (Note: Berkeley Unix has a bug in that it will still echo input even after the client has refused the WILL ECHO offer. To get around this problem, enter the stty echo command to the shell once you have logged in.) 3.28. eol [unix | standard] Display or set Telnets endofline behavior when in remote echo mode. In standard mode, each key is sent asis. In unix mode, carriage returns are translated to line feeds. This command is not necessary with all UNIX systems; use it only when you find that a particular system responds to line feeds but not carriage returns. Only SunOS release 3.2 seems to exhibit this behavior; later releases are fixed. 3.29. escape [] Display or set the current commandmode escape character in hex. In DOS, the escape character is default ^]. The alternate escape key is F10 unless F10 is redefined with fkey. 3.30. etherstat Obsolete. Displayed 3Com Ethernet controller statistics. Use the packet driver. 3.31. exit Exit the NOS program and return to the operating system. 3.32. finger | <@hostid> Issue a network finger request for user user at host hostid. This creates a client session which may be interrupted, resumed, reset, etc, just like a Telnet client session. If only @hostid is given, all users on that host are identified. 3.33. fkey [ []] Fkey displays or sets values for the programmable keys on the IBM-PC keyboard. fkey alone gives a display of all remapable keys and their number. fkey number displays the current value for that key. fkey number string assigns string to that key. Control characters can be created by prefixing then with an ^ character. A cr is ^M. To insert an ^ in the string 2 ^s next to each other are needed. Following is the map of keys and their number. F1 is function key 1. Sf1 is Shift function key 1. Cf1 is Control function key 1. Af1 is Alt function key 1. Etc. The right most row is the numeric keypad. key number key number key number key number key number f1 59 sf1 84 cf1 94 af1 104 pgup 73 f2 60 sf2 85 cf2 95 af2 105 pgdn 81 f3 61 sf3 86 cf3 96 af3 106 home 71 f4 62 sf4 87 cf4 97 af4 107 end 79 f5 63 sf5 88 cf5 98 af5 108 arup 72 f6 64 sf6 89 cf6 99 af6 109 ardn 80 f7 65 sf7 90 cf7 100 af7 110 ar l 75 f8 66 sf8 91 cf8 101 af8 111 ar r 77 f9 67 sf9 92 cf9 102 af9 112 ins 82 f10 68 sf10 93 cf10 103 af10 113 del 83 The mapping is taken to look like a VT-100/ANSI keyboard. Currently assigned value strings for following keys: number string key 59 33OP /* F1 */ 60 33OQ /* F2 */ 61 33OR /* F3 */ 62 33OS /* F4 */ 71 10 /* home*/ 72 33[A /* up arrow*/ 73 25 /* pgup */ 75 33[D /* left arrow */ 77 33[C /* right arrow */ 79 05 /* end */ 80 33[B /* down arrow */ 81 12 /* pgdn */ 82 01 /* ins */ 83 177 /* del */ 3.34. ftp Open an FTP control channel to the specified remote host and enter converse mode on the new session. Responses from the remote server are displayed directly on the screen. See the FTP Subcommands chapter for descriptions of the commands available in a FTP session. 3.35. ftype [ascii | binary | image | logical ] This command displays or sets the default start file mode (ascii or binary) for ftp transfers. If ftype binary or image is given the next ftp session started will be in binary type. No binary command is needed once the session is started. In case of logical, the word size is set to size. 3.36. help Display a brief summary of toplevel commands. 3.37. hop These commands are used to test the connectivity of the network. 3.37.1. hop check Initiate a hopcheck session to the specified host. This uses a series of UDP probe packets with increasing IP TTL fields to determine the sequence of gateways in the path to the specified destination. This function is patterned after the UNIX traceroute facility. ICMP message tracing should be turned off before this command is executed (see the icmp trace command). 3.37.2. hop maxttl [] Display or set the maximum TTL value to be used in hop check sessions. This effectively bounds the radius of the search. 3.37.3. hop maxwait [] Display or set the maximum interval, in seconds, that a hopcheck session will wait for responses at each stage of the trace. The default is 5 seconds. 3.37.4. hop queries [] Display or set the number of UDP probes that will be sent at each stage of the trace. The default is three. 3.37.5. hop trace [on | off] Display or set the flag that controls the display of additional information during a hop check session. 3.38. hostname [] Display or set the local hosts name. By convention this should be the same as the hosts primary domain name. This string is used only in the greeting messages of the various network servers; note that it does NOT set the systems IP address. If is the same as an (see the Attach commands chapter), this command will search for a CNAME domain resource record which corresponds to the IP address of the . 3.39. hs Display statistics about the HS high speed HDLC driver (if configured and active). 3.40. icmp These commands are used for the Internet Control Message Protocol service. 3.40.1. icmp echo [on | off] Display or set the flag controlling the asynchronous display of ICMP Echo Reply packets. This flag must be on for oneshot pings to work (see the ping command.) 3.40.2. icmp status Display statistics about the Internet Control Message Protocol (ICMP), including the number of ICMP messages of each type sent or received. 3.40.3. icmp trace [on | off] Display or set the flag controlling the display of ICMP error messages. These informational messages are generated by Internet routers in response to routing, protocol or congestion problems. This option should be turned off before using the hop check facility because it relies on ICMP Time Exceeded messages, and the asynchronous display of these messages will be mingled with hop check command output. 3.41. ifconfig Display a list of interfaces, with a short status for each. 3.41.1. ifconfig [ [[[ ] ] .... ] When only iface is given, a extended interface status is displayed. Multiple subcommand / parameter can be put on one line. 3.41.2. ifconfig broadcast Set the broadcast address of interface iface to addr. Addr can either be an ax25_addr or an ether_addr, depending on the interface type, with 1s in the host part of the address. This is related to the netmask subcommand. See also the arp command. 3.41.3. ifconfig description [description] This command sets the interface description to the string specified. If no string is supplied, the current description is cleared. The description is displayed with the ifconfig iface command (no parameters) and with the mailbox commands. 3.41.4. ifconfig encapsulation Sets the encapsulation for interface iface to slip / ax25 / ether / encap / ppp. 3.41.5. ifconfig forward When a forward is defined, all output for interface iface is redirected to the interface directed by iface2. To remove the forward, set to . 3.41.6. ifconfig ipaddress Set the IP address to addr for this interface. This might be necessary when a system acts as a gateway. Like an system with IP address 44.137.1.8 has an Internet access via its Ethernet. The Internet IP address could be 129.179.122.10. An ifconfig en0 ipaddress 129.179.122.10 sets the correct address for that interface. Now routing to that system will work. (Note that the 44.x.x.x address is not connected to the Internet.) See also the hostname and IP address commands. 3.41.7. ifconfig linkaddress Set the hardware dependant address for this interface. For AX.25 this can be the callsign, for Ethernet a new Ethernet address. 3.41.8. ifconfig mtu Set the maximum transfer unit to param octets (bytes). See the Setting ... MTU, MSS and Window chapter for more information. 3.41.9. ifconfig netmask

Set the subnet mask for this interface. The
takes the form of an IP address with 1s in the network and subnet parts of the address, and 0s in the host part of the address. Sample: ifconfig en0 netmask 0xffffff00 for a class C network (24 bits). This is related to the broadcast subcommand. See also the route command. 3.41.10. ifconfig rxbuf Set the receive buffer size. 3.42. info Info gives information about the version of NOS currently running and its built-in configuration. The configuration info is built with defines in config.h in the source distribution. That way it gives automatically correct configuration information. 3.43. ip These commands are used for the Internet Protocol service. 3.43.1. ip access [/] [higport] Set or display access control for IP routing functions. This command implements router access functions to NOS. Permit enables destaddr packets of type protocol to be routed via ifname. Deny disables those. Protocol can be TCP or UDP. Only those two protocol types are checked. If lowport is given as keyword all, all ports are assumed. If only lowport is given, that port is only checked for permission. If lowport and highport are given, that is the range of ports permitted/denied. Destaddr can be the word all for all addresses possible. The ip access delete must match a previous defined permit or deny to be able to delete that definition. Some samples: ip access permit 44/8 ax0 tcp 20 25 ip access deny all ax0 tcp 1 1023 ip access permit all ax0 udp all If no access list is created, all interfaces might carry all types. If an access control is defined for an interface there must be an permit defined for that interface to allow traffic. Thus a partial denial without an permit is an complete denial for that interface. 3.43.2. ip access trace The IP access trace command shows the decisions made during access control for given address. Specifying the address 0 disables the trace. No subnet bits are recognized, just a full 32 bits address. This is a debug tool. 3.43.3. ip address [] Display or set the default local IP address. This command must be given before an attach command if it is to be used as the default IP address for the interface. 3.43.4. ip rtimer [] Display or set the IP reassembly timeout. The default is 30 seconds. Value is in seconds. 3.43.5. ip status Display Internet Protocol (IP) statistics, such as total packet counts and error counters of various types. 3.43.6. ip ttl [] Display or set the default timetolive value placed in each outgoing IP datagram. This limits the number of switch hops the datagram will be allowed to take. The idea is to bound the lifetime of the packet should it become caught in a routing loop, so make the value slightly larger than the number of hops across the network you expect to transit packets. The default is set at compilation time to the official recommended value for the Internet. 3.44. isat [on | off] Display or set the IBM-AT flag. Normally this flag is set when an interface is attached with an interrupt of 8 or higher. This is to signal that the second interrupt controller in an AT also needs a return of interrupt signal. If an AT type clock is in use, this command will allow measurement of time in milliseconds, rather than clock ticks (55 milliseconds per clock tick). During I/O initialization this flag is set if the monitor prom has the standard byte 0xfc at address f000:fffe. 3.45. kick [] Kick all sockets associated with a session; if no argument is given, kick the current session. Performs the same function as the AX.25 kick and tcp kick commands, but is easier to type. 3.46. lock [password ] Locks the keyboard or defines a password string. If password is given then is saved as the unlock string. If no parameters are supplied, the keyboard becomes locked when a password was specified earlier. If the keyboard is locked, the password is requested. If a correct password is supplied, the keyboard becomes unlocked. The setting of the password and locking of the keyboard can only been done by the system console keyboard or autoexec.nos startup file. The password can not been shown. 3.47. log [stop | ] Display the current log filename or set the filename for logging server sessions. If stop is given as the argument, logging is terminated (the servers themselves are unaffected). If a file name is given as an argument, server session log entries will be appended to it. 3.48. lzw [] LZW is the data compression capability on some sockets. This command set defines or changes their definition. Normally leave this set default. 3.48.1. lzw mode Displays or sets the compression method used on data compression for specific sockets. Currently SMTP can use compression. 3.48.2. lzw bits Displays or sets the number of bits used for the compression size. The more bits defined the larger the table space needed. Range is 9 to 16. 3.49. mail This command will start a shell escape command. The mailer used is defined with the DOS environment variable MAILER, which defaults to BM.EXE. 3.50. mbox [] Display the status of the mailbox server system (if configured). 3.50.1. mbox attend [yes | no] Displays or sets the attended flag on. This is used to announce in the mailbox if the station manager is willing to attend his station (chat). 3.50.2. mbox expert Display or set the level expected of a mailbox user. When set, they get a short > prompt. When not set a long prompt is send with the first letter of each mailbox command as prompt. The user can then set Xpert mode to get the short prompt. 3.50.3. mbox fwdinfo [forward info] Displays or sets the mailbox forward info to be included in the R: line for forwarded BBS bulletins. An empty string () as info clears the info field. Sample: netrom fwdinfo HNLNET BBS Will show [HNLNET BBS] in the R: line. 3.50.4. mbox haddress [homeaddress] Displays or sets the home address field to be included in the R: line for forwarded BBS bulletins. An empty string () clears the field. Sample: netrom haddress #CRV.OR.USA Will show @WG7J#CRV.OR.USA in the R: line. (when ax mycall is WG7J) 3.50.5. mbox jumpstart Displays or sets the mailbox jumpstart code. When set and an known node connects to the mailbox, no extra line needs to be send to activate the mailbox but the prompt is send directly. Warning: When set, it takes a while to hear all nodes and an AX25 connect could have an wrong start as there is no wait for a level 3 protocol check. Especially RSPF in virtual mode could course serious problems. 3.50.6. mbox kick To kick the mailbox back in activity after retry timeouts. 3.50.7. mbox maxmsg To display or set the maximum number of messages per area when a notes file is shown to a user. This reserves lots of memory for every mailbox session. 3.50.8. mbox motd [message string] Display or set the mailbox welcoming Message Of The Day. 3.50.9. mbox nrid Displays or sets the Net/Rom id flag. When set the node id is displayed on the prompt line. 3.50.10. mbox operator [
] The operator command shows or sets an alternate address for the control operator. When set and mbox attend is off or the user is shelled out and an mbox user requests an Operator command, the ttylink session is redirected to the address specified. Else it works as before that the mbox user is notified with Unattended. When the system pointed to by address has also set its attended to off, then an Unattended is replied with as well (but generated by the remote station). This is a flaky way of having an attended unattended system. 3.50.11. mbox password Sets a password string to be presented to Sysops entering that mode in the mailbox (using the @ command and having that privilege set to their login name/password in ftpusers). When a password is defined (max 30 characters) then they are prompted with 5 numbers before letting them in. The five numbers represent the 5 character locations in the string defined, whereby the first character is number 0. Multiple lines of 5 characters can be send to fool snoopers. The end of password sending is signaled with an empty line. If there was a good response, sysop mode is entered. The setting of the password can only been done by the system console or autoexec.nos startup file. The password can not been shown. 3.50.12. mbox qth [qth info] Displays or sets the info for qth in the R: line for forwarded BBS messages. Sample: netrom qth Driebruggen, NL 3.50.13. mbox secure Displays or sets the security option for mailbox gateway users. If set, users coming in via telnet to the bbs are not allowed to use the gateway. If not set anybody can use the gateway. (Note: No check for Bozos). Also the mailbox send command is disabled except for AX.25 and Net/Rom connects. 3.50.14. mbox smtptoo Displays or sets the flag to include SMTP headers in BBS messages. When set SMTP headers are included in messages. When not set not included. 3.50.15. mbox status An alias for just entering mbox on the prompt line. 3.50.16. mbox timer [] Display the current interval and time remaining or set the mailbox forwarding timer. 3.50.17. mbox tiptimeout Displays or sets the timeout value for tip connection timeout. After timeout seconds of no activity the connection is closed. 3.50.18. mbox trace [yes | no] Displays or sets mailbox forward trace code flag. 3.50.19. mbox utc Displays or sets the offset you are according to UTC time. Positive and negative numbers are supported and full leap year and month calculation are done. This is used by the mailbox forwarding to give a standard time in the R: line. 3.50.20. mbox zipcode zip Displays or sets the info for the zip field for R: line BBS header lines. This field is max 7 characters long as released. For USA the zip is only 6 numbers long. Netherlands has 4 figures a space and 2 letters. Guess every PTT wants something they invented their own. Sample: netrom zip 3465 TJ or: netrom zip 54551 3.51. memory These commands are used for memory allocation. 3.51.1. memory debug [on|off] Displays or sets the memory allocator debug flag. If set debug information is written to the log file containing most flags and parameters from the memory allocation routines. 3.51.2. memory efficient [yes | no] Displays or sets the search algorithm for buffer memory. When set, the search is always started from the beginning of the free list. This is slower but keeps memory fragmentation to a minimum. When clear, search is started on the end, accounting for more memory fragmentation but keeping speed. The current release defaults to yes. 3.51.3. memory freelist Display the storage allocator free list. Each entry consists of a starting address, in hex, and a size, in decimal bytes. 3.51.4. memory ibufsize [] Display or set the size of the buffers in the interrupt buffer pool. The size should be set to the largest type of buffer plus a header size of 22. For example: If your ax25 is the only interface and a packet length of 256 is defined, the ibufsize should be 256 + 10 * 6 + 22. The 10 * 6 is the ax25 header (source , destination and 8 digipeaters). 3.51.5. memory minheap [] Displays or sets the minimum heap size to be allocated before shell escaping to MS-DOS. This assures a free heap so that NOS can run for awhile without getting short on memory. 3.51.6. memory nibufs [] Display or set the number of interrupt buffer pool buffers. If the number of buffers is set, the statistics in the memory status display are reset for number of interrupt buffer fails. The minimum available value is set to the requested number of buffers. A rule of thumb for the number of buffers is to watch the statistics and keep a minimum of 2 free buffers. Increase or decrease as required. 3.51.7. memory sizes Display a histogram of storage allocator request sizes. Each histogram bin is a binary order of magnitude (i.e., a factor of 2). 3.51.8. memory status Display a summary of storage allocator statistics. The first line shows the base address of the heap, its total size, the amount of heap memory available in bytes and as a percentage of the total heap size, and the amount of memory left over (i.e., not placed on the heap at startup) and therefore available for shell subcommands. The second line shows the total number of calls to allocate and free blocks of memory, the difference of these two values (i.e., the number of allocated blocks outstanding), the number of allocation requests that were denied due to lack of memory, and the number of calls to free() that attempted to free garbage (eg. by freeing the same block twice or freeing a garbled pointer). The third line shows the garbage collection status. Garbage collection is a separate process running every second. If memory is low garbage collection routines are called in Red alert mode, else in Yellow alert. The fourth line shows the number of calls to malloc and free that occurred with interrupts off. In normal situations these values should be zero. The fourth line shows statistics for the special pool of fixedsize buffers used to satisfy requests for memory at interrupt time. The variables shown are the number of buffers currently in the pool, their size, and the number of requests that failed due to exhaustion of the pool. The fifth line shows the current setting of the interrupt buffer pool, its minimal value and the number of no buffers available. These statistics are reset when a memory nibufs command is given. 3.51.9. memory thresh [] Displays or sets the memory threshold size in bytes. If memory gets below this value, no more new sessions are started or accepted. 3.52. mkdir Create a subdirectory in the current working directory. 3.53. mode [vc | datagram] Control the default transmission mode on the specified AX.25 interface. In datagram mode, IP packets are encapsulated in AX.25 UI frames and transmitted without any other link level mechanisms, such as connections or acknowledgements. In vc (virtual circuit) mode, IP packets are encapsulated in AX.25 I frames and are acknowledged at the link level according to the AX.25 protocol. Link level connections are opened if necessary. In both modes, ARP is used to map IP to AX.25 addresses. The defaults can be overridden with the typeofservice (TOS) bits in the IP header. Turning on the reliability bit causes I frames to be used, while turning on the low delay bit uses UI frames. (The effect of turning on both bits is undefined and subject to change). In both modes, IPlevel fragmentation is done if the datagram is larger than the interface MTU. In virtual circuit mode, however, the resulting datagram (or fragments) is further fragmented at the AX.25 layer if it (or they) are still larger than the AX.25 paclen parameter. In AX.25 fragmentation, datagrams are broken into several I frames and reassembled at the receiving end before being passed to IP. This is preferable to IP fragmentation whenever possible because of decreased overhead (the IP header isnt repeated in each fragment) and increased robustness (a lost fragment is immediately retransmitted by the link layer). 3.54. more [ ...] Display the specified file(s) a screen at a time. To proceed to the next screen, press the space bar; to cancel the display, hit the q key. A CR advances a line. The more command creates a session that you can suspend and resume just like any other session. 3.55. motd [] Display the current message or sets the welcome message to the defined string. 3.56. multitask [on | off] Displays or sets the multi task flag. If set NOS continues to service its interrupts and handling of normal operation when put in the background by executing a shell escape. Some programs do not like to miss this valuable time taken away and weird results can happen. Clearing the flag stops all activity from NOS when put in the background. This command is not used when running on top of Windows or other systems which multitask already. 3.57. netrom 3.57.1. netrom acktime [] Displays or sets the ack delay timer, similar to AX.25 t2. 3.57.2. netrom alias This sets the Net/Rom alias for this station. Other stations can connect to the AX.25 callsign and to the Net/Rom alias (when set). The alias is broadcasted with a Net/Rom broadcast. 3.57.3. netrom bcnodes Initiates an immediate broadcast of nodelist on iface. 3.57.4. netrom call Displays or sets the call to be used by the Net/Rom interface. Note: this is a shortcut for the ifconfig netrom linkaddress call command. 3.57.5. netrom connect Start a connection to node. 3.57.6. netrom choketime [] Display or set the time breaking a send choke. Choke is the term netrom uses for flow control conditions. 3.57.7. netrom derate [on | off] Display or set automatic derating of netrom routes on link failure. 3.57.8. netrom interface Define a Net/Rom interface iface. The quality can be between 1 and 255. For compatibility with other implementations, set this to 192 normally. A check is made that the interface is of type AX.25. Note: the alias is not specified on this line anymore. Use netrom alias command. 3.57.9. netrom irtt [] Display or set the initial round trip time. 3.57.10. netrom kick <&nrcb> Give the control block a kick to get activity going again. 3.57.11. netrom load [] Reloads a saved Net/Rom node list to continue from where you left when you saved the list. All entrys read are time decremented as if normal time just went on. If it took some time (obsotimer * x) your list could be empty as they all timed out. 3.57.12. netrom minquality [] Display or set the minimum quality for recognizing a node entry. Entrys below this value are not considered valuable for usage. 3.57.13. netrom nodefilter Node filtering. 3.57.13.1. netrom nodefilter add Allow neighbor to give us node updates. 3.57.13.2. netrom nodefilter drop Disallow neighbor to give us node updates. 3.57.13.3. netrom nodefilter mode [none | accept | reject] Display or set the initial filter schema. None accepts all. Accept,accepts only from nodes defined in netrom nodefilter add lists. Reject,no accepts from nodes defined in netrom nodefilter add lists. 3.57.14. netrom nodetimer [] Display or set the interval our node list is transmitted. 3.57.15. netrom obsotimer [] Display or set the time a node quality gets decremented. 3.57.16. netrom promiscuous [off | on] Enables nodes with a higher quality than defined with minquality. If on, all nodes are received, independent of nodefilter. 3.57.17. netrom qlimit [] Display or set the maximum queue limit. Similar to AX.25 window. 3.57.18. netrom reset <&nrcb> Remove the control block. You can find the control block with socket. 3.57.19. netrom retries [] Display or set the maximum number of retries on connect, disconnect or data. 3.57.20. netrom route Net/Rom routing commands. 3.57.20.1. netrom route add Add a Net/Rom route. 3.57.20.2. netrom route drop Delete a Net/Rom route. 3.57.20.3. netrom route info Display the route it would take to get to destination. 3.57.21. netrom status Displays all Net/Rom connections. 3.57.22. netrom save [] Saves the current Net/Rom node list in memory to /netrom.sav or filename, if given. 3.57.23. netrom timertype [exponential | linear] Displays or sets the type of backoff. 3.57.24. netrom ttl [] Display or set the maximum number of hops a frame might hop before discarded, if it did not reach its destination before. 3.57.25. netrom user [] Display or set our Net/Rom user name. This is used on outgoing connects. 3.57.26. netrom verbose [off | on] Display or set the verbose flag. If set all nodes known to us are transmitted each time the nodetimer expires. If off, only your stations node ident is send out. 3.57.27. netrom window [] Display or set the size of the sliding window. This is the largest send and receive window we might negotiate. 3.58. nntp Network news transfer protocol has the following subcommands: 3.58.1. nntp addserver [] [] Add a nntp news server to query every seconds interval for new articles specified by the nntp groups command. Range can be a limit in time to query like nntp addserver someserver 600 22:0023:00, to only query the server between 10 and 11pm. Multiple nntp add can be used co concatenate groups (up to 512 bytes) The interval seconds can be set to 0, so that normally the nntp client does not query the server regularly but an nntp kick nntpserver can be used to start a session. 3.58.2. nntp directory Show or set default directory for spooling news. This is not the control directory but the (alternate) place to spool articles to. 3.58.3. nntp dropserver 3.58.4. nntp groups [ ...] Set or display currently set newsgroups. 3.58.5. nntp kick Kick the client to get in touch with the named server. 3.58.6. nntp listservers Lists the currently defined servers. 3.59. nntp quiet [yes | no] Shows or sets the flag controlling the display of newly received nntp news messages. The SMTP quiet flag controls the beep following the message. If both are off, nothing is shown, keeping the display from getting hung on more when running unattended. 3.60. nntp trace Sets or shows the current trace level for the nntp client. 0 No tracing 1 (default) displays serious errors. 2 displays as 1 and transient errors. 3 displays as 2 and session progress. 4 displays as 3 and actual received articles. 5 displays errors. 3.61. nrstat Displays the NRS interface statistics. 3.62. param [ ...] Invoke a device specific control routine. On a KISS TNC interface, this sends control packets to the TNC. Data bytes are treated as decimal. For example: param ax0 1 255 will set the Transmit Delay timer (type field = 1) on the KISS TNC configured as ax0 to 2.55 seconds (255 x .01 sec). On a SLIP interface, the param command allows the baud rate to be read (without arguments) or set. On asy lines DTR and RTS can be (and possibly should be) set with: param iface dtr 1 and param iface rts 1 The implementation of this command for the various interface drivers is incomplete and subject to change. Current commands defined are: 0 Data  Normal KISS data 1 TxDelay  set TX delay for TNC 2 Persist  set persistence delay for TNC 3 Slottime  set slottime delay for TNC 4 TxTail  set TX tail delay for TNC 5 Fulldup  set Full duplex for TNC 6 Hardware  Hardware dependent 7 TxMute  8 DTR  0 = down, 1 = up 9 RTS  0 = down, 1 = up 10 Speed  baud rate 11 Enddelay  12 Group  13 Idle  14 Min  15 Maxkey  16 Wait  17 Parity  0 = none, 1 = even, 2 = odd parity 129 Down  130 Up  254 Return2  Some tncs need this 255 Return  Reset a TNC from KISS to command mode 3.63. ping [ [ []]] Ping (send ICMP Echo Request packets to) the specified host. By default the data field contains only a small timestamp to aid in determining round trip time; if the optional length argument is given, the appropriate number of data bytes (consisting of hex 55) are added to the ping packets. If milliseconds is specified, pings will be repeated indefinitely at the specified number of milliseconds; otherwise a single, one shot ping is done. Responses to oneshot pings appear asynchronously on the command screen, while repeated pings create a session that may be suspended and resumed. Pinging continues until the session is manually reset. The incflag option causes a repeated ping to increment the target IP address for each ping; it is an experimental feature for searching blocks of IP addresses for active hosts. 3.64. pop The pop client provides an automatic interface to the pop server that is totally transparent to the user; all that the user needs to do is to set a few key parameters and the client will take it from there, apart from registering with the server station manager for setting up the user data. (see pop userdata command. To read more about pop, read RFC 937. The following paragraph describe the pop subcommands. 3.64.1. pop mailbox [] Show the defined name or sets the name to name for POP mail queries to the mailhost. The server keeps the mail in the mailbox name located in /spool/mail/name.txt. This is a mandatory parameter. 3.64.2. pop mailhost [] Show the currently defined host address for a pop server or sets the IP address to the system named ipaddr for POP connections. This is a mandatory parameter. 3.64.3. pop kick Start a POP connection now. (one shot connection) 3.64.4. pop timer [] Show the current setting and time remaining until next server enquiry or when seconds is given, defines the interval that a pop connection is started every to retrieve mail from the server system. When the timer is not set the client is only started with a pop kick command. 3.64.5. pop userdata Sets up the userdata used for validation on the POP server system. Note that and are case sensitive. When only pop userdata is entered to show the values only the is shown. Remember: the name and password should also be defined at the server site in the popusers file. 3.65. popmail Popmail is a newer implementation of the pop client/server. It can handle both pop2 and pop3 type pop client/servers. For functionality see pop but the subcommands are different. 3.65.1. popmail addserver [][hh:mmhh:mm] Add host as a pop server. When seconds is given, a timer is started to query the host with that interval for mail. If not specified no querying to the pop host will be started. You have to do that manually with a kick. When hh:mmhh:mm is given then only in that exact timeframe are queries to the host made (allowed). Protocol is either POP2 or POP3, depending on the mail service the host is providing. Note: pop2 is superseded by pop3. Mailbox is the mailbox name on the host where fore mail has to be picked up. Username and password are this systems validation parameters for the host. Note that on entering this command the host name is looked up. If nonexistent an error message is presented. 3.65.2. popmail dropserver Drops host from the list of pop servers to be queried. All references to the entry are deleted from the current system. 3.65.3. popmail kick Starts a pop session with host to retrieve mail. This command is needed when no interval is specified with the popmail addserver command. 3.65.4. popmail list Lists the current popmail server table. 3.65.5. popmail quiet Displays or sets the notification of new mail arriving via pop. 3.65.6. popmail trace Displays or sets the trace level of pop sessions. Current trace levels are: 0  No tracing 1  Serious errors reported 2  Transient errors reported 3 - Session progress reported Note that tracing only goes to the log file. 3.66. ppp These commands are used for Point to Point Protocol interfaces. This implementation of PPP is designed to be as complete as possible. Because of this, the number of options can be rather daunting. However, a typical PPP configuration might include the following commands: attach asy 0x3f8 4 ppp pp0 4096 1500 9600 dial pp0 30 3 dialer.pp0 # ppp pp0 lcp local accm 0 ppp pp0 lcp local compress address on ppp pp0 lcp local compress protocol on ppp pp0 lcp local magic on ppp pp0 lcp open active # ppp pp0 ipcp local compress tcp 16 1 ppp pp0 ipcp open active # route add default pp0 3.66.1. ppp Display the status of the PPP interface. 3.66.2. ppp lcp ... These commands are used for the LCP [Link Control Protocol] configuration. 3.66.2.1. ppp lcp close Shutdown the PPP interface. 3.66.2.2. ppp lcp local ... These commands control the configuration of the local side of the link. If an option is specified, the parameters will be used as the initial values in configuration requests. If not specified, that option will not be requested. For each of these options, the allow parameter will permit the remote to include that option in its response, even when the option is not included in the request. By default, all options are allowed. 3.66.2.2.1. ppp lcp local accm [ | allow [on | off] ] Display or set the Async Control Character Map. The default is 0xffffffff. 3.66.2.2.2. ppp lcp local authenticate [ pap | none | allow [on | off] ] Display or set the authentication protocol. The default is none. 3.66.2.2.3. ppp lcp local compress address/control [ on | off | allow [on | off] ] Display or set the option to compress the address and control fields of the PPP HLDClike header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. 3.66.2.2.4. ppp lcp local compress protocol [ on | off | allow [on | off] ] Display or set the option to compress the protocol field of the PPP HLDClike header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. 3.66.2.2.5. ppp lcp local magic [ on | off | | allow [on | off] ] Display or set the initial Magic Number. The default is off (zero). 3.66.2.2.6. ppp lcp local mru [ | allow [on | off] ] Display or set the Maximum Receive Unit. The default is 1500. 3.66.2.2.7. ppp lcp local default Reset the options to their default values. 3.66.2.3. ppp lcp open active | passive Wait for the physical layer to come up. If active, initiate configuration negotiation. If passive, wait for configuration negotiation from the remote. 3.66.2.4. ppp lcp remote ... These commands control the configuration of the remote side of the link. The options are identical to those of the local side. If an option is specified, the parameters will be used in responses to the remotes configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the allow parameter will permit the remote to specify that option in its request. By default, all options are allowed. 3.66.2.5. ppp lcp timeout [] Display or set the interval to wait between configuration or termination attempts. The default is 3 seconds. 3.66.2.6. ppp lcp try ... These commands are used for the various counters. 3.66.2.6.1. ppp lcp try configure [] Display or set the number of configuration requests sent. The default is 10. 3.66.2.6.2. ppp lcp try failure [] Display or set the number of bad configuration requests allowed from the remote. The default is 5. 3.66.2.6.3. ppp lcp try terminate [] Display or set the number of termination requests sent before shutdown. The default is 2. 3.66.3. ppp ipcp ... These commands are used for the IPCP [Internet Protocol Control Protocol] configuration. The close, open, timeout and try subcommands are identical to the LCP (described above). 3.66.3.1. ppp ipcp local ... These commands control the configuration of the local side of the link. If an option is specified, the parameters will be used as the initial values in configuration requests. If not specified, that option will not be requested. For each of these options, the allow parameter will permit the remote to include that option in its response, even when the option is not included in the request. By default, all options are allowed. 3.66.3.1.1. ppp ipcp local address [ | allow [on | off] ] Display or set the local address for negotiation purposes. If an address of 0 is specified, the other side of the link will supply the address. By default, no addresses are negotiated. 3.66.3.1.2. ppp ipcp local compress [ tcp [] | none | allow [on | off] ] Display or set the compression protocol. The default is none. The tcp specifies the number of conversation slots, which must be 1 to 255. (This may be limited at compilation time to a smaller number.) A good choice is in the range 4 to 16. The tcp is 0 (dont compress the slot number) or 1 (OK to compress the slot number). KA9Q can handle compressed slot numbers, so the default is 1. 3.66.3.2. ppp ipcp remote ... These commands control the configuration of the remote side of the link. The options are identical to those of the local side. If an option is specified, the parameters will be used in responses to the remotes configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the allow parameter will permit the remote to specify that option in its request. By default, all options are allowed. 3.66.4. ppp pap ... These commands are used for the PAP [Password Authentication Protocol] configuration. The timeout and try subcommands are identical to the LCP (described above). However, the terminate counter is unused. 3.66.4.1. ppp pap user [ [] ] Display or set the username (the password may be set, but not displayed). When the username is specified, but no password is supplied, the /ftpusers file is searched for the password. When a username/password is unknown or rejected, a session will appear at the console to prompt for a new username/password. 3.66.5. ppp trace [] Display or set the flags that control the logging of information during PPP link configuration. The flag value is 0 for none, 1 for basic, and 2 for general. Values greater than 2 are usually not compiled, and are described in the appropriate source files where they are defined. 3.67. ps Display all current processes in the system. The fields are as follows: PID  Process ID (the address of the process descriptor). SP  The current value of the process stack pointer. stksize  The size of the stack allocated to the process. maxstk  The apparent peak stack utilization of this process. This is done in a somewhat heuristic fashion, so the numbers should be treated as approximate. If this number reaches or exceeds the stksize figure, the system is almost certain to crash; the nos.exe program should be recompiled to give the process a larger allocation when it is started. event  The event this task is waiting for, if it is not runnable. fl  Process status flags. There are three: I (Interrupts enabled), W (Waiting for event) and S (suspended). The I flag is set whenever a task has executed a pwait() call (wait for event) without first disabling hardware interrupts. Only tasks that wait for hardware interrupt events will turn off this flag; this is done to avoid critical sections and missed interrupts. The W flag indicates that the process is waiting for an event; the event column will be nonblank. Note that although there may be several runnable processes at any time (shown in the ps listing as those without the W flag and with blank event fields) only one process is actually running at any one instant (The Refrigerator Light Effect says that the ps command is always the one running when this display is generated.) 3.68. pwd [] An alias for the cd command. 3.69. rarp This uses the reverse address resolution protocol. 3.69.1. rarp query This starts a reverse resolution request via iface to find the IP address for callsign. It counts down for 10 seconds before giving up listening for an answer. 3.70. record [off | ] Append to filename all data received on the current session. Data sent on the current session is also written into the file except for Telnet sessions in remote echo mode. The command record off stops recording and closes the file. 3.71. remote [p ] [k ] [a ] exit | reset | kick Send a UDP packet to the specified host commanding it to exit the NOS program, reset the processor, or force a retransmission on TCP connections. For this command to be accepted, the remote system must be running the remote server and the port number specified in the remote command must match the port number given when the server was started on the remote system. If the port numbers do not match, or if the remote server is not running on the target system, the command packet is ignored. Even if the command is accepted there is no acknowledgement. The kick command forces a retransmission timeout on all TCP connections that the remote node may have with the local node. If the a option is used, connections to the specified host are kicked instead. No key is required for the kick subcommand. The exit and reset subcommands are mainly useful for restarting the nos program on a remote unattended system after the configuration file has been updated. The remote system should invoke the NOS program automatically upon booting, preferably in an infinite loop. For example, under MSDOS the boot disk should contain the following in autoexec.bat: :loop nos goto :loop 3.71.1. remote s The exit and reset subcommands of remote require a password. The password is set on a given system with the s option, and it is specified in a command to a remote system with the k option. If no password is set with the s option, then the exit and reset subcommands are disabled. Note that remote is an experimental feature in NOS; it is not yet supported by any other TCP/IP implementation. 3.72. rename Rename oldfilename to newfilename. 3.73. reset [] Reset the specified session; if no argument is given, reset the current session. This command should be used with caution since it does not reliably inform the remote end that the connection no longer exists. (In TCP a reset (RST) message will be automatically generated should the remote TCP send anything after a local reset has been done. In AX.25 the DM message performs a similar role. Both are used to get rid of a lingering halfopen connection after a remote system has crashed.) 3.74. rip These commands are used for the RIP service. 3.74.1. rip accept Remove the specified gateway from the RIP filter table, allowing future broadcasts from that gateway to be accepted. 3.74.2. rip add [] Add an entry to the RIP broadcast table. The IP routing table will be sent to hostid every interval of seconds. If flags is specified as 1, then split horizon processing will be performed for this destination. That is, any IP routing table entries pointing to the interface that will be used to send this update will be removed from the update. If split horizon processing is not specified, then all routing table entries except those marked private will be sent in each update. (Private entries are never sent in RIP packets). Triggered updates are always done. That is, any change in the routing table that causes a previously reachable destination to become unreachable will trigger an update that advertises the destination with metric 15, defined to mean infinity. Note that for RIP packets to be sent properly to a broadcast address, there must exist correct IP routing and ARP table entries that will first steer the broadcast to the correct interface and then place the correct linklevel broadcast address in the linklevel destination field. If a standard IP broadcast address convention is used (eg. 128.96.0.0 or 128.96.255.255) then chances are you already have the necessary IP routing table entry, but unusual subnet or clusteraddressed networks may require special attention. However, an arp add command will be required to translate this address to the appropriate link level broadcast address. For example: arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff for an Ethernet network, and: arp add 44.255.255.255 ax25 qst0 for an AX.25 packet radio channel. (If multiple AX.25 interfaces, make a unique address for each interface.) 3.74.3. rip drop Remove an entry from the RIP broadcast table. 3.74.4. rip merge [on | off] This flag controls an experimental feature for consolidating redundant entries in the IP routing table. When rip merging is enabled, the table is scanned after processing each RIP update. An entry is considered redundant if the target(s) it covers would be routed identically by a less specific entry already in the table. That is, the target address(es) specified by the entry in question must also match the target addresses of the less specific entry and the two entries must have the same interface and gateway fields. For example, if the routing table contains: Dest Len Interface Gateway Metric P Timer Use 1.2.3.4 32 en0 128.96.1.2 1 0 0 0 1.2.3 24 en0 128.96.1.2 1 0 0 0 then the first entry would be deleted as redundant since packets sent to 1.2.3.4 will still be routed correctly by the second entry. Note that the relative metrics of the entries are ignored. 3.74.5. rip refuse Refuse to accept RIP updates from the specified gateway by adding the gateway to the RIP filter table. It may be later removed with the rip accept command. 3.74.6. rip request Send a RIP Request packet to the specified gateway, causing it to reply with a RIP Response packet containing its routing table. 3.74.7. rip status Display RIP status, including a count of the number of packets sent and received, the number of requests and responses, the number of unknown RIP packet types, and the number of refused RIP updates from hosts in the filter table. A list of the addresses and intervals to which periodic RIP updates are being sent is also shown, along with the contents of the filter table. 3.74.8. rip trace [0 | 1 | 2] This variable controls the tracing of incoming and outgoing RIP packets. Setting it to 0 disables all RIP tracing. A value of 1 causes changes in the routing table to be displayed, while packets that cause no changes cause no output. Setting the variable to 2 produces maximum output, including tracing of RIP packets that cause no change in the routing table. 3.74.9. rip ttl Displays or sets the time to live timer to seconds. Normal timeout value is 240 seconds. This is not the ttl in a rip broadcast (16 = infinite). Set this timer before starting rip. Change this timer only in cooperation with your surrounding nodes. Default is 240 seconds. 3.75. rlogin host Sets up an rlogin session via port 511 to a UNIX compatible station. Default terminal is an ansi (as defined with the fkeys) compatible terminal. Default user name is guest. (Redefine with set USER= environment variable). 3.76. rmdir Remove a subdirectory from the current working directory. 3.77. route With no arguments, route displays the IP routing table. 3.77.1. route add [/bits] | default [ | direct []] This command adds an entry to the routing table. It requires at least two more arguments, the hostid of the target destination and the name of the interface to which its packets should be sent. If the destination is not local, the gateways hostid should also be specified. (If the interface is a pointtopoint link, then gateway_hostid may be omitted even if the target is nonlocal because this field is only used to determine the gateways link level address, if any. If the destination is directly reachable, gateway_hostid is also unnecessary since the destination address is used to determine the interface link address). If rspf is used and the system is a switch / router to multiple routes the keyword direct can be used i.s.o a gateway_hostid to set the metric higher as the default 1. This way routes advertized by other rspf stations can be cheaper and get selected. If direct is given but metric not, an new algorithm is used to set the metric dependent on the number of subnet mask bits. The optional /bits suffix to the destination host id specifies how many leading bits in the host id are to be considered significant in the routing comparisons. If not specified, 32 bits (i.e., full significance) is assumed. With this option, a single routing table entry may refer to many hosts all sharing a common bit string prefix in their IP addresses. For example, ARPA Class A, B and C networks would use suffixes of /8, /16 and /24 respectively; the command route add 44/8 sl0 44.64.0.2 causes any IP addresses beginning with 44 in the first 8 bits to be routed to 44.64.0.2; the remaining 24 bits are dontcares. When an IP address to be routed matches more than one entry in the routing table, the entry with largest bits parameter (i.e., the best match) is used. This allows individual hosts or blocks of hosts to be exceptions to a more general rule for a larger block of hosts. The special destination default is used to route datagrams to addresses not matched by any other entries in the routing table; it is equivalent to specifying a /bits suffix of /0 to any destination hostid. Care must be taken with default entries since two nodes with default entries pointing at each other will route packets to unknown addresses back and forth in a loop until their timetolive (TTL) fields expire. (Routing loops for specific addresses can also be created, but this is less likely to occur accidentally). There are two built-in interfaces: loopback and encap. Loopback is for internal purposes only. The encap is an IP encapsulator interface. This is used to encapsulate a complete IP datagram into a IP datagram so that it gets piggybacked. It is often used to carry ampr.org datagrams (net44) over the Internet. Note that the Internet is fully connected and that ampr.org is (at least) very loose. This way two sites can interchange net44 datagrams to each other. Some extra notes: A Internet gateway has 2 IP addresses: one on ampr.org and one on the Internet. You should make sure that the interface connected to the Internet has the ifconfig ipaddr set correctly. Note: This previously only worked as a gateway for other stations. There was some guessing needed in picking an IP address when encap was used locally. The guessing always selects the worst guess. (always wrong with a 2.7 Murphy factor) The code now uses the local IP address as source when the route starts at the local station. If this is not what you want, you can overrule this by setting the IP address of the pseudo encap interface to what you want it to be. Some extra notes on encap: Suppose I have 3 systems on an Ethernet with network 129.179.122.128/25. In the office I have another network linked to the Internet. The addresses there are in the 129.179.122.0/25 range. Now I have a radio link with 44.137.0.2 and 44.137.1.2 on respective sites. On the 44.137.0.2 system I have: route add 44.0.0.0/8 encap 44.137.1.1 99 On a Next system on my local Ethernet I have 44.137.0.1 / 129.179.122.129. To get from that system to say 44.62.0.1 I have to add an encap to my local gateway with route add 44.0.0.0/8 encap 129.179.122.130. The following: route add default en0 129.179.122.130 gives me access to the Internet. Otherwise it will look up the address for the interface to be used to reach 129.179.122.130 and will use 129.179.122.129. Now 44.62.0.1 will NEVER know where it came from. So adding the encap on the second system solves the problem. Here are some examples of the route command: # Route datagrams to IP address 44.0.0.3 to SLIP line #0. # No gateway is needed because SLIP is pointto point. route add 44.0.0.3 sl0 # Route all default traffic to the gateway on the local Ethernet # with IP address 44.0.0.1 route add default en0 44.0.0.1 # The local Ethernet has an ARPA ClassC address assignment; # route all IP addresses beginning with 192.4.8 to it route add 192.4.8/24 en0 # The station with IP address 44.0.0.10 is # on the local AX.25 channel route add 44.0.0.10 ax0 # An encapsulation link to 192.4.8.12 where the subnet 44.64.0.0 is # accessible. The internet does not know where we are but we just # use them with what they know: route add 44.64.0.0/16 encap 192.4.8.12 4 3.77.2. route addprivate [/bits] | default [ []] This command is identical to route add except that it also marks the new entry as private; it will never be included in outgoing RIP updates. 3.77.3. route drop Route drop deletes an entry from the table. If a packet arrives for the deleted address and a default route is in effect, it will be used. 3.78. rspf RSPF is the Radio Shortest Path First protocol. Each station listens for RRH (Router to Router Hello) messages. When such a RRH message is received, NOS will figure out if the link is bidirectional by pinging the other station. The protocol is described in the RSPF 2.1 specification. 3.78.1. rspf interface is the required interface rspf should use. quality is from 1 to 127 horizon is between 1 to 255 End nodes should have the quality set to 1. Immediate nodes normally set the quality to 8. The normally used value for horizon is 32. 3.78.2. rspf mode [vc | datagram | none] Without arguments, displays the preferred mode for RSPF. Modes are VC (Virtual Circuit) and Datagram. none resets the preferred mode. 3.78.3. rspf rrhtimer [seconds] Without arguments, displays the RRH timer value. 3.78.4. rspf suspecttimer [seconds] Without arguments, displays the suspect timer value. 3.78.5. rspf timer [seconds] Without arguments, displays the update timer value. To activate RSPF, do the following. Set the broadcast address for the destination interface, example ax0: ifconfig ax0 broadcast 44.255.255.255 This automatically creates a routing entry for 44.255.255.255 in the routing table. If intend to use RSPF on more than one interface, those interfaces must each have different broadcast addresses. Else the routing entries will be overwritten by the next definition. Configure ax0 as an RSPF interface with horizon 32 and a quality of 1 (hops). This is typical for an end node. replace the 1 with an 8 for immediate nodes: rspf interface ax0 1 32 Set the interval between RRH messages. rspf rrhtimer 900 Define how long it takes until an idle link is suspected to be bad. rspf suspecttimer 2000 Set the interval between routing updates. rspf timer 900 3.79. sccstat Display the scc driver statistics. 3.80. session [[] [flowmode [on | off]]] Without arguments, displays the list of current sessions, including session number, remote TCP or AX.25 address and the address of the TCP or AX.25 control block. An asterisk (*) is shown next to the current that session. Entering a session number as an argument to the session command will put you in converse mode with that session. If the Telnet session; entering a blank line at this point puts you in converse mode with server is enabled, the user is notified of an incoming request and a session number is automatically assigned. The user may then select the session normally to converse with the remote user as though the session had been locally initiated. Adding the flowmode displays or enables / disables setting of *more* handling for that session. This is handy for example by long directory listings coming from an ftp session. Escaping to command mode before issuing the dir command and entering session # flowmode on gives a page at a time to look at. At any time you can escape out again and switch flowmode off. Note that a ftp session has its own flow command built-in. See FTP commands later in this manual. 3.82. skick #socket This is a shorthand for the various kick subcommands. This one searches the socket for correct type and kicks the transport layer. 3.83. smtp These commands are used for the Simple Message Transport Protocol service (that is, mail). 3.83.1. smtp batch [yes | no] If set smtp will batch the commands into one frame. When off only one command is send and a response is waited for. Some old and flaky smtp servers cannot handle more than one command at a time. NOS can handle multiple. If you are not hindered by an old smpt server, setting batch reduces bandwidth. 3.83.2. smtp gateway [host] Displays or sets the host to be used as a smart mail relay. Any mail spooled for a host which is not in the domain.txt file, will instead be sent to the gateway for forwarding. 3.83.3. smtp kick Run through the outgoing mail queue and attempt to deliver any pending mail. This command allows the user to kick the mail system manually. Normally, this command is periodically invoked by a timer whenever NOS is running. 3.83.4. smtp kill [job] Kill the job and delete the message. 3.83.5. smtp list List the current jobs. A L means locked and in progress. It is wise to add in autoexec.bat a del /spool/mqueue/*.lck command. 3.83.6. smtp maxclients [count] Displays or sets the maximum number of simultaneous outgoing SMTP sessions that will be allowed. The default is 10; reduce it if network congestion is a problem. 3.83.7. smtp mode [queue | route] Sets the smtp delivery mode. If queue, all messages are left in /spool/rqueue for external forwarding and handling. If route, messages are handled for both local and remote forwarding. 3.83.8. smtp mxlookup [yes | no] Displays or sets a flag enabling or disabling MX record lookups. This can be enabled if a domain server is available in the near distance (reachable). It should be disabled (default) if no domain server is in reach to satisfy the MX query. Note that MX record handling is very limited in NOS. If an answer from a domain name server comes in it is taken to be the destination. 3.83.9. smtp quiet [yes | no] Enables or disables the message that new mail arrived at this system. 3.83.10. smtp timer [] Displays or sets the interval, between scans of the outbound mail queue. For example, smtp timer 600 will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds, subject of course to the smtp maxclients limit. Setting a value of zero disables queue scanning altogether, note that this is the default! This value is recommended for stand alone IP gateways that never handle mail, since it saves wear and tear on the disk drive. 3.83.11. smtp trace [value] Displays or sets the trace flag in the SMTP client, allowing you to watch SMTPs conversations as it delivers mail. Zero (the default) disables tracing. 3.84. socket [[] [flowmode [yes | no]]] Without an argument, displays all active sockets, giving their index and type, the address of the associated protocol control block and the and owner process ID and name. If the index to an active socket is supplied, the status display for the appropriate protocol is called. For example, if the socket refers to a TCP connection, the display will be that given by the tcp status command with the protocol control block address. Flow mode can be set or cleared on a session if so wanted. This comes in handy when a large directory is displayed by ftp. Escaping from the session just before entering dir and setting flowmode and returning to that session, gives a screen full at a time with more processing. 3.85. source Read subsequent commands from filename until EOF. Then resume reading commands from the previous stream. This can be used to keep routing statements in a separate file, which can be read at some point in autoexec.nos. 3.86. start ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink Start the specified Internet server, allowing remote connection requests. 3.87. status Displays load information on NOS. When started, how long running, open files etc. 3.88. stop ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink Stop the specified Internet server, rejecting any further remote connect requests. Existing connections are allowed to complete normally. 3.89. tail This command displays the last couple of lines of file filename. 3.91. telnet [] Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 23. 3.92. test Start an internal test for an overflow problem that might appear in the clock function of some AT computers. 3.93. thirdparty [yes | no] This is a restriction setter for some countries where stations are not allowed to handle third-party mail traffic. 3.94. ttylink [] Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 87. This uses a split screen interface for easy conversation. 3.95. tip Creates a tip session that connects to the specified interface in dumb terminal mode. The interface must have already been attached with the attach command. Any packet traffic (IP datagrams, etc) routed to the interface while this session exists will be discarded. To close a tip session, use the reset command. It will then revert to normal SLIP, NRS or KISS mode operation. This feature is primarily useful for manually establishing SLIP connections. At present, only the builtin comm ports can be used with this command. 3.96. trace [ [off | []]] Controls packet tracing by the interface drivers. Specific bits enable tracing of the various interfaces and the amount of information produced. Trace output to the screen is only send to the command screen, when in a session tracing to the screen is suspended. (From version 2.0l) Tracing is controlled on a perinterface basis; without arguments, trace gives a list of all defined interfaces and their tracing status. Output can be limited to a single interface by specifying it, and the control flags can be change by specifying them as well. The flags are given as a hexadecimal number which is interpreted as follows: O  Enable tracing of output packets if 1, disable if 0 I  Enable tracing of input packets if 1, disable if 0 T  Controls type of tracing: 0  Protocol headers are decoded, but data is not displayed 1  Protocol headers are decoded, and data (but not the headers themselves) are displayed as ASCII characters, 64 characters/line. Unprintable characters are displayed as periods. 2  Protocol headers are decoded, and the entire packet (headers AND data) is also displayed in hexadecimal and ASCII, 16 characters per line. B  Broadcast filter flag. If set, only packets specifically addressed to this node will be traced; broadcast packets will not be displayed. If tracefile is not specified, tracing will be to the console. 3.97. udp status Displays the status of all UDP receive queues. 3.98. verbose [0 | 1 | 2 | 3] Set or display the level of message output in file transfers. Verbose 0 gives the least output, and verbose 3 the most, as follows: 0  Display error messages only. 1  Display error messages plus a oneline summary after each transfer giving the name of the file, its size, and the transfer time and rate. 2  Display error and summary messages plus the progress messages generated by the remote FTP server. (This setting is the default.) 3  Display all messages. In addition, a hash mark (#) is displayed for every 1,000 bytes sent or received. If a command is sent to the remote server because it is not recognized locally, the response is always displayed, regardless of the setting of verbose. This is necessary for commands like pwd (display present working directory), which would otherwise produce no message at all if verbose were set to 0 or 1. 4. Attach Commands This chapter details the attach commands for the various hardware interface drivers. Not all of these drivers may be configured into every NOS binary; a list of the available types may be obtained by entering the command attach ?. Some parameters are accepted by several drivers. They are: 4.0.1. For asynchronous devices (eg. COM ports operating in SLIP or NRS mode) this parameter specifies the size of the receivers ring buffer. It should be large enough to hold incoming data at full line speed for the longest time that the system may be busy in DOS or the BIOS doing a slow I/O operation (eg. to a floppy disk). A kilobyte is usually more than sufficient. For synchronous devices (e.g., the SCC, or HS interfaces operating in HDLC mode), the bufsize parameter specifies the largest packet that may be received on the interface. This should be set by mutual agreement among stations sharing the channel. For standard AX.25 with a maximum Iframe data size of 256 bytes, a value of 325 should provide an adequate safety margin. On higher speed channels (eg. 56kb/s) larger values (eg. 2K bytes) will provide much better performance and allow fullsized Ethernet packets to be carried without fragmentation. 4.0.2. The base address of the interfaces control registers.This might be specified in hex as 0xnnn or decimal. (nnn is the hexadecimal number). 4.0.3. The interfaces hardware interrupt (IRQ) vector, in decimal. When a vector is followed by the character c then the vector is added in a interrupt chain. This way multiple devices can share the same interrupt vector (hardware changes might be necessary). A sample is the use of a four port communications board sharing the same vector. The first attach command has a plain vector and the following have the c appended. Note that the highest speed port should be defined last (as it is served first by the chaining). Do not specify the c with the first attach statement in that group as unpredictable results will occur. attach asy 0x3f8 4 ax25 ax0 2048 256 1200 attach asy 0x3f0 4c ax25 ax1 2048 256 9600 4.0.4. The name (an arbitrary character string) to be assigned to this interface. It is used to refer to the interface in ifconfig and route commands and in trace output. 4.0.5. The Maximum Transmission Unit size, in bytes. Datagrams larger than this limit will be fragmented at the IP layer into smaller pieces. For AX.25 UI frames, this limits the size of the information field. For AX.25 I frames, however, the AX.25 paclen parameter is also relevant. If the datagram or fragment is still larger than paclen, it is also fragmented at the AX.25 level (as opposed to the IP level) before transmission. (See the AX.25 paclen command for further information). 4.0.6. The interface speed in baud (eg. 4800). 4.1. attach 3c500 arpa [] Obsolete. 4.2. attach asy ax25 | nrs | ppp | slip | raw [] Attach a standard comm port (asynchronous serial port), using the National 8250 or 16550A chip. Standard values for ioaddr and vector are 0x3f8 and 4 for COM1, and 0x2f8 and 3 for COM2. If the port uses a 16550A chip, it will be detected automatically and the FIFOs enabled. 4.2.1. ax25 Similar to SLIP, except that an AX.25 header and a KISS TNC control header are added to the front of the datagram before SLIP encoding. Either UI (connectionless) or I (connectionoriented) AX.25 frames can be used; see the mode command for details. 4.2.2. nrs Use the Net/Rom asynchronous framing technique for communication with a local Net/Rom TNC. If using TheNet X-1J or greater you should use the KISS mode. 4.2.3. ppp PointtoPointProtocol. Encapsulates datagrams in an HDLClike frame. This is a new Internet standard for pointtopoint communication, compatible with CCITT standards. 4.2.4. slip Serial Line Internet Protocol. Encapsulates IP datagrams directly in SLIP frames without a link header. This is for operation on pointtopoint lines and is compatible with 4.2BSD UNIX SLIP. 4.2.5. raw Raw serial line without protocol , special for lpd server. 4.2.6. The optional flags are a string of the characters vf. v enables Van Jacobson TCP/IP Header Compression, and is valid only for SLIP. f forces the FIFO on for 16550AFN compatible chips not detected by software (unpredictable results will occur when specified on a non-16550 type chip). 4.3. attach axip This creates a RFC 1226 compatible AX.25 frame encapsulator for transmission of AX.25 frames over the Internet. Iface will be the name of the interface, ip_addr the address of the remote system and callsign the AX.25 callsign this station is listening on for frames to digipeat. Note that each attached axip interface should have a different callsign to listen to and this should also be different from other callsigns used on this station. 4.4. attach drsi ax25 Obsolete. 4.5. attach eagle ax25 Obsolete. 4.6. attach hapn ax25 csma | full Obsolete. 4.7. attach hs ax25

Attach a DRSI or Eagle Computer interface card using a special high speed 8530 driver. This driver uses busywait loops to send and receive each byte instead of interrupts, making it usable with high speed modems (such as the WA4DSY 56kb/s modem) on slow systems. This does have the side effect of freezing the system whenever the modem transmitter or receiver is active. This driver can operate only in CSMA mode, and it is recommended that no other interfaces requiring small interrupt latencies be attached to the same machine. The keyup_delay parameter specifies the transmitter keyup delay in byte time intervals. The p value specifies the transmitter persistence value in the range 1255; the corresponding slot time is fixed at one hardware clock tick, about 55 ms using DOS. As with the other 8530 drivers, this driver actually attaches two interfaces, one for each 8530 channel. 4.8. attach packet Driver for use with separate software packet drivers meeting the FTP Software, Inc, Software Packet Driver specification. The driver must have already been installed before the attach command is given. Packet drivers in the Ethernet, ARCNET, SLIP, SLFP, and KISS/AX25 classes are supported. intvec is the software interrupt vector used for communication to the packet driver, and txqlen is the maximum number of packets that will be allowed on the transmit queue. 4.9. attach pc100 ax25 Obsolete. 4.10. attach scc init [p | r] [] [] Driver to initialize a generic SCC (8530) interface board prior to actually attaching it. The parameters are as follows: 4.10.1. The number of SCC chips to support. 4.10.2. The base address of the first SCC chip (hexadecimal only). 4.10.3. The spacing between the SCC chip base addresses. 4.10.4. The offset from a chips base address to its channel A control register. 4.10.5. The offset from a chips base address to its channel B control register. 4.10.6. The offset from each channels control register to its data register. 4.10.7. The address of the INTACK/Read Vector port. If none, specify 0 to read from RR3A/RR2B. 4.10.8. The CPU interrupt vector for all connected SCCs. 4.10.9. The clock frequency (PCLK/RTxC) of all SCCs in hertz. Prefix with p for PCLK, r for RTxC clock (for baudrate gen). 4.10.10. Optional hardware type. The following values are currently supported: 1  Eagle card 2  PACCOMM PC100 4  PRIMUSPC card (DG9BL) 8  DRSI PCPA card. 4.10.11. Optional extra parameter. At present, this is used only with the PC100 and PRIMUSPC cards to set the modem mode. The value 0x22 is used with the PC100 and 0x2 is used with the PRIMUSPC card. The attach scc ... init command must be given before the interfaces are actually attached with the following command. 4.11. attach scc slip | kiss | nrs | ax25 [] Attach an initialized SCC port to the system. The parameters are as follows: 4.11.1. The SCC channel number to attach, 0 or 1 for the first chips A or B port, 2 or 3 for the second chips A or B port, etc. 4.11.2. slip | kiss | nrs | ax25 The operating mode of the interface. slip, kiss and nrs all operate the port hardware in asynchronous mode; slip is Internetstandard serial line IP mode, KISS generates SLIP frames containing KISS TNC commands and AX.25 packets and nrs uses Net/Rom local serial link framing conventions to carry Net/Rom packets. Selecting AX.25 mode puts the interface into synchronous HDLC mode that is suitable for direct connection to a half duplex radio modem. 4.11.3. The interface speed in baud (eg. 4800). Prefix with d when an external divider is available to generate the TX clock. When the clock source is PCLK, this can be a /32 divider between TRxC and RTxC. When the clock is at RTxC, the TX rate must be supplied at TRxC. This is needed only for full duplex synchronous operation. When this arg is given as ext, the transmit and receive clocks are external, and the internal baud rate generator (BRG) and digital phase locked loop (DPLL) are not used. 4.12. Attach Examples Here are some examples of the attach command: # Attach the PC asynch card normally known as com1 (the first controller) # to operate in pointtopoint slip mode at 9600 baud, calling it sl0. # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger # than 256 bytes are fragmented. attach asy 0x3f8 4 slip sl0 1024 256 9600 # Attach the secondary PC asynch card (com2) to operate in AX.25 mode # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it ax0. # By default, IP datagrams are sent in UI frames attach asy 0x2f8 3 ax25 ax0 1024 576 9600 # Attach a axip wormhole attach axip ai0 256 129.179.122.10 pa0gri11 # on the other side of the wormhole attach axip ai0 256 129.179.122.130 pa0gri12 # Now assume 129.179.122.10 has a AX.25 interface # with callsign pa0gri10 and 129.179.122.130 a # interface with callsign pa0gri8 # Now a AX.25 frame like: # pe1chl>pa0gri11>pa0gri8>pe1dna [ data] # Received by pa0gri11, set the hasbeendigipeated # change the interface callsign with the one it really came in from # and encapsulates it in a IP frame type 93 and ships it to # 129.179.122.130 # pe1chl>pa0gri10*>pa0gri8>pe1dna [ data] # Arrived at 129.179.122.130 the next digi is searched for # and found. The frame is changed into: # pe1chl>pa0gri10*>pa0gri12*>pe1dna [ data] # so that on the way back the frame will find the # right interface. # Attach the packet driver loaded at interrupt 0x6b # The packet driver is for an Ethernet interface attach packet 0x6b ethernet 15 1500 5. FTP Subcommands During converse mode with an FTP server, everything typed on the console is first examined to see if it is a locallyknown command. If not, the line is passed intact to the remote server on the control channel. If it is one of the following commands, however, it is executed locally. (Note that this generally involves other commands being sent to the remote server on the control channel.) 5.1. dir [ | []] Without arguments, dir requests that a full directory listing of the remote servers current directory be sent to the terminal. If one argument is given, this is passed along in the LIST command; this can be a specific file or subdirectory that is meaningful to the remote file system. If two arguments are given, the second is taken as the local file into which the directory listing should be put (instead of being sent to the console). The PORT command is used before the LIST command is sent. 5.2. flow [off|on] Displays or sets the more processing on the current ftp session. When set to on, a more prompt is displayed after each screen full of data. You can do the same with a session # flow command. Note that this is a local extension to the standard ftp command set. 5.3. get [] Asks the remote server to send the file specified in the first argument. The second argument, if given, will be the name of the file on the local machine; otherwise it will have the same name as on the remote machine. The PORT and RETR commands are sent on the control channel. 5.4. hash A synonym for the verbose 3 command. 5.5. ls [ | []] This is identical to the dir command except that the NLST command is sent to the server instead of the LIST command. This results in an abbreviated directory listing, i.e., one showing only the file names themselves without any other information. 5.6. mget [ ...] Fetch a collection of files from the server. File names may include wild card characters; they will be interpreted and expanded into a list of files by the remote system using the NLST command. The files will have the same name on the local system that they had on the server. 5.7. mkdir Creates a directory on the remote machine if authorized. 5.8. mput [ ...] Send a collection of files to the server. File names may include wild card characters; they will be expanded locally into a list of files to be sent. The files will have the same name on the server as on the local system. 5.9. put [] Asks the remote server to accept data, creating the file named in the first argument. The second argument, if given, will be the name of the file on the remote machine; otherwise it will have the same name as on the local machine. The PORT and STOR commands are sent on the control channel. 5.10. rmdir Deletes a directory on the remote machine if authorized. 5.11. type [a | i | l ] Tells both the local client and remote server the type of file that is to be transferred. The default, (which can be changed with the ftype command) is a, which means ASCII (i.e., a text file). Type i means image, i.e., binary. In ASCII mode, files are sent as varying length lines of text in ASCII separated by cr/lf sequences; in IMAGE mode, files are sent exactly as they appear in the file system. ASCII mode should be used whenever transferring text between dissimilar systems (e.g., UNIX and MSDOS ) because of their different endofline and/or endoffile conventions. When exchanging text files between machines of the same type, either mode will work but IMAGE mode is usually faster. Naturally, when exchanging raw binary files (executable, compressed archives, etc) IMAGE mode must be used. Type l (logical byte size) is used when exchanging binary files with remote servers having oddball word sizes (e.g., DECSYSTEM10s and 20s). Locally it works exactly like IMAGE, except that it notifies the remote system how large the byte size is. Bytesize is typically 8. The type command sets the local transfer mode and generates the TYPE command on the control channel. 5.12. verbose [0 | 1 | 2 | 3] Set or display the level of message output in file transfers. Verbose 0 gives the least output, and verbose 3 the most, as follows: 0  Display error messages only. 1  Display error messages plus a oneline summary after each transfer giving the name of the file, its size, and the transfer time and rate. 2  Display error and summary messages plus the progress messages generated by the remote FTP server. (This setting is the default.) 3  Display all messages. In addition, a hash mark (#) is displayed for every 1,000 bytes sent or received. If a command is sent to the remote server because it is not recognized locally, the response is always displayed, regardless of the setting of verbose. This is necessary for commands like pwd (display working directory), which would otherwise produce no message at all if verbose were set to 0 or 1. 6. Dialer Subcommands Each dialer command may (should) have a different dialer file. The file resides in the configuration directory, as specified in the Installation section (see chapter 1). A typical dialer file might be: # Set the speed, and toggle DTR to ensure modem is in command mode. control down wait 3000 speed 2400 control up wait 3000 # Dial, and wait for connection send atdt5551212\r wait 45000 CONNECT speed wait 2000 # PAD specific initialization send \r wait 15000 Terminal = send ppp\r wait 10000 \r\n 6.0.1. control down | up Control asy interface. The down option drops DTR and RTS. The up option asserts DTR and RTS. 6.0.2. send string This dialer command will write the specified string to the interface. The string quote marks are required, and the string may not contain embedded control characters. However, the standard C string escape sequences are recognized (\0 should not be used). 6.0.3. speed [ 9600 | 4800 | 2400 | 1200 | 300 ] This dialer command will set the speed of the interface to one of the available speeds. If the speed is missing, the speed will be displayed in the dialer session window. 6.0.4. wait [ test string ] [ speed ] If only the time is specified, the dialer pauses for the desired number of milliseconds. Otherwise, the dialer reads until the test string is detected on the interface. If the string is not detected within the desired time, the autodialer will reset. The string quote marks are required, and the string may not contain embedded control characters. However, the standard C Language string escape sequences are recognized (\0 should not be used). Finally, if the speed parameter is specified, the dialer will continue to read characters until a nondigit is detected. The string read is converted to an integer, and used to set the interface speed. If the trailing non-digit is not detected within the desired time, or the integer value is not a valid speed, the autodialer will reset. 7. Installation NOS uses the following file and directory structure: ~/alias ~/autoexec.nos ~/dialer ~/domain.txt ~/ftpusers ~/net.rc ~/netrom.sav ~/popusers ~/finger/ ~/etc/printcap ~/etc/lpdperms ~/etc/log ~/spool/areas ~/spool/mail.log ~/spool/net.log ~/spool/forward.bbs ~/spool/history ~/spool/rewrite ~/spool/help/ ~/spool/mail/ ~/spool/mqueue/ ~/spool/news/ ~/spool/news/active ~/spool/news/pointer ~/spool/news/info ~/spool/news/help ~/spool/news/history ~/spool/news/forward ~/spool/news/poll ~/spool/rqueue/ ~/spool/signatur/ ~/spool/lpd/ The ~ symbol in front of all files is a directory offset definable with the d option on the NOS command line. Any name may be chosen and is default empty. (eg. just /) If for example d/net is given, the structure shifts to /net/... The alias, autoexec.nos, dialer, domain.txt net.rc, popusers and ftpusers configuration files are located here. The netrom.sav file will be created there. The /spool directory and its subdirectories are used by the BBS, SMTP and NNTP services. The areas, forward.bbs, history, mail.log and rewrite configuration files are located here. The /spool/news directory can have many subdirectories and each subdirectory can have subdirectories. Newsgroups are split into hierarchical directory structures. A news article in newsgroup rec.amateur.radio.packet will end up in /spool/news/rec/amateur/radio/packet.txt. 7.2. The /popusers File Here are the username / password combinations defined for the POP users. It has a simple convention: user:password: For every POP user such a line has to be added. The user and password fields should match the pop userdata statement of the remote user. Both user and password have to be delimited with a colon character. 7.4. The /domain.txt File NOS translates domain names (eg. ka9q.ampr.org) to IP addresses (eg. 44.0.0.1) through the use of an Internet Domain Name resolver and a local cache file, domain.txt. Whenever the user specifies a domain name, the local cache is searched for the desired entry. If it is present, it is used; if not, and if domain name server(s) have been configured, a query is sent over the network to the current server. If the server responds, the answer is added to the domain.txt file for future use. If the server does not respond, any additional servers on the list are tried in a roundrobin fashion until one responds, or the retry limit is reached (see the domain retry command). If domain.txt does not contain the desired entry and there are no configured domain name servers, then the request immediately fails. If a domain name server is available, and if all references to hostids in your /autoexec.nos file are in IP address format, then it is possible to start with a completely empty domain.txt file and have NOS build it for you. However, you may wish to add your own entries to domain.txt, either because you prefer to use symbolic domain names in your /autoexec.nos file or you dont have access to a domain server and you need to create entries for all of the hosts you may wish to access. Each entry takes one line, and the fields are separated by tabs. For example: ka9q.ampr.org. IN A 44.0.0.1 IN is the class of the record. It means Internet, and it will be found in all entries. A is the type of the record, and it means that this is an address record. Domain name ka9q.ampr.org therefore has Internet address 44.0.0.1. Another possible entry is the CNAME (Canonical Name) record. For example: ka9q.ampr.org. IN CNAME pc.ka9q.ampr.org. This says that domain name ka9q.ampr.org is actually an alias for the system with (primary, or canonical) domain name pc.ka9q.ampr.org. When a domain name having a CNAME record is given to NOS, the system automatically follows the reference to the canonical name and returns the IP address associated with that entry. Entries added automatically by NOS will have an additional field between the domain name and the class (IN) field. For example: pc.ka9q.ampr.org. 3600 IN A 44.0.0.1 This is the timetolive value, in seconds, associated with the record received from the server. Clients (such as NOS) caching these records are supposed to delete them after the timetolive interval has expired, allowing for the possibility that the information in the record may become out of date. This implementation of NOS will decrement the TTL to zero, but will not delete the record unless the clean flag is on (see the domain cache clean command). When a remote server is not available, the old entry will be used. When the TTL value is missing (as in the examples above), the record will never expire, and must be managed by hand. Since domain.txt is a plain text file, it may be easily edited by the user to add, change or delete records. Additional types of records, include NS (name server) and SOA (start of authority) may appear in domain.txt from remote server responses. These are not currently used by NOS but are retained for future development (such as the incorporation of a domain name server into NOS itself). 7.5. The /alias file. SMTP server ALIAS file. This is for resolving a given target address into a single or multiple entry mail list. Format: mail_list_name call_1@host_1 [call_2@host_2]......# comments pa0gri gvdg@fridley.cdh.cdc.com kelvin g1emm@g1emm.ampr.org # bob gb3xp@gb3xp.ampr.org ian g3rra@g3rra.ampr.org jim g1wkk@g1wkk.ampr.org john g5ds%gb3kp@gb3xp.ampr.org ted gb3kp%gb3kp@gb3xp.ampr.org ron g6vug@g6vug.ampr.org tim g4uqe@g4uqe.ampr.org gareth g6kvk%gb7spv@gb3xp.ampr.org bolton gb7tcp%gb7crg@gb3xp.ampr.org julian g7efe%gb7cfb@gb3xp.ampr.org # world g3rra@g3rra.ampr.org gb3xp@gb3xp.ampr.org g1plt@g1plt.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g6kvk%gb7spv@gb3xp.ampr.org g1ttg@g1ttg.ampr.org g6vug@g6vug.ampr.org g6kqz@g6kqz.ampr.org g4uqe@g4uqe.ampr.org g8ogr@g8ogr.ampr.org g4xwv@g4xwv.ampr.org # locals g3rra@g3rra.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g4bio@g4bio.ampr.org g1plt@g1plt.ampr.org g4uqe@g4uqe.ampr.org g6kqz@g6kqz.ampr.org g4tnu@g4tnu.ampr.org g6xqb@g6xqb.ampr.org Note that it is reasonable, and sometimes desirable, to have alias records in the form: area area dest1 dest2 As the /alias file is scanned only once, this does not result in an infinite recursion. 7.6. The /spool/areas file. This file is a header file shown to a mailbox user when he requests the a display. It should show all public mailboxes to read. Here is a sample:  PublicMailAreas ------- | General  Any old chitchat that is clean. | TcpIp  General Discussion IP messages | Bugs  Where to report bugs | Updates  NOS version UPDATES | | -------- 7.7. The /spool/forward.bbs file. The mailbox reads a forwarding file, spool/forward.bbs. Here is a sample file: wb0ttw 0006 ax25 ax0 wb0ttw wb0ttw w0tn mspbul all  wb0gdb netrom #msparh .c msparh all  The first word on the first line in a forwarding record is the name of the BBS to forward to. This should be the same type of name which is shown by the mbox status command. The second word is optional. It specifies a range of hours when forwarding may take place. 0006 means that there will only be forwarding to this station between midnight and 6am. The second line specifies how to establish the connection. It should start with the protocol (ax25, connect, tcp, telnet or netrom) and be followed by all the parameters which are necessary when NOS has to establish a connection. Directly after the second line, there may be lines that start with a dot. What follows after the dot will be send to the remote BBS as soon as the connection is established. Then follows the names of a number of message areas, public or private. Finally, there should be a couple of  signs to separate one forwarding record from another. Also terminate the file with a last line of dashes. 7.8. The /spool/rewrite file. Read the rewrite file for lines where the first word is a regular expression and the second word are rewriting rules. An optional third field, containing just the letter r, when present, instructs NOS to restarame as the CONNECT command but uses the split window feature. The edit line is line 25, and your sent text is highlighted. Received text is normal. See also the Net/Rom SPLIT command. 2.98 SOCKET 2.99 SOURCE source 2.100 START start 2.101 STOP stop 2.102 STATUS 2.103 TCP tcp These commands are used for the Transmission Control Protocol service. 2.103.1 tcp access [/bits] [] Set or display access contZrol for TCP connection requests. This command implements TCP access control to NOS. Permit enables destaddr packets of type TCP to be routed through to the TCP layer. Deny disables those. If low port is given as the keyword all, all socket numbers 0 to 65534 are permitted (or denied, depending on the permit or deny keyword). If only lowport is given, only that portnumber is checked. If lowport and highport are given, checking is done according to that range. If a TCP access table is defined, all undefined ranges will be denied. Some samples: tcp access permit 44.0.0.0/8 3600 3601 tcp access deny all 3600 3601 tcp access permit 44.137.0.0/16 all 2.103.2 tcp irtt [] Display or set the initial round trip time estimate, in milliseconds, to be used for new TCP connections until they can measure and adapt to the actual value. The default is 5000 milliseconds (5 seconds). Increasing this when operating over slow channels will avoid the flurry of retransmissions that would otherwise occur as the smoothed estimate settles down at the correct value. Note that this command should be given before servers are started in order for it to have effect on incoming connections. TCP also keeps a cache of measured round trip times and mean deviations (MDEV) for current and recent destinations. Whenever a new TCP connection is opened, the system first looks in this cache. If the destination is found, the cached IRTT and MDEV values are used. If not, the default IRTT value mentioned above is used, along with a MDEV of 0. This feature is fully automatic, and it can improve performance greatly when a series of connections are opened and closed to a given destination (eg. a series of FTP file transfers or directory listings). 2.103.3 tcp kick If there is unacknowledged data on the send queue of the specified TCB, this command forces an immediate retransmission. 2.103.4 tcp mss [] Display or set the TCP Maximum Segment Size in bytes that will be sent on all outgoing TCP connect request (SYN segments). This tells the remote end the size of the largest segment (packet) it may send. Changing MSS affects only future connections; existing connections are unaffected. 2.103.5 tcp reset Deletes the TCP control block at the specified address. 2.103.6 tcp rtt Replaces the automatically computed round trip time in the specified TCB with the rtt in milliseconds. This command is useful to speed up recovery from a series of lost packets since it provides a manual bypass around the normal backoff retransmission timing mechanisms. 2.103.7 tcp status [] Without arguments, displays several TCPlevel statistics, plus a summary of all existing TCP connections, including TCB address, send and receive queue sizes, local and remote sockets, and connection state. If tcb_addr is specified, a more detailed dump of the specified TCB is generated, including send and receive sequence numbers and timer information. 2.103.8 tcp syndata [yes | no] Display or set the TCP SYN + Data piggy-backing flag. Some TCP systems cannot handle SYN + Data together. 2.103.9 tcp timertype [linear | exponential] Displays the current setting or sets the timer type backoff algorithm. 2.103.10 tcp trace [yes | no] Display or set the TCP trace flag on or off. 2.103.11 tcp window [] Displays or sets the default receive window size in bytes to be used by TCP when creating new connections. Existing connections are unaffected. 2.104 TAIL tail Shows the last 18 lines of the specified text file, or 2000 characters of a binary file. 2.105 TELNET telnet [port] 2.106 TTYLINK ttylink [port] Same as Telnet but uses the pseudosplit window feature. 2.107 THIRDPARTY thirdparty [on | off] This command was put in for Amateurs overseas who have restrictions on passing mail not originated by the connected stations. This is useful also for making a personal mailbox, rather than a public one. Without the option it shows the current state. 2.108 TIP tip 2.109 TSYNC_STAT Used with the Gracilis PackeTwin card. Shows a quick one line status of activity. 2.110 TSYDUMP tsydump [0 | 1] Used with the Gracilis PackeTwin card. Shows a detailed report of card status and the register values. This is formated very poorly however, and takes more than a page to show. 2.111 TRACE trace [interface] [mode] Used to monitor packets. TRACE alone shows all tracing status, and given an interface name shows only the one. The mode is selected from one of the following using either the text or hex mode command. The commonly used setting is trace ax0 111 which will perform input, output, ascii tracing. TEXT HEX input 10 input 0 output 1 output 0 broadcast 0 broadcast 1000 raw 2000 raw 0 ascii 100 ascii 0 hex 200 hex 0 off 0 2.112 STRACE strace [on | off] Used to direct TRACE to a sperate window. When on, the session window is reached with the F9 key. When off, the TRACE is directed to the current window. Leaving off the option lists the current state. 2.113 UDP udp [status] The User Datagram Protocol has one option, to list its status. Functions that use UDP for example, are the REMOTE and DOMAIN DNS commands. 2.114 UPLOAD upload [filename] Opens filename and sends it on the current session as though it were typed at the terminal. For uploading files or text. 2.115 WATCH watch Displays the current software stopwatch values, with min and max readings for each. This facility allows a programmer to measure the execution time of critical sections of code with microsecond resolution. This command is supported only on the PC, and the meaning of each stopwatch value depends on where the calls have been inserted for test purposes; the distribution copy of NOS usually has no stopwatch calls. 2.116 WATCHDOG watchdog [on | off] Enables or disables the watchdog timer. If internal operations cease for 300 seconds and the watchdog is enabled, a system reset is performed. See the remote command for setting up AUTOEXEC.BAT. 2.117 WRITE write 2.118 WRITEALL writeall ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~string> 3.0 User Commands This section lists the commands which the users may enter when connected to the mailbox system. @ Go to SYSOP mode (if permitted) ? Give short list of all commands A Give list of message areas without descriptions AF Give the areas list with descriptions (if set) A name Change to area name B Bye (ie. disconnect) C Convers bridge (like DxCLUSTER), if available C node Netrom connection, if permitted and available C iface call AX.25 connection, if permitted CA CoωЉPhvwq%;EF[oxy-67($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$- @ZQeno˞̞6KST6?CDԢբ4F^o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-oz{ǣj|cwѥҥ/H_`ݦަ;S^_ԧ,@QYhs$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-s~<EIJ~Ŭ,BN`u߭  */ǮѮڮ$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-  ϯܯ '1;YZ(1:L^pzг޳&5DTbrv$$P$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-ĶҶ(9ETfŹԹ  (:`DP`lwż01$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-1WamyοܿPZeq} <GP\jk$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$- )9:HSis~Vbn.A+<MNGo;X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,MlJhBM]5G^Xbr#-7DS^fr$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P$$$$P$$$$$$$$$-r{#01Cm|}T`a&'Nu$Z'f$$$$$$P$$$$P$$$$P$$$$P$$$$P$$$$P$$$P$$$$$$$$$$$$$$$-f0eqHbIIEpHx)_-L$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-.KB_VMes#2[6@S]ETk[|dg d {    $$$$$$$$ $$P$$$$$$$$$$$$ $$ $$$$$ $$$$$$$$$$$$ $, j""$#$>%y%z%%%'(((((() * * ++,,,,h-}-~-----///000$$ $$$ $$ $$$$$$ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -051O1E2g2h233344\4]4?66667A7B78.8/8888V9q9r9:4:5:;;;<<<???@@@IBlBmB$ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ -mBC)C*CDDDXDDDEEE"FGbL~LLN/N0NNNNBOMONOOOOPPPSSSSSS/TfTTT UBUyUzU$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ -zUUUV$V8VLVeVVVVVVW0WIWbWcWvWwWXXXYYYZ-ZnZZZ[[\\\\\L]j]k]]]]]^u^$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -u^v^j_"`+`,`````aaaaaCbabbbcddCdwdde:e;e4fifjfYgggg!h"hhhhjkkkkk$l$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ -$lOlPlm1mmmmmmmnnn8otooo3rWryrrrssstttmuuuuuuev}v~v?xUxVx@zWzXz{<{$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ -<{={5}S}T}b~{~ *+OZ[Fef,-σ;<΄2RS1EF߇$  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ->YZوڈ"#  _|Ïqېܐ1JKɑ67 :;R}ǔ$ $ $ $ $ $ $  $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ - ;<3IJdX{|g+t  56Zt$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ -tu٬ͭέ !ˮ̮}%JKwбɳ&[\$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -\´ôLstSqrڷ۷(KLfʸ !LM5fg$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -%GHWyz@db .XY453LMGTU|9Iew$ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -/Pz /H]kv89uv^{|?_`Cab$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -Uqr:YZ0N*Pw$ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -@\]  Jy$7Iij<dUsW$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -H|}`  f5pZP$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -Zb  @fg'(Mab,/$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ -/LM     c { |    3^Hef !+IJ!$ $ $ $ $  $ $  $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -!-.f&5A $%&&"'-(Z((((#)>)])^))))*2*J*K****+B+z+,),*,,,,-$ $ $ $ $ $  $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ --. ./;/>>9?Z?[?@@@8AXAYA3COCPCCDDFFFG HhHHHHI]II/JEJFJJJ$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -JJ,K7K8KKKK6LVLWLM(M)MN:OmOnOQQRMRkRRSOS[SSS1TxTyTTTTTUUUUVKVVVW>W$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ->WrXXYYY'[M]]]^]]]]L_l``````vaaaectcuccccc2dYdneze{eufffg%g&gggghh$ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -hhhhhjGjHjl2l\l]lglllllmmImamxotppqq6rr&s's1sbsss$t6t7t[tjtkttttttt$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -tCuRuSuuuuuvv^vlvmvvvv&w6w7w}wwwwwwxyQyryyyyIzjzkz-|=|>|/~E~F~t~~ Rs$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ -s1bӀ%Wā'k#K|Ã(LM`a %KLblm$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ -ڋۋHfgEkl  ʔ˔OpJ͖34BOYdoy˙ՙ$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -ՙ"45NOš՜֜,4CLYdmzŠ֠ (6FTh$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -nnect to callbook server (if available) D filename Download textfile filename DU Uuencode first, and then download (for binary files) E Show the escape character E char Set the escape character to char (one character!) F Finger users (show user info available) F user Finger a listed user (show his brag info) F user@host Finger an user at a remote machine H Help I Info on system J Just heard, on all interfaces J iface Just heard on specified interface K # # Kill message # (one or more numbers accepted) KM Kill Mine, kills all read messages L List new messages LA List ALL messages in current area LB List messages with message type B (bulletins) LM List mine, lists new messages LL n List last n messages LT List message with message type T (traffic) L> xyz List only message with string xyz in the To: field M Shows current mailbox users ML Shows all past users since system startup ML n Shows the n past users since startup ML call Shows when call logged on last MM name Move the current message to new area name (SYSOP) MM x [y,z] name Move messages x,y and z in current area to new area MS Show messages status N Alphabetical listing of known netrom nodes (if available) NR Shows all netrom neighbor nodes O Chat with operator (if system is attended) P Give a list of the interface ports of the system R n Read message n (a list of numbers is accepted) RH n Read with headers (same as V command) RM Read Mine, reads all unread messages S Send message (defaults to private) SB Send bulletin (be carefull!) SC Send with Carbon Copy to others SF Forward current message to someone else SF n Forward message number n to someone else SP Send private message ST Send traffic message SR Send a reply to the current message SR n Send a reply to message number n T host Telnet to hostname (if permitted) U file Upload a textfile V n Verbose read of message n (a list is accepted) VM Verbose read of all unread messages W What files ? in the current directory W path Listing of the directory path. Wildcards ie.*, are accepted X Toggle Expert status XA Toggle current areaindication in prompt XM Show number of lines before moreprompt XM n Set moreprompt to n lines XN Toggle the Netrom lookalike prompt on/off Z file Zap (delete) a file (if permitted) 4.0 How to design a network There are two types of networks, connectionless and conectionoriented. This software uses both modes at the basic network level. On the one hand it interacts reasonably with Net/Rom and Rose virtual connections, and on the other, works very well with datagram only circuits. If you were given a clean slate, your goal would be to have two ports on each node. One would be available for AX.25 connections from the users operating unsophisticated Terminal Node Controllers (TNCs). The other would be connected to a higher speed system of IP datagrams on top of AX.25 only. It will prove very difficult to marry both types of circuits and achieve any speed. By using a pure datagram IP backbone you can achieve much greater throughput than a Net/Rom or Rose. 5.0 Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window Many NOS users are confused by these parameters and do not know how to set them properly. This chapter will first review these parameters and then discuss how to choose values for them. 5.1 Hardware Parameters 5.1.1 Bufsize This parameter is required by most of NOSs builtin HDLC drivers (eg. those for the DRSI PCPA and the Paccomm PC100). It specifies the size of the buffer to be allocated for each receiver port. HDLC frames larger than this value cannot be received. There is no default bufsize; it must be specified in the attach command for the interface. 5.2 AX.25 Parameters 5.2.1 Paclen Paclen limits the size of the data field in an AX.25 Iframe. This value does not include the AX.25 protocol header (source, destination and digipeater addresses). Since unconnectedmode (datagram) AX.25 uses UI frames, this parameter has no effect in unconnected mode. The default value of paclen is 256 bytes. 5.2.2 Maxframe This parameter controls the number of Iframes that NOS may send on an AX.25 connection before it must stop and wait for an acknowledgement. Since the AX.25/LAPB sequence number field is 3bits wide, this number cannot be larger than seven. Numbers larger than one usually fail due to congestion. The unconnectedmode (datagram) AX.25 uses UI frames that do not have sequence numbers, so this parameter does not apply to unconnected mode. The default value of maxframe in NOS is one frame. 5.3 IP and TCP Parameters 5.3.1 MTU The MTU (Maximum Transmission Unit) is an interface parameter that limits the size of the largest IP datagram that it may handle. IP datagrams routed to an interface that are larger than its MTU are each split into two or more fragments. Each fragment has its own IP header and is handled by the network as if it were a distinct IP datagram, but when it arrives at the destination it is held by the IP layer until all of the other fragments belonging to the original datagram have arrived. Then they are reassembled back into the complete, original IP datagram. The minimum acceptable interface MTU is 28 bytes: 20 bytes for the IP (fragment) header, plus 8 bytes of data. There is no default MTU in NOS; it must be explicitly specified for each interface as part of the attach command. 5.3.2 MSS MSS (Maximum Segment Size) is a TCPlevel parameter that limits the amount of data that the remote TCP will send in a single TCP packet. MSS values are exchanged in the SYN (connection request) packets that open a TCP connection. In the NOS implementation of TCP, the MSS actually used by TCP is further reduced in order to avoid fragmentation at the local IP interface. That is, the local TCP asks IP for the MTU of the interface that will be used to reach the destination. It then subtracts 40 from the MTU value to allow for the overhead of the TCP and IP headers. If the result is less than the MSS received from the remote TCP, it is used instead. The default value of MSS is 512 bytes. 5.3.3 Window This is a TCPlevel parameter that controls how much data the local TCP will allow the remote TCP to send before it must stop and wait for an acknowledgement. The actual window value used by TCP when deciding how much more data to send is referred to as the effective window. This is the smaller of two values: the window advertised by the remote TCP minus the unacknowledged data in flight, and the congestion window, an automatically computed timevarying estimate of how much data the network can handle. The default value of Window is 2048 bytes. 5.4 Discussion 5.4.1 IP Fragmentation IP-level fragmentation often makes it possible to interconnect two dissimilar networks, but it is best avoided whenever possible. One reason is that when a single IP fragment is lost, all other fragments belonging to the same datagram are effectively also lost and the entire datagram must be retransmitted by the source. Even without loss, fragments require the allocation of temporary buffer memory at the destination, and it is never easy to decide how long to wait for missing fragments before giving up and discarding those that have already arrived. A reassembly timer controls this process. In NOS it is (re)initialized with the IP rtimer parameter (default 30 seconds) whenever progress is made in reassembling a datagram (i.e., a new fragment is received). It is not necessary that all of the fragments belonging to a datagram to arrive within a single timeout interval, only that the interval between fragments be less than the timeout. Most subnetworks that carry IP have MTUs of 576 bytes or more, so interconnecting them with subnetworks having smaller values can result in considerable fragmentation. For this reason, IP implementors working with links or subnets having unusually small packet size limits are encouraged to use transparent fragmentation, that is, to devise schemes to break up large IP datagrams into a sequence of link or subnet frames that are immediately reassembled on the other end of the link or subnet into the original, whole IP datagram without the use of IPlevel fragmentation. 5.4.2 Setting paclen and bufsize The more data you put into an AX.25 I frame, the smaller the AX.25 headers are in relation to the total frame size. In other words, by increasing paclen, you lower the AX.25 protocol overhead. Also, large data packets reduce the overhead of keying up a transmitter, and this can be an important factor with higher speed modems. On the other hand, large frames make bigger targets for noise and interference. Each link has an optimum value of paclen that is best discovered by experiment. Although NOS can handle larger paclen values than 256, some other AX.25 implementations (including digipeaters) cannot and this may cause interoperability problems. Even NOS may have trouble with certain KISS TNCs because of fixedsize buffers. The original KISS TNC code for the TNC2 by K3MC can handle frames limited in size only by the RAM in the TNC, but some other KISS TNCs cannot. NOSs builtin HDLC driver SCC allocates receive buffers according to the maximum expected frame size, so it is important that these devices be configured with the correct bufsize. To do this, you must know the size of the largest possible frame that can be received. The paclen parameter controls only the size of the data field in an Iframe and not the total size of the frame as it appears on the air. The AX.25 spec allows up to 8 digipeaters, so the largest possible frame is (paclen + 72) bytes. So you should make bufsize at least this large. Another important consideration is that the more recent versions of NOS improve interrupt response by maintaining a special pool of buffers for use by the receive routines. These buffers are currently fixed in size to 2048 bytes and this can be changed only by editing config.h and recompiling NOS. This limits bufsize. In fact, attempting to set a larger value may cause the driver not to work at all. This situation can be detected by running the memory status command and looking for a nonzero count of Ibuffail events, although these events can also occur occasionally during normal operation. One of the drawbacks of AX.25 that there is no way for one station to tell another how large a packet it is willing to accept. This requires the stations sharing a channel to agree beforehand on a maximum packet size. TCP is different, as we shall see. 5.4.3 Setting Maxframe For best performance on a halfduplex radio channel, maxframe should always be set to one. The reasons are explained in the paper Link Level Protocols Revisited by Brian Lloyd and Phil Karn, which appeared in the proceedings of the ARRL 5th Computer Networking Conference in 1986. 5.4.4 Setting MTU TCP/IP header overhead considerations similar to those of the AX.25 layer when setting paclen apply when choosing an MTU. However, certain subnetwork types supported by NOS have wellestablished MTUs, and these should always be used unless you know what youre doing: 1500 bytes for Ethernet, and 508 bytes for Arcnet(. The MTU for PPP is automatically negotiated, and defaults to 1500. Other subnet types, including SLIP and AX.25, are not as well standardized. SLIP has no official MTU, but the most common implementation (for BSD Unix) uses an MTU of 1006 bytes. Although NOS has no hard wired limit on the size of a received SLIP frame, this is not true for other systems. Interoperability problems may therefore result if larger MTUs are used in NOS. Choosing an MTU for an AX.25 interface is more complex. When the interface operates in datagram (UIframe) mode, the paclen parameter does not apply. The MTU effectively becomes the paclen of the link. It is usually important to avoid AX.25 segmentation when running IP over Net/Rom. The way to do this is to make sure that packets larger than paclen are never handed to AX.25. A Net/Rom transport header is five bytes long and a Net/Rom network header takes 15 bytes, so 20 bytes must be added to the size of an IP datagram when figuring the size of the AX.25 Iframe data field. If paclen is 256, this leaves 236 bytes for the IP datagram. This is the default MTU of the netrom pseudointerface, so as long as paclen is at least 256 bytes, AX.25 segmentation cant happen. But if smaller values of paclen are used, the netrom MTU must also be reduced with the ifconfig command. 5.4.5 Setting MSS The setting of this TCPlevel parameter is somewhat less critical than the IP and AX.25 level parameters already discussed, mainly because it is automatically lowered according to the MTU of the local interface when a connection is created. Although this is, strictly speaking, a protocol layering violation (TCP is not supposed to have any knowledge of the workings of lower layers) this technique does work well in practice. However, it can be fooled; for example, if a routing change occurs after the connection has been opened and the new local interface has a smaller MTU than the previous one, IP fragmentation may occur in the local system. The only drawback to setting a large MSS is that it might cause avoidable fragmentation at some other point within the network path if it includes a bottleneck subnet with an MTU smaller than that of the local interface. (Unfortunately, there is presently no way to know when this is the case. There is ongoing work within the Internet Engineering Task Force on a MTU Discovery procedure to determine the largest datagram that may be sent over a given path without fragmentation, but it is not yet complete.) Also, since the MSS you specify is sent to the remote system, and not all other TCPs do the MSSlowering procedure yet, this might cause the remote system to generate IP fragments unnecessarily. On the other hand, a toosmall MSS can result in a considerable performance loss, especially when operating over fast LANs and networks that can handle larger packets. So the best value for MSS is probably 40 less than the largest MTU on your system, with the 40byte margin allowing for the TCP and IP headers. For example, if you have a SLIP interface with a 1006 byte MTU and an Ethernet interface with a 1500 byte MTU, set MSS to 1460 bytes. This allows you to receive maximumsized Ethernet packets, assuming the path to your system does not have any bottleneck subnets with smaller MTUs. 5.4.6 Setting Window A sliding window protocol like TCP cannot transfer more than one windows worth of data per round trip time interval. So this TCPlevel parameter controls the ability of the remote TCP to keep a long pipe full. That is, when operating over a path with many hops, offering a large TCP window will help keep all those hops busy when youre receiving data. On the other hand, offering too large a window can congest the network if it cannot buffer all that data. Fortunately, new algorithms for dynamic controlling the effective TCP flow control window have been developed over the past few years and are now widely deployed. NOS includes them, and you can watch them in action with the tcp status or socket commands. Look at the cwind (congestion window) value. In most cases it is safe to set the TCP window to a small integer multiple of the MSS, (eg. four times), or larger if necessary to fully utilize a high bandwidth*delay product path. One thing to keep in mind, however, is that advertising a certain TCP window value declares that the system has that much buffer space available for incoming data. NOS does not actually pre-allocate this space; it keeps it in a common pool and may well over book it, exploiting the fact that many TCP connections are idle for long periods and gambling that most applications will read incoming data from an active connection as soon as it arrives, thereby quickly freeing the buffer memory. However, it is possible to run NOS out of memory if excessive TCP window sizes are advertised and either the applications go to sleep indefinitely (eg. suspended Telnet sessions) or a lot of outofsequence data arrives. It is wise to keep an eye on the amount of available memory and to decrease the TCP window size (or limit the number of simultaneous connections) if it gets too low. Depending on the channel access method and link level protocol, the use of a window setting that exceeds the MSS may cause an increase in channel collisions. In particular, collisions between data packets and returning acknowledgements during a bulk file transfer may become common. Although this is, strictly speaking, not TCPs fault, it is possible to work around the problem at the TCP level by decreasing the window so that the protocol operates in stopandwait mode. This is done by making the window value equal to the MSS. 5.5 Summary In most cases, the default values provided by NOS for each of these parameters will work correctly and give reasonable performance. Only in special circumstances such as operation over a very poor link or experimentation with high speed modems should it be necessary to change them. THIS STUFF WILL NEED TO BE MOVED TO PROPER SECTIONS ABOVE 3.18. connect [ ... ] Initiate a vanilla AX.25 session to the specified ax25_addr using the specified interface. Data sent on this session goes out in conventional AX.25 packets with no upper layer protocol. The defacto presentation standard format is used, in that each packet holds one line of text, terminated by a carriage return. A single AX.25 connection may be used for terminaltoterminal, IP and Net/Rom traffic. The three types of data being automatically separated by their AX.25 Level 3 Protocol IDs. Up to eight optional digipeaters may be given; note that the word via is not needed. If digipeaters are specified, they are automatically added to the AX25 routing table as though the ax25 route add command had been given before issuing the connect command. 3.19. delete The filename is removed from the file system. 3.20. detach Detach a previously attached interface from the system. All IP routing table entries referring to this interface are deleted, and forwarding references by any other interface to this interface are removed. 3.21. dialer [ [ [ []]]] Setup an autodialer session for the interface. Whenever the interface is idle for the interval in , the autodialer will ping the . If there is no answer after attempts, the autodialer will execute the special commands contained in the . If the interval in is zero, a previous dialer command process will be removed. If the number of is zero, the will be executed without pinging the . The file may have any valid name, and must be located in the configuration root directory (see the Installation section). The commands in the file are described in the Dialer Subcommands chapter. Commands in file are: 3.21.1. control 3.21.2. send [] Sends string to the interface. If milliseconds is given, inter character timing is milliseconds milliseconds. 3.21.3. speed Displays or sets the current interface speed. 3.21.4. status 3.21.5. wait [ [speed]] Wait the amount of milliseconds. If string is given, incoming characters from the interface are compared with string. If an compare is found and speed is the string speed, the next numbers read from the interface is the new baud rate used. This works like HAYES response CONNECT 9600. The wait command could have been wait 10000 CONNECT speed. This waits 10 seconds for the CONNECT response from the modem. 3.22. dir [] List the contents of the specified directory on the console. If no argument is given, the current directory is listed. Note that this command works by first listing the directory into a temporary file, and then creating a more session to display it. After this completes, the temporary file is deleted. 3.23. disconnect [] An alias for the close command (for the benefit of AX.25 users). 3.24. domain The domain commands control and show the working of the name to internet address mapping software. NOS currently only has a client with a simple file reading local server. A real server is needed to service the community for their growing needs. 3.24.1. domain addserver Add a domain name server to the list of name servers. Note that, when this command is given in the autoexec.nos file the ip address command should given before this command is used. (If not, NOS will not know how to resolve the address, and an answer will never be recognized, or worse: just plain hangs the system.) 3.24.2. domain cache Following commands work on the domain cache. These are resource records (see RFC 1033/1034) held in memory. 3.24.2.1. domain cache clean [yes | no] Displays or sets the discard of expired resource records. Expired records have their timeout value decremented to zero. Normally resource records get a default timeout value of 1800 seconds. After this time they are considered old and if referenced again the domain name resolver should be enquired again. When clean is off (the default), expired records will be retained; if no replacement can be obtained from another domain name server, these records will continue to be used. When clean is on, expired records will be removed from the file whenever any new record is added to the file. 3.24.2.2. domain cache list This command shows the current content of the in memory cache for resource records. 3.24.2.3. domain cache size [size] Display or set the nominal maximum size of the local memory cache. The default is 20. (Note: The cache may be temporarily larger when waiting for new records to be written to the /domain.txt file.) 3.24.2.4. domain cache wait [seconds] Display or set the interval in seconds to wait for additional activity before updating the domain.txt file. The default is 300 seconds (5 minutes). 3.24.3. domain dropserver Remove a domain name server from the list of name servers. You are warned when you delete the last name server. 3.24.4. domain listservers List the currently configured domain name servers, along with statistics on how many queries and replies have been exchanged with each one, response times, etc. 3.24.5. domain maxwait [timeout] This sets a timeout value (1 to 255 seconds) to a query or domain name server. This is not set for a already defined server but will be used for a newly defined name server. Also the value is used for domain nslookups. Note that name servers (IBM-PC based) can have trouble finding records in an large database. The default is set to 30 seconds. 3.24.6. domain retry [retries] The retry value (number) limits the number of queries send out to remote domain name resolvers before giving up and telling you that host xyzzy.ampr.org does not exist. The total time lost with a query is retries * timeout * number of domain servers defined. 3.24.7. domain suffix [domain suffix | none] Display or specify the default domain name suffix to be appended to a host name when it contains no periods. For example, if the suffix is set to ampr.org. and the user enters telnet ka9q, the domain resolver will attempt to find ka9q.ampr.org.. If the host name being sought contains one or more periods, however, the default suffix is not applied if the last part of the name is less than 5 characters and contains only letters; e.g., telnet foo.bar would not be turned into foo.bar.ampr.org. telnet foo.ka9q will be turned into foo.ka9q.ampr.org. Note that a trailing dot (.) is required for the suffix definition (eg, ampr.org.). If the suffix is the string none (without trailing period) the current suffix is cleared and forgotten. 3.24.8. domain trace [on | off] Display or set the flag controlling the tracing of domain server requests and responses. Trace messages will be seen only if a domain name being sought is not found in the local cache file, domain.txt. 3.24.9. domain translate [off | on] Display or set the flag that controls the translation of IP address in dot notation into symbolic names. The translation process makes heavy use of reverse domain name lookups. Do not set this flag unless you have a good and fast connection to a domain name server or have a fast domain.txt handler and domain.txt contains all the INADDR.ARPA. records you ever wanted. 3.24.10. domain verbose [off | on] Display or set the flag controlling the return of a full name (true) or only the first name (dot delimiter) (false). This is for IP address to name translation only. 3.24.11. domain xyzzy This is (when spelled fully) a magic word to enable domain queries to outside domain servers when reading commands from the startup file. This should only be used by those who have reliable access to a domain name server. 3.25. drsistat Obsolete. Showed the statistics for all configured DRSI boards. 3.26. dump [decimalrange] The dump command shows memory in hex and ascii. Hexaddress is a 32 bit value split into page segment and page offset. A splitting colon is not used nor accepted. If decimalrange is not given, 128 bytes are displayed. dump . displays memory starting at the end of a previous dump command. 3.27. echo [accept | refuse] Display or set the flag controlling client Telnets response to a remote WILL ECHO offer. The Telnet presentation protocol specifies that in the absence of a negotiated agreement to the contrary, neither end echoes data received from the other. In this mode, a Telnet client session echoes keyboard input locally and nothing is actually sent until a carriage return is typed. Local line editing is also performed: backspace deletes the last character typed, while controlU deletes the entire line. When communicating from keyboard to keyboard the standard local echo mode is used, so the setting of this parameter has no effect. However, many timesharing systems (eg. Unix) prefer to do their own echoing of typed input. (This makes screen editors work right, among other things). Such systems send a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet connection request. If echo accept is in effect, a client Telnet session will automatically return a DO ECHO response. In this mode, local echoing and editing is turned off and each key stroke is sent immediately (subject to the Nagle tinygram algorithm in TCP). While this mode is just fine across an Ethernet, it is clearly inefficient and painful across slow paths like packet radio channels. Specifying echo refuse causes an incoming WILL ECHO offer to be answered with a DONT ECHO; the client Telnet session remains in the local echo mode. Sessions already in the remote echo mode are unaffected. (Note: Berkeley Unix has a bug in that it will still echo input even after the client has refused the WILL ECHO offer. To get around this problem, enter the stty echo command to the shell once you have logged in.) 3.28. eol [unix | standard] Display or set Telnets endofline behavior when in remote echo mode. In standard mode, each key is sent asis. In Unix mode, carriage returns are translated to line feeds. This command is not necessary with all Unix systems; use it only when you find that a particular system responds to line feeds but not carriage returns. Only SunOS release 3.2 seems to exhibit this behavior; later releases are fixed. 3.29. escape [] Display or set the current commandmode escape character in hex. In DOS, the escape character is default ^]. The alternate escape key is F10 unless F10 is redefined with fkey. 3.30. etherstat Obsolete. Displayed 3Com Ethernet controller statistics. Use the packet driver. 3.31. exit Exit the NOS program and return to the operating system. 3.32. finger | <@hostid> Issue a network finger request for user user at host hostid. This creates a client session which may be interrupted, resumed, reset, etc, just like a Telnet client session. If only @hostid is given, all users on that host are identified. 3.33. fkey [ []] Fkey displays or sets values for the programmable keys on the IBM-PC keyboard. fkey alone gives a display of all remapable keys and their number. fkey number displays the current value for that key. fkey number string assigns string to that key. Control characters can be created by prefixing then with an ^ character. A cr is ^M. To insert an ^ in the string 2 ^s next to each other are needed. Following is the map of keys and their number. F1 is function key 1. Sf1 is Shift function key 1. Cf1 is Control function key 1. Af1 is Alt function key 1. Etc. The right most row is the numeric keypad. key number key number key number key number key number f1 59 sf1 84 cf1 94 af1 104 pgup 73 f2 60 sf2 85 cf2 95 af2 105 pgdn 81 f3 61 sf3 86 cf3 96 af3 106 home 71 f4 62 sf4 87 cf4 97 af4 107 end 79 f5 63 sf5 88 cf5 98 af5 108 arup 72 f6 64 sf6 89 cf6 99 af6 109 ardn 80 f7 65 sf7 90 cf7 100 af7 110 ar l 75 f8 66 sf8 91 cf8 101 af8 111 ar r 77 f9 67 sf9 92 cf9 102 af9 112 ins 82 f10 68 sf10 93 cf10 103 af10 113 del 83 The mapping is taken to look like a VT-100/ANSI keyboard. Currently assigned value strings for following keys: number string key 59 33OP /* F1 */ 60 33OQ /* F2 */ 61 33OR /* F3 */ 62 33OS /* F4 */ 71 10 /* home*/ 72 33[A /* up arrow*/ 73 25 /* pgup */ 75 33[D /* left arrow */ 77 33[C /* right arrow */ 79 05 /* end */ 80 33[B /* down arrow */ 81 12 /* pgdn */ 82 01 /* ins */ 83 177 /* del */ 3.34. ftp Open an FTP control channel to the specified remote host and enter converse mode on the new session. Responses from the remote server are displayed directly on the screen. See the FTP Subcommands chapter for descriptions of the commands available in a FTP session. 3.35. ftype [ascii | binary | image | logical ] This command displays or sets the default start file mode (ascii or binary) for ftp transfers. If ftype binary or image is given the next ftp session started will be in binary type. No binary command is needed once the session is started. In case of logical, the word size is set to size. 3.36. help Display a brief summary of toplevel commands. 3.37. hop These commands are used to test the connectivity of the network. 3.37.1. hop check Initiate a hopcheck session to the specified host. This uses a series of UDP probe packets with increasing IP TTL fields to determine the sequence of gateways in the path to the specified destination. This function is patterned after the Unix traceroute facility. ICMP message tracing should be turned off before this command is executed (see the icmp trace command). 3.37.2. hop maxttl [] Display or set the maximum TTL value to be used in hop check sessions. This effectively bounds the radius of the search. 3.37.3. hop maxwait [] Display or set the maximum interval, in seconds, that a hopcheck session will wait for responses at each stage of the trace. The default is 5 seconds. 3.37.4. hop queries [] Display or set the number of UDP probes that will be sent at each stage of the trace. The default is three. 3.37.5. hop trace [on | off] Display or set the flag that controls the display of additional information during a hop check session. 3.38. hostname [] Display or set the local hosts name. By convention this should be the same as the hosts primary domain name. This string is used only in the greeting messages of the various network servers; note that it does NOT set the systems IP address. If is the same as an (see the Attach commands chapter), this command will search for a CNAME domain resource record which corresponds to the IP address of the . 3.39. hs Display statistics about the HS high speed HDLC driver (if configured and active). 3.40. icmp These commands are used for the Internet Control Message Protocol service. 3.40.1. icmp echo [on | off] Display or set the flag controlling the asynchronous display of ICMP Echo Reply packets. This flag must be on for oneshot pings to work (see the ping command.) 3.40.2. icmp status Display statistics about the Internet Control Message Protocol (ICMP), including the number of ICMP messages of each type sent or received. 3.40.3. icmp trace [on | off] Display or set the flag controlling the display of ICMP error messages. These informational messages are generated by Internet routers in response to routing, protocol or congestion problems. This option should be turned off before using the hop check facility because it relies on ICMP Time Exceeded messages, and the asynchronous display of these messages will be mingled with hop check command output. 3.41. ifconfig Display a list of interfaces, with a short status for each. 3.41.1. ifconfig [ [[[ ] ] .... ] When only iface is given, a extended interface status is displayed. Multiple subcommand / parameter can be put on one line. 3.41.2. ifconfig broadcast Set the broadcast address of interface iface to addr. Addr can either be an ax25_addr or an ether_addr, depending on the interface type, with 1s in the host part of the address. This is related to the netmask subcommand. See also the arp command. 3.41.3. ifconfig description [description] This command sets the interface description to the string specified. If no string is supplied, the current description is cleared. The description is displayed with the ifconfig iface command (no parameters) and with the mailbox commands. 3.41.4. ifconfig encapsulation Sets the encapsulation for interface iface to slip / ax25 / ether / encap / ppp. 3.41.5. ifconfig forward When a forward is defined, all output for interface iface is redirected to the interface directed by iface2. To remove the forward, set to . 3.41.6. ifconfig ipaddress Set the IP address to addr for this interface. This might be necessary when a system acts as a gateway. Like an system with IP address 44.137.1.8 has an Internet access via its Ethernet. The Internet IP address could be 129.179.122.10. An ifconfig en0 ipaddress 129.179.122.10 sets the correct address for that interface. Now routing to that system will work. (Note that the 44.x.x.x address is not connected to the Internet.) See also the hostname and IP address commands. 3.41.7. ifconfig linkaddress Set the hardware dependant address for this interface. For AX.25 this can be the callsign, for Ethernet a new Ethernet address. 3.41.8. ifconfig mtu Set the maximum transfer unit to param octets (bytes). See the Setting ... MTU, MSS and Window chapter for more information. 3.41.9. ifconfig netmask

Set the subnet mask for this interface. The
takes the form of an IP address with 1s in the network and subnet parts of the address, and 0s in the host part of the address. Sample: ifconfig en0 netmask 0xffffff00 for a class C network (24 bits). This is related to the broadcast subcommand. See also the route command. 3.41.10. ifconfig rxbuf Set the receive buffer size. 3.42. info Info gives information about the version of NOS currently running and its built-in configuration. The configuration info is built with defines in config.h in the source distribution. That way it gives automatically correct configuration information. 3.43. ip These commands are used for the Internet Protocol service. 3.43.1. ip access [/] [higport] Set or display access control for IP routing functions. This command implements router access functions to NOS. Permit enables destaddr packets of type protocol to be routed via ifname. Deny disables those. Protocol can be TCP or UDP. Only those two protocol types are checked. If lowport is given as keyword all, all ports are assumed. If only lowport is given, that port is only checked for permission. If lowport and highport are given, that is the range of ports permitted/denied. Destaddr can be the word all for all addresses possible. The ip access delete must match a previous defined permit or deny to be able to delete that definition. Some samples: ip access permit 44/8 ax0 tcp 20 25 ip access deny all ax0 tcp 1 1023 ip access permit all ax0 udp all If no access list is created, all interfaces might carry all types. If an access control is defined for an interface there must be an permit defined for that interface to allow traffic. Thus a partial denial without an permit is an complete denial for that interface. 3.43.2. ip access trace The IP access trace command shows the decisions made during access control for given address. Specifying the address 0 disables the trace. No subnet bits are recognized, just a full 32 bits address. This is a debug tool. 3.43.3. ip address [] Display or set the default local IP address. This command must be given before an attach command if it is to be used as the default IP address for the interface. 3.43.4. ip rtimer [] Display or set the IP reassembly timeout. The default is 30 seconds. Value is in seconds. 3.43.5. ip status Display Internet Protocol (IP) statistics, such as total packet counts and error counters of various types. 3.43.6. ip ttl [] Display or set the default timetolive value placed in each outgoing IP datagram. This limits the number of switch hops the datagram will be allowed to take. The idea is to bound the lifetime of the packet should it become caught in a routing loop, so make the value slightly larger than the number of hops across the network you expect to transit packets. The default is set at compilation time to the official recommended value for the Internet. 3.44. isat [on | off] Display or set the IBM-AT flag. Normally this flag is set when an interface is attached with an interrupt of 8 or higher. This is to signal that the second interrupt controller in an AT also needs a return of interrupt signal. If an AT type clock is in use, this command will allow measurement of time in milliseconds, rather than clock ticks (55 milliseconds per clock tick). During I/O initialization this flag is set if the monitor prom has the standard byte 0xfc at address f000:fffe. 3.45. kick [] Kick all sockets associated with a session; if no argument is given, kick the current session. Performs the same function as the AX.25 kick and tcp kick commands, but is easier to type. 3.46. lock [password ] Locks the keyboard or defines a password string. If password is given then is saved as the unlock string. If no parameters are supplied, the keyboard becomes locked when a password was specified earlier. If the keyboard is locked, the password is requested. If a correct password is supplied, the keyboard becomes unlocked. The setting of the password and locking of the keyboard can only been done by the system console keyboard or autoexec.nos startup file. The password can not been shown. 3.47. log [stop | ] Display the current log filename or set the filename for logging server sessions. If stop is given as the argument, logging is terminated (the servers themselves are unaffected). If a file name is given as an argument, server session log entries will be appended to it. 3.48. lzw [] LZW is the data compression capability on some sockets. This command set defines or changes their definition. Normally leave this set default. 3.48.1. lzw mode Displays or sets the compression method used on data compression for specific sockets. Currently SMTP can use compression. 3.48.2. lzw bits Displays or sets the number of bits used for the compression size. The more bits defined the larger the table space needed. Range is 9 to 16. 3.49. mail This command will start a shell escape command. The mailer used is defined with the DOS environment variable MAILER, which defaults to BM.EXE. 3.50. mbox [] Display the status of the mailbox server system (if configured). 3.50.1. mbox attend [yes | no] Displays or sets the attended flag on. This is used to announce in the mailbox if the station manager is willing to attend his station (chat). 3.50.2. mbox expert Display or set the level expected of a mailbox user. When set, they get a short > prompt. When not set a long prompt is send with the first letter of each mailbox command as prompt. The user can then set Xpert mode to get the short prompt. 3.50.3. mbox fwdinfo [forward info] Displays or sets the mailbox forward info to be included in the R: line for forwarded BBS bulletins. An empty string () as info clears the info field. Sample: netrom fwdinfo HNLNET BBS Will show [HNLNET BBS] in the R: line. 3.50.4. mbox haddress [homeaddress] Displays or sets the home address field to be included in the R: line for forwarded BBS bulletins. An empty string () clears the field. Sample: netrom haddress #CRV.OR.USA Will show @WG7J#CRV.OR.USA in the R: line. (when ax mycall is WG7J) 3.50.5. mbox jumpstart Displays or sets the mailbox jumpstart code. When set and an known node connects to the mailbox, no extra line needs to be send to activate the mailbox but the prompt is send directly. Warning: When set, it takes a while to hear all nodes and an AX25 connect could have an wrong start as there is no wait for a level 3 protocol check. Especially RSPF in virtual mode could course serious problems. 3.50.6. mbox kick To kick the mailbox back in activity after retry timeouts. 3.50.7. mbox maxmsg To display or set the maximum number of messages per area when a notes file is shown to a user. This reserves lots of memory for every mailbox session. 3.50.8. mbox motd [message string] Display or set the mailbox welcoming Message Of The Day. 3.50.9. mbox nrid Displays or sets the Net/Rom id flag. When set the node id is displayed on the prompt line. 3.50.10. mbox operator [
] The operator command shows or sets an alternate address for the control operator. When set and mbox attend is off or the user is shelled out and an mbox user requests an Operator command, the ttylink session is redirected to the address specified. Else it works as before that the mbox user is notified with Unattended. When the system pointed to by address has also set its attended to off, then an Unattended is replied with as well (but generated by the remote station). This is a flaky way of having an attended unattended system. 3.50.11. mbox password Sets a password string to be presented to Sysops entering that mode in the mailbox (using the @ command and having that privilege set to their login name/password in ftpusers). When a password is defined (max 30 characters) then they are prompted with 5 numbers before letting them in. The five numbers represent the 5 character locations in the string defined, whereby the first character is number 0. Multiple lines of 5 characters can be send to fool snoopers. The end of password sending is signaled with an empty line. If there was a good response, sysop mode is entered. The setting of the password can only been done by the system console or autoexec.nos startup file. The password can not been shown. 3.50.12. mbox qth [qth in_fo] Displays or sets the info for qth in the R: line for forwarded BBS messages. Sample: netrom qth Driebruggen, NL 3.50.13. mbox secure Displays or sets the security option for mailbox gateway users. If set, users coming in via telnet to the bbs are not allowed to use the gateway. If not set anybody can use the gateway. (Note: No check for Bozos). Also the mailbox send command is disabled except for AX.25 and Net/Rom connects. 3.50.14. mbox smtptoo Displays or sets the flag to include SMTP headers in BBS messages. When set SMTP headers are included in messages. When not set not included. 3.50.15. mbox status An alias for just entering mbox on the prompt line. 3.50.16. mbox timer [] Display the current interval and time remaining or set the mailbox forwarding timer. 3.50.17. mbox tiptimeout Displays or sets the timeout value for tip connection timeout. After timeout seconds of no activity the connection is closed. 3.50.18. mbox trace [yes | no] Displays or sets mailbox forward trace code flag. 3.50.19. mbox utc Displays or sets the offset you are according to UTC time. Positive and negative numbers are supported and full leap year and month calculation are done. This is used by the mailbox forwarding to give a standard time in the R: line. 3.50.20. mbox zipcode zip Displays or sets the info for the zip field for R: line BBS header lines. This field is max 7 characters long as released. For USA the zip is only 6 numbers long. Netherlands has 4 figures a space and 2 letters. Guess every PTT wants something they invented their own. Sample: netrom zip 3465 TJ or: netrom zip 54551 3.51. memory These commands are used for memory allocation. 3.51.1. memory debug [on|off] Displays or sets the memory allocator debug flag. If set debug information is written to the log file containing most flags and parameters from the memory allocation routines. 3.51.2. memory efficient [yes | no] Displays or sets the search algorithm for buffer memory. When set, the se End PAGE 2 PAGE 1 PAGE  PAGE  PAGE 2 PAGE 1 @ @ࡱ; varch is always started from the beginning of the free list. This is slower but keeps memory fragmentation to a minimum. When clear, search is started on the end, accounting for more memory fragmentation but keeping speed. The current release defaults to yes. 3.51.3. memory freelist Display the storage allocator free list. Each entry consists of a starting address, in hex, and a size, in decimal bytes. 3.51.4. memory ibufsize [] Display or set the size of the buffers in the interrupt buffer pool. The)*+9PQ}~i j "#RS "OP!4MmnOP" """,*-***++Y+Z+++x,y,- -----//2;5;;;@@VBWB*C+CCCCCV]c]ch]cJUU]c]c0c0XCDDDDDD)G*GIIQKRK8V9VZZaZbZZZ [[I[J[{[|[[[[[,\-\]]a]b]]]^^L^M^^^^^^^__ ` `m`n```aaIbJbbb%e&eeeee@fAfrgsgggXjYjvkwkll%m&mnnXoYoqquuuuw wwwxx`yV]cc`yayOzPz{{{{||4}5}}} !()]^bcBCAB҅Ӆ>?de+,no67jknjȌ*+)*jkޑߑcdXYٗڗ./UWno{]cd{|wxɞʞXYuv78QR}~mnףأ*,NO [\rs pqWXβϲTUpqµõ !ABٹڹqrļż׼ؼefz]J]cbz{;<JKtvJ=@HH>>  !'()+,23467=>?@ACDJKLMNQR%E%F%G%U%l%m%%%%%%),-:0;0j0k089:9g9JUU]c0c0uP uDPV]c]cJh]cU*+89EFsH i j | #S*m6r)T$$$P$$$ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.OP4M '>Zhmn.];j"OP$$$$$$$P$$$=$$$$$$$$$$$$$P$$=$$$$ $$$$$$$$ $$$$$P,$,i4Nhcs"RZ #]^$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -_ ",09:/ ())+?OZ\!"#,-$ $ $ $ $ $ $ $ $  $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ h`% &@%)-.<=>MNOPQh`% TQlx ! !!!!!!!!! ! ! ! ! !!!!!!!! !!!!!!!!!! !!!"!#!$!%!& '!(!)!*!+!,!-!.!/!0!1!2!3 4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v ''u.q8ABG2SX\bWhnuz~G<ӊ1ΜQi x:NR5+ 8H&+)16:@FLRR'Y^bin*u| Ȉ!Us'^ns>cet tu"'r.3:o@EKOSY]^djruz~K$cT>DJ: \     $#  g  !"d#$ %&'();*+!,-.:/G012u34D5v67 89x:G;<={>'?@ABnCDEFG"H"I)JKnLMNOAPQRVSTIUVrWXcYZ[\]1^&_`Ra bcnde f0gFhijHklmno1pq_rstuvw*+89Fgy2n*K0I|hiGHj"##5#@#!$L$$$$&!'''''(X(a(((p)~)*$**** ,,- 68>Q?e?2@8@@@@AAAABB+D3DEEEvFFFFFBGTGGQH]HJQ2S9SDSsSUVW[WlWWWXX@XRXpXXXXXXY1YZZOZdZZZ[[:[L[o[[[[[r\\\\]]D]S]l]]]]^^^#_6_K____b'bgb}bbc2cDccdudddd6gNg]gWhjh|hniii j!j,jokkkAlUl^l_lmnorrrrrsstutttuuu&v@vfv7wKwUwoxxxxxxyyyz1z:zzzz}%}*}}}}}~~,~D~U~a~~~~PbL`j1Iǁ$<H˂؂):BRhs~<EJ~Ň-.DPcx#-3ˉՉމӊ5?^,5>bt~Վ(x&>*˓4L1|̗ߗ6O[sܚ1r{ԛ%1WmyΜ (>`mu̟֟ŠѠ!.8J%jҨhx!0CQɭխ?UmǮӮʯ#0ESjͰDZѱESd!;b ׵{ 'ŸԸ|}4VD\j)R-7JT<KbRs^[ra !v&(4BD!5A KjT$$$P$$$ $$$$$$$$$$$$$$$$=$$$$$$=$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$P$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P$$$$$$h entry in FTPUSERS consists of a single line of the form: username password /path permissions ip_address There must be at least four fields, and there must be exactly one space between each field. Comments may be added after the last field. Comment lines begin with # in column one. Username is the users login name. Password is the required password. Note that this is in plain text; therefore it is not a good idea to give general read permission to the root directory. A password of * (a single asteris size should be set to the largest type of buffer plus a header size of 22. For example: If your ax25 is the only interface and a packet length of 256 is defined, the ibufsize should be 256 + 10 * 6 + 22. The 10 * 6 is the ax25 header (source , destination and 8 digipeaters). 3.51.5. memory minheap [] Displays or sets the minimum heap size to be allocated before shell escaping to MS-DOS. This assures a free heap so that NOS can run for awhile without getting short on memory. 3.51.6. memory nibufs [$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$P$$$$$$$$$$$$ $$ $$$$$ $$$$$$$$$ $$$$$ $ $$$$$ $ $ $  $ $ $ $ $ $  $ $ $ $ $ *+89EFsFgy  O  &  i2n|%P *KL0I|"9Uchi(W4cGHj)<Nbv'?Qj"##5#@#!$L$$$$%`%%&T&&&!'''''(X(a(((p)~)*$**** ,,<--03 6p889;>Q?e?2@8@@@@@@AAAAAABBB+D3DEEEEvFFFFFFBGTGGGQH]HeHfHJMaNPJQ2S9SDSrSsSTUVW[WlWWWXX@XRXpXXXXXXY1YZZOZdZZZ[[:[L[o[[[[[[r\\\\\]]]D]S]k]l]]]]]^^^^#_6_J_K_____b'bgb}bbbc2cCcDccduddddd6gNg\g]gWhjh{h|hniiii j!j+j,jokkkkAlUl^l_lmnnnorrrrrrssstuttttuuuu&v@vevfv7wKwTwUwoxxxxxxxxyyyyz1z9z:zzzzz}%})}*}}}}}}~~,~D~U~`~a~~~~~PbL`ij1HIƁǁ$<GH˂؂):BQRhs~<EIJ~Ň-.DPbcx#-23ˉՉމӊ!+5?]^,5>Pbt~Վ(<Pex֑&=>*=Oawʓ˓ 4KL1DWi|̗ޗߗ6@O[sĚКܚ1?HU^jr{țԛ%1VWmy͜Μ '(>IS`mu̟֟ŠѠ!.8IJ%LjҨhx !0CPQɭԭխ?UlmǮҮӮɯʯ#0ESij̰ͰDZѱEScd!:;blv̴մ޴ ׵{ &'ŸԸ |}ź-Kdͻ(QCr{۽8Nu˾SsͿ4x%Z .S 3_yG`9VMD\j)R-7JT<KbRs[^[ra 4op^st      + E ; ] ^    *RS578$%Lgh *+?bc   N{| !Y&u&v&('((((((;)F)G))))***-L----(._.../;/r/s/// 0010E0^0{000001)1B1[1\1o1p1y2223334&4g4445566666E7c7d7777V8n8o8c9:$:%:x::::::;;;<<Z<[<==><>p>> ?3?4?-@b@c@RAAAABBBBBDDD}EEE FKFLF G-GGGGGGGHHH4IpIII/LSLuLLLMMMNNNiOOOOOOaPyPzP;RQRRRS>h?t?u?o@z@{@AA AAAABBBBBB DADBDE,FVFWFaFFFFFG GCG[GrInJJ K K3LL#M$M.M_MMM!N3N4NXNgNhNNNNNNN@OOOPOOOOOPP[PiPjPPPP#Q3Q4QzQQQQQQRSNSoSSSSFTgThT*V:V;V,XBXCXqXXYOYpYYYY.Z_ZZZZZZ"[T[[[[[$\h\\\\ ]H]y]]]]%^I^J^]^^^_``bbb"cHcIc_didjddddeeef g gEgcgdgBhhhihiiiijjnnnLomoooGppppr0r1rr?sLsVsaslsvssssssstt1t2tKtLttttuuuvvvxyyy)z1z@zIzVzazjzwzzzzzzzzzz{{%{3{C{Q{e{z{{{{{{{{ | |}E~VWopˀ̀.K/yf$,iێ4Nhҏԏcs"RZ #]^Дܔ ",09:/ ())+?OZ\ʛٛTT$TDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDTTDTTTTTD$DDDDDDTTTTDDDTTTTTTTTTTTTTTTDDDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDTTTTTTTTTTDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDDDDDDTTDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDTTTTTTTTTTTDDDDDDDDDDDDDDD$$$DTDTTDTTTDTTTTTTD"-8IZ]C`y{zg9Lο1"[Q_LQRSTUklmL&;0I[`p%֋`| m*T5N@Mf^lx׌}»KeE->JT_mz})<]C(Qlωos1rf 0mBzUu^$l<{t\/!-;J>Whtsՙh2KTT^yH5w|bs?NLenz2pIwQl F$<JbZfuw!h1-VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     nopqrstuvwxyz{|}~ UnknownHARRY F ROBERTSON ")-48?EIPV]!!!!!!PHARRY F ROBERTSONC:\SSAMPSON\JNOS.DOCSteven R. SampsonC:\SSAMPSON\JNOS.DOC@HP LaserJet 4LLPT1:HPPCL5EHP LaserJet 4L D ɓ3, HP LaserJet 4L D ɓ3, """"00DDSSSS{|}wQRS\"_"`"\$]$%%%&&&&&M'P'Q'R'''' ) )t5w5x5y5CCbEcEdErEsE :;77BBBBKKKKKLLkkkkll8=AINPQR g%5@BeɜќӜݜ::$TDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDTTDTTTTTD$DDDDDTTTTTTTTTTTTTTTDDDTDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDTTTT$$$DTDT"-8IZ]C`y{zg9Lο1"QRSTUL&;0I[`p%֋`| m*T5N@Mf^lx׌}»KeE->JT_mz})<]C(Qlωos1rf 0mBzUu^$l<{t\/!-;J>Whtsՙh2VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      UnknownHARRY F ROBERTSON ")-48?EIPV]!!!!!!PHARRY F ROBERTSONC:\SSAMPSON\JNOS.DOCSteven R. SampsonC:\SSAMPSON\JNOS.DOC@HP LaserJet 4LLPT1:HPPCL5EHP LaserJet 4L D ɓ3, HP LaserJet 4L D ɓ3, ssssP*78Dg  & KL|ghiXIJ#$01CDUVij}~./FGXYqr###7#A#B#N$$$$%%%#'''''''''((Z(b(c((((r)))*%*&**** ,,,r888S?W?X?f?g?4@9@:@@@@@@ B!B"B7D3S9S:SDSESVWW[WkWlWWWWXXXX X@XQXRXpXXXXXXXXXY0Y1YZZZOZcZdZZZZ[[[:[K[L[o[[[[[[r\\\\]]B]P]Q]h]i]j]]]]]^^^^3_4_H_I_____%bzb{bbb/c0cAcBcsdddddKgLgZg[gghhhyhzh~iiii jjj)j*jmkkkkkkkRlSl\l]lnnnnrrrrrrrs tttttuuuu=v>vcvdvHwIwRwSw|x}xxxxxxxyyyy.z/z7z8zzzzz#}'}(}}}}}}*~R~S~^~_~~~~~_`Z[de +,CD67BC{łӂ$4=LVbtu)-.l|2eÈΈ}ˉՉ=> T]^bcю Vz{ZjՑJʔՕ(3DO[lmŗΗ{|;Dhz4=a֛כ *@NOɜ,67MVb~:ERpʠˠ$%FGefg̣ 012Sno<ͫPL1ʯ+FgȱxyϽн;<ֿ׿ %AB9tu0GHUV#ݜޜ#/489: % 4%  F% S%  T% `%  % ) , -  1 B1 g9 h9  :: ; < < < = 4= 5= t= = = = = e? f? @ @ A A ?B @B LB MB _B `B qB rB B B B B B B B B B B B B C C C C 1C 2C JC KC bC cC tC uC C C C C C C C C C C D D D D -H 7H 8H SH ]H ^H jI I I I :J J J ?L L L L L L L L M +M ,M vM ~M M M M M N N N 8O AO BO O O O (Q 9Q :Q ] ] ] od sd td d d Pe Ue Ve e e e e e &g =g >g Si Ox Ux Vx `x ax | *| +| w| | | | | | } 1} 2} ;} <} \} m} n} } } } } } } } } } ;~ L~ M~  1 2 k      * : ; V g h    ʀ ׀ ؀     " # ^ l m          ƒ à O P d e     A     K L ] ^    ω Љ g h v w         % : ; E F        n o x y , - 6 7         (         Y Z   d e n o           ˞ ̞ J K S T     ? C D   Ԣ բ  F n o z { ƣ ǣ   { |     v w     ѥ ҥ & G H _ `   ݦ ަ R S ^ _       ԧ     , @ P Y h r ~   E I J        Ŭ    N   ߭  *    Ǯ Ю ٮ ڮ       ϯ ۯ ; Y Z ( 0 : p y z ~   г ݳ    & 4 r   v     f  Ĺ    : D O ` k w       ļ ż    / 0     W `     ο ۿ  P Y }         < F \ j k            9 : H R S i r ~   V a n        . @ A b c      + ; < L M N o      X   l  h  M   G b              W X   ' (         9 :     B ^ _ V   M d e r s      2 @        =  M Q RTimes New Roman Symb] Display or set the number of interrupt buffer pool buffers. If the number of buffers is set, the statistics in the memory status display are reset for number of interrupt buffer fails. The minimum available value is set to the requested number of buffers. A rule of thumb for the number of buffers is to watch the statistics and keep a minimum of 2 free buffers. Increase or decrease as required. 3.51.7. memory sizes Display a histogram of storage allocator request sizes. Each histogram bin is a binary order of magnitude (i.e., a factor of 2). 3.51.8. memory status Display a summary of storage allocator statistics. The first line shows the base address of the heap, its total size, the amount of heap memory available in bytes and as a percentage of the total heap size, and the amount of memory left over (i.e., not placed on the heap at startup) and therefore available for shell subcommands. The second line shows the total number of calls to allocate and free blocks of memory, the difference of these ol &Arial BookmanBookman Old Style1CourierCourier New 5Courier NewWingdings!hE3ᅬ3o)wo)w$cJNOS Reference ManualTCP/IP System for the PCSteven R. SampsonSteven R. Sampsontwo values (i.e., the number of allocated blocks outstanding), the number of allocation requests that were denied due to lack of memory, and the number of calls to free() that attempted to free garbage (eg. by freeing the same block twice or freeing a garbled pointer). The third line shows the garbage collection status. Garbage collection is a separate process running every second. If memory is low garbage collection routines are called in Red alert mode, else in Yellow alert. The fourth line shows the number of calls to malloc and free that occurred with interrupts off. In normal situations these values should be zero. The fourth line shows statistics for the special pool of fixedsize buffers used to satisfy requests for memory at interrupt time. The variables shown are the number of buffers currently in the pool, their size, and the number of requests that failed due to exhaustion of the pool. The fifth line shows the current setting of the interrupt buffer pool, its minimal value and the number of no buffers available. These statistics are reset when a memory nibufs command is given. 3.51.9. memory thresh [] Displays or sets the memory threshold size in bytes. If memory gets below this value, no more new sessions are started or accepted. 3.52. mkdir Create a subdirectory in the current working directory. 3.53. mode [vc | datagram] Control the default transmission mode on the specified AX.25 interface. In datagram mode, IP packets are encapsulated in AX.25 UI frames and transmitted without any other link level mechanisms, such as connections or acknowledgements. In vc (virtual circuit) mode, IP packets are encapsulated in AX.25 I frames and are acknowledged at the link level according to the AX.25 protocol. Link level connections are opened if necessary. In both modes, ARP is used to map IP to AX.25 addresses. The defaults can be overridden with the typeofservice (TOS) bits in the IP header. Turning on the reliability bit causes I frames to be used, while turning on the low delay bit uses UI frames. (The effect of turning on both bits is undefined and subject to change). In both modes, IPlevel fragmentation is done if the datagram is larger than the interface MTU. In virtual circuit mode, however, the resulting datagram (or fragments) is further fragmented at the AX.25 layer if it (or they) are still larger than the AX.25 paclen parameter. In AX.25 fragmentation, datagrams are broken into several I frames and reassembled at the receiving end before being passed to IP. This is preferable to IP fragmentation whenever possible because of decreased overhead (the IP header isnt repeated in each fragment) and increased robustness (a lost fragment is immediately retransmitted by the link layer). 3.54. more [ ...] Display the specified file(s) a screen at a time. To proceed to the next screen, press the space bar; to cancel the display, hit the q key. A CR advances a line. The more command creates a session that you can suspend and resume just like any other session. 3.55. motd [] Display the current message or sets the welcome message to the defined string. 3.56. multitask [on | off] Displays or sets the multi task flag. If set NOS continues to service its interrupts and handling of normal operation when put in the background by executing a shell escape. Some programs do not like to miss this valuable time taken away and weird results can happen. Clearing the flag stops all activity from NOS when put in the background. This command is not used when running on top of Windows or other systems which multitask already. 3.57. netrom 3.57.1. netrom acktime [] Displays or sets the ack delay timer, similar to AX.25 t2. 3.57.2. netrom alias This sets the Net/Rom alias for this station. Other stations can connect to the AX.25 callsign and to the Net/Rom alias (when set). The alias is broadcasted with a Net/Rom broadcast. 3.57.3. netrom bcnodes Initiates an immediate broadcast of nodelist on iface. 3.57.4. netrom call Displays or sets the call to be used by the Net/Rom interface. Note: this is a shortcut for the ifconfig netrom linkaddress call command. 3.57.5. netrom connect Start a connection to node. 3.57.6. netrom choketime [] Display or set the time breaking a send choke. Choke is the term netrom uses for flow control conditions. 3.57.7. netrom derate [on | off] Display or set automatic derating of netrom routes on link failure. 3.57.8. netrom interface Define a Net/Rom interface iface. The quality can be between 1 and 255. For compatibility with other implementations, set this to 192 normally. A check is made that the interface is of type AX.25. Note: the alias is not specified on this line anymore. Use netrom alias command. 3.57.9. netrom irtt [] Display or set the initial round trip time. 3.57.10. netrom kick <&nrcb> Give the control block a kick to get activity going again. 3.57.11. netrom load [] Reloads a saved Net/Rom node list to continue from where you left when you saved the list. All entrys read are time decremented as if normal time just went on. If it took some time (obsotimer * x) your list could be empty as they all timed out. 3.57.12. netrom minquality [] Display or set the minimum quality for recognizing a node entry. Entrys below this value are not considered valuable for usage. 3.57.13. netrom nodefilter Node filtering. 3.57.13.1. netrom nodefilter add Allow neighbor to give us node updates. 3.57.13.2. netrom nodefilter drop Disallow neighbor to give us node updates. 3.57.13.3. netrom nodefilter mode [none | accept | reject] Display or set the initial filter schema. None accepts all. Accept,accepts only from nodes defined in netrom nodefilter add lists. Reject,no accepts from nodes defined in netrom nodefilter add lists. 3.57.14. netrom nodetimer [] Display or set the interval our node list is transmitted. 3.57.15. netrom obsotimer [] Display or set the time a node quality gets decremented. 3.57.16. netrom promiscuous [off | on] Enables nodes with a higher quality than defined with minquality. If on, all nodes are received, independent of nodefilter. 3.57.17. netrom qlimit [] Display or set the maximum queue limit. Similar to AX.25 window. 3.57.18. netrom reset <&nrcb> Remove the control block. You can find the control block with socket. 3.57.19. netrom retries [] Display or set the maximum number of retries on connect, disconnect or data. 3.57.20. netrom route Net/Rom routing commands. 3.57.20.1. netrom route add Add a Net/Rom route. 3.57.20.2. netrom route drop Delete a Net/Rom route. 3.57.20.3. netrom route info Display the route it would take to get to destination. 3.57.21. netrom status Displays all Net/Rom connections. 3.57.22. netrom save [] Saves the current Net/Rom node list in memory to /netrom.sav or filename, if given. 3.57.23. netrom timertype [exponential | linear] Displays or sets the type of backoff. 3.57.24. netrom ttl [] Display or set the maximum number of hops a frame might hop before discarded, if it did not reach its destination before. 3.57.25. netrom user [] Display or set our Net/Rom user name. This is used on outgoing connects. 3.57.26. netrom verbose [off | on] Display or set the verbose flag. If set all nodes known to us are transmitted each time the nodetimer expires. If off, only your stations node ident is send out. 3.57.27. netrom window [] Display or set the size of the sliding window. This is the largest send and receive window we might negotiate. 3.58. nntp Network news transfer protocol has the following subcommands: 3.58.1. nntp addserver [] [] Add a nntp news server to query every seconds interval for new articles specified by the nntp groups command. Range can be a limit in time to query like nntp addserver someserver 600 22:0023:00, to only query the server between 10 and 11pm. Multiple nntp add can be used co concatenate groups (up to 512 bytes) The interval seconds can be set to 0, so that normally the nntp client does not query the server regularly but an nntp kick nntpserver can be used to start a session. 3.58.2. nntp directory Show or set default directory for spooling news. This is not the control directory but the (alternate) place to spool articles to. 3.58.3. nntp dropserver 3.58.4. nntp groups [ ...] Set or display currently set newsgroups. 3.58.5. nntp kick Kick the client to get in touch with the named server. 3.58.6. nntp listservers Lists the currently defined servers. 3.59. nntp quiet [yes | no] Shows or sets the flag controlling the display of newly received nntp news messages. The SMTP quiet flag controls the beep following the message. If both are off, nothing is shown, keeping the display from getting hung on more when running unattended. 3.60. nntp trace Sets or shows the current trace level for the nntp client. 0 No tracing 1 (default) displays serious errors. 2 displays as 1 and transient errors. 3 displays as 2 and session progress. 4 displays as 3 and actual received articles. 5 displays errors. 3.61. nrstat Displays the NRS interface statistics. 3.62. param [ ...] Invoke a device specific control routine. On a KISS TNC interface, this sends control packets to the TNC. Data bytes are treated as decimal. For example: param ax0 1 255 will set the Transmit Delay timer (type field = 1) on the KISS TNC configured as ax0 to 2.55 seconds (255 x .01 sec). On a SLIP interface, the param command allows the baud rate to be read (without arguments) or set. On asy lines DTR and RTS can be (and possibly should be) set with: param iface dtr 1 and param iface rts 1 The implementation of this command for the various interface drivers is incomplete and subject to change. Current commands defined are: 0 Data  Normal KISS data 1 TxDelay  set TX delay for TNC 2 Persist  set persistence delay for TNC 3 Slottime  set slottime delay for TNC 4 TxTail  set TX tail delay for TNC 5 Fulldup  set Full duplex for TNC 6 Hardware  Hardware dependent 7 TxMute  8 DTR  0 = down, 1 = up 9 RTS  0 = down, 1 = up 10 Speed  baud rate 11 Enddelay  12 Group  13 Idle  14 Min  15 Maxkey  16 Wait  17 Parity  0 = none, 1 = even, 2 = odd parity 129 Down  130 Up  254 Return2  Some tncs need this 255 Return  Reset a TNC from KISS to command mode 3.63. ping [ [ []]] Ping (send ICMP Echo Request packets to) the specified host. By default the data field contains only a small timestamp to aid in determining round trip time; if the optional length argument is given, the appropriate number of data bytes (consisting of hex 55) are added to the ping packets. If milliseconds is specified, pings will be repeated indefinitely at the specified number of milliseconds; otherwise a single, one shot ping is done. Responses to oneshot pings appear asynchronously on the command screen, while repeated pings create a session that may be suspended and resumed. Pinging continues until the session is manually reset. The incflag option causes a repeated ping to increment the target IP address for each ping; it is an experimental feature for searching blocks of IP addresses for active hosts. 3.64. pop The pop client provides an automatic interface to the pop server that is totally transparent to the user; all that the user needs to do is to set a few key parameters and the client will take it from there, apart from registering with the server station manager for setting up the user data. (see pop userdata command. To read more about pop, read RFC 937. The following paragraph describe the pop subcommands. 3.64.1. pop mailbox [] Show the defined name or sets the name to name for POP mail queries to the mailhost. The server keeps the mail in the mailbox name located in /spool/mail/name.txt. This is a mandatory parameter. 3.64.2. pop mailhost [] Show the currently defined host address for a pop server or sets the IP address to the system named ipaddr for POP connections. This is a mandatory parameter. 3.64.3. pop kick Start a POP connection now. (one shot connection) 3.64.4. pop timer [] Show the current setting and time remaining until next server enquiry or when seconds is given, defines the interval that a pop connection is started every to retrieve mail from the server system. When the timer is not set the client is only started with a pop kick command. 3.64.5. pop userdata Sets up the userdata used for validation on the POP server system. Note that and are case sensitive. When only pop userdata is entered to show the values only the is shown. Remember: the name and password should also be defined at the server site in the popusers file. 3.65. popmail Popmail is a newer implementation of the pop client/server. It can handle both pop2 and pop3 type pop client/servers. For functionality see pop but the subcommands are different. 3.65.1. popmail addserver [][hh:mmhh:mm] Add host as a pop server. When seconds is given, a timer is started to query the host with that interval for mail. If not specified no querying to the pop host will be started. You have to do that manually with a kick. When hh:mmhh:mm is given then only in that exact timeframe are queries to the host made (allowed). Protocol is either POP2 or POP3, depending on the mail service the host is providing. Note: pop2 is superseded by pop3. Mailbox is the mailbox name on the host where fore mail has to be picked up. Username and password are this systems validation parameters for the host. Note that on entering this command the host name is looked up. If nonexistent an error message is presented. 3.65.2. popmail dropserver Drops host from the list of pop servers to be queried. All references to the entry are deleted from the current system. 3.65.3. popmail kick Starts a pop session with host to retrieve mail. This command is needed when no interval is specified with the popmail addserver command. 3.65.4. popmail list Lists the current popmail server table. 3.65.5. popmail quiet Displays or sets the notification of new mail arriving via pop. 3.65.6. popmail trace Displays or sets the trace level of pop sessions. Current trace levels are: 0  No tracing 1  Serious errors reported 2  Transient errors reported 3 - Session progress reported Note that tracing only goes to the log file. 3.66. ppp These commands are used for Point to Point Protocol interfaces. This implementation of PPP is designed to be as complete as possible. Because of this, the number of options can be rather daunting. However, a typical PPP configuration might include the following commands: attach asy 0x3f8 4 ppp pp0 4096 1500 9600 dial pp0 30 3 dialer.pp0 # ppp pp0 lcp local accm 0 ppp pp0 lcp local compress address on ppp pp0 lcp local compress protocol on ppp pp0 lcp local magic on ppp pp0 lcp open active # ppp pp0 ipcp local compress tcp 16 1 ppp pp0 ipcp open active # route add default pp0 3.66.1. ppp Display the status of the PPP interface. 3.66.2. ppp lcp ... These commands are used for the LCP [Link Control Protocol] configuration. 3.66.2.1. ppp lcp close Shutdown the PPP interface. 3.66.2.2. ppp lcp local ... These commands control the configuration of the local side of the link. If an option is specified, the parameters will be used as the initial values in configuration requests. If not specified, that option will not be requested. For each of these options, the allow parameter will permit the remote to include that option in its response, even when the option is not included in the request. By default, all options are allowed. 3.66.2.2.1. ppp lcp local accm [ | allow [on | off] ] Display or set the Async Control Character Map. The default is 0xffffffff. 3.66.2.2.2. ppp lcp local authenticate [ pap | none | allow [on | off] ] Display or set the authentication protocol. The default is none. 3.66.2.2.3. ppp lcp local compress address/control [ on | off | allow [on | off] ] Display or set the option to compress the address and control fields of the PPP HLDClike header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. 3.66.2.2.4. ppp lcp local compress protocol [ on | off | allow [on | off] ] Display or set the option to compress the protocol field of the PPP HLDClike header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. 3.66.2.2.5. ppp lcp local magic [ on | off | | allow [on | off] ] Display or set the initial Magic Number. The default is off (zero). 3.66.2.2.6. ppp lcp local mru [ | allow [on | off] ] Display or set the Maximum Receive Unit. The default is 1500. 3.66.2.2.7. ppp lcp local default Reset the options to their default values. 3.66.2.3. ppp lcp open active | passive Wait for the physical layer to come up. If active, initiate configuration negotiation. If passive, wait for configuration negotiation from the remote. 3.66.2.4. ppp lcp remote ... These commands control the configuration of the remote side of the link. The options are identical to those of the local side. If an option is specified, the parameters will be used in responses to the remotes configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the allow parameter will permit the remote to specify that option in its request. By default, all options are allowed. 3.66.2.5. ppp lcp timeout [] Display or set the interval to wait between configuration or termination attempts. The default is 3 seconds. 3.66.2.6. ppp lcp try ... These commands are used for the various counters. 3.66.2.6.1. ppp lcp try configure [] Display or set the number of configuration requests sent. The default is 10. 3.66.2.6.2. ppp lcp try failure [] Display or set the number of bad configuration requests allowed from the remote. The default is 5. 3.66.2.6.3. ppp lcp try terminate [] Display or set the number of termination requests sent before shutdown. The default is 2. 3.66.3. ppp ipcp ... These commands are used for the IPCP [Internet Protocol Control Protocol] configuration. The close, open, timeout and try subcommands are identical to the LCP (described above). 3.66.3.1. ppp ipcp local ... These commands control the configuration of the local side of the link. If an option is specified, the parameters will be used as the initial values in configuration requests. If not specified, that option will not be requested. For each of these options, the allow parameter will permit the remote to include that option in its response, even when the option is not included in the request. By default, all options are allowed. 3.66.3.1.1. ppp ipcp local address [ | allow [on | off] ] Display or set the local address for negotiation purposes. If an address of 0 is specified, the other side of the link will supply the address. By default, no addresses are negotiated. 3.66.3.1.2. ppp ipcp local compress [ tcp [] | none | allow [on | off] ] Display or set the compression protocol. The default is none. The tcp specifies the number of conversation slots, which must be 1 to 255. (This may be limited at compilation time to a smaller number.) A good choice is in the range 4 to 16. The tcp is 0 (dont compress the slot number) or 1 (OK to compress the slot number). KA9Q can handle compressed slot numbers, so the default is 1. 3.66.3.2. ppp ipcp remote ... These commands control the configuration of the remote side of the link. The options are identical to those of the local side. If an option is specified, the parameters will be used in responses to the remotes configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the allow parameter will permit the remote to specify that option in its request. By default, all options are allowed. 3.66.4. ppp pap ... These commands are used for the PAP [Password Authentication Protocol] configuration. The timeout and try subcommands are identical to the LCP (described above). However, the terminate counter is unused. 3.66.4.1. ppp pap user [ [] ] Display or set the username (the password may be set, but not displayed). When the username is specified, but no password is supplied, the /ftpusers file is searched for the password. When a username/password is unknown or rejected, a session will appear at the console to prompt for a new username/password. 3.66.5. ppp trace [] Display or set the flags that control the logging of information during PPP link configuration. The flag value is 0 for none, 1 for basic, and 2 for general. Values greater than 2 are usually not compiled, and are described in the appropriate source files where they are defined. 3.67. ps Display all current processes in the system. The fields are as follows: PID  Process ID (the address of the process descriptor). SP  The current value of the process stack pointer. stksize  The size of the stack allocated to the process. maxstk  The apparent peak stack utilization of this process. This is done in a somewhat heuristic fashion, so the numbers should be treated as approximate. If this number reaches or exceeds the stksize figure, the system is almost certain to crash; the nos.exe program should be recompiled to give the process a larger allocation when it is started. event  The event this task is waiting for, if it is not runnable. fl  Process status flags. There are three: I (Interrupts enabled), W (Waiting for event) and S (suspended). The I flag is set whenever a task has executed a pwait() call (wait for event) without first disabling hardware interrupts. Only tasks that wait for hardware interrupt events will turn off this flag; this is done to avoid critical sections and missed interrupts. The W flag indicates that the process is waiting for an event; the event column will be nonblank. Note that although there may be several runnable processes at any time (shown in the ps listing as those without the W flag and with blank event fields) only one process is actually running at any one instant (The Refrigerator Light Effect says that the ps command is always the one running when this display is generated.) 3.68. pwd [] An alias for the cd command. 3.69. rarp This uses the reverse address resolution protocol. 3.69.1. rarp query This starts a reverse resolution request via iface to find the IP address for callsign. It counts down for 10 seconds before giving up listening for an answer. 3.70. record [off | ] Append to filename all data received on the current session. Data sent on the current session is also written into the file except for Telnet sessions in remote echo mode. The command record off stops recording and closes the file. 3.71. remote [p ] [k ] [a ] exit | reset | kick Send a UDP packet to the specified host commanding it to exit the NOS program, reset the processor, or force a retransmission on TCP connections. For this command to be accepted, the remote system must be running the remote server and the port number specified in the remote command must match the port number given when the server was started on the remote system. If the port numbers do not match, or if the remote server is not running on the target system, the command packet is ignored. Even if the command is accepted there is no acknowledgement. The kick command forces a retransmission timeout on all TCP connections that the remote node may have with the local node. If the a option is used, connections to the specified host are kicked instead. No key is required for the kick subcommand. The exit and reset subcommands are mainly useful for restarting the nos program on a remote unattended system after the configuration file has been updated. The remote system should invoke the NOS program automatically upon booting, preferably in an infinite loop. For example, under MSDOS the boot disk should contain the following in autoexec.bat: :loop nos goto :loop 3.71.1. remote s The exit and reset subcommands of remote require a password. The password is set on a given system with the s option, and it is specified in a command to a remote system with the k option. If no password is set with the s option, then the exit and reset subcommands are disabled. Note that remote is an experimental feature in NOS; it is not yet supported by any other TCP/IP implementation. 3.72. rename Rename oldfilename to newfilename. 3.73. reset [] Reset the specified session; if no argument is given, reset the current session. This command should be used with caution since it does not reliably inform the remote end that the connection no longer exists. (In TCP a reset (RST) message will be automatically generated should the remote TCP send anything after a local reset has been done. In AX.25 the DM message performs a similar role. Both are used to get rid of a lingering halfopen connection after a remote system has crashed.) 3.74. rip These commands are used for the RIP service. 3.74.1. rip accept Remove the specified gateway from the RIP filter table, allowing future broadcasts from that gateway to be accepted. 3.74.2. rip add [] Add an entry to the RIP broadcast table. The IP routing table will be sent to hostid every interval of seconds. If flags is specified as 1, then split horizon processing will be performed for this destination. That is, any IP routing table entries pointing to the interface that will be used to send this update will be removed from the update. If split horizon processing is not specified, then all routing table entries except those marked private will be sent in each update. (Private entries are never sent in RIP packets). Triggered updates are always done. That is, any change in the routing table that causes a previously reachable destination to become unreachable will trigger an update that advertises the destination with metric 15, defined to mean infinity. Note that for RIP packets to be sent properly to a broadcast address, there must exist correct IP routing and ARP table entries that will first steer the broadcast to the correct interface and then place the correct linklevel broadcast address in the linklevel destination field. If a standard IP broadcast address convention is used (eg. 128.96.0.0 or 128.96.255.255) then chances are you already have the necessary IP routing table entry, but unusual subnet or clusteraddressed networks may require special attention. However, an arp add command will be required to translate this address to the appropriate link level broadcast address. For example: arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff for an Ethernet network, and: arp add 44.255.255.255 ax25 qst0 for an AX.25 packet radio channel. (If multiple AX.25 interfaces, make a unique address for each interface.) 3.74.3. rip drop Remove an entry from the RIP broadcast table. 3.74.4. rip merge [on | off] This flag controls an experimental feature for consolidating redundant entries in the IP routing table. When rip merging is enabled, the table is scanned after processing each RIP update. An entry is considered redundant if the target(s) it covers would be routed identically by a less specific entry already in the table. That is, the target address(es) specified by the entry in question must also match the target addresses of the less specific entry and the two entries must have the same interface and gateway fields. For example, if the routing table contains: Dest Len Interface Gateway Metric P Timer Use 1.2.3.4 32 en0 128.96.1.2 1 0 0 0 1.2.3 24 en0 128.96.1.2 1 0 0 0 then the first entry would be deleted as redundant since packets sent to 1.2.3.4 will still be routed correctly by the second entry. Note that the relative metrics of the entries are ignored. 3.74.5. rip refuse Refuse to accept RIP updates from the specified gateway by adding the gateway to the RIP filter table. It may be later removed with the rip accept command. 3.74.6. rip request Send a RIP Request packet to the specified gateway, causing it to reply with a RIP Response packet containing its routing table. 3.74.7. rip status Display RIP status, including a count of the number of packets sent and received, the number of requests and responses, the number of unknown RIP packet types, and the number of refused RIP updates from hosts in the filter table. A list of the addresses and intervals to which periodic RIP updates are being sent is also shown, along with the contents of the filter table. 3.74.8. rip trace [0 | 1 | 2] This variable controls the tracing of incoming and outgoing RIP packets. Setting it to 0 disables all RIP tracing. A value of 1 causes changes in the routing table to be displayed, while packets that cause no changes cause no output. Setting the variable to 2 produces maximum output, including tracing of RIP packets that cause no change in the routing table. 3.74.9. rip ttl Displays or sets the time to live timer to seconds. Normal timeout value is 240 seconds. This is not the ttl in a rip broadcast (16 = infinite). Set this timer before starting rip. Change this timer only in cooperation with your surrounding nodes. Default is 240 seconds. 3.75. rlogin host Sets up an rlogin session via port 511 to a Unix compatible station. Default terminal is an ansi (as defined with the fkeys) compatible terminal. Default user name is guest. (Redefine with USER environment variable). 3.76. rmdir Remove a subdirectory from the current working directory. 3.77. route With no arguments, route displays the IP routing table. 3.77.1. route add [/bits] | default [ | direct []] This command adds an entry to the routing table. It requires at least two more arguments, the hostid of the target destination and the name of the interface to which its packets should be sent. If the destination is not local, the gateways hostid should also be specified. (If the interface is a pointtopoint link, then gateway_hostid may be omitted even if the target is nonlocal because this field is only used to determine the gateways link level address, if any. If the destination is directly reachable, gateway_hostid is also unnecessary since the destination address is used to determine the interface link address). If rspf is used and the system is a switch / router to multiple routes the keyword direct can be used i.s.o a gateway_hostid to set the metric higher as the default 1. This way routes advertized by other rspf stations can be cheaper and get selected. If direct is given but metric not, an new algorithm is used to set the metric dependent on the number of subnet mask bits. The optional /bits suffix to the destination host id specifies how many leading bits in the host id are to be considered significant in the routing comparisons. If not specified, 32 bits (i.e., full significance) is assumed. With this option, a single routing table entry may refer to many hosts all sharing a common bit string prefix in their IP addresses. For example, ARPA Class A, B and C networks would use suffixes of /8, /16 and /24 respectively; the command route add 44/8 sl0 44.64.0.2 causes any IP addresses beginning with 44 in the first 8 bits to be routed to 44.64.0.2; the remaining 24 bits are dontcares. When an IP address to be routed matches more than one entry in the routing table, the entry with largest bits parameter (i.e., the best match) is used. This allows individual hosts or blocks of hosts to be exceptions to a more general rule for a larger block of hosts. The special destination default is used to route datagrams to addresses not matched by any other entries in the routing table; it is equivalent to specifying a /bits suffix of /0 to any destination hostid. Care must be taken with default entries since two nodes with default entries pointing at each other will route packets to unknown addresses back and forth in a loop until their timetolive (TTL) fields expire. (Routing loops for specific addresses can also be created, but this is less likely to occur accidentally). There are two built-in interfaces: loopback and encap. Loopback is for internal purposes only. The encap is an IP encapsulator interface. This is used to encapsulate a complete IP datagram into a IP datagram so that it gets piggybacked. It is often used to carry ampr.org datagrams (net44) over the Internet. Note that the Internet is fully connected and that ampr.org is (at least) very loose. This way two sites can interchange net44 datagrams to each other. Some extra notes: A Internet gateway has 2 IP addresses: one on ampr.org and one on the Internet. You should make sure that the interface connected to the Internet has the ifconfig ipaddr set correctly. Note: This previously only worked as a gateway for other stations. There was some guessing needed in picking an IP address when encap was used locally. The guessing always selects the worst guess. (always wrong with a 2.7 Murphy factor) The code now uses the local IP address as source when the route starts at the local station. If this is not what you want, you can overrule this by setting the IP address of the pseudo encap interface to what you want it to be. Some extra notes on encap: Suppose I have 3 systems on an Ethernet with network 129.179.122.128/25. In the office I have another network linked to the Internet. The addresses there are in the 129.179.122.0/25 range. Now I have a radio link with 44.137.0.2 and 44.137.1.2 on respective sites. On the 44.137.0.2 system I have: route add 44.0.0.0/8 encap 44.137.1.1 99 On a Next system on my local Ethernet I have 44.137.0.1 / 129.179.122.129. To get from that system to say 44.62.0.1 I have to add an encap to my local gateway with route add 44.0.0.0/8 encap 129.179.122.130. The following: route add default en0 129.179.122.130 gives me access to the Internet. Otherwise it will look up the address for the interface to be used to reach 129.179.122.130 and will use 129.179.122.129. Now 44.62.0.1 will NEVER know where it came from. So adding the encap on the second system solves the problem. Here are some examples of the route command: # Route datagrams to IP address 44.0.0.3 to SLIP line #0. # No gateway is needed because SLIP is pointto point. route add 44.0.0.3 sl0 # Route all default traffic to the gateway on the local Ethernet # with IP address 44.0.0.1 route add default en0 44.0.0.1 # The local Ethernet has an ARPA ClassC address assignment; # route all IP addresses beginning with 192.4.8 to it route add 192.4.8/24 en0 # The station with IP address 44.0.0.10 is # on the local AX.25 channel route add 44.0.0.10 ax0 # An encapsulation link to 192.4.8.12 where the subnet 44.64.0.0 is # accessible. The internet does not know where we are but we just # use them with what they know: route add 44.64.0.0/16 encap 192.4.8.12 4 3.77.2. route addprivate [/bits] | default [ []] This command is identical to route add except that it also marks the new entry as private; it will never be included in outgoing RIP updates. 3.77.3. route drop Route drop deletes an entry from the table. If a packet arrives for the deleted address and a default route is in effect, it will be used. 3.78. rspf RSPF is the Radio Shortest Path First protocol. Each station listens for RRH (Router to Router Hello) messages. When such a RRH message is received, NOS will figure out if the link is bidirectional by pinging the other station. The protocol is described in the RSPF 2.1 specification. 3.78.1. rspf interface is the required interface rspf should use. quality is from 1 to 127 horizon is between 1 to 255 End nodes should have the quality set to 1. Immediate nodes normally set the quality to 8. The normally used value for horizon is 32. 3.78.2. rspf mode [vc | datagram | none] Without arguments, displays the preferred mode for RSPF. Modes are VC (Virtual Circuit) and Datagram. none resets the preferred mode. 3.78.3. rspf rrhtimer [seconds] Without arguments, displays the RRH timer value. 3.78.4. rspf suspecttimer [seconds] Without arguments, displays the suspect timer value. 3.78.5. rspf timer [seconds] Without arguments, displays the update timer value. To activate RSPF, do the following. Set the broadcast address for the destination interface, example ax0: ifconfig ax0 broadcast 44.255.255.255 This automatically creates a routing entry for 44.255.255.255 in the routing table. If intend to use RSPF on more than one interface, those interfaces must each have different broadcast addresses. Else the routing entries will be overwritten by the next definition. Configure ax0 as an RSPF interface with horizon 32 and a quality of 1 (hops). This is typical for an end node. replace the 1 with an 8 for immediate nodes: rspf interface ax0 1 32 Set the interval between RRH messages. rspf rrhtimer 900 Define how long it takes until an idle link is suspected to be bad. rspf suspecttimer 2000 Set the interval between routing updates. rspf timer 900 3.79. sccstat Display the scc driver statistics. 3.80. session [[] [flowmode [on | off]]] Without arguments, displays the list of current sessions, including session number, remote TCP or AX.25 address and the address of the TCP or AX.25 control block. An asterisk (*) is shown next to the current that session. Entering a session number as an argument to the session command will put you in converse mode with that session. If the Telnet session; entering a blank line at this point puts you in converse mode with server is enabled, the user is notified of an incoming request and a session number is automatically assigned. The user may then select the session normally to converse with the remote user as though the session had been locally initiated. Adding the flowmode displays or enables / disables setting of *more* handling for that session. This is handy for example by long directory listings coming from an ftp session. Escaping to command mode before issuing the dir command and entering session # flowmode on gives a page at a time to look at. At any time you can escape out again and switch flowmode off. Note that a ftp session has its own flow command built-in. See FTP commands later in this manual. 3.82. skick #socket This is a shorthand for the various kick subcommands. This one searches the socket for correct type and kicks the transport layer. 3.83. smtp These commands are used for the Simple Message Transport Protocol service (that is, mail). 3.83.1. smtp batch [yes | no] If set smtp will batch the commands into one frame. When off only one command is send and a response is waited for. Some old and flaky smtp servers cannot handle more than one command at a time. NOS can handle multiple. If you are not hindered by an old smpt server, setting batch reduces bandwidth. 3.83.2. smtp gateway [host] Displays or sets the host to be used as a smart mail relay. Any mail spooled for a host which is not in the domain.txt file, will instead be sent to the gateway for forwarding. 3.83.3. smtp kick Run through the outgoing mail queue and attempt to deliver any pending mail. This command allows the user to kick the mail system manually. Normally, this command is periodically invoked by a timer whenever NOS is running. 3.83.4. smtp kill [job] Kill the job and delete the message. 3.83.5. smtp list List the current jobs. A L means locked and in progress. It is wise to add in autoexec.bat a del /spool/mqueue/*.lck command. 3.83.6. smtp maxclients [count] Displays or sets the maximum number of simultaneous outgoing SMTP sessions that will be allowed. The default is 10; reduce it if network congestion is a problem. 3.83.7. smtp mode [queue | route] Sets the smtp delivery mode. If queue, all messages are left in /spool/rqueue for external forwarding and handling. If route, messages are handled for both local and remote forwarding. 3.83.8. smtp mxlookup [yes | no] Displays or sets a flag enabling or disabling MX record lookups. This can be enabled if a domain server is available in the near distance (reachable). It should be disabled (default) if no domain server is in reach to satisfy the MX query. Note that MX record handling is very limited in NOS. If an answer from a domain name server comes in it is taken to be the destination. 3.83.9. smtp quiet [yes | no] Enables or disables the message that new mail arrived at this system. 3.83.10. smtp timer [] Displays or sets the interval, between scans of the outbound mail queue. For example, smtp timer 600 will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds, subject of course to the smtp maxclients limit. Setting a value of zero disables queue scanning altogether, note that this is the default! This value is recommended for stand alone IP gateways that never handle mail, since it saves wear and tear on the disk drive. 3.83.11. smtp trace [value] Displays or sets the trace flag in the SMTP client, allowing you to watch SMTPs conversations as it delivers mail. Zero (the default) disables tracing. 3.84. socket [[] [flowmode [yes | no]]] Without an argument, displays all active sockets, giving their index and type, the address of the associated protocol control block and the and owner process ID and name. If the index to an active socket is supplied, the status display for the appropriate protocol is called. For example, if the socket refers to a TCP connection, the display will be that given by the tcp status command with the protocol control block address. Flow mode can be set or cleared on a session if so wanted. This comes in handy when a large directory is displayed by ftp. Escaping from the session just before entering dir and setting flowmode and returning to that session, gives a screen full at a time with more processing. 3.85. source Read subsequent commands from filename until EOF. Then resume reading commands from the previous stream. This can be used to keep routing statements in a separate file, which can be read at some point in autoexec.nos. 3.86. start ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink Start the specified Internet server, allowing remote connection requests. 3.87. status Displays load information on NOS. When started, how long running, open files etc. 3.88. stop ax25 | convers | discard | echo | finger | ftp | lpd | netrom | nntp | pop | pop2 | pop3 | remote | rip | smtp | telnet | tip | ttylink Stop the specified Internet server, rejecting any further remote connect requests. Existing connections are allowed to complete normally. 3.89. tail This command displays the last couple of lines of file filename. 3.91. telnet [] Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 23. 3.92. test Start an internal test for an overflow problem that might appear in the clock function of some AT computers. 3.93. thirdparty [yes | no] This is a restriction setter for some countries where stations are not allowed to handle third-party mail traffic. 3.94. ttylink [] Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 87. This uses a split screen interface for easy conversation. 3.95. tip Creates a tip session that connects to the specified interface in dumb terminal mode. The interface must have already been attached with the attach command. Any packet traffic (IP datagrams, etc) routed to the interface while this session exists will be discarded. To close a tip session, use the reset command. It will then revert to normal SLIP, NRS or KISS mode operation. This feature is primarily useful for manually establishing SLIP connections. At present, only the builtin comm ports can be used with this command. 3.96. trace [ [off | []]] Controls packet tracing by the interface drivers. Specific bits enable tracing of the various interfaces and the amount of information produced. Trace output to the screen is only send to the command screen, when in a session tracing to the screen is suspended. (From version 2.0l) Tracing is controlled on a perinterface basis; without arguments, trace gives a list of all defined interfaces and their tracing status. Output can be limited to a single interface by specifying it, and the control flags can be change by specifying them as well. The flags are given as a hexadecimal number which is interpreted as follows: O  Enable tracing of output packets if 1, disable if 0 I  Enable tracing of input packets if 1, disable if 0 T  Controls type of tracing: 0  Protocol headers are decoded, but data is not displayed 1  Protocol headers are decoded, and data (but not the headers themselves) are displayed as ASCII characters, 64 characters/line. Unprintable characters are displayed as periods. 2  Protocol headers are decoded, and the entire packet (headers AND data) is also displayed in hexadecimal and ASCII, 16 characters per line. B  Broadcast filter flag. If set, only packets specifically addressed to this node will be traced; broadcast packets will not be displayed. If tracefile is not specified, tracing will be to the console. 3.97. udp status Displays the status of all UDP receive queues. 3.98. verbose [0 | 1 | 2 | 3] Set or display the level of message output in file transfers. Verbose 0 gives the least output, and verbose 3 the most, as follows: 0  Display error messages only. 1  Display error messages plus a oneline summary after each transfer giving the name of the file, its size, and the transfer time and rate. 2  Display error and summary messages plus the progress messages generated by the remote FTP server. (This setting is the default.) 3  Display all messages. In addition, a hash mark (#) is displayed for every 1,000 bytes sent or received. If a command is sent to the remote server because it is not recognized locally, the response is always displayed, regardless of the setting of verbose. This is necessary for commands like pwd (display present working directory), which would otherwise produce no message at all if verbose were set to 0 or 1. 4. Attach Commands This chapter details the attach commands for the various hardware interface drivers. Not all of these drivers may be configured into every NOS binary; a list of the available types may be obtained by entering the command attach ?. Some parameters are accepted by several drivers. They are: 4.0.1. For asynchronous devices (eg. COM ports operating in SLIP or NRS mode) this parameter specifies the size of the receivers ring buffer. It should be large enough to hold incoming data at full line speed for the longest time that the system may be busy in DOS or the BIOS doing a slow I/O operation (eg. to a floppy disk). A kilobyte is usually more than sufficient. For synchronous devices (e.g., the SCC, or HS interfaces operating in HDLC mode), the bufsize parameter specifies the largest packet that may be received on the interface. This should be set by mutual agreement among stations sharing the channel. For standard AX.25 with a maximum Iframe data size of 256 bytes, a value of 325 should provide an adequate safety margin. On higher speed channels (eg. 56kb/s) larger values (eg. 2K bytes) will provide much better performance and allow fullsized Ethernet packets to be carried without fragmentation. 4.0.2. The base address of the interfaces control registers.This might be specified in hex as 0xnnn or decimal. (nnn is the hexadecimal number). 4.0.3. The interfaces hardware interrupt (IRQ) vector, in decimal. When a vector is followed by the character c then the vector is added in a interrupt chain. This way multiple devices can share the same interrupt vector (hardware changes might be necessary). A sample is the use of a four port communications board sharing the same vector. The first attach command has a plain vector and the following have the c appended. Note that the highest speed port should be defined last (as it is served first by the chaining). Do not specify the c with the first attach statement in that group as unpredictable results will occur. attach asy 0x3f8 4 ax25 ax0 2048 256 1200 attach asy 0x3f0 4c ax25 ax1 2048 256 9600 4.0.4. The name (an arbitrary character string) to be assigned to this interface. It is used to refer to the interface in ifconfig and route commands and in trace output. 4.0.5. The Maximum Transmission Unit size, in bytes. Datagrams larger than this limit will be fragmented at the IP layer into smaller pieces. For AX.25 UI frames, this limits the size of the information field. For AX.25 I frames, however, the AX.25 paclen parameter is also relevant. If the datagram or fragment is still larger than paclen, it is also fragmented at the AX.25 level (as opposed to the IP level) before transmission. (See the AX.25 paclen command for further information). 4.0.6. The interface speed in baud (eg. 4800). 4.1. attach 3c500 arpa [] Obsolete. 4.2. attach asy ax25 | nrs | ppp | slip | raw [] Attach a standard comm port (asynchronous serial port), using the National 8250 or 16550A chip. Standard values for ioaddr and vector are 0x3f8 and 4 for COM1, and 0x2f8 and 3 for COM2. If the port uses a 16550A chip, it will be detected automatically and the FIFOs enabled. 4.2.1. ax25 Similar to SLIP, except that an AX.25 header and a KISS TNC control header are added to the front of the datagram before SLIP encoding. Either UI (connectionless) or I (connectionoriented) AX.25 frames can be used; see the mode command for details. 4.2.2. nrs Use the Net/Rom asynchronous framing technique for communication with a local Net/Rom TNC. If using TheNet X-1J or greater you should use the KISS mode. 4.2.3. ppp PointtoPointProtocol. Encapsulates datagrams in an HDLClike frame. This is a new Internet standard for pointtopoint communication, compatible with CCITT standards. 4.2.4. slip Serial Line Internet Protocol. Encapsulates IP datagrams directly in SLIP frames without a link header. This is for operation on pointtopoint lines and is compatible with 4.2BSD Unix SLIP. 4.2.5. raw Raw serial line without protocol , special for lpd server. 4.2.6. The optional flags are a string of the characters vf. v enables Van Jacobson TCP/IP Header Compression, and is valid only for SLIP. f forces the FIFO on for 16550AFN compatible chips not detected by software (unpredictable results will occur when specified on a non-16550 type chip). 4.3. attach axip This creates a RFC 1226 compatible AX.25 frame encapsulator for transmission of AX.25 frames over the Internet. Iface will be the name of the interface, ip_addr the address of the remote system and callsign the AX.25 callsign this station is listening on for frames to digipeat. Note that each attached axip interface should have a different callsign to listen to and this should also be different from other callsigns used on this station. 4.4. attach drsi ax25 Obsolete. 4.5. attach eagle ax25 Obsolete. 4.6. attach hapn ax25 csma | full Obsolete. 4.7. attach hs ax25

Attach a DRSI or Eagle Computer interface card using a special high speed 8530 driver. This driver uses busywait loops to send and receive each byte instead of interrupts, making it usable with high speed modems (such as the WA4DSY 56kb/s modem) on slow systems. This does have the side effect of freezing the system whenever the modem transmitter or receiver is active. This driver can operate only in CSMA mode, and it is recommended that no other interfaces requiring small interrupt latencies be attached to the same machine. The keyup_delay parameter specifies the transmitter keyup delay in byte time intervals. The p value specifies the transmitter persistence value in the range 1255; the corresponding slot time is fixed at one hardware clock tick, about 55 ms using DOS. As with the other 8530 drivers, this driver actually attaches two interfaces, one for each 8530 channel. 4.8. attach packet Driver for use with separate software packet drivers meeting the FTP Software, Inc, Software Packet Driver specification. The driver must have already been installed before the attach command is given. Packet drivers in the Ethernet, Arcnet, SLIP, SLFP, and KISS/AX.25 classes are supported. intvec is the software interrupt vector used for communication to the packet driver, and txqlen is the maximum number of packets that will be allowed on the transmit queue. 4.9. attach pc100 ax25 Obsolete. 4.10. attach scc init [p | r] [] [] Driver to initialize a generic SCC (8530) interface board prior to actually attaching it. The parameters are as follows: 4.10.1. The number of SCC chips to support. 4.10.2. The base address of the first SCC chip (hexadecimal only). 4.10.3. The spacing between the SCC chip base addresses. 4.10.4. The offset from a chips base address to its channel A control register. 4.10.5. The offset from a chips base address to its channel B control register. 4.10.6. The offset from each channels control register to its data register. 4.10.7. The address of the INTACK/Read Vector port. If none, specify 0 to read from RR3A/RR2B. 4.10.8. The CPU interrupt vector for all connected SCCs. 4.10.9. The clock frequency (PCLK/RTxC) of all SCCs in hertz. Prefix with p for PCLK, r for RTxC clock (for baudrate gen). 4.10.10. Optional hardware type. The following values are currently supported: 1  Eagle card 2  PACCOMM PC100 4  PRIMUSPC card (DG9BL) 8  DRSI PCPA card. 4.10.11. Optional extra parameter. At present, this is used only with the PC100 and PRIMUSPC cards to set the modem mode. The value 0x22 is used with the PC100 and 0x2 is used with the PRIMUSPC card. The attach scc ... init command must be given before the interfaces are actually attached with the following command. 4.11. attach scc slip | kiss | nrs | ax25 [] Attach an initialized SCC port to the system. The parameters are as follows: 4.11.1. The SCC channel number to attach, 0 or 1 for the first chips A or B port, 2 or 3 for the second chips A or B port, etc. 4.11.2. slip | kiss | nrs | ax25 The operating mode of the interface. slip, kiss and nrs all operate the port hardware in asynchronous mode; slip is Internetstandard serial line IP mode, KISS generates SLIP frames containing KISS TNC commands and AX.25 packets and nrs uses Net/Rom local serial link framing conventions to carry Net/Rom packets. Selecting AX.25 mode puts the interface into synchronous HDLC mode that is suitable for direct connection to a half duplex radio modem. 4.11.3. The interface speed in baud (eg. 4800). Prefix with d when an external divider is available to generate the TX clock. When the clock source is PCLK, this can be a /32 divider between TRxC and RTxC. When the clock is at RTxC, the TX rate must be supplied at TRxC. This is needed only for full duplex synchronous operation. When this arg is given as ext, the transmit and receive clocks are external, and the internal baud rate generator (BRG) and digital phase locked loop (DPLL) are not used. 4.12. Attach Examples Here are some examples of the attach command: # Attach the PC asynch card normally known as com1 (the first controller) # to operate in pointtopoint slip mode at 9600 baud, calling it sl0. # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger # than 256 bytes are fragmented. attach asy 0x3f8 4 slip sl0 1024 256 9600 # Attach the secondary PC asynch card (com2) to operate in AX.25 mode # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it ax0. # By default, IP datagrams are sent in UI frames attach asy 0x2f8 3 ax25 ax0 1024 576 9600 # Attach a axip wormhole attach axip ai0 256 129.179.122.10 pa0gri11 # on the other side of the wormhole attach axip ai0 256 129.179.122.130 pa0gri12 # Now assume 129.179.122.10 has a AX.25 interface # with callsign pa0gri10 and 129.179.122.130 a # interface with callsign pa0gri8 # Now a AX.25 frame like: # pe1chl>pa0gri11>pa0gri8>pe1dna [ data] # Received by pa0gri11, set the hasbeendigipeated # change the interface callsign with the one it really came in from # and encapsulates it in a IP frame type 93 and ships it to # 129.179.122.130 # pe1chl>pa0gri10*>pa0gri8>pe1dna [ data] # Arrived at 129.179.122.130 the next digi is searched for # and found. The frame is changed into: # pe1chl>pa0gri10*>pa0gri12*>pe1dna [ data] # so that on the way back the frame will find the # right interface. # Attach the packet driver loaded at interrupt 0x6b # The packet driver is for an Ethernet interface attach packet 0x6b ethernet 15 1500 5. FTP Subcommands During converse mode with an FTP server, everything typed on the console is first examined to see if it is a locallyknown command. If not, the line is passed intact to the remote server on the control channel. If it is one of the following commands, however, it is executed locally. (Note that this generally involves other commands being sent to the remote server on the control channel.) 5.1. dir [ | []] Without arguments, dir requests that a full directory listing of the remote servers current directory be sent to the terminal. If one argument is given, this is passed along in the LIST command; this can be a specific file or subdirectory that is meaningful to the remote file system. If two arguments are given, the second is taken as the local file into which the directory listing should be put (instead of being sent to the console). The PORT command is used before the LIST command is sent. 5.2. flow [off|on] Displays or sets the more processing on the current ftp session. When set to on, a more prompt is displayed after each screen full of data. You can do the same with a session # flow command. Note that this is a local extension to the standard ftp command set. 5.3. get [] Asks the remote server to send the file specified in the first argument. The second argument, if given, will be the name of the file on the local machine; otherwise it will have the same name as on the remote machine. The PORT and RETR commands are sent on the control channel. 5.4. hash A synonym for the verbose 3 command. 5.5. ls [ | []] This is identical to the dir command except that the NLST command is sent to the server instead of the LIST command. This results in an abbreviated directory listing, i.e., one showing only the file names themselves without any other information. 5.6. mget [ ...] Fetch a collection of files from the server. File names may include wild card characters; they will be interpreted and expanded into a list of files by the remote system using the NLST command. The files will have the same name on the local system that they had on the server. 5.7. mkdir Creates a directory on the remote machine if authorized. 5.8. mput [ ...] Send a collection of files to the server. File names may include wild card characters; they will be expanded locally into a list of files to be sent. The files will have the same name on the server as on the local system. 5.9. put [] Asks the remote server to accept data, creating the file named in the first argument. The second argument, if given, will be the name of the file on the remote machine; otherwise it will have the same name as on the local machine. The PORT and STOR commands are sent on the control channel. 5.10. rmdir Deletes a directory on the remote machine if authorized. 5.11. type [a | i | l ] Tells both the local client and remote server the type of file that is to be transferred. The default, (which can be changed with the ftype command) is a, which means ASCII (i.e., a text file). Type i means image, i.e., binary. In ASCII mode, files are sent as varying length lines of text in ASCII separated by cr/lf sequences; in IMAGE mode, files are sent exactly as they appear in the file system. ASCII mode should be used whenever transferring text between dissimilar systems (e.g., Unix and MSDOS) because of their different endofline and/or endoffile conventions. When exchanging text files between machines of the same type, either mode will work but IMAGE mode is usually faster. Naturally, when exchanging raw binary files (executable, compressed archives, etc) IMAGE mode must be used. Type l (logical byte size) is used when exchanging binary files with remote servers having oddball word sizes (e.g., DECSYSTEM10s and 20s). Locally it works exactly like IMAGE, except that it notifies the remote system how large the byte size is. Bytesize is typically 8. The type command sets the local transfer mode and generates the TYPE command on the control channel. 5.12. verbose [0 | 1 | 2 | 3] Set or display the level of message output in file transfers. Verbose 0 gives the least output, and verbose 3 the most, as follows: 0  Display error messages only. 1  Display error messages plus a oneline summary after each transfer giving the name of the file, its size, and the transfer time and rate. 2  Display error and summary messages plus the progress messages generated by the remote FTP server. (This setting is the default.) 3  Display all messages. In addition, a hash mark (#) is displayed for every 1,000 bytes sent or received. If a command is sent to the remote server because it is not recognized locally, the response is always displayed, regardless of the setting of verbose. This is necessary for commands like pwd (display working directory), which would otherwise produce no message at all if verbose were set to 0 or 1. 6. Dialer Subcommands Each dialer command may (should) have a different dialer file. The file resides in the configuration directory, as specified in the Installation section (see chapter 1). A typical dialer file might be: # Set the speed, and toggle DTR to ensure modem is in command mode. control down wait 3000 speed 2400 control up wait 3000 # Dial, and wait for connection send atdt5551212\r wait 45000 CONNECT speed wait 2000 # PAD specific initialization send \r wait 15000 Terminal = send ppp\r wait 10000 \r\n 6.0.1. control down | up Control asy interface. The down option drops DTR and RTS. The up option asserts DTR and RTS. 6.0.2. send string This dialer command will write the specified string to the interface. The string quote marks are required, and the string may not contain embedded control characters. However, the standard C string escape sequences are recognized (\0 should not be used). 6.0.3. speed [ 9600 | 4800 | 2400 | 1200 | 300 ] This dialer command will set the speed of the interface to one of the available speeds. If the speed is missing, the speed will be displayed in the dialer session window. 6.0.4. wait [ test string ] [ speed ] If only the time is specified, the dialer pauses for the desired number of milliseconds. Otherwise, the dialer reads until the test string is detected on the interface. If the string is not detected within the desired time, the autodialer will reset. The string quote marks are required, and the string may not contain embedded control characters. However, the standard C Language string escape sequences are recognized (\0 should not be used). Finally, if the speed parameter is specified, the dialer will continue to read characters until a nondigit is detected. The string read is converted to an integer, and used to set the interface speed. If the trailing non-digit is not detected within the desired time, or the integer value is not a valid speed, the autodialer will reset. 7. Installation NOS uses the following file and directory structure: ~/alias ~/autoexec.nos ~/dialer ~/domain.txt ~/ftpusers ~/net.rc ~/netrom.sav ~/popusers ~/finger/ ~/etc/printcap ~/etc/lpdperms ~/etc/log ~/spool/areas ~/spool/mail.log ~/spool/net.log ~/spool/forward.bbs ~/spool/history ~/spool/rewrite ~/spool/help/ ~/spool/mail/ ~/spool/mqueue/ ~/spool/news/ ~/spool/news/active ~/spool/news/pointer ~/spool/news/info ~/spool/news/help ~/spool/news/history ~/spool/news/forward ~/spool/news/poll ~/spool/rqueue/ ~/spool/signatur/ ~/spool/lpd/ The ~ symbol in front of all files is a directory offset definable with the d option on the NOS command line. Any name may be chosen and is default empty. (eg. just /) If for example d/net is given, the structure shifts to /net/... The alias, autoexec.nos, dialer, domain.txt net.rc, popusers and ftpusers configuration files are located here. The netrom.sav file will be created there. The /spool directory and its subdirectories are used by the BBS, SMTP and NNTP services. The areas, forward.bbs, history, mail.log and rewrite configuration files are located here. The /spool/news directory can have many subdirectories and each subdirectory can have subdirectories. Newsgroups are split into hierarchical directory structures. A news article in newsgroup rec.amateur.radio.packet will end up in /spool/news/rec/amateur/radio/packet.txt. 7.2. The /popusers File Here are the username / password combinations defined for the POP users. It has a simple convention: user:password: For every POP user such a line has to be added. The user and password fields should match the pop userdata statement of the remote user. Both user and password have to be delimited with a colon character. 7.4. The /domain.txt File NOS translates domain names (eg. ka9q.ampr.org) to IP addresses (eg. 44.0.0.1) through the use of an Internet Domain Name resolver and a local cache file, domain.txt. Whenever the user specifies a domain name, the local cache is searched for the desired entry. If it is present, it is used; if not, and if domain name server(s) have been configured, a query is sent over the network to the current server. If the server responds, the answer is added to the domain.txt file for future use. If the server does not respond, any additional servers on the list are tried in a roundrobin fashion until one responds, or the retry limit is reached (see the domain retry command). If domain.txt does not contain the desired entry and there are no configured domain name servers, then the request immediately fails. If a domain name server is available, and if all references to hostids in your /autoexec.nos file are in IP address format, then it is possible to start with a completely empty domain.txt file and have NOS build it for you. However, you may wish to add your own entries to domain.txt, either because you prefer to use symbolic domain names in your /autoexec.nos file or you dont have access to a domain server and you need to create entries for all of the hosts you may wish to access. Each entry takes one line, and the fields are separated by tabs. For example: ka9q.ampr.org. IN A 44.0.0.1 IN is the class of the record. It means Internet, and it will be found in all entries. A is the type of the record, and it means that this is an address record. Domain name ka9q.ampr.org therefore has Internet address 44.0.0.1. Another possible entry is the CNAME (Canonical Name) record. For example: ka9q.ampr.org. IN CNAME pc.ka9q.ampr.org. This says that domain name ka9q.ampr.org is actually an alias for the system with (primary, or canonical) domain name pc.ka9q.ampr.org. When a domain name having a CNAME record is given to NOS, the system automatically follows the reference to the canonical name and returns the IP address associated with that entry. Entries added automatically by NOS will have an additional field between the domain name and the class (IN) field. For example: pc.ka9q.ampr.org. 3600 IN A 44.0.0.1 This is the timetolive value, in seconds, associated with the record received from the server. Clients (such as NOS) caching these records are supposed to delete them after the timetolive interval has expired, allowing for the possibility that the information in the record may become out of date. This implementation of NOS will decrement the TTL to zero, but will not delete the record unless the clean flag is on (see the domain cache clean command). When a remote server is not available, the old entry will be used. When the TTL value is missing (as in the examples above), the record will never expire, and must be managed by hand. Since domain.txt is a plain text file, it may be easily edited by the user to add, change or delete records. Additional types of records, include NS (name server) and SOA (start of authority) may appear in domain.txt from remote server responses. These are not currently used by NOS but are retained for future development (such as the incorporation of a domain name server into NOS itself). 7.5. The /alias file. SMTP server ALIAS file. This is for resolving a given target address into a single or multiple entry mail list. Format: mail_list_name call_1@host_1 [call_2@host_2]......# comments pa0gri gvdg@fridley.cdh.cdc.com kelvin g1emm@g1emm.ampr.org # bob gb3xp@gb3xp.ampr.org ian g3rra@g3rra.ampr.org jim g1wkk@g1wkk.ampr.org john g5ds%gb3kp@gb3xp.ampr.org ted gb3kp%gb3kp@gb3xp.ampr.org ron g6vug@g6vug.ampr.org tim g4uqe@g4uqe.ampr.org gareth g6kvk%gb7spv@gb3xp.ampr.org bolton gb7tcp%gb7crg@gb3xp.ampr.org julian g7efe%gb7cfb@gb3xp.ampr.org # world g3rra@g3rra.ampr.org gb3xp@gb3xp.ampr.org g1plt@g1plt.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g6kvk%gb7spv@gb3xp.ampr.org g1ttg@g1ttg.ampr.org g6vug@g6vug.ampr.org g6kqz@g6kqz.ampr.org g4uqe@g4uqe.ampr.org g8ogr@g8ogr.ampr.org g4xwv@g4xwv.ampr.org # locals g3rra@g3rra.ampr.org g1wkk@g1wkk.ampr.org g8kwi@g8kwi.ampr.org g4bio@g4bio.ampr.org g1plt@g1plt.ampr.org g4uqe@g4uqe.ampr.org g6kqz@g6kqz.ampr.org g4tnu@g4tnu.ampr.org g6xqb@g6xqb.ampr.org Note that it is reasonable, and sometimes desirable, to have alias records in the form: area area dest1 dest2 As the /alias file is scanned only once, this does not result in an infinite recursion. 7.6. The /spool/areas file. This file is a header file shown to a mailbox user when he requests the a display. It should show all public mailboxes to read. Here is a sample:  PublicMailAreas ------- | General  Any old chitchat that is clean. | TcpIp  General Discussion IP messages | Bugs  Where to report bugs | Updates  NOS version UPDATES | | -------- 7.7. The /spool/forward.bbs file. The mailbox reads a forwarding file, spool/forward.bbs. Here is a sample file: wb0ttw 0006 ax25 ax0 wb0ttw wb0ttw w0tn mspbul all  wb0gdb netrom #msparh .c msparh all  The first word on the first line in a forwarding record is the name of the BBS to forward to. This should be the same type of name which is shown by the mbox status command. The second word is optional. It specifies a range of hours when forwarding may take place. 0006 means that there will only be forwarding to this station between midnight and 6am. The second line specifies how to establish the connection. It should start with the protocol (ax25, connect, tcp, telnet or netrom) and be followed by all the parameters which are necessary when NOS has to establish a connection. Directly after the second line, there may be lines that start with a dot. What follows after the dot will be send to the remote BBS as soon as the connection is established. Then follows the names of a number of message areas, public or private. Finally, there should be a couple of  signs to separate one forwarding record from another. Also terminate the file with a last line of dashes. 7.8. The /spool/rewrite file. Read the rewrite file for lines where the first word is a regular expression and the second word are rewriting rules. An optional third field, containing just the letter r, when present, instructs NOS to restart the rewrite file, using the new destination address. The special character $ followed by a digit denotes the string that matched a * character. The * characters are numbered from 1 to 9. Example: the line *@*.* $2@$1.ampr.org would rewrite the address foo@bar.xxx to bar@foo.ampr.org. # *@g1emm.ampr.org $1 *@g1emm.ampr $1 *@g1emm $1 # *!*!*!*!*!*!* $7%$6@$5@$4@$3@$2@$1 *!*!*!*!*!* $6%$5@$4@$3@$2@$1 *!*!*!*!* $5%$4@$3@$2@$1 *!*!*!* $4%$3@$2@$1 *!*!* $3%$2@$1 *!* $2@$1 !* $1 r # # The End PAGE 1-34 PAGE 1-35 PAGE  PAGE  PAGE 1-34 PAGE 1-118 @ @[5[@[L\\bbhh3p6pyy||ܚ%bl  {|}w`b   ++++Q,R,S,/35799(P+PPP\Z_Z`Z\\]\]]]^^^^^M_P_Q_V]c]ch]^J]cV]cZQ_R____ a atmwmxmym{{q|t|b}c}d}r}s}''' ''''66888:8;8ooqrzzzzף  !#$*+,./56:;<>?EFKLP uDPV]c]c^LMNOPQu]cPKKKK L*LKLLLLM0NIN|NNNNO"O9OUOcOhOiOOP(PWPPPPQ4QcQQQQQRGRHRRRjTTTT$$$$$$$$$=$$$$$$$$$$$$=$$$$$$$$$$$$$$$$$-TTTTTUU)UPbt~(<Pex&=>*=Oaw$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-w 4KL1DWi|6@O[s$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-1?HU^jr{%1VWmy '(>IS`mu$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-!.8IJ%Ljhx$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$, !0CPQ?Ulm#0ESijEScd$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-!:;blv  { &' |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,|}-Kd(QCr{8NuSs4x%Z$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$- .S 3_yG`9VMD\j)R-7J T   <Kb$$$$$$$$$$$$$$$$$$$$$$,bRs[^[r!%%'a*,,/3 6647o7p7779::::::;<<==>>>>^?s?$$$$$$$$$$ $$ $$$ $$$ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -s?t?????AAABBB+CEC;D]D^DEEE*FRFSF5HHHHI7I8II$J%JJJJLKgKhK L*L+LMMMN$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -NNNQQQRRR?TbTcT UU UU VVNV{V|VWWWXYY^u^v^`'`(````;aFaGaaaabbbeLe$ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ -Leeee(f_fffg;grgsggg hh1hEh^h{hhhhhi)iBi[i\ioipiyjjjkkkl&lglllmmnn$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -nnnnEocodooooVpnpopcqr$r%rxrrrrrrsss#>$>>>>?@@ A5A6AAAAB2B3BhBBBB$CJCTDDE/EAEEEEEEEF9F:FJJJ$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -J=KUKVKKKKLMMMMMNNNNOOOOOWPyPzP3QTQUQRRR2SRSSS-UIUJUUVVXXXYZbZ$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $  $ $ $ $ $ $ -bZZZZ [W[[)\?\@\\\\&]1]2]]]]0^P^Q^_"_#_`4agahaccdGdeddeIeUeee+frfsffff$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -ffgggggEhhhi8iljjkkk!mGoWoXooooFqfrrrrrrps}s~s_unuouuuuu,vSvhwtwuw$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ -uwoxzx{xyy yyyyzzzzzz |A|B|},~V~W~a~~~~~ C[rnׂ  3#$._!$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ -!34Xgh@OP[ij#34zˉ܉Noˋ̋Fgh$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -h*:;,BCqOp._В"T$h Hy%IJ]^$ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -"HI_ijם؝  EcdBhiǦȦLmGʨ01$  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -1?LValvȫҫ12KLҮӮ)1@IVajw$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -²Ӳ%3CQezȳڳ  EVWopշ˸̸.K/yf$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ -$,i4Nhcs"RZ #]^$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ - ",09:/ ())+?OZ\!"#,-$ $ $ $ $ $ $ $ $  $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ h`% &@%)-.<=>MNOPQh`% QQlx ! !!!!!!!!! ! ! ! ! !!!!!!!! !!!!!!!!!! !!!"!#!$!%!& '!(!)!*!+!,!-!.!/!0!1!2!3 4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v ''u.q8ABG2SX\bWhnuz~G<ӊ1ΜQi x:NR5+ 8H&+)16:@FLRR'Y^bin*u| Ȉ!Us'^ns>cet tu"'r.3:o@EKOSY]^djruz~K$cQ>DJ: \     $#  g  !"d#$ %&'();*+!,-.:/G012u34D5v67 89x:G;<={>'?@ABnCDEFG"H"I)JKnLMNOAPQRVSTIUVrWXcYZ[\]1^&_`Ra bcnde f0gFhijHklmno1pq_rstuvw*+8Fgy2*0IhH"##5#!$$$&!''''(X(a(((p)~)*$**** ,- 6>Q?e?2@8@@@AAAB+D3DEEvFFFFBGGQHJQ9SsSUVW[WlWWWXX@XRXpXXXXXXY1YZZOZdZZZ[[:[L[o[[[[r\\\]D]l]]]^^#_K___b'bgbbcDccduddd6g]gWh|hnii j,jokkAlUl_lmorrrsstuttuu&vfv7wUwoxxxxyyz:zzz}*}}}}~~,~D~a~~~PbLjIǁ$H˂؂:Rs<J~.Dcx#3Չމ5^5btx>˓L|ߗO[ܚr{ԛ%WmyΜ (`mu̟֟ŠѠ.JjҨh!0Qխ?mӮʯ#0EjͰDZѱEd;|}4R^[ra !v&(4BD!5A KjQ$$P$$$$$$$$$$$$$$$=$$$$=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$ $$$ $ $  $ $  $ $ *+89EFsFgy  O  &  i2n|%P *KL0I|"9Uchi(W4cGHj)<Nbv'?Qj"##5#@#!$L$$$$%`%%&T&&&!'''''(X(a(((p)~)*$**** ,,<--03 6p889;>Q?e?2@8@@@@@@AAAAAABBB+D3DEEEEvFFFFFFBGTGGGQH]HeHfHJMaNPJQ2S9SDSrSsSTUVW[WlWWWXX@XRXpXXXXXXY1YZZOZdZZZ[[:[L[o[[[[[[r\\\\\]]]D]S]k]l]]]]]^^^^#_6_J_K_____b'bgb}bbbc2cCcDccduddddd6gNg\g]gWhjh{h|hniiii j!j+j,jokkkkAlUl^l_lmnnnorrrrrrssstuttttuuuu&v@vevfv7wKwTwUwoxxxxxxxxyyyyz1z9z:zzzzz}%})}*}}}}}}~~,~D~U~`~a~~~~~PbL`ij1HIƁǁ$<GH˂؂):BQRhs~<EIJ~Ň-.DPbcx#-23ˉՉމӊ!+5?]^,5>Pbt~Վ(<Pex֑&=>*=Oawʓ˓ 4KL1DWi|̗ޗߗ6@O[sĚКܚ1?HU^jr{țԛ%1VWmy͜Μ '(>IS`mu̟֟ŠѠ!.8IJ%LjҨhx !0CPQɭԭխ?UlmǮҮӮɯʯ#0ESij̰ͰDZѱEScd!:;blv̴մ޴ ׵{ &'ŸԸ |}ź-Kdͻ(QCr{۽8Nu˾SsͿ4x%Z .S 3_yG`9VMD\j)R-7JT<KbRs[^[ra 4op^st      + E ; ] ^    *RS578$%Lgh *+?bc   N{| !Y&u&v&('((((((;)F)G))))***-L----(._.../;/r/s/// 0010E0^0{000001)1B1[1\1o1p1y2223334&4g4445566666E7c7d7777V8n8o8c9:$:%:x::::::;;;<<Z<[<==><>p>> ?3?4?-@b@c@RAAAABBBBBDDD}EEE FKFLF G-GGGGGGGHHH4IpIII/LSLuLLLMMMNNNiOOOOOOaPyPzP;RQRRRS>h?t?u?o@z@{@AA AAAABBBBBB DADBDE,FVFWFaFFFFFG GCG[GrInJJ K K3LL#M$M.M_MMM!N3N4NXNgNhNNNNNNN@OOOPOOOOOPP[PiPjPPPP#Q3Q4QzQQQQQQRSNSoSSSSFTgThT*V:V;V,XBXCXqXXYOYpYYYY.Z_ZZZZZZ"[T[[[[[$\h\\\\ ]H]y]]]]%^I^J^]^^^_``bbb"cHcIc_didjddddeeef g gEgcgdgBhhhihiiiijjnnnLomoooGppppr0r1rr?sLsVsaslsvssssssstt1t2tKtLttttuuuvvvxyyy)z1z@zIzVzazjzwzzzzzzzzzz{{%{3{C{Q{e{z{{{{{{{{ | |}E~VWopˀ̀.K/yf$,iێ4Nhҏԏcs"RZ #]^Дܔ ",09:/ ())+?OZ\ʛٛQQ$TDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDTTDTTTTTD$DDDDDDTTTTDDDTTTTTTTTTTTTTTTDDDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDTTTTTTTTTTDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTDDDDDDDTTDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDTTTTTTTTTTTDDDDDDDDDDDDDDD$$$DTDTTDTTTDTTTTTTD +6FWZC`y{zg9Lο1"[Q_LQRSTUklmL&;0I[`p%֋`| m*T5N@Mf^lx׌}»KeE->JT_mz})<]C(Qlωos1rf 0mBzUu^$l<{t\/!-;J>Whtsՙh2KTT^yH5w|bs?NLenz2pIwQl F$<JbZfuw!h1-QVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     nopqrstuvwxyz{|}~ UnknownHARRY F ROBERTSON  '+26=BFMSZ!!!!!!PHARRY F ROBERTSONC:\SSAMPSON\JNOS.DOCSteven R. SampsonC:\SSAMPSON\JNOS.DOC@HP LaserJet 4LLPT1:HPPCL5EHP LaserJet 4L D ɓ3, HP LaserJet 4L D ɓ3, """"00DDSSSS{|}wQRS\"_"`"\$]$%%%&&&&&M'P'Q'R'''' ) )t5w5x5y5CCbEcEdErEsE :;77BBBBKKKKKLLkkkkll6:>FKMNOPQ8ZZZZhh||{|}w   ++++Q,R,S,/3\Z_Z`Z\\]\]]]^^^^^M_P_Q_R____ a atmwmxmym{{b}c}d}r}s}''' ''''66888:8;8oozzzzף6:>FKMNOP&Times New RomanTimes New Roman Symbol&ArialArial BookmanBookman Old Style1CourierCourier New5Courier NewWingdings!hEM3Zo)wo)w$cJNOS Reference ManualTCP/IP System for the PCSteven R. SampsonSteven R. Sampsonࡱ;  VWܥe- TeR X@ @ @ @ @ $TV EG ؛ ؛ ؛ d\ TV   dt t t t t t Ġ Ơ Ơ Ơ  ա Ǣ Y T c @ t QVt t t t t @ @ t t t t t @ t @ t Ġ $@ B @ @ @ @ t Ġ t Pt Network Operating System Reference Manual WG7J Version August 1993 Copyright ( 1990 by KA9Q, Philip R. Karn Jr. Copyright ( 1993 by WG7J, Johannes K. Reinalda 1.0 Introduction This document is designed to enable a relatively sophisticated DOS computer user to install and operate the WG7J version of the KA9Q NOS program. Please document any errors you find in this guide and report or correct them. The software is in a continuous revision, and errors are very likely to occur. As an user you should document these errors and try to find the reason why it is occurring. When posting an error report please list the version you are using, and what youve done or suspect will resolve the error. Its generally not useful to report something as merely broke. Since there are many ways in which the program can be compiled, Ill assume you enabled them all, and describe each command or feature. Be warned that you really cant enable them all, because you will run out of memory in both segment size, and the 640k DOS limit. As with any document there may be errors, but my intention was to use angle brackets <, > for mandatory syntax, and square brackets [, ] for optional syntax. 1.0.1 The NOS.EXE Program The DOS executable file NOS.EXE (hereafter called NOS) provides Internet TCP/IP, Net/Rom, and AX.25 facilities. Because it has an internal multitasking operating system, NOS can act simultaneously as a client, a server and a packet switch for all three sets of protocols. That is, while a local user accesses remote services, the system can also provide those same services to remote users while also switching IP, Net/Rom and AX.25 packets and frames between other client and server nodes. The keyboard and display is used by the local operator to control both host and gateway level functions, for which a number of commands are provided. 1.1 Disk Configuration and files This section describes the disk configuration and the purpose and samples of the various files. 1.1.1 AUTOEXEC.NOS Text file used to completely configure NOS to your stations requirements. Order is important. Generally you set everything up before starting up the servers. 1.1.2 FTPUSERS Since DOS is a singleuser operating system, it provides no access control; all files can be read, written or deleted by the local user. It is usually undesirable to give such open access to a system to remote network users. NOS therefore provides its own access control mechanisms. The file FTPUSERS controls remote FTP and mailbox access. The FTP default is no access; if this file does not exist, the FTP server will be unusable. A remote user must first log in to the system with the USER and PASS commands, giving a valid name and password listed in FTPUSERS, before anyone can transfer files. Each entry in FTPUSERS cons      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU[\]^`abcdefghijklmnopqrstuvwxyz{|}~ists of a single line of the form: username password /path permissions ip_address There must be at least four fields, and there must be exactly one space between each field. Comments may be added after the last field. Comment lines begin with # in column one. Username is the users login name. Password is the required password. Note that this is in plain text; therefore it is not a good idea to give general read permission to the root directory. A password of * (a single asterisk) means that any passwo0`hϗ1klޘ !0:>GH=6779M]hjğ؟- )*+456ABCNOPQR5%F%G%T%U%a%b%%%%%(!)))$ @$8@$858$858$8$ $$ $ $$$$$$h`% &@%'tK$`$Normal ]a c `2 Heading 1( ["`2" Heading 2 $`2$ Heading 3 V&`2& Heading 4 c(`2( Heading 5 Vc&`2& Heading 6 c(`2( Heading 7 Uc*`2* Heading 8 UVc* `2* Heading 9 UVc"A`"Default Paragraph Font`qHeader)` Page NumberU& `q&Footer& (H$/`1"$List<B`2 Body Textx"2`!B"List 2$C`1R$Body Text Indent8"3`!b"List 3ppo1rDate"6`" List Bullet 2bD`!b List ContinueF x 4.$E`$List Continue 2$F`$List Continue 3pOQ Body Text 3OQ Body Text 46o6 Footnote BaseE$@c4I`14Message Headerp8H@@*o1*Block Quotation 8V o1 Body Text Keep!""`12"Caption"Vco1"Picture#x2o22Document Label $x[`c "*`"Endnote ReferenceUh+`b Endnote Text&6or6 Header Base'( ! U[`c"&`"Footnote ReferenceUh` Footnote Text) `Index 1*o Index Base+0 `Index 2,8 `Index 3- `Index 4.`Index 5/p`Index 60 `Index 71@ `"Index 82 `2Index 93!`Q Index Heading4$oR$Section Heading5 oa Lead-in EmphasisUV(` Line Numberc^0`!^ List BulletC8 x 4hn^1`!^ List NumberC9 x 4h.$-`1$ Macro Text:]c2o22Subtitle Cover; x(Vc$o SuperscriptUh.,`.Table of Authorities =h,o,TOC Base><<! *#`*Table of Figures ?0.`Q TOA Heading@.`.TOC 1Ax!ZUc`"TOC 2BhU`2TOC 3C`B     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeTOC 4D8`RTOC 5E`bTOC 6F`rTOC 7Gp`TOC 8H `TOC 9I@ *o1*Attention Line Jx<V$o2$List Number LastK&o&List Number FirstL<$o12$ Subject LineMxUV,o2, Section Label N( @[*o* Part LabelO[.o. Part TitleP ( 0[c,4o24 Part SubtitleQ(V[c *o*Block Quotation FirstR<(o2(Block Quotation LastS$oB$ Footer First T!oR Footer EvenU$ob$ Footer Odd V$or$ Header First W!o Header EvenX$o$ Header Odd Y&o&List Bullet FirstZ<$o2$List Bullet Last[o!" List First\<o!2 List Last],o, Chapter Label^ 0o0 Chapter Title_ c$2o22Chapter Subtitle `Vc(J`2(Subtitle aUVc"=`"" List Number 5b@ "<`2" List Number 4c ";`B" List Number 3dp"9`R" List Bullet 5e@ "8`b" List Bullet 4f "7`r" List Bullet 3gp"5`!"List 5h@ @ "4`!"List 4i  $>`$Title jc(6o26 Heading BasekhxUckoEmphasisV$'`$Annotation Referencec$`$Annotation Textnx":`" List Number 2o0o0 Title Coverp( c8$G`$List Continue 4q $H`"$List Continue 5r@ "`2" Normal Indents8Network Operating System Reference Manual WG7J Version August 1993 Copyright ( 1990 by KA9Q, Philip R. Karn Jr. Copyright ( 1993 by WG7J, Johannes K. Reinalda 1.0 Introduction This document is designed to enable a relatively sophisticated DOS computer user to install and operate the WG7J version of the KA9Q NOS program. Please document any errors you find in this guide and report or correct them. The software is in a continuous revision, and errors are very likely to occur. As an user you should document these errors and try to find the reason why it is occurring. When posting an error report please list the version you are using, and what youve done or suspect will resolve the error. Its generally not useful to report something as merely broke. Since there are many ways in which the program can be compiled, Ill assume you enabled them all, and describe each command or feature. Be warned that you really cant enable them all, because you will run out of memory in both segment size, and the 640k DOS limit. As with any document there may be errors, but my intention was to use angle brackets <, > for mandatory syntax, and square brackets [, ] for optional syntax. 1.0.1 The NOS.EXE Program The DOS executable file NOS.EXE (hereafter called NOS) provides Internet TCP/IP, Net/Rom, and AX.25 facilities. Because it has an internal multitasking operating system, NOS can act simultaneously as a client, a server and a packet switch for all three sets of protocols. That is, while a local user accesses remote services, the system can also provide those same services to remote users while also switching IP, Net/Rom and AX.25 packets and frames between other client and server nodes. The keyboard and display is used by the local operator to control both host and gateway level functions, for which a number of commands are provided. 1.1 Disk Configuration and files This section describes the disk configuration and the purpose and samples of the various files. 1.1.1 AUTOEXEC.NOS Text file used to completely configure NOS to your stations requirements. Order is important. Generally you set everything up before starting up the servers. 1.1.2 FTPUSERS Since DOS is a singleuser operating system, it provides no access control; all files can be read, written or deleted by the local user. It is usually undesirable to give such open access to a system to remote network users. NOS therefore provides its own access control mechanisms. The file FTPUSERS controls remote FTP and mailbox access. The FTP default is no access; if this file does not exist, the FTP server will be unusable. A remote user must first log in to the system with the USER and PASS commands, giving a valid name and password listed in FTPUSERS, before anyone can transfer files. Eac1|}`aWX'( 9:B^_VMders2@i k   ?%''2>5>>>wjzj``   "P uDPV]c]cJh]]cZ"#$&'-./1289=>?ABHIMNOQRS8)8*8+898P8Q8}8~8888CC COCLLMN0NIN|NiOPPPGRjTTTTTTZZZZ[[]ch]cJUU]c]c0c0u]cP uDPU)b,,,,--./;0k0B1*24N7777778A8l8888 9)9F9g9h99;L;e;;;;<$<><U<q<<<$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=$$$$$$$$$$$,<<=5=E=t====+>Q>>>>>> ?8?e?f?@@AAAAAABB,B:BGBZBlBBBBBBBBC,CEC]C$$$=$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-]CoCCCCCCDD-DG-H8HSH^H?IjIIII;J~JJ9KrKKK?LLLL M,MvMMMMNN8OBOOOO(Q$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,(Q:QZRRUX)[]]^`coddPeVeeeeeefffffgg&g=g>gKiSijjkkkkkll`lrlll$$$ $ $$$$$$ $$$$$$$$$$$$P$P$$$P$$$$$$$$$$$$$$P$$$$-lnmzm{mmor~sugvOxVxaxxyz|+|w||||}2}\}n}}}}}}};~M~2k *;Vh$$$P$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-ʀ؀ـ#5^m ƒÃ=Pdeׄ0A9L]^}ω$$$P$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-h}ˡݡ  HYZrsإΦϦ1N2|i°'/lĴ޴$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -7Qkյ׵fv%U]Ĺ&`aӺߺ%/3<=2$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $ $ -2 +,,.BR]_   $%&/01?@AOPQRS$ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $h`% &@%)8*8+88898E8F8s8888:<<<F?g???y@@ABCOCD&DEiG2JnJ|JJJJJ%KPKK$$$P$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$*Network Operating System Reference Manual WG7J Version August 1993 Copyright ( 1990 by KA9Q, Philip R. Karn Jr. Copyright ( 1993 by WG7J, Johannes K. Reinalda 1.0 Introduction This document is designed to enable a relatively sophisticated DOS computer user to install and operate the WG7J version of the KA9Q NOS program. Please document any errors you find in this guide and report or correct them. The software is in a continuous revision, and errors are very likely to occur. As an user you should document these errors and try to find the reason why it is occurring. When posting an error report please list the version you are using, and what youve done or suspect will resolve the error. Its generally not useful to report something as merely broke. Since there are many ways in which the program can be compiled, Ill assume you enabled them all, and describe each command or feature. Be warned that you really cant enable them all, because you will run out of memory in both segment size, and the 640k DOS limit. As with any document there may be errors, but my intention was to use angle brackets <, > for mandatory syntax, and square brackets [, ] for optional syntax. 1.0.1 The NOS.EXE Program The DOS executable file NOS.EXE (hereafter called NOS) provides Internet TCP/IP, Net/Rom, and AX.25 facilities. Because it has an internal multitasking operating system, NOS can act simultaneously as a client, a server and a packet switch for all three sets of protocols. That is, while a local user accesses remote services, the system can also provide those same services to remote users while also switching IP, Net/Rom and AX.25 packets and frames between other client and server nodes. The keyboard and display is used by the local operator to control both host and gateway level functions, for which a number of commands are provided. 1.1 Disk Configuration and files This section describes the disk configuration and the purpose and samples of the various files. 1.1.1 AUTOEXEC.NOS Text file used to completely configure NOS to your stations requirements. Order is important. Generally you set everything up before starting up the servers. 1.1.2 FTPUSERS Since DOS is a singleuser operating system, it provides no access control; all files can be read, written or deleted by the local user. It is usually undesirable to give such open access to a system to remote network users. NOS therefore provides its own access control mechanisms. The file FTPUSERS controls remote FTP and mailbox access. The FTP default is no access; if this file does not exist, the FTP server will be unusable. A remote user must first log in to the system with the USER and PASS commands, giving a valid name and password listed in FTPUSERS, before anyone can transfer files. Each entry in FTPUSERS consists of a single line of the form: username password /path permissions ip_address There must be at least four fields, and there must be exactly one space between each field. Comments may be added after the last field. Comment lines begin with # in column one. Username is the users login name. Password is the required password. Note that this is in plain text; therefore it is not a good idea to give general read permission to the root directory. A password of * (a single asterisk) means that any password is acceptable. /path is the allowable prefix on accessible files. Before any file or directory operation, the current directory and the user specified file name are joined to form an absolute path name in canonical form (i.e., a full path name starting at the root, with ./ and ../ references, as well as redundant /s, recognized and removed). The result must begin with the allowable path prefix; if not, the operation is denied. This field must always begin with a /, i.e., at the root directory. Multiple directories can be specified by separating them with a ; character and no whitespace around them. Permissions is a decimal number granting permission for read, create and write operations. If the low order bit (0x1) is set, the user is allowed to read a file subject to the path name prefix restriction. If the next bit (0x2) is set, the user is allowed to create a new file if it does not overwrite an existing file. If the third bit (0x4) is set, the user is allowed to write a file even if it overwrites an existing file, and in addition he may delete files. Again, all operations are allowed subject to the path name prefix restrictions. Permissions may be combined by adding bits, for example, 0x3 (= 0x2 + 0x1) means that the user is given read and create permission, but not overwrite/delete permission. Additional permission bits used by the mailbox and PPP are: 1 Read files 2 Create new files 4 Overwrite and delete existing files 8 AX.25 gateway operation allowed 16 Telnet gateway operation allowed 32 Net/Rom gateway operation allowed 64 Remote sysop access allowed (Powerful) 128 This user is a LID, banned from BBS access 256 Priv bit for PPP connection 512 Priv bit for peerID/pass lookup 1024 disallow send commands (except to SYSOP) 2048 disallow read commands 4096 disallow 3rd party mail 8192 This station is a known BBS ip_address is used for PPP only and is the remote IP address of the connected system. A username of univperm has special meaning in the validation mechanism. If univperm is included as a valid user in FTPUSERS then any unknown user (not in FTPUSERS) will be mapped into univperm and get its permission bits and file path. If univperm is not included in FTPUSERS, unknown users are not permitted nor validated. For example, suppose ftpusers on machine ka9q.ampr.org contains the line: friendly test /testdir 7 A session using this account would look like this: net> ftp ka9q.ampr.org Resolving ka9q.ampr.org ... Trying 44.0.0.1 ... FTP session 1 connected to ka9q.ampr.org 220 ka9q.ampr.org FTP ready Enter user name: friendly 331 Enter PASS command Password: test [not echoed] 230 Logged in ftp> The user now has read, write, overwrite and delete privileges for any file under TESTDIR; they may not access any other files. Here are some more sample entries in ftpusers: karn foobar / 7 # User karn with password foobar may read, # write, overwrite and delete any file on the system. guest bletch /g/bogus;/public 3 # User guest with password bletch may read # any file under /g/bogus and its subdirectories, # and /public and its subdirectories, # and may create a new file as long as it does # not overwrite an existing file. He may NOT # delete any files. anonymous * /public 1 # User anonymous (any password) may read files # under /public and its subdirectories; he may # not create, overwrite or delete any files. This last entry is the standard convention for keeping a repository of public files; in particular, the username anonymous is an established convention. 1.1.3 NET.RC Text file used to list the hostname, logins, and passwords to be issued when the administrator performs an FTP. Each line starts with the name of the FTP station followed by an user and password login statement which is sent to the server for validation. The name, user and password are separated with a space. Not a tab or more than one space character. Following is a sample: ucsd.edu anonymous nightly@nbc.com unix.ka9q.ampr.org guest pa0gri 1.1.4 ALIAS 1.1.5 DOMAIN.TXT 1.1.6 POPUSERS 1.1.7 ONEXIT.NOS 1.1.8 FINGER 1.1.9 FINGER/DBASE.DAT 1.1.10 PUBLIC 1.1.11 SPOOL 1.1.12 SPOOL/AREAS 1.1.13 SPOOL/MAIL 1.1.14 SPOOL/MQUEUE 1.1.15 SPOOL/RQUEUE 1.1.16 SPOOL/REWRITE 1.1.17 SPOOL/FTPMOTD.TXT 1.1.18 SPOOL/SIGNATUR 1.1.19 SPOOL/HISTORY 1.1.20 SPOOL/HELP 1.1.21 SPOOL/MOTD.TXT 1.1.22 SPOOL/USERS.DAT 1.1.23 SPOOL/FORWARD.BBS 1.1.24 SPOOL/EXPIRE.DAT 1.1.25 SPOOL/NEWS 1.1.26 SPOOL/NEWS/ACTIVE 1.1.27 SPOOL/NEWS/POINTER 1.1.28 SPOOL/NEWS/INFO 1.1.29 SPOOL/NEWS/HELP 1.1.30 SPOOL/NEWS/HISTORY 1.1.31 SPOOL/NEWS/FORWARD 1.1.32 SPOOL/NEWS/POLL 1.2 Starting NOS When NOS is executed without arguments, it attempts to open the file AUTOEXEC.NOS in the root directory of the current drive. If it exists, it is read and executed as though its contents were typed on the console as commands. This feature is useful for attaching communication interfaces, configuring network addresses, and starting the various services. Starting NOS is usually done through the AUTOEXEC.BAT batch file. This batch file should be designed so that a power reset will automatically reboot the computer and restart the program. NOS also features a remote control reboot command, and the batch file should also handle this case. First Ill show you how the command is executed from the command line, and then will cover a sample batch file. When the exit command is given inside NOS, the commands given in the file ONEXIT.NOS are executed first before returning to DOS. Administrators should switch to the Unix style of specifying subdirectories. You will get into trouble with the DOS style. For example: nos d\nos is not always the same as: nos d/nos And will cause you to consume many a sixpack trying to do a mindmeld with what the multitudes of NOS hackers decided. Sure it might work with this version, but the next hacker may change everything. So meldUnixStyle. The syntax for beginning NOS operation is: nos [ [b] [c num] [d dir] [f filename] [n] [r rows] ... ... [s sockets] [v] [x dir] startup filename ] The switches have the following meaning: b Enables screen output through the BIOS (default direct video) c Define the number of columns on screen (default checks hardware) d Define the root directory for the NOS file structure. Ignored if the f option is used f Define filename for the directory structure configuration file. Takes priority over d option n Disables seperate window for tracing (default enabled) r Define the number of rows on screen (default checks hardware) s Define the number of connection sockets (default 40) v Enables verbose output of AUTOEXEC.NOS and its read progress (default nonverbose) After all command line options, the name of an alternate startup file may be specified. This file is then opened and read instead of AUTOEXEC.NOS. 1.3 DOS Startup Files 1.3.1 AUTOEXEC.BAT 1.3.2 CONFIG.SYS 1.4. DOS environment variables. The following environment variables can be used to specify things to NOS. 1.4.1 TZ The TZ variable should be set to the local timezone. Default is UTC. This is used on the timestamp in SMTP. 1.4.2 MAILER The MAILER specifies what program should be started when the mail command is entered. Default is BM.EXE (not included in the distribution generally). 1.4.3 COMSPEC The COMSPEC specifies what command shell will be used to shell out of NOS. This is normally set by DOS startup to COMMAND.COM. Default is also COMMAND.COM. 1.4.4 TMP The TMP variable is used to create a spot where temporary files are created. Without TMP being set the temp files are created in the root directory. A sample is: set TMP=C:\tmp\ 1.4.5 USER The USER variable is used by FTP and RLOGIN to set the username for the rlogin daemon on the remote system. The default when not setting USER is guest. With FTP the user is suggested in the user name prompt. If a carriage return only is given the suggested name is used, otherwise the given name. 1.5 Console modes The console may be in one of two modes: command mode and converse mode. In command mode, the prompt net> is displayed and any of the commands described in the Administrator commands section may be entered. In converse mode, keyboard input is processed according to the current session. Sessions come in many types: Telnet, Ttylink, Rlogin, FTP, AX25, Finger, Command, Net/Rom, Ping, More, Dial, Dir, PPP PAP, Hopcheck and Tip. In a Telnet, Ttylink, AX25, Net/Rom, Rlogin, or Tip session, keyboard input is sent to the remote system and any output from the remote system is displayed on the console. In an FTP session, keyboard input is first examined to see if it is a known local command; if so it is executed locally. If not, it is passed through to the remote FTP server. (See the FTP Subcommands chapter). In a Ping session the user may test the path to a remote site, in a More session, the user may examine a local file. A Hopcheck session is used to trace the path taken by packets to reach a specified destination. A Finger session is used to peek at a remote system for its users (and what they are doing on some Unix systems). PPP PAP is used as a link setup like slip between two systems. The keyboard also has cooked and raw states. In cooked state, input is lineatatime; the user may use the line editing characters ^U, ^R, ^B, ^W and backspace to erase the line, redisplay the line, redisplay the remainder of the previous line, erase last word and erase the last character, respectively. Hitting either return or line feed passes the complete line up to the application. In raw mode, each character is immediately passed to the application as it is typed. The keyboard is always in cooked state in command mode. It is also cooked in converse mode on an AX25, FTP or Net/Rom session. In a Telnet or Ttylink session it depends on whether the remote end has issued (and the local end has accepted) the Telnet WILL ECHO option. (See the echo command). In DOS, the user may escape back to command mode by hitting the F10 key or the escape key. On other systems, the user must enter the escape character, which is by default control] (hex 1d, ASCII GS). (Note that this is distinct from the ASCII character of the same name). The escape character can be changed (see the escape command). The F10 key can be redefined with the fkey command so the user is now warned to leave one escape possibility open for himself. Setting both F10 and escape to unreachable codes renders a system unescapable and the user hung in a session. In the DOS version, each session (including the command session) has its own screen. When a new session is created, the command display is saved in memory and the screen is cleared. When the command escape key (usually F10 or ^]) is hit, the current session screen is saved and the command screen is restored. When a session is resumed, its screen is restored exactly as it appeared when it was last current. NOS expects that the driver NANSI.SYS is loaded to support the screen and terminal emulation routines. ANSI.SYS has many problems and should not be used. Users of DesqView should be OK with DVANSI.SYS. 2.0 Administrator Commands This section lists the commands that may be given at the net> command prompt. Each of these commands may be installed in the AUTOEXEC.NOS startup configuration file, or they may be entered online. These commands are listed in alphabetical order below. Many commands take subcommands or parameters, which may be optional or required. In general, if a required subcommand or parameter is omitted, an error message will summarize the available subcommands or required parameters. (Giving a ? in place of the subcommand will also generate the message. This is useful when the command word alone is a valid command.) If a command takes an optional value parameter, issuing the command without the parameter generally displays the current value of the variable. (Exceptions to this rule are noted in the individual command descriptions.) Two or more parameters separated by vertical bars denote a choice between the specified values. Optional parameters are shown enclosed in [brackets], and a parameter enclosed in should be replaced with an actual value or string. For example, the notation denotes an actual host or gateway, which may be specified in one of two ways: as a numeric IP address in dotted decimal notation (eg. 44.0.0.1.), or as a symbolic name listed in the file domain.txt. All commands and many subcommands may be abbreviated. You only need type enough of a commands name to distinguish it from others that begin with the same series of letters. Parameters, however, must be typed in full. Certain FTP subcommands (eg. put, get, dir, etc) are recognized only in converse mode with the appropriate FTP session; they are not recognized in command mode. (See the FTP Subcommands chapter.) 2.1 Carriage Return Entering a carriage return (empty line) while in command mode puts you in converse mode with the current session. If there is no current session, NOS remains in command mode and re-issues the net> prompt. 2.2 # Starts a comment. All text after it to the end of line is ignored. Generally used in the AUTOEXEC.NOS start up file. 2.3 ! ! [command] shell [command] Brings you to the DOS prompt or executes the command given. Puts the NOS program in background if the MULTITASK switch is on, otherwise leaves NOS in the paused state. Use the DOS exit command to return back to NOS. 2.4 ? ? help Shows the list of administrator commands. Same as the HELP command. 2.5 ABORT abort Abort a FTP get, put or dir operation in progress. If issued without an argument, the current session is aborted. (This command only works on FTP sessions.) When receiving a file, abort simply resets the data connection; the next incoming data packet will generate a TCP RST (reset) response to clear the remote server. When sending a file, abort sends a premature endoffile. Note that in both cases abort will leave a partial copy of the file on the destination machine, which must be removed manually if it is unwanted. 2.6 ARP Display the Address Resolution Protocol table that maps IP addresses to their subnet (link) addresses on subnetworks capable of broadcasting. For each IP address entry the subnet type (eg. Ethernet, AX.25), subnet address and time to expiration is shown. If the link address is currently unknown, the number of IP datagrams awaiting resolution is also shown. 2.6.1 arp add ether|ax25|netrom|arcnet| | Add a permanent entry to the table. It will not time out as will an automatically created entry, but must be removed with the arp drop command. 2.6.2 arp drop ether|ax25|netrom|arcnet Delete a permanent entry from the arp table. 2.6.3 arp flush Drop all automatically created entries in the ARP table. Permanent entries are not affected. 2.6.4 arp publish ether|ax25|netrom|arcnet | This command is similar to the arp add command, but the system will also respond to any ARP request it sees on the network that seeks the specified address. (Use this feature with great care.) 2.7 ASYSTAT asystat Display statistics on attached asynchronous communications interfaces (8250 or 16550A), if any. The display for each port consists of three lines. The first line gives the port label and the configuration flags; these indicate whether the port is a 16550A chip, the trigger character if any, whether CTS flow control is enabled, whether RLSD (carrier detect) line control is enabled, and the speed in bits per second. (Receiving the trigger character causes the driver to signal upper layer software that data is ready; it is automatically set to the appropriate frame end character for SLIP, PPP and NRS lines.) The second line of the status display shows receiver (RX) event counts: the total number of receive interrupts, received characters, receiver overruns (lost characters) and the receiver high water mark. The high water mark is the maximum number of characters ever read from the device during a single interrupt. This is useful for monitoring system interrupt latency margins as it shows how close the port hardware has come to overflowing due to the inability of the CPU to respond to a receiver interrupt in time. 8250 chips have no FIFO, so the high water mark cannot go higher than 2 before overruns occur. The 16550A chip, however, has a 16byte receive FIFO which the software programs to interrupt the CPU when the FIFO is onequarter full. The high water mark should typically be 4 or 5 when a 16550A is used; higher values indicate that the CPU has at least once been slow to respond to a receiver interrupt. When the 16550A is used, a count of FIFO timeouts is also displayed on the RX status line. These are generated automatically by the 16550A when three character intervals go by with more than 0 but less than 4 characters in the FIFO. Since the characters that make up a SLIP or NRS frame are normally sent at full line speed, this count will usually be a lower bound on the number of frames received on the port, as only the last fragment of a frame generally results in a timeout (and then only when the frame is not a multiple of four bytes long.) Finally, the software FIFO overruns and high water mark are displayed. These indicate whether the parameter on the attach command needs to be adjusted (see the Attach Commands section). The third line shows transmit (TX) statistics, including a total count of transmit interrupts, transmitted characters, the length of the transmit queue in bytes, the number of status interrupts, and the number of THRE timeouts. The status interrupt count will be zero unless CTS flow control or RLSD line control has been enabled. The THRE timeout is a stop-gap measure to catch lost transmit interrupts, which seem to happen when there is a lot of activity (ideally, this will be zero). 2.8 AT 2.9 ATTACH attach The most common hardware interface is the Arcnet, Ethernet, and the PC Serial ports. Most other interface boards have a similar syntax but have necessary differences. Try the SCC driver first on internal PC board type TNCs (except Gracillis card), and then possibly a custom driver. The other popular driver is the Crynwr Packet drivers. An easy way to obtain a summary of the parameters required for a given device is to issue a partial attach command (e.g., attach packet.) This produces a usage message giving the complete command format. The details are highly interface dependent, and software dependent on the configuration flags in the source code file CONFIG.H when the software was built. Not all of the drivers listed below will be included in your copy of NOS. Detailed instructions for each driver are in the Attach Commands section. Drivers are available for the following hardware types: 2.9.1 attach 3c500 Obsolete. Dont use this one anymore. Use the Crynwr Packet driver instead. 2.9.2 attach asy Standard PC asynchronous interface (comm port) using the National 8250, 16450, or 16550A chip. 2.9.3 attach axip A wormhole ax25 digipeater device. 2.9.4 attach arcnet An Arcnet driver via the Packet driver. 2.9.5 attach drsi Obsolete, use the SCC Driver. 2.9.6 attach eagle Obsolete, use the SCC Driver. 2.9.7 attach hapn Obsolete, use the SCC Driver. 2.9.8 attach hs Special high speed 8530 driver for the WA4DSY 56kb/s modem. 2.9.9 attach kiss This enables a multiplexed serial port TNC to be used for the second channel. It is used to connect a second port to an already attached asy interface. It will copy most of the parameters of its parent port. 2.9.10 attach netrom This is a pseudo-interface to enable Net/Rom operations. 2.9.11 attach packet Driver for use with separate Crynwr Packet drivers meeting the FTP Software, Inc, Software Packet Driver specification. 2.9.12 attach pc100 Obsolete, use the SCC Driver. 2.9.13 attach pi DMA driven 8530 SCC board. 2.9.14 attach scc SCC Driver for generic 8530 cards. 2.9.15 attach slfp Serial Line Framing Protocol packet driver. 2.10 ATTENDED attended [off | on] Displays or sets the global I am present flag in NOS. This flag is used in the welcome header by incoming ttylink connections, and chat requests from the BBS. 2.11 AUTOROUTE autoroute Displays or sets the IP autorouting option. When set all AX.25 IP packets are analyzed and remembered. 2.12 AX25 ax25 These commands are for AX.25 interfaces. 2.12.1 ax25 bc [on | off] The bc command displays or enables or disables broadcasts via interface interface when on | off are given. 2.12.2 ax25 bcinterval [] The bcinterval displays or sets the time in seconds between bc broadcasts. On display both the interval and the countdown values are shown. 2.12.3 ax25 bckick The bckick command issues a direct broadcast to interface interface when so enabled by a ax25 bc on command. 2.12.4 ax25 bctext [broadcast text] The bctext command displays or sets the text to be send for broadcast messages send out every bcinterval seconds. 2.12.5 ax25 blimit [] Display or set the AX.25 retransmission backoff limit. Normally each successive AX.25 retransmission is delayed by twice the value of the previous interval; this is called binary exponential backoff. When the backoff reaches the blimit setting it is held at that value, which defaults to 30. To prevent the possibility of congestive collapse on a loaded channel, blimit should be set at least as high as the number of stations sharing the channel. Note that this is applicable only on actual AX.25 connections; UI frames will never be retransmitted by the AX25 layer. 2.12.6 ax25 dest See AX.25 hearddest command. This is a shorthand version of it. 2.12.7 ax25 digipeat [on | off] Display or set the digipeater enable flag. If the axip interface is used this flag must be on , otherwise the digipeat function will not work at all. 2.12.8 ax25 filter <0 | 1 | 2 | 3> The filter commands enables or disables the logging in the heard lists of source and destination ax25_addresses. This is a bitwise or function where the 01 value is for source stations and the 02 value for destination stations. When the bit is off, logging is enabled, when on disabled. 2.12.9 ax25 flush Clear the AX.25 heard list. 2.12.10 ax25 heard [] Display the AX.25 heard list. For each interface that is configured to use AX.25, a list of all ax25_addresses heard through that interface is shown, along with a count of the number of packets heard from each station and the interval, in hr:min:sec format, since each station was last heard. The local station always appears first in the listing; the packet count actually reflects the number of packets transmitted. This entry is always present even if no packets have been sent. If interface is given, only the heard list for that interface is displayed. Note that logging of heard stations is controlled with the ax25 filter command. 2.12.11 ax25 hearddest [] Displays the destination list, i.e. the addressed to stations. Next to the time the last transmission to that station the time that station replied (if heard) is displayed. This gives a good reference to see if a station is reachable and responding. 2.12.12 ax25 irtt [] Display or set the initial value of smoothed round trip time to be used when a new AX.25 connection is created. The value is in milliseconds. The actual round trip time will be learned by measurement once the connection has been established. 2.12.13 ax25 kick Force a retransmission on the specified AX.25 control block. The control block address can be found with the ax25 status command. 2.12.14 ax25 maxframe [] Establish the maximum number of frames that will be allowed to remain unacknowledged at one time on new AX.25 connections. This number cannot be greater than 7. Without count it will display the current setting. Note that the maximum outstanding frame count only works with virtual connections. UI frames are not affected. 2.12.15 ax25 mycall [] Display or set the default local AX.25 address. The standard format is used, (e.g., KA9Q1). This command must be given before any attach commands using AX.25 mode are given. 2.12.16 ax25 paclen [] Limit the size of Ifields on new AX.25 connections. If IP datagrams or fragments larger than this are transmitted, they will be transparently fragmented at the AX.25 level, sent as a series of I frames, and reassembled back into a complete IP datagram or fragment at the other end of the link. To have any effect on IP datagrams, this parameter should be less than or equal to the MTU of the associated interface. 2.12.17 ax25 pthresh [] Display or set the poll threshold to be used for new AX.25 Version 2 connections. The poll threshold controls retransmission behavior as follows. If the oldest unacknowledged Iframe size is less than the poll threshold, it will be sent with the poll (P) bit set if a timeout occurs. If the oldest unacked Iframe size is equal to or greater than the threshold, then a RR or RNR frame, as appropriate, with the poll bit set will be sent if a timeout occurs. The idea behind the poll threshold is that the extra time needed to send a small Iframe instead of a supervisory frame when polling after a timeout is small, and since theres a good chance the Iframe will have to be sent anyway (i.e., if it were lost previously) then you might as well send it as the poll. But if the Iframe is large, send a supervisory (RR/RNR) poll instead to determine first if retransmitting the oldest unacknowledged Iframe is necessary; the timeout might have been caused by a lost acknowledgement. This is obviously a tradeoff, so experiment with the poll threshold setting. The default is 128 bytes, one half the default value of paclen. 2.12.18 ax25 reset Delete the AX.25 connection control block at the specified address. 2.12.19 ax25 retry [] Limit the number of successive unsuccessful retransmission attempts on new AX.25 connections. If this limit is exceeded, link reestablishment is attempted. If this fails retry times, then the connection is abandoned and all queued data is deleted. 2.12.20 ax25 route Display the AX.25 routing table that specifies the digipeaters to be used in reaching a given station. 2.12.20.1 ax25 route add [digis ... ] Add an entry to the AX.25 routing table. An automatic ax25 route add is executed if digipeaters are specified in an AX25 connect command, or if a connection is received from a remote station via digipeaters. Such automatic routing table entries wont override locally created entries, however. 2.12.20.2 ax25 route drop Drop an entry for target from the AX.25 routing table. 2.12.20.3 ax25 route mode [vc | datagram | interface] Sets the mode to vc | datagram | interface for target. Interface is the default for that interface. VC is a virtual circuit (AX.25 I-frames connected mode) and datagram is unconnected mode, (AX.25 UI-frames). 2.12.21 ax25 status [] Without an argument, display a oneline summary of each AX.25 control block. If the address of a particular control block is specified, the contents of that control block are dumped in more detail. Note that the send queue units are frames, while the receive queue units are bytes. 2.12.22 ax25 t3 [] Display or set the AX.25 idle keep alive timer. Value is in milliseconds. 2.12.23 ax25 t4 [] Display or set the AX.25 Link redundancy timer. Value is in seconds. When no exchange has been had during this time the link is reset and closed. 2.12.24 ax25 timertype [l | e | o] Sets or displays the type of timer used for retransmission and recovery: linear, exponential or original. 2.12.25 ax25 version [1 | 2] Display or set the version of the AX.25 protocol to attempt to use on new connections. The default is 2 (the version that uses the poll/final bits). 2.12.26 ax25 window [] Set the number of bytes that can be pending on an AX.25 receive queue beyond which I frames will be answered with RNR (Receiver Not Ready) responses. This presently applies only to suspended interactive AX.25 sessions, since incoming Iframes containing network (IP, Net/Rom) packets are always processed immediately and are not placed on the receive queue. However, when an AX.25 connection carries both interactive and network packet traffic, an RNR generated because of backlogged interactive traffic will also stop network packet traffic from being sent. 2.13 BBS bbs Starts a telnet session with the BBS. You must have the telnet server running. See section 3.0 for user commands. 2.14 BOOTP bootp This is a bootp server/client. Not used or tested. 2.14.1 bootp start Starts the bootp server. 2.14.2 bootp stop Stops the bootp server. 2.14.3 bootp dns [] Display or set the list of domain name servers for bootp. 2.12.4 bootp dyip [ | | off] Display or set the interface address range. The range is between ipaddr1 and ipaddr2, both in dot notation. 2.14.5 bootp host [ [boot file]] Display or activate a bootp process. Hardware type is Net/Rom, Ethernet, Appletalk, or AX.25. Hardware addr is the interface name. IP addr must be in dot notation. 2.14.6 bootp rmhost Delete ipaddr from the host table. 2.14.7 bootp homedir [ | default] Display or set the directory where the bootp files reside. The default directory is BPFILES. 2.14.8 bootp defaultfile [ | default] Display or set the file name of the bootp file. The default is /BOOT. 2.14.9 bootp logfile [ | default] [on | off] Starts or stops the logging of bootp requests to filename. The default filename is BOOTPLOG. 2.14.10 bootp logscreen [on | off] Enables or disables the logging of bootp to the screen. 2.15 BOOTPD bootpd This starts the server daemon for bootp. 2.16 BULLETIN 2.17 CONNECT connect 2.18 CALLSERVER 2.19 CALLBOOK callbook 2.20 CALLSERVER2 2.21 CD cd Same function as DOS. 2.22 CDROM 2.23 CLOSE close [] Close the specified session; without an argument, close the current session. On an AX.25 session, this command initiates a disconnect. On a FTP or Telnet session, this command sends a FIN (i.e., initiates a close) on the sessions TCP connection. This is an alternative to asking the remote server to initiate a close (QUIT to FTP, or the logout command appropriate for the remote system in the case of Telnet). When either FTP or Telnet sees the incoming half of a TCP connection close, it automatically responds by closing the outgoing half of the connection. Close is more graceful than the reset command, in that it is less likely to leave the remote TCP in a halfopen state. 2.24 CLS cls Clears the current session screen (command screen). 2.25 COMM comm The comm command sends textstring via interface. This can be used to send straight text to a TNC still in TAPR command mode during NOS startup. Note that to preserve spaces tabs etc. to include the string between double quote characters: comm ax1 start kiss 2.26 CONVERS 2.27 COPY copy Same function as DOS. 2.28 DISCONNECT 2.29 DIR dir [base directory] Same function as DOS. 2.30 DELETE delete Same function as DOS 2.31 DETACH detach 2.32 DIALER dialer [ [ [ []]]] 2.33 DOMAIN 2.34 DUMP 2.35 ERRORS 2.36 ECHO 2.37 EOL 2.38 ESCAPE 2.39 EXIT exit Causes the commands in ONEXIT.NOS to be executed before terminating the NOS program and returning to DOS. 2.40 EXPIRE 2.41 FINGER finger [name [@host]] 2.42 FKEY 2.43 FTP ftp 2.44 FTYPE 2.45 FTPTDISC 2.46 HELP ? help Displays a list of the commands available in your configured version. Additions and deletions are generally contained in the source code file CONFIG.H, and the program is then re-compiled. 2.47 HISTORY 2.48 HOP 2.49 HOSTNAME 2.50 ICMP 2.51 IFCONFIG 2.52 INFO 2.53 IP 2.54 ISAT 2.55 KICK 2.56 LOCK lock This command locks the keyboard. It is useful in an uncontrolled environment. After the password is set, you can use the lock command without any parameters, as it will use the previous assigned password. 2.57 LOG 2.58 LZW lzw lzw [mode] lzw [bits] 2.59 MAIL mail This command will load and shell out to execute the program given in your defined MAILER environment variable of AUTOEXEC.BAT. If MAILER is undefined, the BM.EXE program is the default (not included in distribution generally). If MULTITASK is enabled, and memory is sufficient, the NOS program will continue running in the background. Lack of memory may cause lock up errors. 2.60 MBOX mbox The mailbox routines are massive. There are basically two programs threaded together here. The first is NOS, the second is the BBS clone. The MBOX command has the following subcommands. 2.60.1 mbox attend 2.60.2 mbox bbsonly [on | off] Used to configure an interface for BBS users only. Typically an HF interface or backbone interface would be configured this way. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.3 mbox convers 2.60.4 mbox fwdinfo 2.60.5 mbox haddress 2.60.6 mbox header 2.60.7 mbox hideport [on | off] The interface specified is not listed when mailbox users do a (P)ort command. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.8 mbox jumpstart 2.60.9 mbox kick 2.60.10 mbox mailfor 2.60.11 mbox mailstats 2.60.12 mbox maxmsg 2.60.13 mbox mport 2.60.14 mbox newmail 2.60.15 mbox noax25 [on | off] Used to configure an interface so that AX.25 connections to the mailbox are not permitted. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.16 mbox nobid 2.60.17 mbox nrid 2.60.18 mbox past 2.60.19 mbox password 2.60.20 mbox qth 2.60.21 mbox secure 2.60.22 mbox sendquery [on | off] Used to configure an interface so that it will prompt you for confirmation of saving your mail. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. Recommend you turn this OFF! Really a stupid addition. 2.60.23 mbox smtptoo 2.60.24 mbox status 2.60.25 mbox sysoponly [on | off] Used to configure an interface for sysops only. All other connects will be rejected. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.26 mbox timer 2.60.27 mbox tdisc 2.60.28 mbox tmsg 2.60.29 mbox trace 2.60.30 mbox usersonly [on | off] Used to configure an interface for users only. A pop up BBS would then be ignored. If the directive on or off is omitted, the command reports the current state. You can also examine this flag by using the IFCONFIG command. 2.60.31 mbox utc 2.60.32 mbox zipcode 2.61 MEMORY 2.62 MKDIR mkdir Same function as DOS. 2.63 MODE mode 2.64 MORE more [searchstring] 2.65 MOTD 2.66 MULTITASK 2.67 NETROM 2.67.1 netrom interface [n | v] The interface name must have been previously opened. The last parameter enables nonverbose (n) or verbose (v). Default is nonverbose. The MTU of the netrom interface is automatically reduced by the netrom protocols 20 bytes (ax25 paclen  20). If this computed value is greater than or equal to the ifconfig MTU value, then the computed value is discarded. 2.67.2 netrom route sort [alias | call] The Net/Rom table of nodes can be sorted by alias or callsign.The sorted item appears first for each heard station, when performing an AX.25 heard command. 2.68 NNTP 2.69 NRSTAT 2.70 OLDBID 2.71 PARAM param 2.72 PING ping [ [ [incflag]]] 2.73 PISTATUS 2.74 POP 2.75 POPMAIL 2.76 PPP 2.77 PROMPT 2.78 PS 2.79 PWD Shows the Present Working Directory. Use CD to change. 2.80 RARP 2.81 RDATE 2.82 RECORD 2.83 REMOTE remote [p port] [k key] [a kickaddr] 2.84 RENAME rename Same function as DOS. 2.85 REPEAT repeat [args...] 2.86 RESET 2.87 RIP 2.88 RLOGIN rlogin Used with Unix( systems to log into a pseudoterminal port. 2.89 RMDIR rmdir Same function as DOS. 2.90 ROUTE 2.91 RSPF 2.92 SESSION 2.93 SCCSTAT sccstat 2.94 SHELL ! [command] shell [command] Suspends NOS and executes a subshell (command processor under DOS). When the subshell exits, NOS resumes (under DOS, enter the exit command). Note: see the COMSPEC environment variable. Background activity (FTP servers, etc) is also suspended while the sub-shell executes. Note that this will fail unless there is sufficient unused memory for the subshell and whatever command the user tries to run. When shelled out, ttylink incoming connections are refused and a system unattended message is reported to the remote. 2.95 SKICK skick 2.96 SMTP 2.97 SPLIT split S