NNNNeeeettttwwwwoooorrrrkkkk OOOOppppeeeerrrraaaattttiiiinnnngggg SSSSyyyysssstttteeeemmmm UUUUsssseeeerrrr RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll Phil Karn, KA9Q and Gerard van der Grinten, PA0GRI This manual reflects version 910618 of NOS as released to the public by PA0GRI - 2 - _1. _T_h_e _N_O_S._E_X_E _P_r_o_g_r_a_m The MS-DOS executable file NNNNOOOOSSSS....EEEEXXXXEEEE (Further called NNNNoooossss) provides Internet (TCP/IP), NET/ROM and AX.25 facilities. Because it has an internal multi- tasking operating system, NNNNoooossss 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 ser- vices 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. _S_t_a_r_t_u_p nos Õ-bå Õ-s <#sockets>å Õ-d å Õ-vå Õå When NNNNoooossss is executed without arguments, it attempts to open the file aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss 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 com- mands. This feature is useful for attaching communication interfaces, confi- guring network addresses, and starting the various services. Four command-line options are accepted: _1._1._1. -_b The ----bbbb option specifies the use of BIOS for console output; the default is to write directly to the video display buffer. Use this option if you are run- ning under a windowing package and have trouble with output "bleeding through" on top of other windows. _1._1._2. -_s <_n_o__o_f__s_o_c_k_e_t_s> The ----ssss option specifies the size of the _s_o_c_k_e_t array to be allocated within NNNNoooossss. This limits the number of network connections that may exist simultane- ously; the default is 40. _1._1._3. -_d The ----dddd option allows the user to specify a "root" directory for the confi- guration and spool files; it defaults to the root directory of the system. _1._1._4. -_v The ----vvvv option allows the user to view command execution during the startup of NNNNoooossss. It lets the commands read from aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss echo before they are exe- cuted. This is a nice help if NNNNoooossss stops (hangs) during initialization. After all command line options, the name of a alternate startup file may be specified. This file is then opened and read instead of aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss. - 3 - _1._2. _D_O_S _e_n_v_i_r_o_n_e_m_e_n_t _v_a_r_i_a_b_l_e_s. The following DOS environement variables can be used to specify things to NNNNOOOOSSSS. _1._2._1. _T_Z The TZ variable should be set to the local timezone. Default is UTC. This is used on the timestamp in smtp. _1._2._2. _M_A_I_L_E_R The MAILER specifies what program should be started when the mmmmaaaaiiiillll command is entered. Default is BM.EXE. _1._2._3. _C_O_M_S_P_E_C The COMSPEC specifies what command shell will be used to _s_h_e_l_l _o_u_t of NNNNoooossss. This is normaly set by MS-DOS startup to COMMAND.COM. Default is also COMMAND.COM. _1._2._4. _T_M_P 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._2._5. _U_S_E_R The USER variable is used by ffffttttpppp and RRRRllllooooggggiiiinnnn to set the username for the rlo- gin daemon on the remote system. The default when not setting USER is guest. Guess you don't like it, but that's life. With ffffttttpppp the user is suggested in the user name prompt. If a cr only is given the suggested name is used, oth- erwise the given name. _2. _C_o_n_s_o_l_e _m_o_d_e_s The console may be in one of two modes: _c_o_m_m_a_n_d _m_o_d_e and _c_o_n_v_e_r_s_e _m_o_d_e. In _c_o_m_m_a_n_d _m_o_d_e, the prompt nnnneeeetttt>>>> is displayed and any of the commands described in the CCCCoooommmmmmmmaaaannnnddddssss chapter may be entered. In _c_o_n_v_e_r_s_e _m_o_d_e, keyboard input is processed according to the _c_u_r_r_e_n_t _s_e_s_s_i_o_n. Sessions come in many types: _T_e_l_n_e_t, _T_t_y_l_i_n_k, _R_l_o_g_i_n, _F_T_P, _A_X_2_5, _F_i_n_g_e_r, _C_o_m_- _m_a_n_d, _N_E_T_R_O_M, _P_i_n_g, _M_o_r_e, _D_i_a_l, _D_i_r, _P_P_P _P_A_P, _H_o_p_c_h_e_c_k and _T_i_p. In a Telnet, Ttylink, AX25, NETROM, 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 FFFFTTTTPPPP SSSSuuuubbbbccccoooommmmmmmmaaaannnnddddssss 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 extended responses from UNIX systems). PPP PAP is used as a link setup like slip between two systems. The keyboard also has _c_o_o_k_e_d and _r_a_w states. In _c_o_o_k_e_d state, input is line-at-a-time; 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, - 4 - respectively. Hitting either return or line feed passes the complete line up to the application. In _r_a_w mode, each character is immediately passed to the application as it is typed. The keyboard is always in _c_o_o_k_e_d state in com- mand mode. It is also _c_o_o_k_e_d 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 eeeecccchhhhoooo command). On the IBM-PC, the user may escape back to _c_o_m_m_a_n_d _m_o_d_e by hitting the F10 key or the _e_s_c_a_p_e key. On other systems, the user must enter the _e_s_c_a_p_e 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 eeeessssccccaaaappppeeee 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 IBM PC 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. _3. _C_o_m_m_a_n_d_s This section describes the commands recognized in command mode, or within a startup file such as aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss. These are given in the following nota- tion: command command literal_parameter command subcommand command Õå command a ] b 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 parame- ters. (Giving a '?' in place of the subcommand will also generate the mes- sage. 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 bar(s) 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 ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt, All commands and many subcommands may be abbreviated. You only need type enough of a command's 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. ppppuuuutttt,,,, ggggeeeetttt,,,, ddddiiiirrrr, etc) are recognized only in con- verse mode with the appropriate FTP session; they are not recognized in com- mand mode. (See the FFFFTTTTPPPP SSSSuuuubbbbccccoooommmmmmmmaaaannnnddddssss chapter.) - 5 - _3._1. <_C_R> 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, NNNNoooossss remains in command mode and reissues the nnnneeeetttt>>>> prompt. _3._2. ! An alias for the sssshhhheeeellllllll command. _3._3. # Commands starting with the hash mark (#) are ignored. This is mainly useful for comments in the aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss file. _3._4. _a_b_o_r_t Õ<_s_e_s_s_i_o_n #>å Abort a FTP ggggeeeetttt,,,, ppppuuuutttt oooorrrr ddddiiiirrrr operation in progress. If issued without an argu- ment, the current session is aborted. (This command works only on FTP ses- sions.) When receiving a file, aaaabbbboooorrrrtttt 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, aaaabbbboooorrrrtttt sends a premature end-of-file. Note that in both cases aaaabbbboooorrrrtttt will leave a partial copy of the file on the destination machine, which must be removed manually if it is unwanted. _3._5. _a_r_p 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. _3._5._1. _a_r_p _a_d_d <_h_o_s_t_i_d> _e_t_h_e_r ] _a_x_2_5 ] _n_e_t_r_o_m ] _a_r_c_n_e_t <_e_t_h_e_r__a_d_d_r> ] <_a_x_2_5__a_d_d_r> Add a permanent entry to the table. It will not time out as will an automatically-created entry, but must be removed with the aaaarrrrpppp ddddrrrroooopppp command. _3._5._2. _a_r_p _d_r_o_p <_h_o_s_t_i_d> _e_t_h_e_r ] _a_x_2_5 ] _n_e_t_r_o_m ] _a_r_c_n_e_t Delete a permanent entry from the arp table. _3._5._3. _a_r_p _f_l_u_s_h Drop all automatically-created entries in the ARP table; permanent entries are not affected. _3._5._4. _a_r_p _p_u_b_l_i_s_h <_h_o_s_t_i_d> _e_t_h_e_r ] _a_x_2_5 ] _n_e_t_r_o_m ] _a_r_c_n_e_t <_e_t_h_e_r__a_d_d_r> ] <_a_x_2_5__a_d_d_r> This command is similar to the aaaarrrrpppp aaaadddddddd 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.) _3._6. _a_s_y_s_t_a_t 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 _t_r_i_g_g_e_r _c_h_a_r_a_c_t_e_r if any, whether CTS - 6 - flow control is enabled, whether RLSD (carrier detect) line control is enabled, and the speed in bits per second. (Receiving the _t_r_i_g_g_e_r _c_h_a_r_a_c_t_e_r 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 _h_i_g_h _w_a_t_e_r _m_a_r_k. 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 ina- bility 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 16-byte receive FIFO which the software programs to interrupt the CPU when the FIFO is one-quarter 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 char- acter 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 4 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 AAAAttttttttaaaacccchhhh CCCCoooommmmmmmmaaaannnnddddssss chapter). 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 stopgap measure to catch lost transmit interrupts, which seem to happen when there is a lot of activity (ideally, this will be zero). _3._7. _a_t_t_a_c_h <_h_w _t_y_p_e> ... Configure and attach a hardware interface to the system. The details are highly interface dependent and dependent on configuration flags in the file config.h when the software is build. It can be that not all drivers listed below will be included in your copy of NNNNoooossss. Detailed instructions for each driver are in the AAAAttttttttaaaacccchhhh CCCCoooommmmmmmmaaaannnnddddssss chapter. Drivers are available for the following hardware types: _3._7._1. _a_t_t_a_c_h _3_c_5_0_0 Don't use this one anymore. Use the packet driver instead. This driver is obsolete and not supported anymore. _3._7._2. _a_t_t_a_c_h _a_s_y Standard PC asynchronous interface (com port) using the National 8250 or 16450 or 16550A chip or compatible equivalent. - 7 - _3._7._3. _a_t_t_a_c_h _a_x_i_p A "wormhole" ax25 digipeater device. _3._7._4. _a_t_t_a_c_h _a_r_c_n_e_t A ARCnet driver via the PACKET driver. _3._7._5. _a_t_t_a_c_h _d_r_s_i N6TTO driver for the DRSI PCPA 8530 card. _3._7._6. _a_t_t_a_c_h _e_a_g_l_e WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530). _3._7._7. _a_t_t_a_c_h _h_a_p_n KE3Z driver for the Hamilton Amateur Packet Network adapter board (Intel 8273). _3._7._8. _a_t_t_a_c_h _h_s Special "high speed" 8530 driver for the WA4DSY 56kb/s modem. _3._7._9. _a_t_t_a_c_h _k_i_s_s This enables a multiplexed tnc type to be used for second channel. It is used to connect a second port to an already attached asy interface. It will copy most of the params of it's parent port. _3._7._1_0. _a_t_t_a_c_h _n_e_t_r_o_m This is a psuedo interface to enable NET/ROM operations. _3._7._1_1. _a_t_t_a_c_h _p_a_c_k_e_t Driver for use with separate software "packet drivers" meeting the FTP Software, Inc, Software Packet Driver specification. _3._7._1_2. _a_t_t_a_c_h _p_c_1_0_0 Driver for the PACCOMM PC-100 (Zilog 8530) card. _3._7._1_3. _a_t_t_a_c_h _p_i Dma driven 8530 scc board from VE3IFB. _3._7._1_4. _a_t_t_a_c_h _s_c_c PE1CHL driver for generic 8530 cards. _3._7._1_5. _a_t_t_a_c_h _s_l_f_p Serial Line Faming Protocol packet driver. An easy way to obtain a summary of the parameters required for a given device is to issue a partial attach command (eg. aaaattttttttaaaacccchhhh ppppaaaacccckkkkeeeetttt.) This produces a usage message giving the complete command format. - 8 - _3._8. _a_t_t_e_n_d_e_d Õ_o_f_f ] _o_nå Displays or sets the global "I am present" flag in NNNNoooossss. This flag is used in the welcome header by incoming ttylink connections. _3._9. _a_x_2_5 <_s_u_b_c_o_m_m_a_n_d> These commands are for Ax25 interfaces. _3._9._1. _a_x_2_5 _b_c <_i_n_t_e_r_f_a_c_e> The bc command enables broadcasts via interface iiiinnnntttteeeerrrrffffaaaacccceeee. _3._9._2. _a_x_2_5 _b_c_i_n_t_e_r_v_a_l Õ<_s_e_c_o_n_d_s>å The bcinterval displays or sets the time in seconds between bbbbcccc broadcasts. On display both the interval and the countdown values are shown. _3._9._3. _a_x_2_5 _b_l_i_m_i_t Õ<_l_i_m_i_t>å Display or set the AX25 retransmission backoff limit. Normally each succes- sive AX25 retransmission is delayed by twice the value of the previous inter- val; this is called _b_i_n_a_r_y _e_x_p_o_n_e_n_t_i_a_l _b_a_c_k_o_f_f. 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 AX25 connections; UI frames will never be retransmitted by the AX25 layer. _3._9._4. _a_x_2_5 _b_c_t_e_x_t Õ"_b_r_o_a_d_c_a_s_t _t_e_x_t"å The bctext command displays or sets the text to be send for broadcast mes- sages send out every bbbbcccciiiinnnntttteeeerrrrvvvvaaaallll seconds. _3._9._5. _a_x_2_5 _d_i_g_i_p_e_a_t Õ_o_n ] _o_f_få 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. _3._9._6. _a_x_2_5 _f_i_l_t_e_r <_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 sta- tions. When the bit is off , logging is enabled, when on disabeled. _3._9._7. _a_x_2_5 _f_l_u_s_h Clear the AX.25 "heard" list (see aaaaxxxx22225555 hhhheeeeaaaarrrrdddd). _3._9._8. _a_x_2_5 _h_e_a_r_d Õ<_i_n_t_e_r_f_a_c_e>å 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 con- trolled with the aaaaxxxx22225555 ffffiiiilllltttteeeerrrr command. - 9 - _3._9._9. _a_x_2_5 _h_e_a_r_d_d_e_s_t Õ<_i_n_t_e_r_f_a_c_e>å 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. _3._9._1_0. _a_x_2_5 _i_r_t_t Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å Display or set the initial value of smoothed round trip time to be used when a new AX25 connection is created. The value is in milliseconds. The actual round trip time will be learned by measurement once the connection has been established. _3._9._1_1. _a_x_2_5 _k_i_c_k <_a_x_c_b> Force a retransmission on the specified AX.25 control block. The control block address can be found with the aaaaxxxx22225555 ssssttttaaaattttuuuussss command. _3._9._1_2. _a_x_2_5 _m_a_x_f_r_a_m_e Õ<_c_o_u_n_t>å Establish the maximum number of frames that will be allowed to remain unack- nowledged at one time on new AX.25 connections. This number cannot be greater than 7. Without ccccoooouuuunnnntttt it will display the current setting. Note that the maximum outstaning frame count only works with virtual connections. UI frames are not affected. _3._9._1_3. _a_x_2_5 _m_y_c_a_l_l Õ<_a_x_2_5__a_d_d_r>å Display or set the default local AX.25 address. The standard format is used, (eg. KA9Q-0 or WB6RQN-5). This command must be given before any aaaattttttttaaaacccchhhh com- mands using AX.25 mode are given. _3._9._1_4. _a_x_2_5 _p_a_c_l_e_n Õ<_s_i_z_e>å Limit the size of I-fields on new AX.25 connections. If IP datagrams or fragments larger than this are transmitted, they will be transparently frag- mented 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. _3._9._1_5. _a_x_2_5 _p_t_h_r_e_s_h Õ<_s_i_z_e>å Display or set the poll threshold to be used for new AX.25 Version 2 connec- tions. The poll threshold controls retransmission behavior as follows. If the oldest unacknowledged I-frame 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 I-frame 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" I-frame instead of a supervisory frame when polling after a timeout is small, and since there's a good chance the I-frame 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 I-frame is large, send a supervisory (RR/RNR) poll instead to determine first if retransmitting the oldest unacknowledged I- frame is necessary; the timeout might have been caused by a lost acknowledge- ment. This is obviously a tradeoff, so experiment with the poll threshold setting. The default is 128 bytes, one half the default value of ppppaaaacccclllleeeennnn. - 10 - _3._9._1_6. _a_x_2_5 _r_e_s_e_t <_a_x_c_b> Delete the AX.25 connection control block at the specified address. _3._9._1_7. _a_x_2_5 _r_e_t_r_y Õ<_c_o_u_n_t>å Limit the number of successive unsuccessful retransmission attempts on new AX.25 connections. If this limit is exceeded, link re-establishment is attempted. If this fails rrrreeeettttrrrryyyy times, then the connection is abandoned and all queued data is deleted. _3._9._1_8. _a_x_2_5 _r_o_u_t_e Display the AX.25 routing table that specifies the digipeaters to be used in reaching a given station. _3._9._1_8._1. _a_x_2_5 _r_o_u_t_e _a_d_d <_t_a_r_g_e_t> Õ_d_i_g_i_s ... å Add an entry to the AX.25 routing table. An automatic aaaaxxxx22225555 rrrroooouuuutttteeee aaaadddddddd is exe- cuted if digipeaters are specified in an AX25 ccccoooonnnnnnnneeeecccctttt command, or if a con- nection is received from a remote station via digipeaters. Such automatic routing table entries won't override locally created entries, however. _3._9._1_8._2. _a_x_2_5 _r_o_u_t_e _d_r_o_p <_t_a_r_g_e_t> Drop an entry for target from the AX.25 routing table. _3._9._1_8._3. _a_x_2_5 _r_o_u_t_e _m_o_d_e <_t_a_r_g_e_t> Õ_v_c ] _d_a_t_a_g_r_a_m ] _i_n_t_e_r_f_a_c_eå Sets the mode to vc ] datagram ] interface for target. IIIInnnntttteeeerrrrffffaaaacccceeee is the default for that interface. VVVVcccc is a virtual circuit (ax25 connected mode) and ddddaaaattttaaaaggggrrrraaaammmm is unconnected mode, (AX25 UI frames). _3._9._1_9. _a_x_2_5 _s_t_a_t_u_s Õ<_a_x_c_b>å Without an argument, display a one-line 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. _3._9._2_0. _a_x_2_5 _t_3 Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å Display or set the AX.25 idle "keep alive" timer. Value is in milliseconds. _3._9._2_1. _a_x_2_5 _t_4 Õ<_s_e_c_o_n_d_s>å 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. _3._9._2_2. _a_x_2_5 _t_i_m_e_r_t_y_p_e Õ_l ] _e ] _oå Sets or displays the type of timer used for retransmission and recovery: lllliiiinnnneeeeaaaarrrr,,,, eeeexxxxppppoooonnnneeeennnnttttiiiiaaaallll or oooorrrriiiiggggiiiinnnnaaaallll. _3._9._2_3. _a_x_2_5 _v_e_r_s_i_o_n Õ_1 ] _2å Display or set the version of the AX.25 protocol to attempt to use on new connections. The default is 1 (the version that does not use the poll/final bits). - 11 - _3._9._2_4. _a_x_2_5 _w_i_n_d_o_w Õ<_s_i_z_e>å 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 I-frames containing network (IP, NET/ROM) packets are always pro- cessed 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. _3._1_0. _b_b_s Enter the local bbs port (same as a telnet session to your own station). Current commands are: help ? area a Õå bye b chat c download d escape e Õå gateway d ÕÕå .... å help h Õå info i heard j kill k list l Õå netrom n Users ] Nodes ] Connect read r Õå send sÕfå å Õ$bul_idå send repl sr Õå telnet t upload u verbose v what w Õå zap z sysop @ _3._1_1. _b_o_o_t_p <_s_u_b_c_o_m_m_a_n_d> This is a bootp server / client, included into NNNNoooossss. It is picked up from the University of Michigan in Ann Arbor. It is included into the sources of NNNNoooossss but is not used nor tested by me. (PA0GRI) Its usability is fague but the discussions on tcp-group drove me to include this for possible use of reus- able addresses. _3._1_1._1. _b_o_o_t_p _s_t_a_r_t Starts the bootp server. _3._1_1._2. _b_o_o_t_p _s_t_o_p Stops the bootp server. _3._1_1._3. _b_o_o_t_p _d_n_s Õ<_i_p_a_d_d_r>å Display or set the list of domain name servers for bbbboooooooottttpppp. - 12 - _3._1_1._4. _b_o_o_t_p _d_y_i_p Õ<_i_f_a_c_e> ] <_i_f_a_c_e> <_i_p_a_d_d_r_1> <_i_p_a_d_d_r_2> ] <_i_f_a_c_e> _o_f_få Display or set the interface address range. The range is between _i_p_a_d_d_r_1 and _i_p_a_d_d_r_2, both in dot notation. _3._1_1._5. _b_o_o_t_p _h_o_s_t Õ<_h_o_s_t_a_d_d_r> <_h_a_r_d_w_a_r_e _t_y_p_e> <_h_a_r_d_w_a_r_e _a_d_d_r> <_i_p _a_d_d_r> Õ_b_o_o_t _f_i_l_eåå Display or activate a bootp process. _H_a_r_d_w_a_r_e _t_y_p_e is netrom, ether, macap- pletalk or ax25. _H_a_r_d_w_a_r_e _a_d_d_r is the interface name. _I_p _a_d_d_r must be in dot notation. _3._1_1._6. _b_o_o_t_p _r_m_h_o_s_t <_i_p_a_d_d_r> Delete _i_p_a_d_d_r from the host table. _3._1_1._7. _b_o_o_t_p _h_o_m_e_d_i_r Õ<_d_i_r_e_c_t_o_r_y> ] _d_e_f_a_u_l_tå Display or set the directory where the bbbboooooooottttpppp files reside. The default direc- tory is bpfiles. _3._1_1._8. _b_o_o_t_p _d_e_f_a_u_l_t_f_i_l_e Õ<_b_o_o_t_f_i_l_e> ] _d_e_f_a_u_l_tå Display or set the file name of the bbbboooooooottttpppp file. The default is boot. _3._1_1._9. _b_o_o_t_p _l_o_g_f_i_l_e Õ<_f_i_l_e_n_a_m_e> ] _d_e_f_a_u_l_tå Õ_o_n ] _o_f_få Starts or stops the logging of bbbboooooooottttpppp requests to _f_i_l_e_n_a_m_e or the default file name _b_o_o_t_p_l_o_g. _3._1_1._1_0. _b_o_o_t_p _l_o_g_s_c_r_e_e_n Õ_o_n ] _o_f_få Enables or disables the logging of bbbboooooooottttpppp to the screen. _3._1_2. _b_o_o_t_p_d This starts the server daemon for bbbboooooooottttpppp. _3._1_3. _c_d Õ<_d_i_r_n_a_m_e>å Change the current working directory, and display the new setting. Without an argument, ccccdddd simply displays the current directory without change. The ppppwwwwdddd command is an alias for ccccdddd. _3._1_4. _c_l_o_s_e Õ<_s_e_s_s_i_o_n>å 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 session's TCP connection. This is an alternative to asking the remote server to ini- tiate a close (QQQQUUUUIIIITTTT 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 out- going half of the connection. Close is more graceful than the rrrreeeesssseeeetttt command, in that it is less likely to leave the remote TCP in a "half-open" state. _3._1_5. _c_o_m_m <_i_n_t_e_r_f_a_c_e> <_t_e_x_t-_s_t_r_i_n_g> The ccccoooommmmmmmm command sends tttteeeexxxxtttt----ssssttttrrrriiiinnnngggg via iiiinnnntttteeeerrrrffffaaaacccceeee. This can be used to send straight text to an tnc still in TAPR command mode during NNNNoooossss startup. Note that to preserve spaces tabs etc. to include the string between double quote - 13 - characters. Aka: comm ax1 "start kiss" _3._1_6. _c_o_n_n_e_c_t <_i_f_a_c_e> <_a_x_2_5__a_d_d_r> Õ<_d_i_g_i_p_e_a_t_e_r> ... å 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 de-facto 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 terminal-to- terminal, IP and NET/ROM traffic. The three types of data being automati- cally separated by their AX.25 Level 3 Protocol IDs. Up to 7 optional digipeaters may be given; note that the word vvvviiiiaaaa is NOT needed. If digipeaters are specified, they are automatically added to the AX25 routing table as though the aaaaxxxx22225555 rrrroooouuuutttteeee aaaadddddddd command had been given before issuing the ccccoooonnnnnnnneeeecccctttt command. _3._1_7. _d_e_l_e_t_e <_f_i_l_e_n_a_m_e> The ffffiiiilllleeeennnnaaaammmmeeee is removed from the file system. _3._1_8. _d_e_t_a_c_h <_i_f_a_c_e> 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._1_9. _d_i_a_l_e_r <_i_f_a_c_e> Õ<_f_i_l_e> Õ<_s_e_c_o_n_d_s> Õ<_p_i_n_g_s> Õ<_h_o_s_t_i_d>åååå 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 exe- cuted without pinging the . The file may have any valid name, and must be located in the configuration root directory (see the IIIInnnnssssttttaaaalllllllliiiioooonnnn section). The commands in the file are described in the DDDDiiiiaaaalllleeeerrrr SSSSuuuubbbbccccoooommmmmmmmaaaannnnddddssss chapter. Commands in ffffiiiilllleeee are: _3._1_9._1. _c_o_n_t_r_o_l <_u_p ] _d_o_w_n> _3._1_9._2. _s_e_n_d <_s_t_r_i_n_g> Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å Sends ssssttttrrrriiiinnnngggg to the interface. If mmmmiiiilllllllliiiisssseeeeccccoooonnnnddddssss is given, inter character tim- ing is mmmmiiiilllllllliiiisssseeeeccccoooonnnnddddssss milliseconds. _3._1_9._3. _s_p_e_e_d <_b_p_s> Displays or sets the current interface speed to bbbbppppssss baud. _3._1_9._4. _w_a_i_t <_m_i_l_l_i_s_e_c_o_n_d_s> Õ<_s_t_r_i_n_g> Õ_s_p_e_e_dåå Wait the amount of mmmmiiiilllllllliiiisssseeeeccccoooonnnnddddssss. If ssssttttrrrriiiinnnngggg is given, incoming characters from the interface are compared with ssssttttrrrriiiinnnngggg. If an compare is found and ssssppppeeeeeeeedddd is the string speed, the next numbers read from the interface is the new bau- drate used. This works like HAYES response CONNECT 9600. The wait command - 14 - could habe been "wait 10000 CONNECT speed". This waits 10 seconds for the CONNECT response from the modem. _3._2_0. _d_i_r Õ<_d_i_r_n_a_m_e>å 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 mmmmoooorrrreeee session to display it. After this completes, the temporary file is deleted. _3._2_1. _d_i_s_c_o_n_n_e_c_t Õ<_s_e_s_s_i_o_n>å An alias for the cccclllloooosssseeee command (for the benefit of AX.25 users). _3._2_2. _d_o_m_a_i_n <_s_u_b_c_o_m_m_a_n_d> The domain commands control and show the working of the name to internet address mapping software. NNNNOOOOSSSS 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._2_2._1. _d_o_m_a_i_n _a_d_d_s_e_r_v_e_r <_h_o_s_t_i_d> Add a domain name server to the list of name servers. Note that, when this command is given in the aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss file the iiiipppp aaaaddddddddrrrreeeessssssss command should given be before this command is used. (If not, NNNNoooossss will not kow how to resolve the address, and an answer will never be recognized, or worse: just plain hangs the system.) _3._2_2._2. _d_o_m_a_i_n _c_a_c_h_e <_s_u_b_c_o_m_m_a_n_d> Following commands work on the domain cache. These are resource records (see RFC 1033/1034) held in memory. _3._2_2._2._1. _d_o_m_a_i_n _c_a_c_h_e _c_l_e_a_n Õ<_y_e_s ] _n_o>å Displays or sets the discard of expired resource records. Expired records have their timeout value decremented to zero. Normaly 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._2_2._2._2. _d_o_m_a_i_n _c_a_c_h_e _l_i_s_t This command shows the current content of the in memory cache for resource records. _3._2_2._2._3. _d_o_m_a_i_n _c_a_c_h_e _s_i_z_e Õ<_s_i_z_e>å 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 ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt file.) - 15 - _3._2_2._2._4. _d_o_m_a_i_n _c_a_c_h_e _w_a_i_t Õ<_s_e_c_o_n_d_s>å Display or set the interval in seconds to wait for additional activity before updating the ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt file. The default is 300 seconds (5 minutes). _3._2_2._3. _d_o_m_a_i_n _d_r_o_p_s_e_r_v_e_r <_h_o_s_t_i_d> Remove a domain name server from the list of name servers. You are warned when you delete the last name server. _3._2_2._4. _d_o_m_a_i_n _l_i_s_t_s_e_r_v_e_r_s 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._2_2._5. _d_o_m_a_i_n _m_a_x_w_a_i_t Õ<_t_i_m_e_o_u_t>å 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 can have (PC based) trouble finding records in an large database. The default is set to 30 seconds. _3._2_2._6. _d_o_m_a_i_n _r_e_t_r_y Õ<_r_e_t_r_i_e_s>å 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._2_2._7. _d_o_m_a_i_n _s_u_f_f_i_x Õ<_d_o_m_a_i_n _s_u_f_f_i_x> ] _n_o_n_eå 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 aaaammmmpppprrrr....oooorrrrgggg.... and the user enters tttteeeellllnnnneeeetttt kkkkaaaa9999qqqq, the domain resolver will attempt to find kkkkaaaa9999qqqq....aaaammmmpppprrrr....oooorrrrgggg..... 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., tttteeeellllnnnneeeetttt ffffoooooooo....bbbbaaaarrrr would NOT be turned into ffffoooooooo....bbbbaaaarrrr....aaaammmmpppprrrr....oooorrrrgggg..... tttteeeellllnnnneeeetttt ffffoooooooo....kkkkaaaa9999qqqq will be turned into ffffoooooooo....kkkkaaaa9999qqqq....aaaammmmpppprrrr....oooorrrrgggg..... Note that a trail- ing dot (.) is required for the suffix. If the suffix is the string nnnnoooonnnneeee (without trailing period) the current suffix is cleared and forgotten. _3._2_2._8. _d_o_m_a_i_n _t_r_a_c_e Õ_o_n ] _o_f_få 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, ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt. _3._2_2._9. _d_o_m_a_i_n _t_r_a_n_s_l_a_t_e Õ_o_f_f ] _o_nå Display or set the flag that controls the translation of ip adress in dot notation into symbolic names. The translation process makes heavely 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 IN-ADDR.ARPA. records you ever wanted. - 16 - _3._2_2._1_0. _d_o_m_a_i_n _v_e_r_b_o_s_e Õ_o_f_f ] _o_nå 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 trans- lation only. _3._2_3. _d_r_s_i_s_t_a_t Shows the statistics for all configured drsi boards. _3._2_4. _d_u_m_p <_h_e_x-_a_d_d_r_e_s_s ] .> Õ_d_e_c_i_m_a_l-_r_a_n_g_eå The dump command shows memory in hex and ascii. Hex-address is a 32 bit value for a PC split into page address and page offset. A splitting colon is not used nor accepted. If decimal-range is not given , 128 bytes are displayed. dddduuuummmmpppp .... displayes memory starting at the end of a previous dump command. _3._2_5. _e_c_h_o Õ_a_c_c_e_p_t ] _r_e_f_u_s_eå Display or set the flag controlling client Telnet's response to a remote WILL ECHO offer. The Telnet presentation protocol specifies that in the absence of a nego- tiated 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 control-U 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 timeshar- ing 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 connec- tion request. If eeeecccchhhhoooo aaaacccccccceeeepppptttt 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 eeeecccchhhhoooo rrrreeeeffffuuuusssseeee 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 ssssttttttttyyyy ----eeeecccchhhhoooo command to the shell once you have logged in.) _3._2_6. _e_o_l Õ_u_n_i_x ] _s_t_a_n_d_a_r_då Display or set Telnet's end-of-line behavior when in remote echo mode. In standard mode, each key is sent as-is. In unix mode, carriage returns are translated to line feeds. This command is not necessary with all UNIX sys- tems; 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._2_7. _e_s_c_a_p_e Õ<_c_h_a_r>å Display or set the current command-mode escape character in hex. On the PC, the escape character is default ^å. The alternate escape key is F10 unless F10 is redefined with ffffkkkkeeeeyyyy. - 17 - _3._2_8. _e_t_h_e_r_s_t_a_t Display 3-Com Ethernet controller statistics (if configured). _3._2_9. _e_x_i_t Exit the _n_o_s program and return to MS-DOS. _3._3_0. _f_i_n_g_e_r <_u_s_e_r@_h_o_s_t_i_d> ] <@_h_o_s_t_i_d> Issue a network finger request for user uuuusssseeeerrrr at host hhhhoooossssttttiiiidddd. This creates a client session which may be interrupted, resumed, reset, etc, just like a Telnet client session. If only @@@@hhhhoooossssttttiiiidddd is given, all users on that host are identified. - 18 - _3._3_1. _f_k_e_y Õ<_n_u_m_b_e_r> Õ<_s_t_r_i_n_g>åå Fkey displays or sets values for the programmable keys on the PC keyboard. ffffkkkkeeeeyyyy alone gives a display of all remapable keys and their number. ffffkkkkeeeeyyyy nnnnuuuummmmbbbbeeeerrrr displays the current value for that key. ffffkkkkeeeeyyyy nnnnuuuummmmbbbbeeeerrrr ssssttttrrrriiiinnnngggg 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 func- tion 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 vt100 / 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 */ - 19 - _3._3_2. _f_t_p <_h_o_s_t_i_d> 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 theFFFFTTTTPPPP SSSSuuuubbbbccccoooommmmmmmmaaaannnnddddssss chapter for descriptions of the commands available in a FTP session. _3._3_3. _f_t_y_p_e Õ_a_s_c_i_i ] _b_i_n_a_r_y ] _i_m_a_g_e ] _l_o_g_i_c_a_l <_s_i_z_e>å 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 ssssiiiizzzzeeee. _3._3_4. _h_e_l_p Display a brief summary of top-level commands. _3._3_5. _h_o_p <_s_u_b_c_o_m_m_a_n_d_s> These commands are used to test the connectivity of the network. _3._3_5._1. _h_o_p _c_h_e_c_k <_h_o_s_t_i_d> Initiate a _h_o_p_c_h_e_c_k 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 ttttrrrraaaacccceeeerrrroooouuuutttteeee facility. ICMP message tracing should be turned off before this command is executed (see the iiiiccccmmmmpppp ttttrrrraaaacccceeee command). _3._3_5._2. _h_o_p _m_a_x_t_t_l Õ<_h_o_p_s>å Display or set the maximum TTL value to be used in hop check sessions. This effectively bounds the radius of the search. _3._3_5._3. _h_o_p _m_a_x_w_a_i_t Õ<_s_e_c_o_n_d_s>å 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._3_5._4. _h_o_p _q_u_e_r_i_e_s Õ<_c_o_u_n_t>å Display or set the number of UDP probes that will be sent at each stage of the trace. The default is 3. _3._3_5._5. _h_o_p _t_r_a_c_e Õ_o_n ] _o_f_få Display or set the flag that controls the display of additional information during a hop check session. _3._3_6. _h_o_s_t_n_a_m_e Õ<_n_a_m_e>å Display or set the local host's name. By convention this should be the same as the host's primary domain name. This string is used only in the greeting messages of the various network servers; note that it does NOT set the system's IP address. If is the same as an (see the AAAAttttttttaaaacccchhhh ccccoooommmmmmmmaaaannnnddddssss chapter), this command will search for a CNAME domain resource record which corresponds to - 20 - the IP address of the . _3._3_7. _h_s Display statistics about the HS high speed HDLC driver (if configured and active). _3._3_8. _i_c_m_p <_s_u_b_c_o_m_m_a_n_d> These commands are used for the Internet Control Message Protocol service. _3._3_8._1. _i_c_m_p _e_c_h_o Õ_o_n ] _o_f_få Display or set the flag controlling the asynchronous display of ICMP Echo Reply packets. This flag must be on for one-shot pings to work (see the ppppiiiinnnngggg command.) _3._3_8._2. _i_c_m_p _s_t_a_t_u_s Display statistics about the Internet Control Message Protocol (ICMP), including the number of ICMP messages of each type sent or received. _3._3_8._3. _i_c_m_p _t_r_a_c_e Õ_o_n ] _o_f_få Display or set the flag controlling the display of ICMP error messages. These informational messages are generated by Internet routers in response to rout- ing, protocol or congestion problems. This option should be turned off before using the hhhhoooopppp cccchhhheeeecccckkkk facility because it relies on ICMP Time Exceeded mes- sages, and the asynchronous display of these messages will be mingled with hhhhoooopppp cccchhhheeeecccckkkk command output. _3._3_9. _i_f_c_o_n_f_i_g Display a list of interfaces, with a short status for each. _3._3_9._1. _i_f_c_o_n_f_i_g Õ<_i_f_a_c_e> ÕÕÕ <_s_u_b_c_o_m_m_a_n_d> <_p_a_r_a_m>å <_s_u_b_c_o_m_m_a_n_d> <_p_a_r_a_m>å .... å When only iface is given, a extended interface status is displayed. Multiple subcommand / parameter can be put on one line. _3._3_9._2. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _b_r_o_a_d_c_a_s_t <_a_d_d_r> Set the broadcast address of interface iface to aaaaddddddddrrrr. AAAAddddddddrrrr can eighter be an ax25_addr or an ether_addr, depending on the interface type, with 1's in the host part of the address. This is related to the nnnneeeettttmmmmaaaasssskkkk sub-command. See also the aaaarrrrpppp command. _3._3_9._3. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _e_n_c_a_p_s_u_l_a_t_i_o_n <_s_l_i_p ] _a_x_2_5 ] _e_t_h_e_r ] _e_n_c_a_p ] _p_p_p> Sets the encapsulation for interface iface to slip / ax25 / ether / encap / ppp. _3._3_9._4. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _f_o_r_w_a_r_d <_i_f_a_c_e-_2> When a forward is defined, all output for interface iiiiffffaaaacccceeee is redirected to the interface directed by iiiiffffaaaacccceeee----2222. To remove the forward, set to . - 21 - _3._3_9._5. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _i_p_a_d_d_r_e_s_s <_a_d_d_r> Set the IP address to aaaaddddddddrrrr for this interface. This might be nessesary 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 iiiiffffccccoooonnnnffffiiiigggg eeeecccc0000 iiiippppaaaaddddddddrrrreeeessssssss 111122229999....111177779999....111122222222....11110000 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 hhhhoooosssstttt---- nnnnaaaammmmeeee and iiiipppp aaaaddddddddrrrreeeessssssss commands. _3._3_9._6. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _l_i_n_k_a_d_d_r_e_s_s <_h_a_r_d_w_a_r_e-_d_e_p_e_n_d_a_n_t> Set the hardware dependant address for this interface. For AX.25 this can be the callsign, for ethernet a new ethernet address. _3._3_9._7. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _m_t_u <_p_a_r_a_m> Set the maximum transfer unit to ppppaaaarrrraaaammmm octeds (bytes). See the SSSSeeeettttttttiiiinnnngggg ............ MMMMTTTTUUUU,,,, MMMMSSSSSSSS aaaannnndddd WWWWiiiinnnnddddoooowwww chapter for more information. _3._3_9._8. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _n_e_t_m_a_s_k <_a_d_d_r_e_s_s> Set the sub-net mask for this interface. The
takes the form of an IP address with 1's in the network and subnet parts of the address, and 0's in the host part of the address. Sample: ifconfig ec0 netmask 0xffffff00 for a class C network (24 bits). This is related to the bbbbrrrrooooaaaaddddccccaaaasssstttt sub- command. See also the rrrroooouuuutttteeee command. _3._3_9._9. _i_f_c_o_n_f_i_g <_i_f_a_c_e> _r_x_b_u_f <_s_i_z_e> Set the receive buffer size. _3._4_0. _i_n_f_o IIIInnnnffffoooo gives information about the version of NNNNoooossss currently running and its buildin configuration. The configuration info is build with defines in config.h in the source distribution. That way it gives automatically correct configuration information. _3._4_1. _i_p <_s_u_b_c_o_m_m_a_n_d> These commands are used for the Internet Protocol service. _3._4_1._1. _i_p _a_d_d_r_e_s_s Õ<_h_o_s_t_i_d>å Display or set the default local IP address. This command must be given before an aaaattttttttaaaacccchhhh command if it is to be used as the default IP address for the interface. _3._4_1._2. _i_p _r_t_i_m_e_r Õ<_s_e_c_o_n_d_s>å Display or set the IP reassembly timeout. The default is 30 seconds. VVVVaaaalllluuuueeee is in seconds. _3._4_1._3. _i_p _s_t_a_t_u_s Display Internet Protocol (IP) statistics, such as total packet counts and error counters of various types. - 22 - _3._4_1._4. _i_p _t_t_l Õ<_h_o_p_s>å Display or set the default time-to-live 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._4_2. _i_s_a_t Õ_o_n ] _o_f_få Display or set the AT flag. Normaly this flag is set when an interface is attached with an interrupt of 8 or higher. This is to signal that the second interrupt controllerc in a AT also needs an 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). Dur- ing I/O initialisation this flag is set if the monitor prom has the standard byte 0xfc at address f000:fffe. _3._4_3. _k_i_c_k Õ<_s_e_s_s_i_o_n>å Kick all sockets associated with a session; if no argument is given, kick the current session. Performs the same function as the aaaaxxxx22225555 kkkkiiiicccckkkk and ttttccccpppp kkkkiiiicccckkkk commands, but is easier to type. _3._4_4. _l_o_g Õ_s_t_o_p ] <_f_i_l_e_n_a_m_e>å Display the current log filename or set the ffffiiiilllleeeennnnaaaammmmeeee for logging server ses- sions. If ssssttttoooopppp 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._4_5. _m_a_i_l This command will start a shell escape command. The mailer used is defined with the DOS environment variable MAILER, wich defaults to BBBBMMMM....EEEEXXXXEEEE. _3._4_6. _m_b_o_x Õ<_s_u_b_c_o_m_m_a_n_d>å Display the status of the mailbox server system (if configured). _3._4_6._1. _m_b_o_x _a_t_t_e_n_d Õ_y_e_s ] _n_oå Displays or sets the attended flag on. This is used to announce in the mail- box if the station mannager is willing to attend his station (chat). _3._4_6._2. _m_b_o_x _k_i_c_k To kick the mailbox back in activity after retry timeouts. _3._4_6._3. _m_b_o_x _m_a_x_m_s_g To display or set the maximum number of messages per area when an notesfile is shown to a user. This reserves lots of memory for every mailbox session. _3._4_6._4. _m_b_o_x _m_o_t_d Display ot set the mailbox welcoming Message Of The Day. - 23 - _3._4_6._5. _m_b_o_x _s_t_a_t_u_s An alias for just entering mbox on the prompt line. _3._4_6._6. _m_b_o_x _t_i_m_e_r Õ<_s_e_c_o_n_d_s>å Display the current interval and time remainig or set the mailbox forwarding timer. _3._4_6._7. _m_b_o_x _t_i_p_t_i_m_e_o_u_t Displays or sets the timeout value for tip connection timeout. After ttttiiiimmmmeeeeoooouuuutttt seconds of no activity the connection is closed. _3._4_6._8. _m_b_o_x _t_r_a_c_e Õ_y_e_s ] _n_oå Displays or sets mailbox forward trace code flag. The trace is very minimal but every one working on mailbox/forward code now has a common flag MMMMttttrrrraaaacccceeee. _3._4_7. _m_e_m_o_r_y <_s_u_b_c_o_m_m_a_n_d> These commands are used for memory allocation. _3._4_7._1. _m_e_m_o_r_y _c_i_r_c_u_l_a_r Õ_y_e_s ] _n_oå Experimental flag for enabling or disabling reset of a search pointer. _3._4_7._2. _m_e_m_o_r_y _e_f_f_i_c_i_e_n_t Õ_y_e_s ] _n_oå 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. Roumers state that you should include this command as the first line in aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss. _3._4_7._3. _m_e_m_o_r_y _f_r_e_e_l_i_s_t Display the storage allocator free list. Each entry consists of a starting address, in hex, and a size, in decimal bytes. _3._4_7._4. _m_e_m_o_r_y _g_a_r_b_a_g_e Start a garbage collection. THIS DOES NOT WORK AS ADVERTIZED..... _3._4_7._5. _m_e_m_o_r_y _i_b_u_f_s_i_z_e Õ<_s_i_z_e>å 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 omly 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._4_7._6. _m_e_m_o_r_y _n_i_b_u_f_s Õ<_n_u_m_b_e_r>å Display or set the number of interrupt buffer pool buffers. If the number of buffers is set, the statistics in the mmmmeeeemmmmoooorrrryyyy ssssttttaaaattttuuuussss display are reset for number of interrupt buffer fails. The minimum available value is set to the requested number of buffers. A roule 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. - 24 - _3._4_7._7. _m_e_m_o_r_y _s_i_z_e_s Display a histogram of storage allocator request sizes. Each histogram bin is a binary order of magnitude (i.e., a factor of 2). _3._4_7._8. _m_e_m_o_r_y _s_t_a_t_u_s 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 sssshhhheeeellllllll 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. 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 fixed-size 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 mmmmeeeemmmmoooorrrryyyy nnnniiiibbbbuuuuffffssss <<<>>> command is given. _3._4_7._9. _m_e_m_o_r_y _t_h_r_e_s_h Õ<_s_i_z_e>å Displays or sets the memory threshold size in bytes. If memory gets below this value , no more new sessions are started or accepted. _3._4_8. _m_k_d_i_r <_d_i_r_n_a_m_e> Create a sub-directory in the current working directory. _3._4_9. _m_o_d_e <_i_f_a_c_e> Õ_v_c ] _d_a_t_a_g_r_a_må Control the default transmission mode on the specified AX.25 interface. In ddddaaaattttaaaaggggrrrraaaammmm mode, IP packets are encapsulated in AX.25 UI frames and transmitted without any other link level mechanisms, such as connections or acknowledge- ments. In vvvvcccc (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 type-of-service (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, IP-level 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 - 25 - still larger than the AX.25 ppppaaaacccclllleeeennnn 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 when- ever possible because of decreased overhead (the IP header isn't repeated in each fragment) and increased robustness (a lost fragment is immediately retransmitted by the link layer). _3._5_0. _m_o_r_e <_f_i_l_e> Õ<_f_i_l_e> ...å 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 mmmmoooorrrreeee command creates a session that you can suspend and resume just like any other session. _3._5_1. _m_o_t_d Õ<"_m_e_s_s_a_g_e _o_f _t_h_e _d_a_y">å Display the current message or sets the welcome message to the defined string. _3._5_2. _m_u_l_t_i_t_a_s_k Õ_o_n ] _o_f_få Displays or sets the multi task flag. If set NNNNoooossss 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 valuable time taken away this way and weard results can happen. Clearing the flag stops all activiity fron NNNNoooossss when put in the background. _3._5_3. _n_e_t_r_o_m <_s_u_b_c_o_m_m_a_n_d> _3._5_3._1. _n_e_t_r_o_m _a_c_k_t_i_m_e Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å Displays or sets the ack delay timer, similary to ax25 t2. _3._5_3._2. _n_e_t_r_o_m _b_c_n_o_d_e_s <_i_f_a_c_e> Initiates an immediate broadcast of nodelist on iiiiffffaaaacccceeee. _3._5_3._3. _n_e_t_r_o_m _c_o_n_n_e_c_t <_n_o_d_e> Start a connection to nnnnooooddddeeee. _3._5_3._4. _n_e_t_r_o_m _c_h_o_k_e_t_i_m_e Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å Display or set the time breaking a send choke. Choke is the term netrom uses for flow control conditions. _3._5_3._5. _n_e_t_r_o_m _d_e_r_a_t_e Õ_o_n ] _o_f_få Display or set automatic derating of netrom routes on link failure. _3._5_3._6. _n_e_t_r_o_m _i_n_t_e_r_f_a_c_e <_i_f_a_c_e> <_a_l_i_a_s> <_q_u_a_l_i_t_y> Define a netrom interface iiiiffffaaaacccceeee having a alias of aaaalllliiiiaaaassss. The quality can be between 1 and 255. For compatibility with other implementations set this to 192 normaly. A check is made that the interface is of type CL_AX25, meaning NETROM capable media. - 26 - _3._5_3._7. _n_e_t_r_o_m _i_r_t_t Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å Display or set the initial round trip time. _3._5_3._8. _n_e_t_r_o_m _k_i_c_k <&_n_r_c_b> Give the control block a kick to get activity going again. _3._5_3._9. _n_e_t_r_o_m _l_o_a_d Õ<_f_i_l_e_n_a_m_e>å When fully implemented reloads a saved netrom node list to continue from where you left when you saved the list. All entry's read are time decremented as if normal time just went on. If it took some time (oooobbbbssssoooottttiiiimmmmeeeerrrr * x) your list could be empty as they all timed out. _3._5_3._1_0. _n_e_t_r_o_m _m_i_n_q_u_a_l_i_t_y Õ<_v_a_l_u_e>å Display or set the minimum quality for recognizing a node entry. Entry's below this value are not considered valuable for usage. _3._5_3._1_1. _n_e_t_r_o_m _n_o_d_e_f_i_l_t_e_r <_s_u_b_c_o_m_m_a_n_d> Node filtering. _3._5_3._1_1._1. _n_e_t_r_o_m _n_o_d_e_f_i_l_t_e_r _a_d_d <_n_e_i_g_h_b_o_r> <_i_f_a_c_e> Allow nnnneeeeiiiigggghhhhbbbboooorrrr to give us node updates. _3._5_3._1_1._2. _n_e_t_r_o_m _n_o_d_e_f_i_l_t_e_r _d_r_o_p <_n_e_i_g_h_b_o_r> <_i_f_a_c_e> Disallow nnnneeeeiiiigggghhhhbbbboooorrrr to give us node updates. _3._5_3._1_1._3. _n_e_t_r_o_m _n_o_d_e_f_i_l_t_e_r _m_o_d_e Õ_n_o_n_e ] _a_c_c_e_p_t ] _r_e_j_e_c_tå Display or set the initial filter schema. NNNNoooonnnneeee accepts all. AAAAcccccccceeeepppptttt,accepts only from nodes defined in nnnneeeettttrrrroooommmm nnnnooooddddeeeeffffiiiilllltttteeeerrrr aaaadddddddd lists. RRRReeeejjjjeeeecccctttt,no accepts from nodes defined in nnnneeeettttrrrroooommmm nnnnooooddddeeeeffffiiiilllltttteeeerrrr aaaadddddddd lists. _3._5_3._1_2. _n_e_t_r_o_m _n_o_d_e_t_i_m_e_r Õ<_s_e_c_o_n_d_s>å Display or set the interval our node list is transmitted. _3._5_3._1_3. _n_e_t_r_o_m _o_b_s_o_t_i_m_e_r Õ<_s_e_c_o_n_d_s>å Display or set the time a node quality gets decremented. _3._5_3._1_4. _n_e_t_r_o_m _p_r_o_m_i_s_c_i_o_u_s Õ_o_f_f ] _o_nå Enables nodes with a higher quality than defined with minquality. If on, all nodes are received, independent od nodefilter. _3._5_3._1_5. _n_e_t_r_o_m _q_l_i_m_i_t Õ<_b_y_t_e_s>å Display or set the maximum queue limit for chat. Similar to ax25 window. _3._5_3._1_6. _n_e_t_r_o_m _r_e_s_e_t <&_n_r_c_b> Remove the control block. You can find the control block with ssssoooocccckkkkeeeetttt. - 27 - _3._5_3._1_7. _n_e_t_r_o_m _r_e_t_r_i_e_s Õ<_v_a_l_u_e>å Display or set the maximum number of retries on connect, disconnect or data. _3._5_3._1_8. _n_e_t_r_o_m _r_o_u_t_e <_s_u_b_c_o_m_m_a_n_d> Netrom routing commands. _3._5_3._1_8._1. _n_e_t_r_o_m _r_o_u_t_e _a_d_d <_a_l_i_a_s> <_d_e_s_t_i_n_a_t_i_o_n> <_i_f_a_c_e> <_q_u_a_l_i_t_y> <_n_e_i_g_h_- _b_o_r> Add a netrom route. _3._5_3._1_8._2. _n_e_t_r_o_m _r_o_u_t_e _d_r_o_p <_d_e_s_t_i_n_a_t_i_o_n> <_n_e_i_g_h_b_o_r> <_i_f_a_c_e> Delete a netrom route. _3._5_3._1_8._3. _n_e_t_r_o_m _r_o_u_t_e _i_n_f_o <_d_e_s_t_i_n_a_t_i_o_n> Display the route it would take to get to ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnn. _3._5_3._1_9. _n_e_t_r_o_m _s_t_a_t_u_s Displays all netrom connections. _3._5_3._2_0. _n_e_t_r_o_m _s_a_v_e Õ<_f_i_l_e_n_a_m_e>å When fully implemented, saves the current netrom node list in memory to /netrom.sav or filename, if given. _3._5_3._2_1. _n_e_t_r_o_m _t_i_m_e_r_t_y_p_e Õ_e_x_p_o_n_e_n_t_i_a_l ] _l_i_n_e_a_rå Displays or sets the type of backoff. _3._5_3._2_2. _n_e_t_r_o_m _t_t_l Õ<_h_o_p_s>å Display or set the maximum number of hops a frame might hop before discarded, if it did not reach its destination before. _3._5_3._2_3. _n_e_t_r_o_m _u_s_e_r Õ<_u_s_e_r_n_a_m_e>å Display or set our netrom user name. _3._5_3._2_4. _n_e_t_r_o_m _v_e_r_b_o_s_e Õ_o_f_f ] _o_nå Display or set the verbose flag. If set all nodes known to us are transmitted each time the nnnnooooddddeeeettttiiiimmmmeeeerrrr expires. If off, only your stations node ident is send out. _3._5_3._2_5. _n_e_t_r_o_m _w_i_n_d_o_w Õ<_f_r_a_m_e_s>å Display or set the size of the sliding window. This is the largest send and receive window we might negotiate. _3._5_4. _n_n_t_p <_s_u_b_c_o_m_m_a_n_d> Network news transfer protocol has the following subcommands: - 28 - _3._5_4._1. _n_n_t_p _a_d_d_s_e_r_v_e_r <_n_n_t_p_s_e_r_v_e_r> <_s_e_c_o_n_d_s> Õ<_r_a_n_g_e>å Õ<_g_r_o_u_p_s>å Add a nntp news server to quiry every sssseeeeccccoooonnnnddddssss interval for new articles specified by the nntp groups command. Range can be a limit in time to query like _n_n_t_p _a_d_d_s_e_r_v_e_r _s_o_m_e_s_e_r_v_e_r _6_0_0 _2_2:_0_0-_2_3:_0_0, to only query the server between 10 and 11pm. Multiple nntp add can be used co concatenate groups (up to 512 bytes) The interval sssseeeeccccoooonnnnddddssss can be set to 0, so that normaly the nntp client does not query the server regulary but an _n_n_t_p _k_i_c_k _n_n_t_p_s_e_r_v_e_r can be used to start a session. _3._5_4._2. _n_n_t_p _d_i_r_e_c_t_o_r_y <_d_i_r_e_c_t_o_r_y> Show or set default directory for spooling news. This is not the control directory but the (alternate) place to spool articles to. _3._5_4._3. _n_n_t_p _d_r_o_p_s_e_r_v_e_r <_n_n_t_p_s_e_r_v_e_r> _3._5_4._4. _n_n_t_p _g_r_o_u_p_s <_g_r_o_u_p> Õ<_g_r_o_u_p> ...å Set or display currently set newsgroups. _3._5_4._5. _n_n_t_p _k_i_c_k <_n_n_t_p_s_e_r_v_e_r> Kick the client to get in touch with the named server. _3._5_4._6. _n_n_t_p _l_i_s_t_s_e_r_v_e_r_s Lists the curently defined servers. _3._5_5. _n_n_t_p _q_u_i_e_t Õ_y_e_s ] _n_oå Shows or sets the flag controlling the display of newly received nntp news messages. The smpt quiet fag 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._5_6. _n_n_t_p _t_r_a_c_e <_l_e_v_e_l> 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._5_7. _n_r_s_t_a_t Displays the netrom interface statistics. _3._5_8. _p_a_r_a_m <_i_f_a_c_e> Õ<_p_a_r_a_m> ...å 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, ppppaaaarrrraaaammmm aaaaxxxx0000 1111 222255555555 will set the keyup timer (type field = 1) on the KISS TNC configured as ax0 to 2.55 seconds (255 x .01 sec). On a SLIP inter- face, the ppppaaaarrrraaaammmm command allows the baud rate to be read (without arguments) or set. The implementation of this command for the various interface drivers is incomplete and subject to change. - 29 - _3._5_9. _p_i_n_g <_h_o_s_t_i_d> Õ<_l_e_n_g_t_h> Õ<_m_i_l_l_i_s_e_c_o_n_d_s> Õ<_i_n_c_f_l_a_g>ååå 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 lllleeeennnnggggtttthhhh argument is given, the appropriate number of data bytes (consisting of hex 55) are added to the ping packets. If mmmmiiiilllllllliiiisssseeeeccccoooonnnnddddssss is specified, pings will be repeated indefinitely at the specified number of milliseconds; otherwise a single, "one shot" ping is done. Responses to one-shot 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 iiiinnnnccccffffllllaaaagggg 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._6_0. _p_o_p <_s_u_b_c_o_m_m_a_n_d> The ppppoooopppp client provides an automatic interface to the ppppoooopppp server that is totaly transparen 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, appart from registring with the server station manager for setting up the user data. (see _p_o_p _u_s_e_r_- _d_a_t_a command. To read more about _p_o_p, read rfc937. The following paragraph describe the ppppoooopppp subcommands. _3._6_0._1. _p_o_p _m_a_i_l_b_o_x Õ<_n_a_m_e>å Show the defined name or sets the name to nnnnaaaammmmeeee for POP mail queries to the mailhost. The server keeps the mail in the mailbox nnnnaaaammmmeeee located in /spool/mail/nnnnaaaammmmeeee.txt. This is a mandatory parameter. _3._6_0._2. _p_o_p _m_a_i_l_h_o_s_t Õ<_i_p_a_d_d_r>å Show the currently defined host address for a ppppoooopppp server or sets the IP address to the system named iiiippppaaaaddddddddrrrr for POP connections. This is a mandatory parameter. _3._6_0._3. _p_o_p _k_i_c_k Start a POP connection now. (one shot connection) _3._6_0._4. _p_o_p _t_i_m_e_r Õ<_s_e_c_o_n_d_s>å Show the current setting and time remaining untill next server enquiry or when sssseeeeccccoooonnnnddddssss is given, defines the interval that a ppppoooopppp connection is started every to retrieve mail from the server system. When the timer is not set the client is only started with a _p_o_p _k_i_c_k command. _3._6_0._5. _p_o_p _u_s_e_r_d_a_t_a <_n_a_m_e> <_p_a_s_s_w_o_r_d> 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. (ultimate in security, if you realy want to see the password look in the "ether"). Remember: the name and password should also be defined at the server site in the _p_o_p_u_s_e_r_s file. _3._6_1. _p_p_p <_s_u_b_c_o_m_m_a_n_d_s> These commands are used for Point to Point Protocol interfaces. - 30 - 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._6_1._1. _p_p_p <_i_f_a_c_e> Display the status of the PPP interface. _3._6_1._2. _p_p_p <_i_f_a_c_e> _l_c_p ... These commands are used for the LCP ÕLink Control Protocolå configuration. _3._6_1._2._1. _p_p_p <_i_f_a_c_e> _l_c_p _c_l_o_s_e Shutdown the PPP interface. _3._6_1._2._2. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l ... 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 aaaalllllllloooowwww 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._6_1._2._2._1. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _a_c_c_m Õ <_b_i_t_m_a_p> ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the Async Control Character Map. The default is 0xffffffff. _3._6_1._2._2._2. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _a_u_t_h_e_n_t_i_c_a_t_e Õ _p_a_p ] _n_o_n_e ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the authentication protocol. The default is nnnnoooonnnneeee. _3._6_1._2._2._3. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _c_o_m_p_r_e_s_s _a_d_d_r_e_s_s/_c_o_n_t_r_o_l Õ _o_n ] _o_f_f ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the option to compress the address and control fields of the PPP HLDC-like header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. _3._6_1._2._2._4. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _c_o_m_p_r_e_s_s _p_r_o_t_o_c_o_l Õ _o_n ] _o_f_f ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the option to compress the protocol field of the PPP HLDC-like - 31 - header. This is generally desirable for slow asynchronous links, and undesirable for fast or synchronous links. The default is off. _3._6_1._2._2._5. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _m_a_g_i_c Õ _o_n ] _o_f_f ] <_v_a_l_u_e> ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the initial Magic Number. The default is off (zero). _3._6_1._2._2._6. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _m_r_u Õ <_s_i_z_e> ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the Maximum Receive Unit. The default is 1500. _3._6_1._2._2._7. _p_p_p <_i_f_a_c_e> _l_c_p _l_o_c_a_l _d_e_f_a_u_l_t Reset the options to their default values. _3._6_1._2._3. _p_p_p <_i_f_a_c_e> _l_c_p _o_p_e_n _a_c_t_i_v_e ] _p_a_s_s_i_v_e Wait for the physical layer to come up. If aaaaccccttttiiiivvvveeee, initiate configuration negotiation. If ppppaaaassssssssiiiivvvveeee, wait for configuration negotiation from the remote. _3._6_1._2._4. _p_p_p <_i_f_a_c_e> _l_c_p _r_e_m_o_t_e ... 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 remote's configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the aaaalllllllloooowwww parameter will permit the remote to specify that option in its request. By default, all options are allowed. _3._6_1._2._5. _p_p_p <_i_f_a_c_e> _l_c_p _t_i_m_e_o_u_t Õ<_s_e_c_o_n_d_s>å Display or set the interval to wait between configuration or termination attempts. The default is 3 seconds. _3._6_1._2._6. _p_p_p <_i_f_a_c_e> _l_c_p _t_r_y ... These commands are used for the various counters. _3._6_1._2._6._1. _p_p_p <_i_f_a_c_e> _l_c_p _t_r_y _c_o_n_f_i_g_u_r_e Õ<_c_o_u_n_t>å Display or set the number of configuration requests sent. The default is 10. _3._6_1._2._6._2. _p_p_p <_i_f_a_c_e> _l_c_p _t_r_y _f_a_i_l_u_r_e Õ<_c_o_u_n_t>å Display or set the number of bad configuration requests allowed from the remote. The default is 5. _3._6_1._2._6._3. _p_p_p <_i_f_a_c_e> _l_c_p _t_r_y _t_e_r_m_i_n_a_t_e Õ<_c_o_u_n_t>å Display or set the number of termination requests sent before shutdown. The default is 2. _3._6_1._3. _p_p_p <_i_f_a_c_e> _i_p_c_p ... These commands are used for the IPCP ÕInternet Protocol Control Protocolå configuration. The cccclllloooosssseeee,,,, ooooppppeeeennnn,,,, ttttiiiimmmmeeeeoooouuuutttt and ttttrrrryyyy sub-commands are identical to the LCP (described above). - 32 - _3._6_1._3._1. _p_p_p <_i_f_a_c_e> _i_p_c_p _l_o_c_a_l ... 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 aaaalllllllloooowwww 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._6_1._3._1._1. _p_p_p <_i_f_a_c_e> _i_p_c_p _l_o_c_a_l _a_d_d_r_e_s_s Õ <_h_o_s_t_i_d> ] _a_l_l_o_w Õ_o_n ] _o_f_få å 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._6_1._3._1._2. _p_p_p <_i_f_a_c_e> _i_p_c_p _l_o_c_a_l _c_o_m_p_r_e_s_s Õ _t_c_p <_s_l_o_t_s> Õ<_f_l_a_g>å ] _n_o_n_e ] _a_l_l_o_w Õ_o_n ] _o_f_få å Display or set the compression protocol. The default is nnnnoooonnnneeee. The ttttccccpppp 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 ttttccccpppp is 0 (don't compress the slot number) or 1 (OK to compress the slot number). KA9Q can handle compressed slot numbers, so the default is 1. _3._6_1._3._2. _p_p_p <_i_f_a_c_e> _i_p_c_p _r_e_m_o_t_e ... 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 remote's configuration requests. If not specified, that option will be accepted if it is allowed. For each of these options, the aaaalllllllloooowwww parameter will permit the remote to specify that option in its request. By default, all options are allowed. _3._6_1._4. _p_p_p <_i_f_a_c_e> _p_a_p ... These commands are used for the PAP ÕPassword Authentication Protocolå confi- guration. The ttttiiiimmmmeeeeoooouuuutttt and ttttrrrryyyy sub-commands are identical to the LCP (described above). However, the terminate counter is unused. _3._6_1._4._1. _p_p_p <_i_f_a_c_e> _p_a_p _u_s_e_r Õ <_u_s_e_r_n_a_m_e> Õ<_p_a_s_s_w_o_r_d>å å Display or set the username (the password may be set, but not displayed). When the username is specified, but no password is supplied, the ffffttttppppuuuusssseeeerrrrssss 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._6_1._5. _p_p_p <_i_f_a_c_e> _t_r_a_c_e Õ<_f_l_a_g_s>å 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 - 33 - files where they are defined. _3._6_2. _p_s Display all current processes in the system. The fields are as follows: PPPPIIIIDDDD - Process ID (the address of the process descriptor). SSSSPPPP - The current value of the process stack pointer. ssssttttkkkkssssiiiizzzzeeee - The size of the stack allocated to the process. mmmmaaaaxxxxssssttttkkkk - The apparent peak stack utilization of this process. This is done in a somewhat heuristic fashion, so the numbers should be treated as approxi- mate. If this number reaches or exceeds the stksize figure, the system is almost certain to crash; the _n_o_s._e_x_e program should be recompiled to give the process a larger allocation when it is started. eeeevvvveeeennnntttt - The event this task is waiting for, if it is not runnable. ffffllll - Process status flags. There are three: I (Interrupts enabled), W (Wait- ing for event) and S (suspended). The I flag is set whenever a task has exe- cuted a pwait() call (wait for event) without first disabling hardware inter- rupts. 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 eeeevvvveeeennnntttt column will be non-blank. Note that although there may be several runnable processes at any time (shown in the ppppssss 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 ppppssss command is always the one running when this display is generated.) _3._6_3. _p_w_d Õ<_d_i_r_n_a_m_e>å An alias for the ccccdddd command. _3._6_4. _r_a_r_p <_s_u_b_c_o_m_m_a_n_d> This uses the reverse address resolution protocol. _3._6_4._1. _r_a_r_p _q_u_e_r_y <_i_f_a_c_e> <_c_a_l_l_s_i_g_n> This starts a reverse resolution request via iiiiffffaaaacccceeee to find the IP address for ccccaaaallllllllssssiiiiggggnnnn. It counts down for 10 seconds before giving up listening for an answer. _3._6_5. _r_e_c_o_r_d Õ_o_f_f ] <_f_i_l_e_n_a_m_e>å Append to ffffiiiilllleeeennnnaaaammmmeeee 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 rrrreeeeccccoooorrrrdddd ooooffffffff stops recording and closes the file. _3._6_6. _r_e_m_o_t_e Õ-_p <_p_o_r_t>å Õ-_k <_k_e_y>å Õ-_a <_k_i_c_k_a_d_d_r>å <_h_o_s_t_i_d> _e_x_i_t ] _r_e_s_e_t ] _k_i_c_k Send a UDP packet to the specified host commanding it to exit the NNNNoooossss pro- gram, reset the processor, or force a retransmission on TCP connections. For this command to be accepted, the remote system must be running the rrrreeeemmmmooootttteeee server and the port number specified in the rrrreeeemmmmooootttteeee command must match the port number given when the server was started on the remote system. If the - 34 - port numbers do not match, or if the remote server is not running on the tar- get system, the command packet is ignored. Even if the command is accepted there is no acknowledgement. The kkkkiiiicccckkkk 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, con- nections to the specified host are kicked instead. No key is required for the kick subcommand. The eeeexxxxiiiitttt and rrrreeeesssseeeetttt subcommands are mainly useful for restarting the nos pro- gram on a remote unattended system after the configuration file has been updated. The remote system should invoke the NNNNoooossss program automatically upon booting, preferably in an infinite loop. For example, under MS-DOS the boot disk should contain the following in aaaauuuuttttooooeeeexxxxeeeecccc....bbbbaaaatttt: :loop nos goto :loop _3._6_6._1. _r_e_m_o_t_e -_s <_k_e_y> The exit and reset subcommands of remote require a password. The password is set on a given system with the ----ssss option, and it is specified in a command to a remote system with the ----kkkk option. If no password is set with the ----ssss option, then the exit and reset subcommands are disabled. Note that rrrreeeemmmmooootttteeee is an experimental feature in NOS; it is _n_o_t yet supported by any other TCP/IP implementation. _3._6_7. _r_e_n_a_m_e <_o_l_d_f_i_l_e_n_a_m_e> <_n_e_w_f_i_l_e_n_a_m_e> Rename oooollllddddffffiiiilllleeeennnnaaaammmmeeee to nnnneeeewwwwffffiiiilllleeeennnnaaaammmmeeee. _3._6_8. _r_e_s_e_t Õ<_s_e_s_s_i_o_n>å Reset the specified session; if no argument is given, reset the current ses- sion. 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 any- thing 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 half-open connection after a remote system has crashed.) _3._6_9. _r_i_p <_s_u_b_c_o_m_m_a_n_d> These commands are used for the RIP service. _3._6_9._1. _r_i_p _a_c_c_e_p_t <_g_a_t_e_w_a_y> Remove the specified gateway from the RIP filter table, allowing future broadcasts from that gateway to be accepted. _3._6_9._2. _r_i_p _a_d_d <_h_o_s_t_i_d> <_s_e_c_o_n_d_s> Õ<_f_l_a_g_s>å Add an entry to the RIP broadcast table. The IP routing table will be sent to hhhhoooossssttttiiiidddd every interval of sssseeeeccccoooonnnnddddssss. If ffffllllaaaaggggssss 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 - 35 - not specified, then all routing table entries except those marked "private" will be sent in each update. (Private entries are never sent in RIP pack- ets). 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 link-level broadcast address in the link-level 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 cluster-addressed networks may require special attention. However, an aaaarrrrpppp aaaadddddddd 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 qst-0 for an AX25 packet radio channel. _3._6_9._3. _r_i_p _d_r_o_p <_d_e_s_t> Remove an entry from the RIP broadcast table. _3._6_9._4. _r_i_p _m_e_r_g_e Õ_o_n ] _o_f_få 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 ethernet0 128.96.1.2 1 0 0 0 1.2.3 24 ethernet0 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._6_9._5. _r_i_p _r_e_f_u_s_e <_g_a_t_e_w_a_y> 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 rrrriiiipppp aaaacccccccceeeepppptttt command. - 36 - _3._6_9._6. _r_i_p _r_e_q_u_e_s_t <_g_a_t_e_w_a_y> Send a RIP Request packet to the specified gateway, causing it to reply with a RIP Response packet containing its routing table. _3._6_9._7. _r_i_p _s_t_a_t_u_s 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._6_9._8. _r_i_p _t_r_a_c_e Õ_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._7_0. _r_l_o_g_i_n _h_o_s_t Sets up an rlogin session via port 511 to an *NIX compatible station. Defaut terminal is a vt100 (as defined with the fkeys) compatible terminal. _3._7_1. _r_m_d_i_r <_d_i_r_n_a_m_e> Remove a sub-directory from the current working directory. _3._7_2. _r_o_u_t_e With no arguments, rrrroooouuuutttteeee displays the IP routing table. _3._7_2._1. _r_o_u_t_e _a_d_d <_d_e_s_t__h_o_s_t_i_d>Õ/_b_i_t_så ] _d_e_f_a_u_l_t <_i_f_a_c_e> Õ<_g_a_t_e_w_a_y__h_o_s_t_i_d> ] _d_i_r_e_c_t Õ<_m_e_t_r_i_c>åå 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 gateway's hostid should also be specified. (If the interface is a point-to-point link, then ggggaaaatttteeeewwwwaaaayyyy____hhhhoooossssttttiiiidddd may be omitted even if the target is non-local because this field is only used to determine the gateway's link level address, if any. If the destination is directly reachable, ggggaaaatttteeeewwwwaaaayyyy____hhhhoooossssttttiiiidddd is also unnecessary since the destination address is used to determine the interface link address). If rrrrssssppppffff is used and the system is a switch / router to multiple routes the keyword ddddiiiirrrreeeecccctttt can be used i.s.o a ggggaaaatttteeeewwwwaaaayyyy____hhhhoooossssttttiiiidddd to set the metric higher as the default 1. This way routes advertized by other rrrrssssppppffff stations can be cheaper and get selected. If ddddiiiirrrreeeecccctttt is given but mmmmeeeettttrrrriiiicccc not, an new algoritm is used to set the metric dependent on the number of subnet mask bits. The optional ////bbbbiiiittttssss suffix to the destination host id specifies how many lead- ing bits in the host id are to be considered significant in the routing com- parisons. 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 - 37 - 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 "don't-cares". When an IP address to be routed matches more than one entry in the routing table, the entry with largest bbbbiiiittttssss 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 ddddeeeeffffaaaauuuulllltttt is used to route datagrams to addresses not matched by any other entries in the routing table; it is equivalent to speci- fying a ////bbbbiiiittttssss 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 time-to-live (TTL) fields expire. (Routing loops for specific addresses can also be created, but this is less likely to occur acciden- tally). There are two build in interfaces: llllooooooooppppbbbbaaaacccckkkk and eeeennnnccccaaaapppp. LLLLooooooooppppbbbbaaaacccckkkk is for internal purposes only. The eeeennnnccccaaaapppp is an IP encapsulator interface. This is used to encapsulate a complete IP datagram into a IP datagram so that it gets "piggy-backed". 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 gateway for other stations. There was some guessing done in picking an IP address when encap is used localy. The guessing takes 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 psuedo encap interface to what you want it to be. Some extra notes on encap: I have 3 systems on an ethernet with network 129.179.122.128/25. In the office I have another net 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 _r_o_u_t_e _a_d_d _4_4._0._0._0/_8 _e_n_c_a_p _4_4._1_3_7._1._1 _9_9. On a next system on my local ethernet i have 44.137.0.1 / 129.179.122.129. To get from that sys- tem to say 44.62.0.1 i have to add an encap to my local gateway with _r_o_u_t_e _a_d_d _4_4._0._0._0/_8 _e_n_c_a_p _1_2_9._1_7_9._1_2_2._1_3_0. A _r_o_u_t_e _a_d_d _d_e_f_a_u_l_t _e_c_0 _1_2_9._1_7_9._1_2_2._1_3_0 gives me access to the Internet. Otherwise it will lookup 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 rrrroooouuuutttteeee command: - 38 - # Route datagrams to IP address 44.0.0.3 to SLIP line #0. # No gateway is needed because SLIP is point-to 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 ec0 44.0.0.1 # The local Ethernet has an ARPA Class-C address assignment; # route all IP addresses beginning with 192.4.8 to it route add 192.4.8/24 ec0 # 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._7_2._2. _r_o_u_t_e _a_d_d_p_r_i_v_a_t_e <_d_e_s_t _h_o_s_t_i_d>Õ/_b_i_t_så ] _d_e_f_a_u_l_t <_i_f_a_c_e> Õ<_g_a_t_e_w_a_y _h_o_s_t_i_d> Õ<_m_e_t_r_i_c>åå This command is identical to rrrroooouuuutttteeee aaaadddddddd except that it also marks the new entry as private; it will never be included in outgoing RIP updates. _3._7_2._3. _r_o_u_t_e _d_r_o_p <_d_e_s_t _h_o_s_t_i_d> rrrroooouuuutttteeee ddddrrrroooopppp 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._7_3. _r_s_p_f <_s_u_b_c_m_d> 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, NNNNoooossss will figure out if the link is bi-directional by pinging the other station. The protocol is described in the RSPF 2.1 specification. _3._7_3._1. _r_s_p_f _i_n_t_e_r_f_a_c_e <_i_n_t_e_r_f_a_c_e> <_q_u_a_l_i_t_y> <_h_o_r_i_z_o_n> 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 normaly set the quality to 8. The normaly used value for hor- izon is 32. _3._7_3._2. _r_s_p_f _m_o_d_e Õ_v_c ] _d_a_t_a_g_r_a_m ] _n_o_n_eå Without arguments, displays the preferred mode for RSPF. Modes are VC (Vir- tual Cirquit) and Datagram. none resets the preferred mode. _3._7_3._3. _r_s_p_f _r_r_h_t_i_m_e_r Õ_s_e_c_o_n_d_så Without arguments, displays the rrh timer value. _3._7_3._4. _r_s_p_f _s_u_s_p_e_c_t_t_i_m_e_r Õ_s_e_c_o_n_d_så Without arguments, displays the suspect timer value. - 39 - _3._7_3._5. _r_s_p_f _t_i_m_e_r Õ_s_e_c_o_n_d_så Without arguments, displays the update timer value. To activate RSPF, do the following. Set the broadcast address for the desti- nation 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 adresses. Else the routing entries will be overwriten 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._7_4. _s_c_c_s_t_a_t Display the defined PE1CHL scc driver statistics. _3._7_5. _s_e_s_s_i_o_n ÕÕ<_s_e_s_s_i_o_n>å Õ_f_l_o_w_m_o_d_e Õ_o_n ] _o_f_fååå 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 con- trol block. An asterisk (*) is shown next to the current that session. Entering a session number as an argument to the sssseeeessssssssiiiioooonnnn command will put you in _c_o_n_v_e_r_s_e 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 comming 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. _3._7_6. _s_h_e_l_l Suspends NNNNoooossss and executes a sub-shell ("command processor" under MS-DOS). When the sub-shell exits, NNNNoooossss resumes (under MS-DOS, enter the eeeexxxxiiiitttt command). Note: see the CCCCOOOOMMMMSSSSPPPPEEEECCCC environement variable. Background activity (FTP servers, etc) is also suspended while the subshell executes. Note that this will fail unless there is sufficient unused memory for the sub-shell and whatever command the user tries to run. _3._7_7. _s_m_t_p <_s_u_b_c_o_m_m_a_n_d> These commands are used for the Simple Message Transport Protocol service (that is, mail). - 40 - _3._7_7._1. _s_m_t_p _b_a_t_c_h Õ_y_e_s ] _n_oå 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. NNNNoooossss can handle multiple. If you are not hindered by an old smpt server, setting batch reduces bandwith. _3._7_7._2. _s_m_t_p _g_a_t_e_w_a_y Õ<_h_o_s_t_i_d>å Displays or sets the host to be used as a "smart" mail relay. Any mail sent to a host not in the host table will instead be sent to the gateway for for- warding. _3._7_7._3. _s_m_t_p _k_i_c_k 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 NNNNoooossss is running. _3._7_7._4. _s_m_t_p _k_i_l_l Õ<_j_o_b_i_d>å Kill the job and delete the message. _3._7_7._5. _s_m_t_p _l_i_s_t 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._7_7._6. _s_m_t_p _m_a_x_c_l_i_e_n_t_s Õ<_c_o_u_n_t>å 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._7_7._7. _s_m_t_p _m_o_d_e Õ_q_u_e_u_e ] _r_o_u_t_eå Sets the smtp delivery mode. If queue, all messages are left in /spool/rqueue for external forwarding and handling. If route, messages are handled, if for local, appended to a mailbox or if remote, they are forwarded. _3._7_7._8. _s_m_t_p _m_x_l_o_o_k_u_p Õ_y_e_s ] _n_oå 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._7_7._9. _s_m_t_p _q_u_i_e_t Õ_y_e_s ] _n_oå Enables or disables the message that new mail arrived at this system. _3._7_7._1_0. _s_m_t_p _t_i_m_e_r Õ<_s_e_c_o_n_d_s>å Displays or sets the interval, between scans of the outbound mail queue. For example, ssssmmmmttttpppp ttttiiiimmmmeeeerrrr 666600000000 will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds, subject of course to the ssssmmmmttttpppp mmmmaaaaxxxxcccclllliiiieeeennnnttttssss 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 floppy disk drive. - 41 - _3._7_7._1_1. _s_m_t_p _t_r_a_c_e Õ<_v_a_l_u_e>å Displays or sets the trace flag in the SMTP client, allowing you to watch SMTP's conversations as it delivers mail. Zero (the default) disables trac- ing. _3._7_8. _s_o_c_k_e_t ÕÕ<_s_o_c_k_e_t #>å Õ_f_l_o_w_m_o_d_e Õ_y_e_s ] _n_oååå 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 ttttccccpppp ssssttttaaaattttuuuussss command with the protocol control block address. FFFFlllloooowwww 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._7_9. _s_o_u_r_c_e <_f_i_l_e_n_a_m_e> Read subsequent commands from ffffiiiilllleeeennnnaaaammmmeeee until EOF. Then resume reading com- mands from the previous stream. This can be used to keep routing statements in a separate file, wich can be read at some point in aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss. _3._8_0. _s_t_a_r_t _a_x_2_5 ] _d_i_s_c_a_r_d ] _e_c_h_o ] _f_i_n_g_e_r ] _f_t_p ] _n_e_t_r_o_m ] _r_e_m_o_t_e ] _p_o_p ] _r_i_p ] _s_m_t_p ] _t_e_l_n_e_t ] _t_i_p ] _t_t_y_l_i_n_k Start the specified Internet server, allowing remote connection requests. _3._8_1. _s_t_a_t_u_s Displays load information on NNNNoooossss. When started, how long running, open files etc. _3._8_2. _s_t_o_p _a_x_2_5 ] _d_i_s_c_a_r_d ] _e_c_h_o ] _f_i_n_g_e_r ] _f_t_p ] _n_e_t_r_o_m ] _r_e_m_o_t_e ] _p_o_p ] _r_i_p ] _s_m_t_p ] _t_e_l_n_e_t ] _t_i_p ] _t_t_y_l_i_n_k Stop the specified Internet server, rejecting any further remote connect requests. Existing connections are allowed to complete normally. _3._8_3. _t_a_i_l <_f_i_l_e_n_a_m_e> This does a more on the last couple of lines of file ffffiiiilllleeeennnnaaaammmmeeee. _3._8_4. _t_c_p <_s_u_b_c_o_m_m_a_n_d> These commands are used for the Transmission Control Protocol service. _3._8_4._1. _t_c_p _i_r_t_t Õ<_m_i_l_l_i_s_e_c_o_n_d_s>å 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 _c_a_c_h_e of measured round trip times and mean deviations (MDEV) for current and recent destinations. Whenever a new TCP connection is - 42 - 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 men- tioned above is used, along with a MDEV of 0. This feature is fully automatic, and it can improve performance greatly when a series of connec- tions are opened and closed to a given destination (eg. a series of FTP file transfers or directory listings). _3._8_4._2. _t_c_p _k_i_c_k <_t_c_b__a_d_d_r> If there is unacknowledged data on the send queue of the specified TCB, this command forces an immediate retransmission. _3._8_4._3. _t_c_p _m_s_s Õ<_s_i_z_e>å 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. _3._8_4._4. _t_c_p _r_e_s_e_t <_t_c_b__a_d_d_r> Deletes the TCP control block at the specified address. _3._8_4._5. _t_c_p _r_t_t <_t_c_b__a_d_d_r> <_m_i_l_l_i_s_e_c_o_n_d_s> 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. _3._8_4._6. _t_c_p _s_t_a_t_u_s Õ<_t_c_b__a_d_d_r>å Without arguments, displays several TCP-level 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 ttttccccbbbb____aaaaddddddddrrrr is speci- fied, a more detailed dump of the specified TCB is generated, including send and receive sequence numbers and timer information. _3._8_4._7. _t_c_p _s_y_n_d_a_t_a Õ_y_e_s ] _n_oå Display or set the tcp syn + data pigybacking flag. Some tcp systems cannot handle syn + data together. _3._8_4._8. _t_c_p _t_i_m_e_r_t_y_p_e Õ_l_i_n_e_a_r ] _e_x_p_o_n_e_n_t_i_a_lå Displays the current setting or sets the timer type backoff algoritm. _3._8_4._9. _t_c_p _t_r_a_c_e Õ_y_e_s ] _n_oå Display or set the tcp trace flag on or off. _3._8_4._1_0. _t_c_p _w_i_n_d_o_w Õ<_s_i_z_e>å Displays or sets the default receive window size in bytes to be used by TCP when creating new connections. Existing connections are unaffected. _3._8_5. _t_e_l_n_e_t <_h_o_s_t_i_d> Õ<_p_o_r_t>å Creates a Telnet session to the specified host and enters converse mode. If is given that number is used. Default port is 23. - 43 - _3._8_6. _t_e_s_t Start an internal test for an overflow problem that might appear in the clock function of some AT computers. _3._8_7. _t_h_i_r_h-_p_a_r_t_y Õ_y_e_s ] _n_oå This is a restriction setter for some countries where stations are not allowed to handle thirth party mail traffic. _3._8_8. _t_t_y_l_i_n_k <_h_o_s_t_i_d> Õ<_p_o_r_t>å 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._8_9. _t_i_p <_i_f_a_c_e> Creates a ttttiiiipppp session that connects to the specified interface in "dumb ter- minal" mode. The interface must have already been attached with the aaaattttttttaaaacccchhhh command. Any packet traffic (IP datagrams, etc) routed to the interface while this session exists will be discarded. To close a ttttiiiipppp session, use the rrrreeeesssseeeetttt command. It will then revert to normal sssslllliiiipppp,,,, nnnnrrrrssss or kkkkiiiissssssss mode opera- tion. This feature is primarily useful for manually establishing SLIP connections. At present, only the built-in "com" ports can be used with this command. _3._9_0. _t_r_a_c_e Õ<_i_f_a_c_e> Õ_o_f_f ] <_b_t_i_o> Õ<_t_r_a_c_e_f_i_l_e>ååå Controls packet tracing by the interface drivers. Specific bits enable trac- ing of the various interfaces and the amount of information produced. Trac- ing is controlled on a per-interface basis; without arguments, ttttrrrraaaacccceeee gives a list of all defined interfaces and their tracing status. Output can be lim- ited 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 ttttrrrraaaacccceeeeffffiiiilllleeee is not specified, tracing will be to the console. _3._9_1. _u_d_p _s_t_a_t_u_s _3._9_2. _v_e_r_b_o_s_e Õ_0 ] _1 ] _2 ] _3å Set or display the level of message output in file transfers. VVVVeeeerrrrbbbboooosssseeee 0000 gives the least output, and vvvveeeerrrrbbbboooosssseeee 3333 the most, as follows: - 44 - 0 - Display error messages only. 1 - Display error messages plus a one-line 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 vvvveeeerrrr---- bbbboooosssseeee. This is necessary for commands like ppppwwwwdddd (display working directory), which would otherwise produce no message at all if vvvveeeerrrrbbbboooosssseeee were set to 0 or 1. Displays the status of all UDP receive queues. _3._9_3. _u_p_l_o_a_d Õ<_f_i_l_e_n_a_m_e>å Opens ffffiiiilllleeeennnnaaaammmmeeee and sends it on the current session as though it were typed on the terminal. _3._9_4. _w_a_t_c_h 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 sup- ported only on the IBM PC, and the meaning of each stopwatch value depends on where the calls have been inserted for test purposes; the distribution copy of _n_o_s usually has no stopwatch calls. _3._9_5. _w_a_t_c_h_d_o_g Õ_o_n ] _o_f_få Enables or disables the watchdog timer. If internal operations cease for 300 second and watchdog is enabled, a system reset is performed. See the remote command for setting up autoexec.bat. _3._9_6. ? Same as the hhhheeeellllpppp command. - 45 - _4. _A_t_t_a_c_h _C_o_m_m_a_n_d_s This chapter details the attach commands for the various hardware interface drivers. Not all of these drivers may be configured into every NNNNoooossss binary; a list of the available types may be obtained by entering the command aaaattttttttaaaacccchhhh ????. Some parameters are accepted by several drivers. They are: _4._0._1. <_b_u_f_s_i_z_e> For asynchronous devices (eg. COM ports operating in SLIP or NRS mode) this parameter specifies the size of the receiver's 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 MS-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 (eg. the sssscccccccc,,,, hhhhssss,,,, ppppcccc111100000000,,,, hhhhaaaappppnnnn and ddddrrrrssssiiii 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 agree- ment among stations sharing the channel. For standard AX.25 with a maximum I-frame 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 full-sized Ethernet packets to be carried without fragmentation. _4._0._2. <_i_o_a_d_d_r> The base address of the interface's control registers, in hex. _4._0._3. <_v_e_c_t_o_r> The interface's hardware interrupt (IRQ) vector, in hex. _4._0._4. <_i_f_a_c_e> The name (an arbitrary character string) to be assigned to this interface. It is used to refer to the interface in iiiiffffccccoooonnnnffffiiiigggg and rrrroooouuuutttteeee commands and in ttttrrrraaaacccceeee output. _4._0._5. <_m_t_u> 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 aaaaxxxx22225555 ppppaaaacccclllleeeennnn parameter is also relevant. If the datagram or fragment is still larger than ppppaaaacccclllleeeennnn, it is also fragmented at the AX.25 level (as opposed to the IP level) before transmission. (See the aaaaxxxx22225555 ppppaaaacccclllleeeennnn command for further information). _4._0._6. <_s_p_e_e_d> The speed in bits per second (eg. 2400). _4._1. _a_t_t_a_c_h _3_c_5_0_0 <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_r_p_a <_i_f_a_c_e> <_q_l_e_n> <_m_t_u> Õ<_i_p__a_d_d_r>å Attach a 3Com 3C501 Ethernet interface. qqqqlllleeeennnn is the maximum allowable transmit queue length. If the iiiipppp____aaaaddddddddrrrr parameter is not given, the value associated with a prior iiiipppp aaaaddddddddrrrreeeessssssss command will be used. The use of this driver is not recommended; use the packet driver interface with the loadable 3C501 packet driver instead. - 46 - _4._2. _a_t_t_a_c_h _a_s_y <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_x_2_5 ] _n_r_s ] _p_p_p ] _s_l_i_p <_i_f_a_c_e> <_b_u_f_s_i_z_e> <_m_t_u> <_s_p_e_e_d> Õ<_c_r_v>å Attach a standard PC "com port" (asynchronous serial port), using the National 8250 or 16550A chip. Standard values on the IBM PC and clones for iiiiooooaaaaddddddddrrrr and vvvveeeeccccttttoooorrrr 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. _a_x_2_5 Similar to sssslllliiiipppp, 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 (con- nectionless) or I (connection-oriented) AX.25 frames can be used; see the mmmmooooddddeeee command for details. _4._2._2. _n_r_s Use the NET/ROM asynchronous framing technique for communication with a local NET/ROM TNC. _4._2._3. _p_p_p Point-to-Point-Protocol. Encapsulates datagrams in an HDLC-like frame. This is a new Internet standard for point-to-point communication, compatible with CCITT standards. _4._2._4. _s_l_i_p Serial Line Internet Protocol. Encapsulates IP datagrams directly in SLIP frames without a link header. This is for operation on point-to-point lines and is compatible with 4.2BSD UNIX SLIP. _4._2._5. <_c_r_v> The optional flags are a string of characters "crv": cccc enables RTS/CTS detection, rrrr enables RLSD (Carrier Detect) physical line sensing, vvvv enables Van Jacobson TCP/IP Header Compression, and is valid only for SLIP. _4._3. _a_t_t_a_c_h _a_x_i_p <_i_f_a_c_e> <_m_t_u> <_i_p__a_d_d_r> <_c_a_l_l_s_i_g_n> This creates a RFC1226 compatible AX.25 frame encapsulator for transmission of AX.25 frames over the IIIInnnntttteeeerrrrnnnneeeetttt. IIIIffffaaaacccceeee will be the name of the interface, iiiipppp____aaaaddddddddrrrr the address of the remote system and ccccaaaallllllllssssiiiiggggnnnn 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 callsign's used on this station. _4._4. _a_t_t_a_c_h _d_r_s_i <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_x_2_5 <_i_f_a_c_e> <_b_u_f_s_i_z_e> <_m_t_u> <_c_h__a__s_p_e_e_d> <_c_h__b__s_p_e_e_d> N6TTO driver for the Digital Radio Systems PCPA 8530 card. Since there are two channels on the board, two interfaces are attached. They will be named iiiiffffaaaacccceeee with 'a' and 'b' appended. bbbbuuuuffffssssiiiizzzzeeee is the receiver buffer size in bytes; it must be larger than the largest frame to be received. cccchhhh____aaaa____ssssppppeeeeeeeedddd and cccchhhh____bbbb____ssssppppeeeeeeeedddd are the speeds, in bits/sec, for the A and B channels, respec- tively. - 47 - _4._5. _a_t_t_a_c_h _e_a_g_l_e <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_x_2_5 <_i_f_a_c_e> <_b_u_f_s_i_z_e> <_m_t_u> <_s_p_e_e_d> WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530). _4._6. _a_t_t_a_c_h _h_a_p_n <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_x_2_5 <_i_f_a_c_e> <_b_u_f_s_i_z_e> <_m_t_u> _c_s_m_a ] _f_u_l_l KE3Z driver for the Hamilton Amateur Packet Network adapter (Intel 8273). The ccccssssmmmmaaaa ]]]] ffffuuuullllllll parameter specifies whether the port should operate in car- rier sense multiple access (CSMA) mode or in full duplex. _4._7. _a_t_t_a_c_h _h_s <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_x_2_5 <_i_f_a_c_e> <_b_u_f_s_i_z_e> <_m_t_u> <_k_e_y_u_p__d_e_l_a_y> <_p> Attach a DRSI PCPA or Eagle Computer interface card using a special "high speed" 8530 driver. This driver uses busy-wait 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 kkkkeeeeyyyyuuuupppp____ddddeeeellllaaaayyyy parameter specifies the transmitter keyup delay in byte time intervals. The pppp value specifies the transmitter persistence value in the range 1-255; the corresponding slot time is fixed at one hardware clock tick, about 55 ms on the PC. As with the other 8530 drivers, this driver actually attaches two interfaces, one for each 8530 channel. _4._8. _a_t_t_a_c_h _p_a_c_k_e_t <_i_n_t_v_e_c> <_i_f_a_c_e> <_t_x_q_l_e_n> <_m_t_u> 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 aaaattttttttaaaacccchhhh command is given. Packet drivers in the Ethernet, ARCNET, SLIP, SLFP, and KISS/AX25 classes are supported. iiiinnnnttttvvvveeeecccc is the software interrupt vector used for communication to the packet driver, and ttttxxxxqqqqlllleeeennnn is the maximum number of packets that will be allowed on the transmit queue. _4._9. _a_t_t_a_c_h _p_c_1_0_0 <_i_o_a_d_d_r> <_v_e_c_t_o_r> _a_x_2_5 <_i_f_a_c_e> <_b_u_f_s_i_z_e> <_s_p_e_e_d> Driver for the PACCOMM PC-100 (Zilog 8530) card. Only AX.25 operation is supported. _4._1_0. _a_t_t_a_c_h _s_c_c <_d_e_v_i_c_e_s> _i_n_i_t <_a_d_d_r> <_s_p_a_c_i_n_g> <_A_o_f_f> <_B_o_f_f> <_D_a_t_a_o_f_f> <_i_n_t_a_c_k> <_v_e_c> Õ_p ] _rå<_c_l_o_c_k> Õ<_h_d_w_e>å Õ<_p_a_r_a_m>å PE1CHL driver to initialize a generic SCC (8530) interface board prior to actually attaching it. The parameters are as follows: _4._1_0._1. <_d_e_v_i_c_e_s> The number of SCC chips to support. _4._1_0._2. <_a_d_d_r> The base address of the first SCC chip (hex). - 48 - _4._1_0._3. <_s_p_a_c_i_n_g> The spacing between the SCC chip base addresses. _4._1_0._4. <_A_o_f_f> The offset from a chip's base address to its channel A control register. _4._1_0._5. <_B_o_f_f> The offset from a chip's base address to its channel B control register. _4._1_0._6. <_D_a_t_a_o_f_f> The offset from each channel's control register to its data register. _4._1_0._7. <_i_n_t_a_c_k> The address of the INTACK/Read Vector port. If none, specify 0 to read from RR3A/RR2B. _4._1_0._8. <_v_e_c> The CPU interrupt vector for all connected SCCs. _4._1_0._9. <_c_l_o_c_k> The clock frequency (PCLK/RTxC) of all SCCs in hertz. Prefix with 'p' for PCLK, 'r' for RTxC clock (for baudrate gen). _4._1_0._1_0. <_h_d_w_e> Optional hardware type. The following values are currently supported: 1 - Eagle card, 2 - PACCOMM PC-100, 4 - PRIMUS-PC card (DG9BL), 8 - DRSI PCPA card. _4._1_0._1_1. <_p_a_r_a_m> Optional extra parameter. At present, this is used only with the PC-100 and PRIMUS-PC cards to set the modem mode. The value 0x22 is used with the PC-100 and 0x2 is used with the PRIMUS-PC card. The aaaattttttttaaaacccchhhh sssscccccccc ............ iiiinnnniiiitttt command must be given before the interfaces are actu- ally attached with the following command. _4._1_1. _a_t_t_a_c_h _s_c_c <_c_h_a_n> _s_l_i_p ] _k_i_s_s ] _n_r_s ] _a_x_2_5 <_i_f_a_c_e> <_m_t_u> <_s_p_e_e_d> <_b_u_f_- _s_i_z_e> Õ<_c_a_l_l>å Attach an initialized SCC port to the system. The parameters are as follows: _4._1_1._1. <_c_h_a_n> The SCC channel number to attach, 0 or 1 for the first chip's A or B port, 2 or 3 for the second chip's A or B port, etc. _4._1_1._2. _s_l_i_p ] _k_i_s_s ] _n_r_s ] _a_x_2_5 The operating mode of the interface. sssslllliiiipppp,,,, kkkkiiiissssssss and nnnnrrrrssss all operate the port hardware in asynchronous mode; sssslllliiiipppp is Internet-standard serial line IP mode, kkkkiiiissssssss generates SLIP frames containing KISS TNC commands and AX.25 packets and nnnnrrrrssss uses NET/ROM local serial link framing conventions to carry NET/ROM - 49 - packets. Selecting aaaaxxxx22225555 mode puts the interface into synchronous HDLC mode that is suitable for direct connection to a half duplex radio modem. _4._1_1._3. <_s_p_e_e_d> The interface speed in bits per second (eg. 1200). 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. - 50 - _4._1_2. _A_t_t_a_c_h _E_x_a_m_p_l_e_s Here are some examples of the attach command: # Attach a 3Com Ethernet controller using the standard 3Com address and # vector (i.e., as it comes out of the box) to use ARPA-standard encapsulation. # The receive queue is limited to 5 packets, and outgoing packets larger # than 1500 bytes will be fragmented attach 3c500 0x300 3 arpa ec0 5 1500 # Attach the PC asynch card normally known as "com1" (the first controller) # to operate in point-to-point 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 pa0gri-11 # on the other side of the wormhole attach axip ai0 256 129.179.122.130 pa0gri-12 # Now assume 129.179.122.10 has a AX.25 interface with callsign pa0gri-10 # and 129.179.122.130 a interface with callsign pa0gri-8 # Now a AX.25 frame like: # pe1chl->pa0gri-11->pa0gri-8->pe1dna Õ dataå # Received by pa0gri-11, set the has-been-digipeated change the interface # callsign with the one it realy came in from and ecapsulates it # in a IP frame type 93 and ships it to 129.179.122.130 # pe1chl->pa0gri-10*->pa0gri-8->pe1dna Õ dataå # Arived at 129.179.122.130 the next digi is searched for and found. # The frame is changed into: # pe1chl->pa0gri-10*->pa0gri-12*->pe1dna Õ dataå # so that on the way back the frame will find the "right" interface. # Attach the packet driver loaded at interrupt 0x7e # The packet driver is for an Ethernet interface attach packet 0x7e ethernet 8 1500 - 51 - _5. _F_T_P _S_u_b_c_o_m_m_a_n_d_s During converse mode with an FTP server, everything typed on the console is first examined to see if it is a locally-known 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 gen- erally involves other commands being sent to the remote server on the control channel.) _5._1. _d_i_r Õ<_f_i_l_e> ] <_d_i_r_e_c_t_o_r_y> Õ<_l_o_c_a_l _f_i_l_e>åå Without arguments, ddddiiiirrrr requests that a full directory listing of the remote server's 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 argu- ments are given, the second is taken as the local file into which the direc- tory listing should be put (instead of being sent to the console). The PORT command is used before the LIST command is sent. _5._2. _g_e_t <_r_e_m_o_t_e _f_i_l_e> Õ<_l_o_c_a_l _f_i_l_e>å 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._3. _h_a_s_h A synonym for the vvvveeeerrrrbbbboooosssseeee 3333 command. _5._4. _l_s Õ<_f_i_l_e> ] <_d_i_r_e_c_t_o_r_y> Õ<_l_o_c_a_l _f_i_l_e>åå llllssss is identical to the ddddiiiirrrr 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._5. _m_g_e_t <_f_i_l_e> Õ<_f_i_l_e> ...å 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._6. _m_k_d_i_r <_r_e_m_o_t_e _d_i_r_e_c_t_o_r_y> Creates a directory on the remote machine. _5._7. _m_p_u_t <_f_i_l_e> Õ<_f_i_l_e> ...å 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._8. _p_u_t <_l_o_c_a_l _f_i_l_e> Õ<_r_e_m_o_t_e _f_i_l_e>å 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. - 52 - _5._9. _r_m_d_i_r <_r_e_m_o_t_e _d_i_r_e_c_t_o_r_y> Deletes a directory on the remote machine. _5._1_0. _t_y_p_e Õ_a ] _i ] _l <_b_y_t_e_s_i_z_e>å Tells both the local client and remote server the type of file that is to be transferred. The default, (wich can be changed with the ffffttttyyyyppppeeee command) is 'a', which means ASCII (i.e., a text file). Type 'i' means _i_m_a_g_e, 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 transfer- ring text between dissimilar systems (e.g., UNIX and MS-DOS) because of their different end-of-line and/or end-of-file 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 (executables, 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., DECSYSTEM-10s and 20s). Locally it works exactly like IMAGE, except that it notifies the remote system how large the byte size is. bbbbyyyytttteeeessssiiiizzzzeeee is typically 8. The type command sets the local transfer mode and generates the TYPE command on the control channel. _5._1_1. _v_e_r_b_o_s_e Õ_0 ] _1 ] _2 ] _3å Set or display the level of message output in file transfers. VVVVeeeerrrrbbbboooosssseeee 0000 gives the least output, and vvvveeeerrrrbbbboooosssseeee 3333 the most, as follows: 0 - Display error messages only. 1 - Display error messages plus a one-line 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 vvvveeeerrrr---- bbbboooosssseeee. This is necessary for commands like ppppwwwwdddd (display working directory), which would otherwise produce no message at all if vvvveeeerrrrbbbboooosssseeee were set to 0 or 1. - 53 - _6. _D_i_a_l_e_r _S_u_b_c_o_m_m_a_n_d_s Each dialer command may (should) have a different dialer file. The file resides in the configuration directory, as specified in the IIIInnnnssssttttaaaallllllllaaaattttiiiioooonnnn sec- tion (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 "atdt555-12127" wait 45000 "CONNECT " speed wait 2000 # PAD specific initialization send "7" wait 15000 "Terminal =" send "ppp7" wait 10000 "70 _6._0._1. _c_o_n_t_r_o_l _d_o_w_n ] _u_p Control aaaassssyyyy interface. The ddddoooowwwwnnnn option drops DTR and RTS. The uuuupppp option asserts DTR and RTS. _6._0._2. _s_e_n_d "_s_t_r_i_n_g" This dialer command will write the specified string to the interface. The string quote marks are required, and the string may not contain embedded con- trol characters. However, the standard C string escape sequences are recog- nized (\0 should not be used). _6._0._3. _s_p_e_e_d Õ _9_6_0_0 ] _4_8_0_0 ] _2_4_0_0 ] _1_2_0_0 ] _3_0_0 å This dialer command will set the speed of the interface to one of the avail- able speeds. If the speed is missing, the speed will be displayed in the dialer session window. _6._0._4. _w_a_i_t <_m_i_l_l_i_s_e_c_o_n_d_s> Õ "_t_e_s_t _s_t_r_i_n_g" å Õ _s_p_e_e_d å 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 inter- face. 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 con- tain embedded control characters. However, the standard C string escape sequences are recognized (\0 should not be used). Finally, if the _s_p_e_e_d parameter is specified, the dialer will continue to read characters until a non-digit 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. - 54 - _7. _I_n_s_t_a_l_l_a_t_i_o_n NNNNoooossss uses the following file and directory structure: ~/alias ~/autoexec.nos ~/dialer ~/domain.txt ~/ftpusers ~/net.rc ~/netron.sav ~/popusers ~/finger/ ~/spool/areas ~/spool/mail.log ~/spool/net.log ~/spool/forward.bbs ~/spool/history ~/spool/rewrite ~/spool/help/ ~/spool/mail/ ~/spool/mqueue/ ~/spool/news/ ~/spool/rqueue/ ~/spool/signatur/ The ~ in front of all files is a directory offset definable with the ----dddd option on the NNNNoooossss command line. Any name may be chosen and is default empty. (eg. just /) If for example ----dddd ////nnnneeeetttt is given, the structure shifts to /net/... The aaaalllliiiiaaaassss,,,, aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss,,,, ddddiiiiaaaalllleeeerrrr,,,, ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt nnnneeeetttt....rrrrcccc,,,, ppppooooppppuuuusssseeeerrrrssss and ffffttttppppuuuusssseeeerrrrssss configuration files are located here. The nnnneeeettttrrrroooommmm....ssssaaaavvvv file will be created there. The "/spool" directory and its sub-directories are used by the bbs, SMTP and NNTP services. The aaaarrrreeeeaaaassss,,,, ffffoooorrrrwwwwaaaarrrrdddd....bbbbbbbbssss,,,, hhhhiiiissssttttoooorrrryyyy,,,, mmmmaaaaiiiillll....lllloooogggg and rrrreeeewwwwrrrriiiitttteeee confi- guration files are located here. The /spool/news directory can have many subdirectories and each subdirectory can have subdirectories. Newsgroups are split into heirarchical directory structures. A news article in newsgroup rec.amateur.radio.packet will end up in /spool/news/rec/amateur/radio/packet.txt. _7._1. _T_h_e /_f_t_p_u_s_e_r_s _F_i_l_e Since MS-DOS is a single-user operating system (some might say it is a glori- fied bootstrap loader), 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. Net therefore provides its own access control mechanisms. The file ffffttttppppuuuusssseeeerrrrssss controls remote FTP and mailbox access. The FTP default is _n_o 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 com- mands, giving a valid name and password listed in ffffttttppppuuuusssseeeerrrrssss, before he or she can transfer files. Each entry in ffffttttppppuuuusssseeeerrrrssss consists of a single line of the form username password /path permissions - 55 - There must be exactly 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. uuuusssseeeerrrrnnnnaaaammmmeeee is the user's login name. ppppaaaasssssssswwwwoooorrrrdddd is the required password. Note that this is in plain text; there- fore it is not a good idea to give general read permission to the root direc- tory. A password of '*' (a single asterisk) means that any password is acceptable. ////ppppaaaatttthhhh is the allowable prefix on accessible files. Before any file or direc- tory 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 redun- dant /'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 speci- fied by separating them with a ";" caracter and no whitespace around them. ppppeeeerrrrmmmmiiiissssssssiiiioooonnnnssss 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 addi- tion 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 (DANGEROUS) 128 This user is banned from BBS access (illegal user) 256 Priv bit for PPP connection 512 Priv bit for peerID/pass lookup A username of aaaannnnoooonnnnyyyymmmmoooouuuussss has special meaning in the validation meganism. If aaaannnnoooonnnnyyyymmmmoooouuuussss is included as a valid user in ffffttttppppuuuusssseeeerrrrssss then any unknown user (not in ffffttttppppuuuusssseeeerrrrssss) will be mapped into aaaannnnoooonnnnyyyymmmmoooouuuussss and get its permission bits and file path. If aaaannnnoooonnnnyyyymmmmoooouuuussss is not included in ffffttttppppuuuusssseeeerrrrssss unknown users are not permitted nor validated. For example, suppose ffffttttppppuuuusssseeeerrrrssss on machine pc.ka9q.ampr.org contains the line friendly test /testdir 7 A session using this account would look like this: - 56 - net> ftp pc.ka9q.ampr.org Resolving pc.ka9q.ampr.org... Trying 128.96.160.1... FTP session 1 connected to pc.ka9q.ampr.org 220 pc.ka9q.ampr.org FTP version 900418 ready at Mon May 7 16:27:18 1990 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; he may not access any other files. Here are some more sample entries in ffffttttppppuuuusssseeeerrrrssss: 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 ARPA conven- tion. _7._2. _T_h_e /_p_o_p_u_s_e_r_s _F_i_l_e 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 sould match the ppppoooopppp uuuusssseeeerrrrddddaaaattttaaaa statement of the remote user. Both user and password have to be delimited with a colon character. _7._3. _T_h_e /_n_e_t._r_c _F_i_l_e The net.rc file is a fast login file for known ftp stations. Each line starts with the name of the ftp station. Following are a user and password statemend to be send to the server for validation. The name, user and password are separated with a space. Not a tab nore more than 1 space character. Follow- ing is a sample net.rc file. ucsd.edu anonymous gvdg@gvdgpc.cdh.cdc.com ka9q.ampr.org guest pa0gri - 57 - _7._4. _T_h_e /_d_o_m_a_i_n._t_x_t _F_i_l_e NNNNoooossss translates domain names (eg. "pc.ka9q.ampr.org") to IP addresses (eg. 128.96.160.3) through the use of an Internet Domain Name resolver and a local "cache" file, ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt. 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 ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt file for future use. If the server does not respond, any additional servers on the list are tried in a round-robin fashion until one responds, or the retry limit is reached (see the ddddoooommmmaaaaiiiinnnn rrrreeeettttrrrryyyy command). If ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt 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 host-ids in your /aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss file are in IP address format, then it is possible to start with a completely empty ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt file and have NNNNoooossss build it for you. However, you may wish to add your own entries to ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt, either because you prefer to use symbolic domain names in your /aaaauuuuttttooooeeeexxxxeeeecccc....nnnnoooossss file or you don't 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 exam- ple: pc.ka9q.ampr.org. IN A 128.96.160.3 IIIINNNN is the _c_l_a_s_s of the record. It means _I_n_t_e_r_n_e_t, and it will be found in all entries. AAAA is the _t_y_p_e of the record, and it means that this is an _a_d_d_r_e_s_s record. Domain name ppppcccc....kkkkaaaa9999qqqq....aaaammmmpppprrrr....oooorrrrgggg therefore has Internet address 128.96.160.3. Another possible entry is the CCCCNNNNAAAAMMMMEEEE (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 sys- tem with (primary, or _c_a_n_o_n_i_c_a_l) domain name "pc.ka9q.ampr.org." When a domain name having a CCCCNNNNAAAAMMMMEEEE record is given to NNNNoooossss, the system automatically follows the reference to the canonical name and returns the IP address asso- ciated with that entry. Entries added automatically by NNNNoooossss will have an additional field between the domain name and the class (IIIINNNN) field. For example: pc.ka9q.ampr.org. 3600 IN A 128.96.160.3 This is the _t_i_m_e-_t_o-_l_i_v_e value, in seconds, associated with the record received from the server. Clients (such as NNNNoooossss) caching these records are supposed to delete them after the time-to-live interval has expired, allowing for the possibility that the information in the record may become out of date. This implementation of NNNNoooossss will decrement the TTL to zero, but will not delete the record unless the "clean" flag is on (see the ddddoooommmmaaaaiiiinnnn ccccaaaacccchhhheeee cccclllleeeeaaaannnn command). When a remote server is not available, the old entry will be used. When the _T_T_L value is missing (as in the examples above), the record will never expire, and must be managed by hand. Since ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt is a plain text file, it may be easily edited by the user to add, change or delete records. - 58 - Additional types of records, include NS (name server) and SOA (start of authority) may appear in ddddoooommmmaaaaiiiinnnn....ttttxxxxtttt from remote server responses. These are not currently used by NNNNoooossss but are retained for future development (such as the incorporation of a domain name server into NNNNoooossss itself). _7._5. _T_h_e /_a_l_i_a_s _f_i_l_e. 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 reaonable, and sometimes desiable, 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. _T_h_e /_s_p_o_o_l/_a_r_e_a_s _f_i_l_e. 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: ------------- Public -- Mail -- Areas ------------- ] General -- Any old chit-chat that is clean. ] TcpIp -- General Tcp/Ip messages. NOS etc. ] Bugs -- Where to report bugs in Ka9q-NOS ] Updates -- Info - NOS version UPDATES by G1EMM. ] ] --------------------------------------------------------- _7._7. _T_h_e /_s_p_o_o_l/_f_o_r_w_a_r_d._b_b_s _f_i_l_e. The mailbox reads a forwarding file, ssssppppoooooooollll////ffffoooorrrrwwwwaaaarrrrdddd....bbbbbbbbssss. Here is a sample file. wb0ttw 0006 - 59 - 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 _m_b_o_x _s_t_a_t_u_s command. The second word is optional. It specifies a range of hours when forwarding may take place. 0000000000006666 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 (_a_x_2_5, _c_o_n_n_e_c_t, _t_c_p, _t_e_l_n_e_t or _n_e_t_r_o_m) and be followed by all the parameters which are nessesary when NNNNoooossss has to establish a connec- tion. 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 con- nection is established. Then follows the names of a number of message areas, publib or private. Finally, there should be a couple of '-' signs to separate one forwarding record from another. _7._8. _T_h_e /_s_p_o_o_l/_r_e_w_r_i_t_e _f_i_l_e. 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 NNNNoooossss 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 - 60 - _8. _S_e_t_t_i_n_g _B_u_f_s_i_z_e, _P_a_c_l_e_n, _M_a_x_f_r_a_m_e, _M_T_U, _M_S_S _a_n_d _W_i_n_d_o_w Many NNNNoooossss users are confused by these parameters and do not know how to set them properly. This chapter will first review these parameters and then dis- cuss how to choose values for them. Special emphasis is given to avoiding interoperability problems that may appear when communicating with non-NNNNoooossss implementations of AX.25. _8._1. _H_a_r_d_w_a_r_e _P_a_r_a_m_e_t_e_r_s _8._1._1. _B_u_f_s_i_z_e This parameter is required by most of NNNNoooossss's built-in HDLC drivers (eg. those for the DRSI PCPA and the Paccomm PC-100). 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 bbbbuuuuffffssssiiiizzzzeeee; it must be specified in the aaaattttttttaaaacccchhhh command for the interface. _8._2. _A_X_2_5 _P_a_r_a_m_e_t_e_r_s _8._2._1. _P_a_c_l_e_n Paclen limits the size of the data field in an AX.25 I-frame. This value does _n_o_t include the AX.25 protocol header (source, destination and digipeater addresses). Since unconnected-mode (datagram) AX.25 uses UI frames, this parameter has no effect in unconnected mode. The default value of ppppaaaacccclllleeeennnn is 256 bytes. _8._2._2. _M_a_x_f_r_a_m_e This parameter controls the number of I-frames that NNNNoooossss 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 3 bits wide, this number cannot be larger than 7. Since unconnected-mode (datagram) AX.25 uses UI frames that do not have sequence numbers, this parameter does _n_o_t apply to unconnected mode. The default value of mmmmaaaaxxxxffffrrrraaaammmmeeee in NNNNoooossss is 1 frame. _8._3. _I_P _a_n_d _T_C_P _P_a_r_a_m_e_t_e_r_s _8._3._1. _M_T_U 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 _f_r_a_g_m_e_n_t_s. 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 com- plete, 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 NNNNoooossss; it must be explicitly specified for each - 61 - interface as part of the aaaattttttttaaaacccchhhh command. _8._3._2. _M_S_S MSS (Maximum Segment Size) is a TCP-level parameter that limits the amount of data that the _r_e_m_o_t_e 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 NNNNoooossss 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 MMMMSSSSSSSS is 512 bytes. _8._3._3. _W_i_n_d_o_w This is a TCP-level parameter that controls how much data the local TCP will allow the remote TCP to send before it must stop and wait for an acknowledge- ment. The actual window value used by TCP when deciding how much more data to send is referred to as the _e_f_f_e_c_t_i_v_e _w_i_n_d_o_w. This is the smaller of two values: the window advertised by the remote TCP minus the unacknowledged data in flight, and the _c_o_n_g_e_s_t_i_o_n _w_i_n_d_o_w, an automatically computed time-varying estimate of how much data the network can handle. The default value of WWWWiiiinnnnddddoooowwww is 2048 bytes. _8._4. _D_i_s_c_u_s_s_i_o_n _8._4._1. _I_P _F_r_a_g_m_e_n_t_a_t_i_o_n _v_s _A_X._2_5 _S_e_g_m_e_n_t_a_t_i_o_n 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 allo- cation 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 NNNNoooossss it is (re)initialized with the iiiipppp rrrrttttiiiimmmmeeeerrrr 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 belong- ing to a datagram 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 intercon- necting them with subnetworks having smaller values can result in consider- able fragmentation. For this reason, IP implementors working with links or subnets having unusually small packet size limits are encouraged to use _t_r_a_n_- _s_p_a_r_e_n_t _f_r_a_g_m_e_n_t_a_t_i_o_n, 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 IP-level fragmentation. Such a scheme is pro- vided in AX.25 Version 2.1. It can break a large IP or NET/ROM datagram into a series of ppppaaaacccclllleeeennnn-sized AX.25 segments (not to be confused with TCP seg- ments), one per AX.25 I-frame, for transmission and reassemble them into a single datagram at the other end of the link before handing it up to the IP or NET/ROM module. Unfortunately, the segmentation procedure is a new feature in AX.25 and is not yet widely implemented; in fact, NNNNoooossss is so far - 62 - the only known implementation. This creates some interoperability problems between NNNNoooossss and non-NNNNoooossss nodes, in particular, standard NET/ROM nodes being used to carry IP datagrams. This problem is discussed further in the section on setting the MTU. _8._4._2. _S_e_t_t_i_n_g _p_a_c_l_e_n _a_n_d _b_u_f_s_i_z_e 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 ppppaaaacccclllleeeennnn, 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 ppppaaaacccclllleeeennnn that is best discovered by experiment. Another thing to remember when setting ppppaaaacccclllleeeennnn is that the AX.25 version 2.0 specification limits it to 256 bytes. Although NNNNoooossss can handle much larger values, some other AX.25 implementations (including digipeaters) cannot and this may cause interoperability problems. Even NNNNoooossss may have trouble with cer- tain KISS TNCs because of fixed-size buffers. The original KISS TNC code for the TNC-2 by K3MC can handle frames limited in size only by the RAM in the TNC, but some other KISS TNCs cannot. NNNNoooossss's built-in HDLC drivers (SCC, PC-100, DRSI, etc) allocate receive buffers according to the maximum expected frame size, so it is important that these devices be configured with the correct bbbbuuuuffffssssiiiizzzzeeee. To do this, you must know the size of the largest possible frame that can be received. The ppppaaaacccclllleeeennnn parameter controls only the size of the data field in an I-frame and not the total size of the frame as it appears on the air. The AX.25 spec allows up to 8 digi- peaters, so the largest possible frame is (ppppaaaacccclllleeeennnn + 72) bytes. So you should make bbbbuuuuffffssssiiiizzzzeeee 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 bbbbuuuuffffssssiiiizzzzeeee; 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 mmmmeeeemmmmoooorrrryyyy ssssttttaaaattttuuuussss command and looking for a non-zero count of IIIIbbbbuuuuffffffffaaaaiiiillll 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 sta- tions sharing a channel to agree beforehand on a maximum packet size. TCP is different, as we shall see. _8._4._3. _S_e_t_t_i_n_g _M_a_x_f_r_a_m_e For best performance on a half-duplex radio channel, mmmmaaaaxxxxffffrrrraaaammmmeeee should always be set to 1. The reasons are explained in the paper _L_i_n_k _L_e_v_e_l _P_r_o_t_o_c_o_l_s _R_e_v_i_s_i_t_e_d by Brian Lloyd and Phil Karn, which appeared in the proceedings of the ARRL 5th Computer Networking Conference in 1986. _8._4._4. _S_e_t_t_i_n_g _M_T_U TCP/IP header overhead considerations similar to those of the AX.25 layer when setting ppppaaaacccclllleeeennnn apply when choosing an MTU. However, certain subnetwork types supported by NNNNoooossss have well-established MTUs, and these should always be used unless you know what you're 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 - 63 - standardized. SLIP has no official MTU, but the most common implementation (for BSD UNIX) uses an MTU of 1006 bytes. Although NNNNoooossss has no hard wired limit on the size of a received SLIP frame, this is not true for other systems. Interoperabil- ity problems may therefore result if larger MTUs are used in NNNNoooossss. Choosing an MTU for an AX.25 interface is more complex. When the interface operates in datagram (UI-frame) mode, the ppppaaaacccclllleeeennnn parameter does not apply. The MTU effectively becomes the ppppaaaacccclllleeeennnn of the link. However, as mentioned earlier, large packets sent on AX.25 _c_o_n_n_e_c_t_i_o_n_s are automatically segmented into I-frames no larger than ppppaaaacccclllleeeennnn bytes. Unfortunately, as also mentioned earlier, NNNNoooossss is so far the only known implementation of the new AX.25 segmen- tation procedure. This is fine as long as all of the NET/ROM nodes along a path are running NNNNoooossss, but since the main reason NNNNoooossss supports NET/ROM is to allow use of existing NET/ROM networks, this is unlikely. So 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 ppppaaaacccclllleeeennnn are never handed to AX.25. A NET/ROM transport header is 5 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 I-frame data field. If ppppaaaacccclllleeeennnn is 256, this leaves 236 bytes for the IP datagram. This is the default MTU of the nnnneeeettttrrrroooommmm pseudo-interface, so as long as ppppaaaacccclllleeeennnn is at least 256 bytes, AX.25 segmentation can't happen. But if smaller values of ppppaaaacccclllleeeennnn are used, the nnnneeeettttrrrroooommmm MTU must also be reduced with the iiiiffffccccoooonnnnffffiiiigggg command. On the other hand, if you're running IP directly on top of AX.25, chances are all of the nodes are running NNNNoooossss and support AX.25 segmentation. In this case there is no reason not to use a larger MTU and let AX.25 segmentation do its thing. If you choose an MTU on the order of 1000-1500 bytes, you can largely avoid IP-level fragmentation and reduce TCP/IP-level header overhead on file transfers to a very low level. And you are still free to pick what- ever ppppaaaacccclllleeeennnn value is appropriate for the link. _8._4._5. _S_e_t_t_i_n_g _M_S_S The setting of this TCP-level parameter is somewhat less critical than the IP and AX.25 level parameters already discussed, mainly because it is automati- cally lowered according to the MTU of the local interface when a connection is created. Although this is, strictly speaking, a protocol layering viola- tion (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 MSS-lowering procedure yet, this might cause the remote system to gen- erate IP fragments unnecessarily. On the other hand, a too-small MSS can result in a considerable performance loss, especially when operating over fast LANs and networks that can handle - 64 - larger packets. So the best value for MSS is probably 40 less than the larg- est MTU on your system, with the 40-byte 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 maximum-sized Ethernet packets, assuming the path to your system does not have any bottleneck subnets with smaller MTUs. _8._4._6. _S_e_t_t_i_n_g _W_i_n_d_o_w A sliding window protocol like TCP cannot transfer more than one window's worth of data per round trip time interval. So this TCP-level parameter con- trols 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 you're 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. NNNNoooossss includes them, and you can watch them in action with the ttttccccpppp ssssttttaaaattttuuuussss <<<>>> or ssssoooocccckkkkeeeetttt <<<>>> commands. Look at the ccccwwwwiiiinnnndddd (congestion window) value. In most cases it is safe to set the TCP window to a small integer multiple of the MSS, (eg. 4times), 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. NNNNoooossss does not actually preallocate this space; it keeps it in a common pool and may well "overbook" it, exploit- ing 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 NNNNoooossss out of memory if excessive TCP window sizes are adver- tised and either the applications go to sleep indefinitely (eg. suspended Telnet sessions) or a lot of out-of-sequence 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 colli- sions. In particular, collisions between data packets and returning ack- nowledgements during a bulk file transfer may become common. Although this is, strictly speaking, not TCP's fault, it is possible to work around the problem at the TCP level by decreasing the window so that the protocol operates in stop-and-wait mode. This is done by making the window value equal to the MSS. _8._5. _S_u_m_m_a_r_y In most cases, the default values provided by NNNNoooossss for each of these parame- ters 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.