JNOS

COMMANDS MANUAL

 

 JNOS-2.0fB

by

Kevin Roberts W1NGL / GW1NGL

Last Modified on 11/26/2007 05:31 PM

 

A derivative of  the JNOS Robert Fahnestock  WH6IO and James P. Dugal  N5KNX

A derivative of  the JNOS  Commands Manual by Johan K. Reinalda and Douglas E. Thompson

(based in part on the NOS Reference Manual, by Phil Karn, KA9Q and Gerard van der Grinten, PA0GRI)

 

 

 DISCLAIMER

  -----------------

The authors make no guarantees, explicit or implied, about the functionality or any other aspect of this product.

 

Refer to the manuals provided by the manufacturer of your equipment for installation procedures.


TABLE OF CONTENTS;

 

COPYRIGHTS AND TRADEMARKS

INTRODUCTION

TERMINOLOGY

STARTING JNOS

STATUS DISPLAY

SYSTEM COMMANDS

<CR>

!

#

@

?

abort [<session #>]

arp

aprs

aprsc

asystat

asyconfig

at

attach

attended [off | on]

axui <iface> [<unpronto call>][digipeater string]]

ax25 <subcommands>

bbs

bulletin<subcommands>

callserver2 [<hostname> <port>]

cd

close

cls

comm <asy_iface> <"text-string">

connect <iface> <destination> [<digi1,digi2...digin>]

convers <subcommands>  

copy

delete <filename>

detach

dir

disconnect

domain <subcommand>

dump <hexaddress | .> [range]

echo [accept|refuse]

edit [<filename>]

eol {standard | null]

errors [ON | off]

escape

etelnet <host> [<port_number>] loginid password

ettylink

exit [<return_code>]

expire <subcommand>

finger <username [@host] > [<username [@host]>...]

Fkey

Ftp <hostname> [<scriptfile>]

ftype

ftpclzw

ftpslzw

ftpmaxservers

ftptdisc

gate <subcommands>

help  or  ?

hfdd

history [<N>]

hop <subcommands>

hostname [<name>]

http <subcommand>

icmp <subcommands>

ifconfig [<subcommand>]

index [<areaname>]

info

ip <subcommand>

kick

lock [password "<password_string">]

log [on|off]

look [user | socket#] (/<cmd>)

lzw

lzwlink

mailmsg <to_addr> ["<subject"] <msg | /path>

mbox [<subcommands>]

memory <subcommands>

mkdir <directory>

mode <iface> [vc | datagram]

more <filename> [<text>...]

motd ["message"]

netrom <subcommands>

nntp

nrstat

oldbid <interval>

param <iface> [<param>]

pause <seconds>

ping <host> [<length>] [<repeat_ms> [incflag>]]]

popmail<subcommand>

prompt [on|OFF]

ps

pwd <directory>

rarp

rdate <subcommand>

record  [off | <filename>]

remark

remote

rename <old filename> <new filename>

repeat [milliseconds]  command

reset

rewrite <address>

rip <subcommand>

rlogin <host>

rmdir <directory>

route [<subcommand>]

rspf <subcommand>

session [<session#>]

sessmgr

shell [cmd [args]]

skick <socket#>

smtp <subcommand>

socket [<socket#>]

source <script_filename>

split <iface><call>

start <servers...>

status [on | off]

strace

stop <server...>

tail <filename>

taillog

tcp <subcommand>

telnet <host>

term

trace [<iface> [off | <btio>]

ttylink <host> [<port_number>]

third-party

tip

udp status

upload

write <username|sock#> <message>

writeall <message>

 

APPENDIX A    JNOS MAILBOX USER COMMANDS

APPENDIX B    FTPUSERS PERMISSIONS

APPENDIX C    FORWARD.BBS

APPENDIX D    OF PACLEN, MSS, MTU and more

APPENDIX E    Information Files

 

 


COPYRIGHTS AND TRADEMARKS;

 

Unix is a Registered Trademark of AT&T.

NET.EXE program (C) Copyright 1992 by Phil R. Karn, KA9Q.

JNOS  is based on work (C) Copyright 1991 by Phil R. Karn,

KA9Q, and other contributors.

JNOS (C) Copyright 1994 by Johan K. Reinalda, WG7J

MS-DOS is a registered trademark of Microsoft, Inc.

NET/ROM software (C) Copyright 1987 Software 2000, Inc.

NET/ROM is a trademark of Software 2000, Inc.

OS/2 is a registered trademark of International Business Machines, Inc. 

Windows 3.0, Windows 3.1, Windows NT, and Microsoft Word are all registered trademarks of Microsoft, Inc.


INTRODUCTION;

 

This document addresses the JNOS  command set. This manual is current as of the version indicated  on the title page.  Prior versions of commands or commands which have been deleted are not included.  Also, this document addresses only the commands that are available in the N5KNX  (previously the WG7J) distribution compile  (uses distconf.h).   Information about commands for other modules which are not included in the "standard" N5KNX compile may be found via online help (if command help files were installed on disk) or in the readme.now file.                                                                                                                                                                                                             

 

The user interface for JNOS is very similar to most of the well-known BBS programs.   This is to provide an easy transition for users.  The user interface in the JNOS program is commonly called the  'mailbox' or bbs. These terms will  be used interchangeably throughout this document when describing commands.

 

This Commands Manual contains the commands and their descriptions for using and operating a JNOS tcp/ip and ax.25 packet switch, BBS, and network node.  Also contained in this manual is information about the FORWARD.BBS, REWRITE, ALIAS, and USERS files used in a JNOS installation. 

 

Questions, remarks and suggestions about JNOS are welcome and should be

sent to:

 

email:  kevin AT  w1ngl.us (or packet  W1NGL@W1NGL.OR.USA.NOAM)


TERMINOLOGY;

 

Here are some of the abbreviations and terminology used throughout this manual.

 

HOSTNAME is the tcp/ip name of a computer or packet system.

 

INTERNET is a worldwide high speed computer network. It has thousands of computers at schools, companies and amateur packet radio systems connected to it.

 

MTU, or Maximum Transmission Unit, is the maximum data size in one packet.  Most often the data referred to by MTU is the transported data, i.e. data frame in a network connection.  With tcp/ip, the size of the tcp/ip frame inside the ax.25 packet is the MTU; with net/rom, the size of the data inside the netrom packet is the MTU.

 

NRS, or Net/Rom Serial protocol, is what TNCs with Net/Rom or TheNet eproms talk on the serial port.

 

NODE, and  MAILBOX are terms used interchangeably for the user interface when connected to the system.

 

PACLEN, or packet length, is most often used to refer to data size in a link packet.  The data in an ax.25 packet can be up to paclen bytes.

 

PORT or INTERFACE means the physical connection to a radio or other system (i.e., radio port or serial interface).  These two terms are used interchangeably.

 

RFCs, or Requests For Comment, are standard papers used on Internet to discuss and propose new networking protocols and other related topics.

 

RSPF,  or Radio Shortest Path First, is a tcp/ip routing protocol especially targeted at radio environments.

 

RTT, or Round Trip Time, indicates the time needed for data to be sent and acknowledged.

 

SLIP, or Serial Line IP, is a way to send IP frames over a serial port without using ax.25 or Ethernet to carry the data.  You can use SLIP to connect to PCs or Unix systems also running SLIP, and interchange tcp/ip data.

 

PPP, or point-to-point protocol, is an alternative to SLIP, that has the advantage of automatically configuring IP addresses, compression, and MTU.


STARTING JNOS;

 

There are several command line options which can be exercised when starting JNOS.  These commands are used to set environment variables, select configuration and autoexec files, and other functions.  Options should be separated by tabs or spaces.  If there is an option argument, there should NOT be any whitespace between the option and the argument.  The only option not preceded by '-' is the alternate startup file

 

     -b         : Use direct video for the screen output.

     -c#        : Set the number of COLUMNS on the screen to #.

     -drootdir  : Set the root directory for the configuration file

                : path.  This is overwritten by the file specified

                : in the -f option configuration file.

     -e         : Pause after each error line in autoexec.nos

     -fnos.cfg  : Set JNOS config file and path names as indicated

                : in the 'nos.cfg' file.  This overrides the -d option.

     -gn        : Set trace colors, when tracing to console (ANSI.SYS needed):

                :  n=0 => none (default)

                :  n=1 => tailor to gray-scale monitor

                :  n=2 => tailor to color monitor

     -i         : always re-index mail files at startup

     -I         : never re-index mail files at startup (instead, test at 1st access)

     -l         : Do NOT delete .lck files in the mail and news subdirectories

     -mn        : Set the default screen swap mode.

                :   n = 0 Use EMS  (If compiled in and available.)

                :           Default is EMS Available

                :   n = 2 Use memory.  (Default if NO EMS available.)

                :   n = 3 Use a temporary disk file

     -n         : No trace session

     -r#        : Set the number of ROWS on the screen to #

     -t         : trace the autoexec.nos file. You will be asked

                : before each if you want to execute it. 'y' accepts,

                : anything else skips the line.

     -u#        : set the number of status lines, valid values are 0-3

     -v         : Verbose.  Print each line from autoexec.nos before parsing.                                                                                                                              

     -wf+b      : Set foreground/background colors for system status

                :     default: white on magenta

     -xf+b      : Set foreground/background colors for session status

                :     default: white on blue

     -yf+b      : Set foreground/background colors for 'main' window

                :     default: the system colors when JNOS starts.

                :     (most often lightgray on black) :

     -zf+b      : Set foreground/background colors for 'split' window

                :     default: white on green

                : 0=black

                : 1=blue

                : 2=green

                : 3=cyan

                : 4=red

                : 5=magenta

                : 6=brown

                : 7=white/gray

 

 autoexec.new   : Name of the startup file. Default is 'autoexec.nos'

                :  or as set with -fnos.cfg

 

UNIX additions to the command-line arguments:

     -C          : allow core files to be created following certain errors

     -D          : disallow the interval timer...testing vestige from 1.09 JNOS

     -Smgr:o : set the default session manager to <mgr>, with options <o>

     -Tmgr:o : set the default trace session manager to <mgr>, with options <o>


STATUS DISPLAY;

 

JNOS now has a (up to) 3-line status display which shows:

 

On the first line:

 

time, heap and core free memory, number of connections to the different servers.  Then a list of active sessions, where sessions with data waiting are blinking.

 

The 2nd line shows:

 

the users connected to the bbs. A status symbol in front means one of the following:

 

       none - user is idle

  * - user is a bbs

  @ - user is in sysop mode

  ! - user has gatewayed out

  # - user is reading or sending mail

  = - user is transferring data (up/download)

  ^ - user is in convers or sysop-chat mode

  ? - use is in none of the above, but not idle...

 

Eg: BBS: *w0rli johan #ka7ehk !n7ifj

 

(lines 1 and 2 are the 'system' window)

 

On the 3rd line is data depending on the current session.

 

Always displayed are the current session number and type.

 

If the sessions are network connections, displayed are remote connection name,  tx-queue (bytes for tcp, packets for ax.25), and state of the connection.  It then shows the retry timer, with current time left, and initial value.

 

In 'repeat', 'more' or 'look' sessions, the 3rd line show the command, filename  or user/socket for the session.

 

The number of status lines displayed can be set with the '-uX' commands line option. '-u0' turns it off. Default is '-u3'

 

NOTE: if tracing is enabled, this will 'bleed' through the status window.

 

This is NOT a bug, but is inherent to the way tracing works in JNOS. (It would take a major rewrite to fix.) The status window will be rebuilt about twice a second to overcome this.


SYSTEM COMMANDS:

 

This section describes the commands recognized. Syntax is:

 

       command

       command literal_parameter

       command subcommand <parameter>

       command [<optional_parameter>]

       command a | b

 

Many commands take subcommands, parameters, or both, which may in turn be optional or required. In general, if a required subcommand or parameter is omitted, an error message will summarize the available subcommands or required parameters.  (Giving a '?' in place of the subcommand will also generate the message.  This method 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.  When one of the choices is default, that choice will be in UPPERCASE.  Optional parameters are shown enclosed in [brackets].  Parameters enclosed in <angle brackets> should be replaced with actual values or strings. The generic notation for number values is <nnnn>, and for string values, it is <string_id>.

For example, the notation <hostname> means the actual host or gateway callsign or id.  Numerical defaults are explicitly stated as such, e.g., "Default = 7."

 

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.

 

All commands are printed in bold (if you have the version of this document that supports fancy formatting), and most commands have an example following the textual description of the commands. 

 

 

The following section contains the comprehensive set of commands for JNOS.


<CR>;

 

     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, JNOS remains in command mode and reissues the 'jnos>' prompt.


!;

 

An alias for the shell command.


@

 

To enter Sysop Mode:

example of a password set to states

@

3 0 2 4 0

your response is:

tsaes

@

<CR>

<CR>

Type 'exit' to return
2316 Jnos>


#;

 

Commands starting with the hash mark (#) are ignored. The hash mark is mainly useful for comments in the autoexec.nos.


?;

 

Same as the 'help' command.


abort [<session #>];

 

Abort a FTP get, put or dir operation in progress. If issued without an argument, the current session is aborted.  (This command works only on FTP sessions.) When receiving a file, abort simply resets the data  connection; the next incoming data packet will generate a TCP RST (reset) response to clear the remote server.  When sending a file, abort sends a premature end-of-file.

 

Note that in both cases abort will leave a partial copy of the file on the destination machine, which must be removed manually if it is unwanted.


arp;

 

arp add

arp drop

arp delete

arp eaves

arp flush

arp maxq

arp poll

arp publish

arp sort

 

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 (e.g., 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.

 

arp add <hostid> ax25 | netrom <callsign> <iface>  or  arp add <hostid> ether | ax25 | netrom | arcnet <ether_addr>|<callsign> <iface>

Add a permanent entry to the table. It will not time out as will an automatically created entry, but must be removed with the 'arp drop' command.                                                                                                                                   

arp add 44.26.0.19 ax25 wg7j-2 port1

 

arp drop <hostid> ax25 | netrom <iface> or arp drop <hostid> ether | ax25 | netrom | arcnet <iface>

Delete a permanent entry from the arp table.

 

arp delete 44.26.0.19 ax25 port1

 

arp eaves [<iface>] [on | OFF]

Display or set the 'arp eavesdrop' function per interface. If set, all arp replies overheard on the interface will be logged in the arp table. This speeds up arp discovery, but might build a huge arp table taking up lots of memory.  Default for each interface is off.                                                                               

# Set arp eavesdrop on interface port1

arp eaves port1 on

 

arp flush

Drop all automatically-created entries in the ARP table; permanent entries are not affected.                                                                                                               

 

arp maxq [n]

Display or set the maximum number of packets to be buffered waiting for an arp resolution to finish.  Default = 5.                                                                                            

arp maxq 5

 

arp poll [<iface>] [on | off]

Display or set the 'arp keepalive polling' per interface.  If set, when an arp entry expires, a query will be sent for the address. This keeps the arp table fresh, but possibly retains many unneeded entries.

arp poll port1 on

 

arp publish <hostid> ax25|netrom <callsign> <iface>

This command is similar to the 'arp add' command, but the system will also respond to any ARP request it sees on the network that seeks the specified address.  (Use this feature with great care!)

arp publish 44.26.1.19 ax25 wg7j-2 port1

 

arp sort [ON | off]

Sorts the arp display.


aprs

 

automatic position reporting system

No info or Help File


aprsc

 

automatic position reporting system

No info or Help File


asystat;

 

Display statistics on attached asynchronous communications interfaces (8250 or 16550A), if any.  Example:

 

tnc: [NS16550A] [trigger 0xc0] [rlsd line control] 19200 bps [@ 3f8,4] RX: 929462 int, 3683653 chr, 0 hw over, 6 hw hi, 17210 fifo TO, 0 sw over, 126 sw hi TX: 946381 int, 7400204 chr, 0 q, 79401 MS int, 40 THRE TO

tnc2: [NS16550A] [trigger 0xc0] 9600 bps [@ 2f8,3] RX: 722895 int, 2865467 chr, 0 hw over, 8 hw hi, 13075 fifo TO, 0 sw over, 248 sw hi TX: 246420 int, 1889156 chr, 0 q, 1 MS int, 16 THRE TO

 

The display for each port consists of three lines.  The first line gives the port label and the configuration flags; these indicate whether the port is a 16550A chip, the trigger character if any, whether CTS flow control is enabled, whether RLSD (carrier detect) line control is enabled, the speed in bits per second, and the port address and IRQ number in hexadecimal.

(Receiving the trigger character causes the driver to signal upper layer software that data is ready; it is automatically set to the appropriate frame end character for SLIP, PPP and NRS lines.)

 

The second line of the status display shows receiver (RX) event counts:  the total number of receive interrupts, received characters, receiver overruns (lost characters) and the receiver high water mark.  The high water mark is the maximum number of characters ever read from the device during a single interrupt.  This is useful for monitoring system  interrupt  latency margins as it shows how close the port hardware has come to overflowing due to the inability of the CPU to respond to a receiver interrupt in time. 8250 chips have no FIFO, so the high water mark  cannot  go higher  than  2  before overruns occur.  The 16550A chip, however, has a 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 character intervals go by with more than  0 but  less than 4 characters in the FIFO.  Since the characters that make up a SLIP or NRS frame are normally sent at full line speed, this count will usually be a lower bound on the number of frames received on the port, as only the last  fragment of a frame generally results in a timeout (and then only when the frame is not a multiple of 4 bytes long.)

 

Finally, the software fifo overruns and high water mark  are displayed.  These indicate whether the <bufsize> parameter on the attach command needs to be  adjusted  (see  the  Attach  Commands 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).

 

The "asystat" command for UNIX JNOS is somewhat different from the DOS

version.   Example:

 

144.99: cua0, 9600 bps, packet size 255, RTS/CTS disabled, carrier disabled

RX: ints 2 chars 73 puts 2 rxqueue 5 qlen 0 ovq 0 block 0 buf 1024

TX: ints 1 chars 57 gets 0 txqueue 2 qlen 0 ovq 0 block 0

linux: ttype, 38400 bps, non-blocking, RTS/CTS disabled, carrier disabled

RX: ints 0 chars 0 puts 0 rxqueue 2 qlen 0 ovq 0 block 0 buf 1024

TX: ints 0 chars 0 gets 0 txqueue 2 qlen 0 ovq 0 block 0

ints    is the number of times pwait() returned control to the rx or tx task,  indicating that select() detected pending data on input or a packet  became available for output.                                  

chars   is the number of characters read/written.

puts    number of times received data was placed in the packet Hopper.

gets    number of times data was taken out of the send queue and written to the device.                                                   

rxqueue is described in the asyconfig command helpfile.

txqueue is described in the asyconfig command helpfile.

qlen    is the instantaneous queue size (number of packets).

ovq     is the number of times queue flow control (described in asyconfig) was triggered.                                                

block   is the number of times read/write tried to block (in the case of  reads, the number of times it tried to block after data was claimed  to be available).                                             

buf     is the current receive buffer size, as specified in the attach statement or the "asyconfig" command.                           


at;

 

The 'at' command is used to provide automatic starting of other JNOS commands at predetermined times.

 

at

 

This form displays each scheduled at command and its id number,  so that 'at kill n' can be used (see below).

 

at time <cmd>

 

time  takes the form     yymmddhhmm       (specific date/time)

                              hhmm             (next occurrence of this time)

                              whhmm            (next occurrence of this time on specified weekday. 0=Sun,1=Mon,..., 6=Sat)

                              mm               (mm mins after next hour)

                              now+hhmm         (offset from present time)

 

<cmd> is any legal JNOS command.  Multiple word commands must be enclosed in double quotes (" ").  Commands which invoke the DOS shell must include '!' or shell as the first word in order for  JNOS to recognize that an external command is to be invoked.  If the external command requires the command processor, then "/c" may be given as the second word.  Example: "! /c x.bat>> e:foo".

 

To automatically reissue the at command when the timer matures, append a "+" character to the <cmd> string.

Example:  at 0130 "! cleanup+"

Example:  at now+0100 "ax25 flush+"

Example:  at 0600 "writeall \"Il est 6h00 GMT\"+"

 

at k <id_num> [<id_num>...]

 

This form of the 'at' command kills (i.e., deletes) jobs <id_num>...


asyconfig

 

No Info or Help File


attach;

 

attach asy

attach axip

attach kiss

attach netrom

attach scc

attach escc

attach bpq

 

attach <hw_type> <io_addr> <vector> <mode> <label> <bufsize> <mtu>[<speed>]

Configure and attach a hardware interface to the system. Detailed instructions for each driver are in the Attach Commands chapter.  An easy way to obtain a summary of the parameters required for a given device is to issue a partial attach command (e.g., attach asy). This produces a message giving the complete command format.

<hw_type> is the kind of I/O device being attached to the system.  Choices include asy, kiss, packet, netrom, scc...

<io_addr> is the base address of the control registers for the  device.

<vector>  is the interrupt vector number.  Both the address and the vector must be in hexadecimal.  You may put "0x" in  front of the numbers, but they will be interpreted in  hexadecimal even without the prefix.

<mode> controls how IP datagrams are to be encapsulated in the device's link level protocol.

Choices include ax25, slip, pkiss, nrs, ppp...

slip      Encapsulates IP datagrams directly in SLIP frames  without a link header.  This is for operating point-to-point  lines and is compatible with 4.2BSD UNIX SLIP.

ax25      Similar to slip, except that an AX.25 header and a KISS TNC control header are added to the front of the datagram before SLIP encoding.  Either UI (connectionless) or I (connection- oriented) AX.25 frames can be used.

pkiss     Similar to ax25, except that packets are checksummed and  the interfaced devices are queried (polled) regularly for data.  Used by G8BPQ polled-kiss software.

nrs       Similar to ax25, except that packets are transmitted only when permitted by flow-control signals.  Typical of Netrom node stacks using Netrom serial protocol.

ppp       Similar to slip, except the protocol is different and typically is capable of compression.

<label>   defines the name by which the interface will be known to various  commands, such as "connect", "route",  "trace", etc.

<bufsize> For ASYNCHRONOUS PORTS, specifies the size of the  ring buffer in bytes to be statically allocated to the receiver, incoming bursts larger than <bufsize> may cause data  to be lost.

For ETHERNET, specifies how many PACKETS may be queued in the  receive queue at one time.  Excess packets will be discarded as they are  received.  This is useful to prevent the system from running out of memory should another node suddently develop a case of diarrhea.

<mtu>     is the Maximum Transmission Unit size in bytes. See the section 'Of PACLEN, MTU, MSS, and More' in Appendix  D forr a discussion of the effect of MTU on system performance.

 

attach asy <io_addr> <vector> <mode> <label> <bufsize> <mtu>[<speed>] [<flags>]

Configure and attach a standard PC asynchronous I/O port using the National 8250, 16450, or 16550(A) chip or equivalent to the system, where:

<io_addr> is the comm port address; e.g., com1 = 0x3f8

<vector>  is the comm port IRQ value.  If it is suffixed by "_C" then the interrupt service routine for this port is chained to the server list for this IRQ.

<mode>    one of: slip, ax25, ppp, pkiss, nrs

<flags>   string of characters, specifying options:

c - do BPQ checksumming of ax.25 kiss packets

v - do Van Jacobson TCP header compression on slip intfc

f - force use of 16550a uart features (eg UM16C550 chip)

fN - set 16550a trigger level to N (1,4,8, or 14. Default=4)

n - use NRS-CTS protocol on nrs interface

 

Flag  for_mode  #define_needed_in_config.h

c     ax25      AX25 and POLLEDKISS

v     slip      SLIP and VJCOMPRESS

n     nrs       NRS

f     (any)     ASY

 

The UNIX version of "attach asy" is slightly different, such that:

<io_addr> is the Unix device name, e.g., cua0 or ttyS2.

<vector>  is ignored presently.

<flags>   include c,v,f, and n.  The fifo trigger level flag, "fN", is reinterpreted as providing a packet size.  The value can range from 0 to 255;  if it is 0, the original input mechanism is used, otherwise blocking reads are used with termios VMIN set to the specified value.  At the moment there is no error checking; if you set the buffer size smaller than VMIN you could lose incoming data.  Under some unix versions, setting it to anything other than a multiple of VMIN could cause problems.  The tradeoff here is that when the VMIN mechanism is used, input could be delayed by up to 1/5 second on a mostly quiet channel, but on an active channel JNOS will use *much* less CPU time and generally will be much more efficient.

 

attach axip <iface> <mtu> <ipaddress> [<callsign>]

Create a RFC1226 compatible AX.25 frame encapsulator for transmission of AX.25 frames over the IP.  This command is used to establish a point-to-point AX.25 'tunnel' between two systems.

<iface>   will be the name of the new interface,

<mtu>     is the maximum transmission unit for the interface,

<ipaddress> is the address of the system on the other side of  the 'tunnel,

<callsign> is the optional AX.25 callsign this station is listening on for frames to digipeat. Note that if you want cross-tunnel digipeating to work, each attached axip interface should listen to a different callsign.  These should also be different from other callsigns used on this station.

attach axip axip1 256 44.26.1.19 WG7J-15

 

attach kiss <asy_iface_label> <port> <label> [mtu]

Attach a second kiss interface on the serial port. This command allows the use of multiport TNCs. The first port should be attached by a prior "attach asy ..." command with <mode> set to ax25 or pkiss. Use pkiss if G8BPQ polled kiss mode is desired.  It is up to the tnc's firmware to select which port is at what baud.  For example, the KPC9612 uses the MYDROP command for this purpose.

<asy_iface_label>   is the name of the serial port interface.

<port>    is the port number (1-15) to use, and probably should be 1. (the original asy port is automatically port 0 !)

<label>   is the name for this second kiss port.

<mtu>     is an optional mtu, if different from the mtu on the  first kiss port.

# Attach a dualport tnc in kiss mode.

# Ports are labelled 'port1' and 'port2'

# Attach a PC asynch port (com1 in this example) attach asy 03f8 4 ax25 port1 512 256 9600

# Attach the second port on the multiport tnc attach kiss port1 1 port2

 

attach netrom

This makes available a pseudo interface to enable NET/ROM operations.  This command is automatically executed when the netrom server is started with the 'start netrom' command.

attach packet <softintr#> <iface_label> <maxqueue> <mtu> [ipaddress]

Driver for use with separate software "packet drivers" which conform to the FTP Software, Inc., Software Packet Driver specification.  See the Crynwr (TM) packet driver collection at ftp.crynwr.com, if your hardware (e.g. ethernet card) came without a packet driver.  [ipaddress] is an optional ip address for the  interface.  If not set, the system 'ip address' will be used.

Note that the packet driver is often loaded as a TSR in config.sys or autoexec.bat.  It is the driver that must be supplied with information such as hardware IRQ, i/o address, and software IRQ.  JNOS only needs to know the software IRQ value to interact with this driver. You must pick a software IRQ that is otherwise unused.  Values between 0x78 and 0x7f are often suitable.

Example: attach packet 0x7e eth0 5 1500

 

attach scc   AND   attach escc

G8FSL/PE1CHL driver for generic Z8530 cards, including DRSI cards.  Use escc if the Z85230 chip is installed, otherwise use scc.  Specify only one 'easy' or one 'init' command, and as many 'mode' commands as required.

attach scc <board label> baycom|drsi|opto <base address> <interrupt number> [t<timing channel>]

attach scc <board label> <#chips> init <base address> <spacing between SCC chip base addresses> <offset to channel A control register> <offset to channel B control register> <offset from each channels control  register to data register> <address of INTACK/Read Vector port. (0 to read from RR3A/RR2B)> <CPU interrupt vector number> <clock frequency (PCLK/RTxC) prefix with "p" for PCLK> <optional hardware type> <optional parameter for special hardware> <optional t<tick chan> specification to use a channel to improve timing>

attach scc <board label> <SCC channel number to attach, 0/1 for first chip A/B> <mode, can be "slip", "kiss", "ax25" or "nrs"> <interface label> <maximum transmission unit, bytes> <interface speed, e.g, "1200". prefix with "d" when an external divider is available to generate the TX clock.> <buffer size> <optional callsign used on radio channel> <optional s flag to specify software-derived DCD detection>

Example: (see sccg8fsl.txt and scc.c, in JNOS src zipfile, for more info)

attach scc scc0 drsi 300 7  (easy form of init command which follows)

attach scc scc0 1 init 300 16 2 0 1 0 7 p4915200 8

attach scc scc0 0 ax25 vhfa 235 d1200 512 k5arh-3 s

attach scc scc0 1 ax25 vhfb 235 d1200 512 k5arh-2 s

 

attach bpq init <vec> <stream>

attach bpq <port> <label> [<mtu> [<callsign>]]

The JNOS BPQ driver allows JNOS to attach interfaces directly to bpqcode without having to use the packet driver interface and  the nodedrv4.com TSR. JNOS will talk to bpqcode using the bpq_host interrupt code in version 4.00 and up of bpqcode. This eliminates the extra memory and processing time used by nodedrv4.com to send packets between JNOS and bpqcode.

The "attach bpq init" sub-command attaches the bpq_host TSR driver,  which is accessed via software interrupt <vec> (in hex) for BPQ stream <stream> (in decimal).  "attach bpq init" may only be called once.

The second form of the "attach bpq" sub-command is called once per <port>. It associates a BPQ <port> number with an interface name <label>. <mtu> may not exceed 256, and defaults to the ax.25 paclen value. <callsign> defaults to the ax25 mycall value, and establishes the callsign used by this BPQ port.


attended [off | on];

 

Displays or sets the global "I am present" flag in JNOS.  This flag is used in the welcome header for incoming ttylink connections.


axui  <iface>  [<unproto_call> [digipeater_string]];

 

The axui command allows the console user to create a session that sends UI (unproto) packets to <unproto_call> via interface <iface>, from lines entered at the keyboard, and displays received UI packets.  A split-screen session is created where possible.  The default <unproto_call> is "ID".  At most one axui session is permitted.  AXUISESSION must be #define'd in config.h to enable this command.

 

An axui session also allows a few commands, which begin with '/' in column 1:

 

/c newcall      change the unproto call to <newcall>

/i iface        change to interface <iface>

/? or /h        display a help message

/t              toggle display of the time a packet was received

/q, /b, /e      close the axui session

 

Example:

To use digipeater n5knx-5 for a local ARES unproto net, type: axui ax0 ares n5knx-5


ax25 <subcommands>;

 

ax25 alias

ax25 bbscall

ax25 bc

ax25 bcinterval

ax25 bcport

ax25 bctext

ax25 blimit

ax25 dest

ax25 digipeat

ax25 filter

ax25 flush

ax25 heard

ax25 hearddest

ax25 hport

ax25 hsize

ax25 irtt

ax25 kick

ax25 maxframe

ax25 maxwait

ax25 mycall

ax25 paclen

ax25 pthresh

ax25 reset

ax25 retries

ax25 route

ax25 route drop

ax25 route mode

ax25 status

ax25 t2

ax25 t3

ax25 t4

ax25 timertype

ax25 version

ax25 window

 

All AX.25 parameters are configurable per interface.  Commands of the form 'ax25 <command>' set the default or global values.  Use the 'ifconfig <iface> ax25 <command>' form to set or show the interface-specific values.

 

To set the system default ax.25 parameters, you must do so BEFORE attaching interfaces.  After attachment, you must use the 'ifconfig <iface> ax25' command form to show or change values for that interface.

THIS IS A CHANGE FROM THE BEHAVIOR EXHIBITED PRIOR TO JNOS VERSION  1.10X16, RELEASED 08FEB94.

 

ax25 alias <aliascall>

The alias command shows or sets the system's alias call. If netrom is enabled, this modifies the same call as the 'netrom alias' command.  The 'ax25 alias' command is NOT needed in that case!  If netrom is not used, this command allows an alias name to be set such that users can connect to it.  The alias is typically a short string and should not be a valid callsign, since any SSID is ignored when matching against <aliascall>.

Example:  ax25 alias knx

 

ax25 bbscall [<bbs_call>]

The bbscall subcommand sets or shows the current bbs callsign.

Connects to this callsign, when set properly, will "jump-start" * the mailbox.  That is, after the connect no additional packet need be sent to obtain the mailbox greeting.  This subcommand will automatically set the bbscall for all currently-attached AX.25-class interfaces with no bbscall set.  For bbscall to function properly, it must differ from the system alias/netrom alias, as well as the link address of the interface (usually set by 'ax25 mycall').

 

See also 'ifconfig <iface> bbscall <bbs_call>'.  Note that the bbscall  value is also used for the source address of ax.25 connections  initiated from the console, provided that the ax25 ttycall is not set, or that JNOS was *not* compiled with TTYCALL_CONNECT #define'd.

 

  #Example: (in the following order)

  'ax25 mycall N5KNX-1'

  'ax25 alias KNX'

  'ax25 bbscall N5KNX'

  'attach <(all interfaces)>'

  or

  'ifconfig <name> bbscall <bbscall>'   sets only iface <name>

 

ax25 bc <iface>

The bc command  forces an immediate broadcast on the given interface.  The particular interface or port must have been enabled with the ax25 bcport command first. If this is so, the ID will be broadcast as set with the ax25 bctext commands.

ax25 bc port1

 

ax25 bcinterval [<seconds>]

The bcinterval displays or sets the time in seconds between broadcasts.  On display, both the interval and the countdown values are shown. Default = 600 (10 minutes).

 

ax25 bcport [<iface> [on | OFF]]

Display or set the active interfaces for ax.25 broadcasting (i.e. beacons).  If no interface is given, all interfaces with ax.25 beaconing enabled will be listed.  If interface is given, the status of beaconing for that interface is shown, or set according to the following on or off option.  Initial state is off.

ax25 bcport port1 on

 

ax25 bctext ["broadcast text"]

Display or set the default text to be sent for broadcast messages sent out every ax25 bcinterval seconds.  To compose a multi-line message, use \r between the text of each line, ie, "line1\rline2".

See also 'ifconfig <iface> bctext ["bctext"].

ax25 bctext "This is the beacon text!"

 

ax25 blimit [<value>]                             Default: 30

Display or set the default AX25 retransmission backoff limit.  Normally each successive AX25 retransmission is delayed by twice the value of the previous interval; this is called binary exponential backoff.  When 2^(retrycount) reaches or exceeds the blimit <value>, the retry interval is no longer increased.

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.  See also ax25 maxwait, and ax25 timertype.

#Set ax25 blimit to 15

ax25 blimit 15

 

ax25 dest [<iface>]

Display the destinations saved in the heard list, for all interfaces with heard list maintenance enabled, or for the just the specified interface.  See also "ax25 heard" and "ax25 filter N".

 

ax25 digipeat [<iface> [ON | off]]

Display or set digipeating per interface.   If no interface is given, all interfaces with digipeating enabled will be listed. If interface is given, the status of digipeating for that interface is shown, or set according to the following on or off option.  If cross-band or AXIP digipeating is to be allowed, digipeating must be enabled on both interfaces involved.  Default is on.

# Display digipeat status of port1

ax25 digipeat port1

 

ax25 filter N                                       Default: 0

Sets the ax.25 heard list filtering value.  This is a global value that affects all ports with heard list maintenance set to ON.

     0  =>  log both source and destination callsigns

     1  =>  do not log source callsign

     2  =>  do not log destination callsign

     3  =>  do not log any callsign, i.e., disable all heard list updates

 

ax25 flush

Clears the AX.25 "heard" list (see ax25 heard and ax25 hport)

 

ax25 heard [<iface>]

Display the AX.25 "heard" list. For each interface that is configured to use AX.25 heard listing (see 'ax25 hport'), a list of all ax25_source addresses heard on that interface is shown, along with a count of the number of packets heard from each station and the time since each station was last heard. The maximum length of the heard table can be set with the 'ax25 hsize' command.  If interface is given, only the heard list for that interface is displayed.

ax25 heard port1

 

ax25 hearddest [<iface>]

Same as "ax25 dest [<iface>]".

 

ax25 hport [<iface> [ON | off]]

Display or set the status of the ax.25 heard feature.  If no interface is given, all interfaces with ax.25 heard enabled will be listed.  If interface is given, the status of ax.25 heard for that interface is shown, or set according to the following on or off option.  Default is on.

#Display port1 status

ax25 hport port1

 

ax25 hsize [<size>]

Set or display the size of the heard list table.  Default is 0 which means no limit.

 

ax25 irtt [<milliseconds>]

Display or set the initial value of smoothed round trip time to be used when a new AX25 connection is created.  The actual round trip time will be learned by measurement once the connection has been established.  Default is 5000ms.

#Set irtt to 10 seconds  (10000 milliseconds)

ax25 irtt 10000

 

ax25 kick <axcb>

Force a retransmission on the specified AX.25 control block.  The control block address can be found with the ax25 status command.

This is useful to reactivate connections that have long time-out values.

 

ax25 maxframe [<count>]

Establish the maximum number of frames that will be allowed to remain unacknowledged at one time on new AX.25 connections.

This number cannot be greater than 7. Without <count> it will display the current setting. Note that the maximum outstanding frame count only works with virtual connections. UI frames are not affected. Also note that for optimal performance, a value of 1 should be used.  Default is 1 frame.

 

ax25 maxwait [<msec>]

Sets a limit (in msec) to the retry timeout values.  Default = 30000 (30 secs).  A value of 0 disables maxwait.

 

ax25 mycall [<ax25call>]

Display or set the default local AX.25 address.  The standard format is used, (e.g. WG7J or KA7EHK-5).  This command must be given before any attach commands using AX.25 mode are given.

ax25 mycall wg7j-3

 

ax25 paclen [<size>]

This sets the default paclen used when attaching interfaces that will carry AX.25 connections. See also 'ifconfig <iface> ax25 paclen'. Default is 256 bytes.

This parameter limits the size of I-fields on new AX.25 connections.  If IP datagrams or fragments of datagrams larger than paclen are transmitted, they will be transparently fragmented at the AX.25 level, sent as a series of I frames, and reassembled back into a complete IP datagram or fragment at the other end of the link.  IP datagrams will not be affected if this parameter is greater than or equal to the MTU of the associated  interface.

If NET/ROM communication is configured, the NetRom MTU value should be Paclen - 20. !!!  The Net/Rom header takes 20 bytes, and is part of the AX25 data.  Default netrom mtu is 236.

Note1:  the AX.25 Level 2 Version 2 definition specifies a maximum paclen of 256 bytes. Some systems are not equipped to handle larger packets (e.g. G8BPQ based systems), so be careful when using this parameter.

 

ax25 pthresh [<size>]

 

Display or set the poll threshold to be used for new AX.25 Version 2 connections.  The poll threshold controls retransmission behavior as follows. If the oldest unacknowledged  I-frame size is less than the poll threshold, it will be sent with the poll (P) bit set if a time-out 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 time-out 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 time-out 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 time-out might have been caused by a lost acknowledgment.  This is obviously a tradeoff, so experiment with the poll threshold setting. The default is 128 bytes, one half the default value of <paclen>

 

ax25 reset <axcb>

Delete the AX.25 connection control block at the specified address. This deletes a connection and everything associated with it. The control block address can be found with the 'ax25 status' command.

 

ax25 retries [<count>]

Limit the number of successive unsuccessful retransmission attempts  on  new AX.25  connections.  If this  limit is exceeded, link re-establishment is attempted.  If the link can't be re-established in <count> times, then the connection  is abandoned and all queued data is deleted.  Default is 5.

 

ax25 route [<subcommand>]

Without optional subcommands, display the AX.25 routing table  that specifies the digipeaters to be used  in reaching a given station.

ax25 route add <target> <iface> [[via] digis ...]

ax25 route perm <target> <iface> [[via] digis ...]

Add an entry to the AX.25 routing table.  The route added may be replaced automatically by a new one, unless "perm" is used instead of "add".  Replacement may occur when digipeaters are specified in an AX25 link from the node or a connection is received from a remote station via digipeaters.  Such automatic replacement is usually desirable; use "route add perm ..." to prevent this where necessary.

<target> is the destination call to reach via digipeaters.

<iface> is the interface to use for this route, i.e. JNOS allows different digi routes for different interfaces. [digis...] is a list of one or more digipeaters, separated by spaces and/or commas.  The keyword "via" is optional.

ax25 route add k7uyx-1 port1 wg7j wa7tas n7dva

ax25 route perm k7uyx-1 port1 wg7j wa7tas n7dva

 

ax25 route drop <target> <iface>

Drop an entry for <target> from the AX.25 routing table.  ax25 route drop k7uyx-1 port1

 

ax25 route mode <target> <iface> [vc|dg|interface]

Sets the interface ip mode to one of  vc | datagram | interface for target.  This indicates how ip links to the destination call <target> should be established.  If nothing is given for a certain destination or target, the interface default mode is used, which defaults to datagram.  (See also the 'mode' command).   

vc is a virtual circuit (ax25 connected mode, meaning that ip frames are sent using ax.25 connections) datagram  is unconnected mode, (AX25 UI frames). interface is the default interface mode, as set with the 'mode' command.

ax25 route mode k7uyx-1 port1 vc

 

ax25 status [<axcb>]

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 is shown in more detail. Note that the send queue units are frames, while the receive queue units are bytes.

 

ax25 t2 [<milliseconds>]                           Default: 1000

Display or set the AX.25 "resptime" timer. Value is in milli-seconds. Default is 1000ms, and minimum is 0ms.  This timer lets JNOS eliminate some redundant transmissions and optimize what it sends by possibly adding ACKs to I-frames, by delaying the trans-mission of packets.  A value of zero disables the use of the t2  timer, as does the use of datagram mode (UI) [see mode command].

 

ax25 t3 [<milliseconds>]                           Default: 0

Display or set the AX.25 idle "keep alive" timer. Value is  in milliseconds. Default is 0, i.e. no 'keep-alive' polling.

 

ax25 t4 [<seconds>]                                Default: 300

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. Default = 300 seconds (5 minutes).

 

ax25 timertype [LINEAR|exponential|original]

Sets or displays the type of timer used for retransmission and recovery.  Linear means that each retry will use a time-out that is RTT greater then the previous time-out. I.e. 4 sec, 8 sec, 12 sec, 16 seconds etc.  Exponential means that each retry will use a time-out that is twice as large as the previous time-out. I.e. 4 seconds, 8 seconds, 16 seconds, 32 seconds etc.

Original means that each retry will use a time out that is twice the RTT, i.e. 4 seconds, 8 seconds, 8 seconds, 8 seconds, etc.

Default is linear.

ax25 timertype exponential

 

ax25 ttycall [ttycall]

Set or display the tty-link callsign for direct keyboard access. Remember to have both 'attended on' and 'mbox attend on' to be able to use this function.  The ttycall value is also used for the source address of ax.25 connections initiated from the console,  provided that JNOS was compiled with TTYCALL_CONNECT  #define'd.

 

ax25 version [n]

Display or set the version of the AX.25 protocol to attempt to  use  on  new connections.  Version 1 is the version that does not use the poll/final bits.  Default is version 2.

 

ax25 window [<size>]                             Default: 512 bytes

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 processed immediately and are not placed on the receive queue.  However, when an AX.25 connection carries both interactive and network packet traffic, an RNR generated because of backlogged interactive traffic will also stop network packet traffic from being sent.


bbs;

 

The 'bbs' command connects you to your own mailbox system.  It is a shortcut to typing: telnet localhost

 

If JNOS was compiled with both MD5AUTHENTICATE and EXPEDITE_BBS_CMD #define'd, then it is possible to get logged into the mailbox automatically.  You must add an entry to "net.rc" with the systems hostname, the desired userid, and the corresponding password.

Example:

 

n5knx.ampr.org n5knx passemoi


bulletin <subcommand>;

 

bulletin check

bulletin date

bulletin holdold

bulletin loophold

bulletin return

 

The 'bulletin' command establishes how JNOS treats incoming bulletins based on their R: line headers.  These commands are available when JNOS was compiled with RLINE #define'd, and are highly recommended for BBS operations.  While many defaults are OFF for historical reasons, I think most BBS operators will want to turn these features ON!

 

bulletin check [on | OFF]

Displays or sets a flag indicating bulletin forwarding is to be optimized.  If <ON>, an incoming bulletin's R: lines are scanned for BBSes to which we forward.  If any are found, the bulletin is marked as having already been forwarded to that BBS.  When invoked with no options, the list of BBSes to which we forward is also displayed.

Note: only the first NUMFWDBBS (currently 8) BBSes in forward.bbs  are checked in the R: lines, hence the most active BBSes should occur first in forward.bbs.

 

bulletin date [on | OFF]

Displays or sets whether the date associated with a message is the originate date (if ON), or the date received (if OFF).  The originate date is obtained from the last R: line, and should yield better operation of the bulletin expire mechanism.  See also

 'bulletin holdold'.

 

bulletin holdold [#days]

Displays or sets the number of days since message origination, above which an incoming bulletin is placed into a hold state. A held bulletin is visible only to the sysop, and has a "X-BBS-Hold: Age" header added.

This feature only works when 'bulletin date ON' is in effect.

 

bulletin loophold [<count>]                              Default: 2

Displays or sets a counter which, if exceeded by the number of times our call appears in a message's R: line headers, causes the message to be Held to avoid a message-forwarding loop.  A held message is visible only to the sysop, and has a "X-BBS-Hold: Loop" header added.

 

bulletin return [on | OFF]

Displays or sets how a message's return address is obtained.

If ON, the return address is obtained from the last R: header line when available.  If OFF, sender%forwarding.bbs@mycall is used.

Note that for the mailbox SR (send-reply) command to work, the system's rewrite file must be capable of handling the '%' symbol.

A recommended rewrite rule is: *%*@YOURCALL* $1@$2 r


callserver hostname [hostname>];

 

Sets the host address of the system to be querried by the "callbook" or mailbox "Q" command.  The specified server system responds at tcp port 1235.  <hostname> may be that of the local system if a server has been started with the "start" command.  See the  "readme.now" file for further information that pertains to QRZ, SAM, and Buckmaster cdrom databases.


cd [<directory>]

Changes the current directory to <directory>, which must be an existing directory on the local machine.
The directory specified can be relative to the current directory, or absolute, with the name beginning at the DOS root (/).

Without an argument, 'cd' simply displays the current directory without change.

The 'pwd' command is an alias for 'cd'.


close [<session_number>]

Close the specified session. If you are running only one session, entering 'close' without arguments will close the session. If you have multiple sessions, entering 'close' without arguments will initiate a close on the current session.
If you are running multiple sessions, the 'session' command will display a list of these sessions.
Entering 'close' with a session number argument will initiate a close on the specified session.
On an AX.25 session, this command initiates a disconnect.
On an 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 host to initiate a close (QUIT to FTP, or the logout command appropriate for the remote system in the case of Telnet).

If you are in an FTP or Telnet Converse session, you will have to press <F10> to escape to the "net>" prompt to issue the 'close' command. When either FTP or Telnet sees the incoming half of a TCP connection close, it automatically responds by closing the outgoing half of the connection. 'Close' is more graceful than the 'reset' command, in that it is less likely to leave the remote host in a "half-open" state.


cls


Clear the Session Manager screen.


comm <asy_iface> <"text_string">;

 

Sends "text_string", followed by a CR character, to the specified asynch interface.  Normally, this command is used to place a TNC into KISS mode when JNOS is started, but it may also be useful to send AT commands to attached phone modems.

 

Example 1:  Ensure kiss mode is on:

     comm tnc "kiss on"

     comm tnc "restart"

     pause 4

     param tnc txdelay 10

 

Example 2:  have telephone modem answer on first ring:

     param dialup up

     comm dialup "atz e0 s0=1"

     pause 2

     start tip dialup modem 360


connect <iface> <destination> [<digi1,digi2...digi3>];

 

Initiate an ax25 connection at interface <iface> to <destination>.  Use the "ports" command when in the mailbox or mailboxto discover the proper id of <iface>.  <destination> may be either callsign-ssid or an alias.  Note that there is only a 'space' between <destination> and <digi...>.

 

Examples:

c ax0 n5knx-2   -> connect to n5knx-2 on port ax0

Also see Connect


convers <subcommands>;

 

convers channel

convers drop

convers filter

convers filter mode

convers filter [ipaddress | hostname]

convers host

convers interface

convers link

convers xlink

convers [u|h]maxq

convers maxwait

convers motd

convers mycall

convers online

convers setinfo

convers t4

convers tdisc

 

These commands configure the network conference server.

 

convers channel [<default_chan_number>]           Default: 0

Displays or sets the default channel number, that is, the initial channel to which new users are assigned.

convers channel 2

 

convers drop [<addr>]

Drop the remote convers link to <addr>.  See also 'convers link'. If <addr> is not given, all links are dropped.

convers drop 44.26.1.19

 

convers filter                           Default: refuse (nobody)

Set how the convers node will respond to connect requests.

 

convers filter mode [accept | refuse]

Sets or displays the filter mode.  'filter mode accept' allows links from only the hosts in the filter list.  'filter mode  refuse' allows links from all hosts except those in the list.

 

convers filter [ipaddress | hostname]

Builds the filter list used in conjunction with the 'convers filter mode' command.

 

convers host <name>

Displays or set the convers hostname as will be used when announcing the system to conference users or remote links. 

Maximum length is 10 chars, but if you want to stay compatible with JNOS.EXE based convers servers use a maximum of 8 character for the convers host name (unless the system runs JNOS-v1.04 or later).

If the 'hostname' gets set and the 'convers host'  isn't set yet, it will be set to the first 10 chars of the 'hostname'. After this, if any sub domains (i.e. periods) exist in the hostname, the convers hostname will be terminated at the right-most period. e.g. If  'converse host' is not set, and 'hostname jnos.wg7j.ampr.org' is given, then after this the converse hostname will be 'jnos.wg7j'.

convers host Corvallis

 

convers interface [<iface>] [on|OFF]

Displays or sets the active convers interfaces. This command needs to be given for each interface that which will allow connections to the conference call (see 'convers mycall'); e.g., this command can be used to allow conference call access only on

the user ports but not on the backbone/linking ports.  This can also be useful to avoid confusion when different nodes have the same conference call.  (Locally, we use the call 'QSO' for the conference server for different nodes, and ran into problems when a user tried to connect to it from a backbone node. All of a sudden two nodes were answering the connect !)  Default is off.

convers interface port1 on

 

convers link [<addr> [port] [name]]

convers xlink [<addr> [port] [name]]

 

If no <addr> is given, display the list of linked nodes with link status and statistics indicated.  If <addr> is given, add a convers link to another (remote) conference server.  The link is LZW-compressed if xlink, instead of link, is specified

 (and XCONVERS was #define'd at compile-time).

<addr> is the ip address or hostname of the remote server to which to link. [port] is the tcp port number to use for the server connection. [port] defaults to 3600 if the link command is used, and 3601 if the xlink command is used. [name] is the optional name that will show up in the links listing shown with the '/links' command if the link has not yet been established. [name] can be a maximum of 10 characters; the first character must be a non-integer.

After the link has been established, the name will be set to the name with which the remote system introduced itself. convers link 44.26.1.19 Testing

 

convers [u|h]maxq [<bytes>]

Display or set the upper limit for the number of bytes that can be queued up waiting for transmission on a connection to another server.  If there is more data than this limit, the connection to the other server will be closed.

You are able to set individual limits for users and hosts with 'convers hmaxq' and 'convers umaxq'.  If set to 0, there is no limit, otherwise connections will be reset if there is more than the maxq value data outstanding on the connection.  The  connections will be RESET instead of gracefully closed.

Default values are umaxq of 1024 and hmaxq of 5120.  Note that any changes will only affect new connections, not existing connections.

 

convers maxwait [<seconds>]                        Default: 10800

Display or set the upper limit for the time the system will wait to reestablish a disconnected convers link that originated at this system. Time is given in seconds.  convers maxwait 600

 

convers motd ["<yourmessage>"]

Set or show the message of the day for the convers server.  This message is displayed when users connect to the server.

NOTE: this option is obsolete in recent convers implementations. Instead, the contents of the file /spool/convmotd.txt are displayed.  This filename can be changed by setting the ConvMotd string in nos.cfg.

 

convers mycall <mycall>

Display or set the 'conference call'.  <mycall> is a separate ax.25 callsign.  If set, users can connect to it to get immediately connected to the conference bridge. However, each port or interface that this call should be allowed on should be enabled with the 'convers interface' command.  Conference call connections bypass the regular node interface.  This is independent from the settings of 'mbox convers' or whether the network conference server has been started. See also 'convers t4'.

convers mycall QSO

 

convers online [long | call | @host]

Display a list of convers users known to the convers server.  This is the same report as a /who listing made from within the convers facility.  The default report is a "quick" format listing of the connected users.  The "long" option specified a long-format report, which can be restricted to a particular "call" or "host".

Example:  conv on @luzana   -or-   conv on wu3v   -or-   conv on

 

convers setinfo [yes | NO]

Display or the set the ability of conference users to change their personal info as stored in /finger/dbase.dat.  This sub-command is only available when CNV_CHG_PERSONAL was #define'd when JNOS was compiled.

 

convers t4 [<seconds>]                             Default: 7200

Display or the set the conference call connection T4 timer.  t4 is the 'redundancy timer' for ax.25 connections to the conference server.  This allows you to set a different inactivity time-out for ax25 node and conference connections. Default is

7200, i.e. 2 hours. convers t4 900

 

convers tdisc [<seconds>]                           Default: 0

Display or the set the conference call general redundancy timer that applies to all connections to the conference server.

Connections which are idle longer than <seconds> will be disconnected.  Default is 0, i.e. disable idle timeouts. convers tdisc 1200

 

Files used by the convers facility:

Keyword       Default value        Usage

ConvMotd      /spool/convmotd.txt  Connect greeting.

Cinfo         /finger/dbase.dat    Convers user personal info

Cinfobak      /finger/dbase.bak    Previous Cinfo file (after update)

Channelfile   /spool/channel.dat   Channel number to name mapping  --            /spool/help/convers.hlp Help file (/help command)

Cinfo line format:  <name|call> <personal data, i.e., QTH, etc.>

Channelfile line format: <channel_number> <channel_name>

 

Note: Converse users often wonder why the /help report is not complete. This is because the default compilation options for convers.c include "noblocking".  This results in JNOS dropping data destined for any output queue that exceeds certain length limits, and thus ensures that JNOS will not run low on buffer space due to the inability of a slow RF link to process the output queue fast enough.  The limits at which lossage occurs depends on how a user connects to JNOS: telnet users are limited by the tcp window size, ax.25 users are limited by the JNOS 'ax25 window' setting, and the local console is limited by the LOCSFLOW constant (2048).  The convers.c source could be edited to #undef  noblocking, and recompiled in an attempt to rectify this limitation, but (worse?) instability might result!


copy <file> <newfile>

Copies the filename to the destination new filename.
Functions the same as the DOS copy command.


delete <filename>;

 

Deletes the specified file.  <filename> may include a complete path.  Functions the same as the DOS Delete command.


detach <interface>


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.

Because of certain design limitations, an interface should be detached only while it is idle, otherwise there is a (small) risk that an invalid interface pointer could be used to modify memory resulting in a crash (under UNIX) or low-memory-address corruption under MSDOS. For example, a packet may have to be retransmitted after an ack-timeout, but if the interface no longer exists Jnos gets confused...

Neither the encap nor the loopback interfaces can be successfully detached. However, beginning in Jnos 1.11e, a detach of the encap interface does result in all associated routes being deleted.

This should aid those gateway systems needing to update their encapped routes periodically: detach encap, then issue the new route commands.

dir [<dirname>]

List the contents of the specified directory on the console. If no argument is given, the current directory is listed.
Note that this command works by first listing the directory into a temporary file, and then creating a 'more' session to display it. After this completes, the temporary file is deleted.


disconnect

 

Disconnect the session


domain <subcommand>;

 

domain addserver

domain cache clean

domain cache dump

domain cache list

domain cache size

domain cache wait

domain dns

domain dropserver

domain listservers

domain look

domain maxclients

domain maxwait

domain query

domain retries

domain subnet

domain suffix

domain trace

domain translate

domain ttl

domain update

domain verbose

 

 

The domain commands control and show the working of the name  to Internet address mapping software (referred to as DNS: Domain Name Service).  JNOS has both a DNS client and a server.  The server will answer queries from data in the domain cache, and from information stored in the DOMAIN.TXT file.  The DNS server is only available when DOMAINSERVER is #define'd in config.h, but the DNS client is always available. 

 

domain addserver <hostid> [<timeout>]

Add a domain name server to the list of name servers.

<timeout> is an optional timeout setting in seconds for  this server.  If <timeout> is not included in the command, the value defaults to 3 * (tcp_irtt).  Servers are queried in the opposite order in which they were added.

Example:  domain addserver wg7j.ece.orst.edu 30

                domain addserver 128.193.48.1

                domain addserver ucsd.edu

 

domain cache <subcommand>

Following commands work on the domain cache. These are resource records held in memory. (described in  RFC1033/1034)

 

domain cache clean [<yes | NO>]

Displays or sets the discard of expired resource records. expired records have their time-out value decremented to zero.

Normally resource records get a default time-out value of 1800 seconds.  After this time they are  considered "old" and if referenced again the domain name resolver should be inquired 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. domain cache clean yes

 

domain cache dump

Immediately clears the domain cache.  This amounts to being a "flush".

 

domain cache list

This command shows the current content of the in-memory  cache of  resource records.

 

domain cache size [<size>]

Display or set the maximum size of the local  in-memory

domain cache. Default is 5.

domain cache size 10

 

domain cache wait [<secs>]Default: 300

Display or set the number of seconds which must elapse before the domain.txt file is updated from the resource records stored in the domain cache.  Upldating is controlled by the 'domain update' command (see also). 

 

domain dns [on|off]

Display or  toggle the state of the Domain Name Server.  If on, the system is active as a Domain Name Server. The system will then answer queries from other tcp/ip hosts regarding hostname to ip-address, and ip-address to hostname translations.   The dns subcommand is only available when DOMAINSERVER was #define'd when JNOS was compiled.

 

domain dropserver <hostid>

Remove a domain name server from the list of name servers.   You are  warned when you delete the last name server.

domain dropserver ece.orst.edu

 

domain listservers

List the currently configured domain name servers, along with statistics  on how  many  queries  and  replies  have been exchanged with each one, response times, etc.

 

domain look <search_text>

This command searches domain.txt and displays records matching <search_text>.  The suppoed <search_text> must match exactly, i.e., case is significant.  This subcommand is available only if MORESESSION was #define'd when JNOS was compiled.       

 

domain maxclients [<N>];

Command to limit loading, N=number of clients,  while acting as a Domain

Name Server.  Default is 6.

 

domain maxwait [<time-out>]

This sets a time-out value (1 to 255 seconds) to a query or domain name server.   This is not set for an already defined server but will be used for a newly defined name server.  Also the value is used for domain name lookups (E.g. when a user does a telnet to a host with the mailbox'T host' command).  Note that (PC based) name servers can have trouble finding records in a large database.  Default is 60 seconds.

domain maxwait 10

 

domain query [<hostid>]

Displays the results of a DNS query for <hostid>.  

 

domain retries [<retries>]

The retry value (number) limits the number of queries  sent 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 * time-out * number of domain servers defined); i.e., the delay between requesting a hostname to ipaddress translation and getting the answer can become very long if you use many servers, and set the time-outs/retries high !

Default is 2.

domain retries 1

 

domain subnet [ON | off]

This command works in conjunction with 'domain translate' to allow or disallow translation of any address ending in 0 or 255.

On systems which have a lot of subnets, turning off subnet translation can result in a considerable speedup when displaying routes with 'domain translate on'.

 

domain suffix [<domain suffix> | none]

Display or specify the default domain name suffix to be appended to a host name when it contains no periods.  For example, if the suffix is set to "ampr.org." and the user enters 'telnet ka9q', the domain resolver will attempt to  find 'ka9q.ampr.org.' If the host name being sought contains one or more periods, however, the default suffix is NOT applied if the last part of the name is less than 5 characters and contains only letters; e.g., 'telnet foo.bar' would NOT be turned into 'foo.bar.ampr.org.' 'telnet foo.ka9q' will be turned into 'foo.ka9q.ampr.org.' Note  that a trailing dot (.) is required for the suffix.  If the suffix is the string 'none' (without trailing period), the current suffix is cleared and forgotten.  Default is "ampr.org." domain suffix ece.orst.edu.

 

domain trace [on| OFF]

Display or set the flag controlling the tracing of domain server requests and responses.  This only works when console is enabled.  Default is off.

domain trace on

 

domain translate [on | OFF]

Display or set the flag that controls the translation of  ip addresses in dot notation into symbolic names.  The translation process makes heavy use of reverse domain name lookups.  Do not set this flag unless you have a good and fast connection to a domain name server.

domain translate on

 

domain ttl [ttl]

Select a default 'ttl' value to be applied to server responses than contain none.

 

domain update [on | off]

Controls whether or not domain.txt file is updated with server  responses.

 

domain verbose [on | off]

Display or set the flag controlling the return of a full name (on) or only the first name (dot delimiter) (off).  This is for

IP address to name translation only.  If off, home.wg7j.ampr.org. will show as 'home.wg7j', whereas if on it will show as  'home.wg7j.ampr.org'

domain verbose off


dump <hexaddress | .> [range];

 

The dump command shows memory in hex and ascii. Hex-address is a 32-bit value 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.  'dump .' displays memory starting at the end of a previous dump command.  This command is primarily useful for debugging.

dump 12fe0008


echo [accept|refuse];                              Default: accept

 

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 negotiated agreement to the contrary, neither end echoes data received from the other.  In this mode, a Telnet client session echoes keyboard input locally and nothing is actually sent until a CR 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 timesharing systems (e.g. UNIX) prefer to do their own echoing of typed input. (This makes screen editors work right, among other things). Such systems send a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet connection request.

 

If 'echo accept' is in effect, a client Telnet session will automatically return a DO ECHO response.  In this mode, local echoing and editing is turned off and each key stroke is sent immediately (subject to the Nagle tinygram algorithm in TCP).

 

While this mode is just fine across an Ethernet, it is clearly inefficient and painful across slow paths like packet radio channels.  Specifying 'echo refuse' causes an incoming WILL ECHO offer to be answered with a DONT ECHO; the client Telnet session remains in the local echo mode.  Sessions already in the remote echo mode are unaffected. (Note: Berkeley Unix has a bug in that it will still echo input even after the client has refused the WILL ECHO offer.  To get around this problem, enter the 'stty - echo' command to the shell once you have logged in).


edit [<filename>] ;

 

An ascii text editor is included the JNOS distribution.  A clone of the UNIX "ed" editor, is invoked from the console with the path to the file to be edited:

edit   c:/ftpusers

This option is enabled by compiling with EDITOR and ED #define'd. 

A full-screen console-only editor is available if JNOS is compiled with both EDITOR and TED #define'd.


eol;

 

eol [standard | null]                           Default: standard

Display or set Telnet's end-of-line behavior when in remote echo mode.  In 'standard' mode, each key is sent as is.  In 'null' mode, a NUL character is sent immediately after sending a CR.

This command is not necessary with all UNIX systems; use it only when you find that a particular system requires two CRs to end a  line.  In any case, the eol setting is only pertinent when in remote- echo mode, since otherwise a CR is translated to LF by JNOS' tty driver.


errors [ON | off];

 

Set whether the system will send messages about system errors and permission infringements to user 'sysop'.  Default is on.


escape  E[scape] [<char>|<integer>|off|on]

The escape command, when entered by itself, will display the character that is currently set as the escape character, and whether escape processing is enabled. This character is what will be used if you want to exit from the current session.
For instance, if you have started a "chat" session, and you don't get any response from the operator after waiting a few minutes, you can enter the escape character, followed by a <RETURN> or <ENTER>, and the session will be terminated. You
will then be returned to the MBOX prompt.
The escape character may be changed to one of your preference by entering "escape" followed by a <SPACE> and the character that will become the new escape character. This must be a single typed character (the <CTRL> key may be used in addition).
Alternatively, an <integer> corresponding to the decimal code for the escape character may be specified.
Escape processing can be enabled or disabled by specifying "on" or "off" as the only argument.

EXAMPLES
escape ^Z (the ASCII character <CTRL>Z)

escape X (the character "X" is the new escape)
esc 120 (the character "x" is the new escape)
escape off (suspend escape char processing)
escape on (resume escape char processing)


etelnet <host> [<port_number>] loginid password;

 

The 'etelnet' command is similar to the telnet command (which see), but it accepts the login id and password to be provided to the <host> system.  The etelnet command is available when JNOS was compiled with MD5AUTHENTICATE #define'd.  Etelnet will encrypt the password if the <host> system supports MD5 authentication (as indicated by a [hex_number] challenge value in its password prompt).  If no such challenge is provided, the password is sent "in the clear".

 

If you are telnetting to a port/service that does not provide a password prompt, then 'telnet' should be used instead of 'etelnet'.


ettylink <host> [<port_number>] loginid password;

 

The 'ettylink' command is similar to the ttylink command , but it accepts the login id and password to be provided to the <host> system should it request a login id and password.  The default port, 87, on a JNOS system does NOT request these, so using ettylink to this port/application is not recommended.  The ettylink command is available when JNOS was compiled with MD5AUTHENTICATE #define'd.

Ettylink will encrypt the password if the <host> system supports MD5 authentication (as indicated by a [hex_number] challenge value in its password prompt).  If no such challenge is provided, the password is sent "in the clear".


exit [return_code];                                  Default: 0

 

Causes the JNOS program to terminate when at the JNOS> prompt.

When shelled to DOS, causes a return to the JNOS> prompt. When terminating the program, an "Are you sure?" query is given. Enter "y(es) <cr>" to end the program.  Any other response returns to JNOS.

 

If a <return_code> numeric value is provided, this value is returned to the caller of JNOS.  This is typically a batch file, which may then take action depending on this code.  For example:

:rerun

jnos110i  -u1 -g2

if errorlevel 100       goto remote_exit

if errorlevel 99        reboot

if errorlevel 1         goto rerun

goto exit

:remote_exit

:exit

 

In this example, issuing "exit 99" would run the reboot command, "exit 1" would restart JNOS, and "exit" or "exit 0" would exit the batch file that invoked JNOS.  The remote command (c.v.) when given the exit parameter, will use a return code of 100.


expire <subcommand>;

 

expire [now | interval]

 

The 'expire' command is used to invoke the process which deletes old BBS messages.  The mailboxes or newsgroups to be expired, and the age (in days) after which a message may be deleted, are specified in the Expirefile (defaults to /spool/expire.dat).

 

expire [now | interval]

Begin the expire process immediately, if <now> is specified, or every <interval> hours in the future (but no immediate expire is done). If no arguments are provided, the current expire interval  is displayed.

 

Example:  To run expire at 04:30 each morning, place these commands into your autoexec.nos file

                   at 0430 "expire 24"

                   at 0431 "expire now"

 

Format of Expirefile:

 

#comment line

mbox_name  number_of_days_to_retain_messages mbox_path  number_of_days_to_retain_messages !news.group.name  number_of_days_to_retain_articles

 

If the number of days is omitted, 21 is used.  Also, if newsgroups are specified, the associated History file is expired as well, but the number of days used is the maximum of all the days provided for newsgroups in the Expirefile.

 

Example:  allusa 7

               amsat 10

               !swap 10

               !rec.radio 7

 

See Also:  oldbid


finger <username[@host]> [<username[@host]> ...];

 

Issue a network 'finger' request for <username> at <host>.

Finger is typically used to find out specific information about users on local or remote hosts.  By fingering a user, you can find out such information as a user's name, his mailing address, telephone number, QSL information, and other useful facts.  This information is kept in a separate text file for each user.

As our network expands, this application will help hams find out information about each other quickly and efficiently.

The finger command under NOS can be issued in any of the following three ways:

 

finger <username>           >> Examples: finger n8fow

finger <username>@<host>                 finger n8fow@n8fow

finger @<host>                           finger @n8fow

 

The first form of the command is used to find out information about a user at the local host, namely your own system.  It is useful for testing 'finger' on a system that you know is running.

The second form of the command is used to find out information about a user at a remote host.

If you don't know the name of a particular user at a remote host, you can use the third form of the command.  This command returns a list of all 'finger' files on the remote system.

To enable the finger server so that others may query the users on your system, you must give the 'start finger' command.  The finger files that provide information on a <username> are located by default in \finger (see Fdir and Fdbase in nos.cfg), and are ordinary ASCII files created by the sysop.  Also, if the SAM or QRZ callbook server is configured, <username> is looked up in the callbook and displayed if the search is successful.

Certain <username> strings are taken to mean that a JNOS function should be invoked to display system information, depending on what configuration options were used to build the server JNOS:

<username>    config_opt      output_same_as

 

conf         CONVERS          conference bridge /WHO

links        CONVERS          conference bridge /LINKS

mbxinfo      MAILBOX          'I cmd in mailbox'

mhold        HOLD_LOCAL_MSGS  'mbox holdlocal'

mstat        MAILBOX          'mbox mailstat'

mpast        MAILBOX          'mbox past'

users        MAILBOX          'mbox status'

usersdat     USERLOG          'finger x' forall users in users.dat

mailfor      MAILFOR          'mbox mailfor'

info         ALLCMD           'info'

ax25         AX25             'ax25 stat'

aheard       AX25             'ax25 heard'

netrom       NETROM           'netrom stat'

iheard       all              'ip heard'

memstat      all              'mem stat'

socket       all              'socket'

tcpview      all              'tcp view bytes'

asystat      ASY              'asystat'

pkstat       PACKET           'pkstat'

rip          RIP              'rip stat'


fkey;

 

The 'fkey' command allows you to program the function keys and several other cursor control keys.

 

fkey

This command produces a listing of the currently defined  function keys.

 

fkey <key_number> [<value> | "<string>" ] Display or define a new setting for a function key.

 

Control characters can be included in the string by prefixing with the ^ character (SHIFT 6 on most keyboards); e.g. CR is entered as ^M.  To insert a ^ in the string, enter ^^.

 

Note: If the first character of a function key definition is '~' then JNOS switches to the Command session and processes the rest of the definition (if any).

 

>> Examples:  fkey 87 "trace tnc0 211^M"  (SHIFT-F4 turns trace on)

fkey 72 ""                  (disable up arrow)

fkey 113 "~"                (Alt-F10 switches to  the Command session)


ftp <hostname> [<scriptfile>];

 

ascii 

batch [y|n]

binary

cd path

cdup

dele file

dir spec

get file

hash

help

lcd path

ldir spec

listSame

lmkdir

ls spec

mdtm file

mget spec

mkdir dir

mput spec 

nlst

put file

quit

reclzw

reget file

restart pos

resume file

rmdir dir 

rput file

 

The ftp command is used to make a TCP connection with <hostname>, and then use File Transfer Protocol to exchange data between the systems.

Once the connection is established, a small set of commands is used to manage the file exchange.  A command is executed locally if it is a local client command.  Otherwise, the command is sent to <hostname> for execution.  If <scriptfile> is provided, all commands are obtained from the indicated file; otherwise, they are read from the console.

The following are commands supported by JNOS clients and servers:

 

?Display all available command names.

 

ascii     

Treat the data to be transferred as ASCII text, so that line endings are used suitable to the receiving system.

 

batch [y|n]

Query the state of the command batching flag, or set it if <y|n> is given.  Batching involves sending as many commands as possible before waiting for responses from  <hostname>.

 

binary    

Treat the data to be transferred as binary data, that is, verbatim data not to be changed while storing on the receiving system.

 

cd path   

Change to directory <path> on system <hostname>.

 

cdup       

Change to immediately-superior directory on system <hostname>.

 

dele file    

Delete <file> on the remote system.    

 

dir spec  

List the contents of the current directory on the remote system, in a verbose manner.  If <spec> is given, the subset that matches this file specification is listed.  Example:  dir *.exe

 

get file  

Transfer <file> from remote system TO the local system.

 

hash [y|n]

Query the state of the hashmark flag, or set it if <y|n>  is given.  Hashmarks are written to the screen for each  1000 bytes written to the local file system.

 

help      

Same as ?

 

lcd path  

Change to directory <path> on the local system.

 

ldir spec 

Same as the dir command, but applied to the local system.

 

listSame

as dir command.

 

lmkdir dir

Create directory <dir> on the local system.

 

ls spec   

List just the names in the current directory on the remote system.  If <spec> is given, the subset that matches this file specification is listed.  Example:  ls *.exe

 

mdtm file   

Display the modified-time in GMT for <file> as yyyymmddhhmmss.

 

mget spec 

Transfer all files matching <spec> from the remote system TO the local system.

 

mkdir dir 

Create directory <dir> on the remote system.

 

mput spec 

ransfer all files matching <spec> to the remote system FROM the local system.

 

nlst      

Same as ls command.

 

put file  

Transfer <file> to the remote system FROM the local system.

 

quit      

Close the TCP connection to <hostname> and exit the ftp cmd.

See also the JNOS "abort" command.

 

reclzw [y|n]

Query the state of the ftp client LZW-supported flag,  or set it if <y|n> is supplied.  LZW compression is only supported for ASCII-type transfers.

rename from to  Rename the file named <from> to the name <to>  on the remote system.

 

reget file    

The RFC959-endorsed way to restart an interrupted get. No check is made to assure the file is consistent between  systems; the size of the local <file> is provided to the remote system and a get is issued relative to this point.

 

restart pos    

The RFC959-endorsed way to restart a transfer is to first establish a starting offset position and then issue a transfer command to resume at that position.  The dir command would be useful to obtain the offset to specify in the restart command, and

 then a put <file> would cause <file> to be sent starting from the given position.

 

resume file

Restart an interrupted transfer of <file> from the remote system to the local system.  Checks are made to assure the file is consistent between systems.  This is a JNOS extension to the FTP standard.  Other non-compatible equivalents exist in other implementations (c.f. wu-ftpd).

 

rmdir dir 

Delete (remove) directory <dir> on the remote system.

 

rput file 

Resume an interrupted transfer of <file> to the remote system

FROM the local system.  Checks are made to assure the file is consistent between systems.  This is a JNOS extension to the FTP standard.  Other non-compatible equivalents exist in other implementations (c.f. wu-ftpd).

 

sendlzw [y|n] Query the state of the ftp server LZW-supported flag, or set it if <y|n> is supplied.  LZW compression is only supported for ASCII-type transfers.

 

type [a|b|l] Query the current transfer type value, or set it if <a|b|l>  is given.  Use <ascii>, <binary> (or <image>). <logical 8>  is also supported.

 

view file  Transfer <file> from the remote system TO the local system's console screen.  The file is assumed to be an ASCII file!

 

verbose [n] Query verbosity of error handler, or set it if integer <n> is given. 

    0 => error msgs only,

    1 => final msg only,

    2 => control msgs too,

    3 => control msgs + hash marks,

    4 => control msgs + byte counts.

 

Since unrecognized commands are sent to the remote ftp server for evaluation, additional commands may be available, depending upon the ftp server implementation.  For example, the WU-FTPD may accept site-written extensions, and thus allow:  site exec <extended_cmd> <cmd_args>.

 

The remote ftp server will require a login name and password.  These values may be provided by a file called "net.rc" by default (see Hostfile in nos.cfg).  The file has entries in this format:

remote_hostname   login_name   password but password may be omitted to instead have the client ftp prompt for it.

 

Many systems, including JNOS, will reduce the amount of extraneous messages sent, if the password is prepended with a '-'.  However, JNOS does not support this when an anonymous login occurs via an MD5 authentication exchange.


gate <subcommands>;

 

gate status

gate maxcli

gate tdisc

start gate port hostname

 

The gate command, available when JNOS is compiled with TCPGATE #define'd, manages the tcpgate server, which accepts connects to certain tcp ports, and logically redirects them to another host and/or tcp port.

Thus it is only one half of a proxy server!

When ivoked without arguements, gate displays the current state of any active connections through the tcpgate code.  On the left is the originating address and port, on the right is the destination address and port, as determined by the 'start gate...' command, and in the center is the port that was used by tcpgate to trap the connection. 

 

gate status

Displays the manner in which incoming connections are mapped to what outgoing ones.  It also displays the number of client connections allowed and the inactivity timeout.

 

gate maxcli

Determines how many clients may connect through the tcpgate at any one time.

 

gate tdisc <seconds>

Determines the inactivity timeout (in seconds) as measured by data SENT to the client.  A value of zero disables this feature.

 

start gate port hostname [port]

This is used to start up the tcpgate server on a particular port.  The server listens for connection on that port and accepts them.  It then makes a connection to the nominated hostname (with optionally a new port number - otherwise the same port number as is listened for is used).  The 'gate status' command may be used to determine what ports have already been configured.  This command generates a failure if that port number is already in use.


help;

 

The JNOS '?' command provides a list of all the top-level JNOS commands.

To obtain more help on a particular command, type 'help' and the command name. Or type the command name followed by a question mark.

 

Example:  help mbox     displays the help file for the mbox command mbox ?        displays the subcommands for the mbox command

 


hfdd subcommands:
 

hfdd debug

hfdd server [iface] [start|stop]

hfdd server [iface] kick

hfdd server [iface] exit                                                    
hfdd server [iface] unproto

 
The basic commands currently shown are :

hfdd debug - toggles the debug flag, default is off. If you enable the HF debugging, the JNOS log will start logging more detail on any HFDD (Pactor) activity.

hfdd server [iface] [start|stop] - starts the hfdd service for the particular port (interface). The stop option is historic, and does nothing.

There are some (currently) hidden (development) commands, as follows :
 

hfdd server [iface] kick - in case hfdd service seems hung on the modem attached on the passed iface (port).
 

hfdd server [iface] exit - kick the modem out of hostmode for the modem  attached on the passed iface (port). If the hfdd server seems to have lost touch with the modem, you can either power the modem off or on, or you can try this, which *should* force JNOS to reinialize the modem using init file.

hfdd server [iface] unproto - send an FEC Pactor broadcast out the modem attached to the passed iface (port). The text transmitted is "INTERNET GATWAY <yourcall>".

* only works on the KAM right now, the code  for PTC is there, but is incomplete.


history  [<N>];                                         Default: 10

 

The history command displays the number and contents of previous commands retained in a circular list, or sets the depth <N> of the history list.  These commands can be recalled by the UP-arrow and DOWN-arrow keys.  Press return to execute a recalled command, or backspace to erase from the right side.  No further editing is currently supported.  Setting the list size to 0 (zero) disables this feature.


hop;

 

hop check

hop maxttl

hop maxwait

hop queries

hop trace

 

The 'hop' commands are used to test the connectivity of the network.

 

hop check [-n] <host>

Initiate a hop check session to the specified host.  This uses a series of UDP "probe" packets with increasing IP time-to-live (TTL) fields to determine the sequence of gateways in the path to the specified destination.  This function is patterned after the UNIX 'traceroute' facility.  If the -n option is used, no DNS lookups are done, so no names are listed for each hop.

ICMP message tracing should be turned off before this command is executed (see the 'icmp trace' command).

 

hop maxttl [<hops>]                                   Default: 30

Display or set the maximum TTL value to be used in hop check sessions.  This effectively bounds the radius of the search.

 

hop maxwait [<seconds>]                                Default: 5

Display or set the maximum interval that a hop check session will wait for responses at each stage of the trace.

 

hop queries [<count>]                                  Default: 3

Display or set the number of UDP probes that will be sent at each stage of the trace.

 

hop trace [on | OFF]                                 Default: off

Display or set the flag that controls the display of additional  information during a hop check session.


hostname [<name>];

 

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.

hostname crv.kuyx.ampr.org.

If <hostname> is the same as an <interface> defined in an 'attach' command, this command will search for a CNAME domain resource record which corresponds to the IP address of the <interface>. This is commonly used for to set your hostname to that of a dynamically assigned IP address dial-in line.


http <subcommand>;

 

http absinclude

http always

http dontlog

http maxcli

http multihomed

http simult

http status

http tdisc

 

<subcommand> controls the operation of the JNOS HTTP server.

 

http absinclude [on | OFF]

Set or show the value of the flag that determines if the html specification  'include file="path"'  is acceptable.  If absinclude is off, the include command results in an error reported to the client.

If on, the file at "path" is inserted into the html document being prepared for transmittal to the client.

 

http always [ON | off]

This displays or sets the always-send flag.  If on, html files will always be sent regardless of their modification time.  If you use SSIs in your html files, then the file modification time of the html file is not indicative of the content change, and setting always to ON may prove useful.

 

http dontlog [str1|str2|...|strn]

This displays or sets a list of strings which, if contained in a URL, will prevent detailed logging of that access.  This command is available when HTTP_EXTLOG was #define'd when JNOS was compiled.

Example: http dontlog junkdir/|.gif|.jpg

 

http maxcli [<number>]                                 Default: 10

Display or set the maximum number of http client connections allowed. When this limit is reached, or if available memory drops below 'mem threshold', new connections are immediately refused.

See also "http simult".

 

http multihomed [on | OFF]

Display or set the flag which allows the http server to report the name associated with the interface used to access it.  If off, the system hostname is used.

 

http simult [<number>]                                 Default: 5

Display or set the number of simultaneous active http client connections allowed.  When this limit is reached, new connections will immediately block until an older client connection terminates.  See also "http maxcli".

 

http status

Display information about the http server(s).

 

http tdisc [<#secs>]                                Default: 180

Display or set the number of seconds of idle time allowed a clientm before it is disconnected for inactivity.

Notes:

1) To start an http server, use the start command.  The syntax is:  start http [port#] [drive] [rootdir]

The default http server port is 80, the default disk drive is C,  and the default rootdir is /wwwroot.  This root directory MUST contain a file called "root.htm".  If a client specifies an explicit path to a directory below this root, a reference to "welcome.htm" in that directory is assumed.  If welcome.htm does not exist, a directory listing is prepared and sent.  "welcome.nhd" can be used instead of "welcome.htm", to cause the file contents to be sent without headers.

This feature can be utilized to do unusual things like automatic redirection (probably not necessary anymore with today's intelligent browsers).  The JNOS default http root dir can be changed by defining a new value for HttpDir in nos.cfg (and starting JNOS with -f nos.cfg).

UNIX note: the drive letter is required, but ignored!  Also, the correct filename ending is ".html", not ".htm".

Client URL:                     JNOS file fetched:

http://your.system.name/        <rootdir>/root.htm

http://your.system.name/dir     <rootdir>/dir/welcome.htm (if exists) otherwise, a listing of <rootdir>/dir contents

http://your.system.name/X/file  <rootdir>/X/file

2) Multiple http servers, each on a different port, may be started, up to a limit of 5 (established at compile time by MAXPORTS).  The stardard port is 80, but a non-standard one can be given in a URL, such as "http://n3yco.ampr.org:99/".

3) The JNOS /spool directory must contain a file called "access.www" which controls HTTP access rights.  Lines either specify a directory path at and below which access is denied, or specify a {path, realm, encoded_user:passwd} sequence to which access is permitted only if the encoding matches that provided by the client.

This file MUST exist, even if empty, to allow any http accesses.

Note that access.www limits what can be specified on your system by a URL from an http client.  It does NOT limit access to included files specified in local html files (but see 'http absinclude').

Example:

 #type1: path-relative-to-wwwroot   realm   encoded-"user:password" /pub/jnos/www/unzipped/secret SecretPlace Z3Vlc3Q6aGVsbG8= #type2: directory at or below which access is denied: /pub/jnos/private

To produce an encoding of a "userid:password" combination to be used in access.www, use the base64.exe utility (produced by 'make base64' in the JNOS source directory): base64 userid:password > encoded.txt

Then edit the resulting file to yield a line for insertion into access.www.

4) If JNOS http was compiled with HTTP_EXTLOG #define'd, then by default the directory /wwwlogs will contain a record of accesses.  This file, created daily, will grow VERY large if your server is very busy!  See http://mvmpc9.ciw.uni-karlsruhe.de for information on Karl-Heinz Weiss' cleanlog utility.  The log directory can be changed by defining a new value for HLogsDir in nos.cfg (and starting JNOS with -f nos.cfg).

5) Counters are maintained in /wwwstats, but this directory can be changed by defining a new value for HttpStatsDir in nos.cfg (and yes, starting JNOS with -f nos.cfg).

6) Server Side Include (SSI) support is patterned after those in the NCSA httpd.   An SSI has the form: <!--# cmdname tag="value" -->

echo var="s"  displays the value associated with variable <s>:

DATE_LOCAL   - Current localtime

DATE_GMT     - Current time in GMT

HOSTNAME     - Server's hostname

DOCUMENT_URI - Resource Identifier of the current doc.

DOCUMENT_NAME- File name of the current doc.

LAST_MODIFIED- Modified date/time of the current doc.

TOTAL_HITS   - Total hits on this server.

REQ_FROM     - From: header of requestor (if available)

REQ_REFERER  - Referring URL (if given by browser)

REQ_AGENT    - Client browser's name (if given)

echo dcount="filename"  displays the named counter.

echo icount="filename"  increment and displays the named counter.

echo scount="filename"  increment the named counter.

include file="/absolute/path"  inserts the referenced file or dir, provided "http absinclude" is set on.

include virtual="path"   inserts the referenced file or dir, where "path" is relative to the http root dir. "path" must end in '/' to be interpreted as a directory.

exec cgi="name?arglist"  executes the cgi "name" which must be compiled into JNOS.  Two CGIs are presently available: counter.xbm (if CGI_XBM_COUNTER was #define'd) and postlog (if CGI_POSTLOG was #define'd).

counter.xbm produces an X-bitmap display of the counter name provided as the argument.  The counter is maintained in /wwwstats.  Additional arguments are "inv" for inverting the display colors, and "noinc" to not increment the counter before it is displayed.  Because this counter is returned as a bitmap it should be referenced as an image so a browser will handle it correctly:  <IMG src="/counter.xbm?tcount.dat+noinc"> postlog demos the POST html command; see http.c for details.

Note that a URL may specify a CGI as if it were a filename under the root directory.

Example: http://localhost/counter.xbm?cntrname.ext

7) More information on writing html documents can be found at:  http://www.visualogic.com/http_1.0/index.html


icmp <subcommands>;

 

icmp echo

icmp quench

icmp status

icmp timeexceed

icmp trace

 

These commands are used for the Internet Control Message Protocol service.

 

icmp echo [ON | off]

Display or set the flag controlling the asynchronous  display  of  ICMP  Echo Reply packets.  This flag must be on for pings to work.  Default is on.

 

icmp quench [ON | off]

With 'icmp quench off', when a packet is received and memory available < threshold, the packet will be dropped (i.e., no quench or anything.)  The higher protocol layers will keep track of re-transmitting the dropped packets.

With 'icmp quench on', when packets are received and the high water mark for dynamically allocatable storage has been exceeded, JNOS submits an ICMP Source Quench to the originator.  Usually, before the originator will have reacted to the source quench, JNOS's dynamically allocatable storage will have been exhausted.

What happens after that is uncertain, but it is assumed to be unfavorable.  Many tcp/ip implementations don't even respond to Source Quenches at all.  See also 'memory threshold command.'  Default is ON.

 

icmp status

Display statistics  about  the  Internet  Control  Message Protocol  (ICMP), including the number of ICMP messages of each type sent or received.

 

icmp timeexceed [<ON | off>]

Allows 'time exceeded' message to be sent when the ttl of an ip packet to be routed becomes zero.  When turned OFF, no message is sent which allows the system to become invisible for 'traceroutes', etc.

 

icmp trace [ 0 |  1  |  2]

Display or set the flag controlling the display of ICMP error messages. These informational messages are generated by Internet routers in response to routing, protocol or congestion problems. This only functions when in console mode. Default is 0 (off).  A trace value of 1 traces all icmp packets, while a value of 2 traces only icmp types known to JNOS.


ifconfig [<subcommand>];

 

ifconfig <iface> [<subcommands>]

ifconfig <iface> ax25 [<subcommand> [arguments]]

ifconfig <iface> broadcast <addr>

ifconfig <iface> ax25 cdigi <call>

ifconfig <iface> description "descr"

ifconfig <iface> encapsulation <mode>

ifconfig <iface> forward <iface-2>

ifconfig <iface> ipaddress <addr>

ifconfig <iface> linkaddress <linkaddr>

ifconfig <iface> mtu <num>

ifconfig <iface> netmask <address>

ifconfig <iface> ax25 paclen <num>

ifconfig <iface> rxecho <iface-2>

ifconfig <iface> tcp [<command>]

 

If a valid subcommand is given, it will be executed (see below). When no subcommand is given, display a list of interfaces, with a short status for each.  See the 'ifconfig <iface>' command for a description of the display.

ALL ax25 and MOST TCP parameters are now configurable per interface.  The 'ax25 <cmd>' commands set the system default values and the 'ifconfig <iface> ax25 <command>' commands set or show the interface specific value(s).  The 'tcp <cmd>' commands work in the same manner.

As a result of this change, 'ifconfig' NO LONGER takes multiple commands on one line.  'ifconfig ln0 netmask ffffff00 broadcast 255.255.255.255' is invalid.  The command line must be separated into two commands as: 'ifconfig ln0 netmask ffffff00' and 'ifconfig ln0 broadcast 255.255.255.255'

 

ifconfig <iface> [<subcommands>]

When only iface is given, the interface status is displayed.

Interface status shows:

        IP addr - the ip address assigned to this interface

        MTU     - the maximum transmission unit for this interface.

        Link encap - the type of link protocol to send packets  with over this interface (AX.25, NETROM etc.)

        Paclen  - if the interface is an AX.25 interface, this is the Paclen used for connections on this interface

        flags   - interface flags, the sum of all the options set with  the various commands. See below.

        netmask - the ip network mask. See elsewhere for a discussion. broadcast - the ip broadcast address on this interface. Used when doing arp, etc.

        sent ip - the number of ip packets sent on the interface

        sent tot- the total number of packets sent (i.e. ip, ax.25,  etc.)

        sent idle - the elapsed time this interface hasn't transmitted any data.

        recv ip - the number of ip packets received on the interface

        recv tot- the total number of packets received  (i.e. ip, ax.25, etc.)

        recv idle- the elapsed time this interface hasn't received any data.

        descr   - a description of the interface

Interface flag values are the sums of the following options, and can be set or unset (i.e. toggled) with the following commands (See their individual descriptions for more)

command           value                  description of flag

mode iface              DATAGRAM_MODE    0    /* Send datagrams in raw  link frames */

                               CONNECT_MODE      1    /* Send datagrams in connected mode */

netrom interface       IS_NR_IFACE             2    /* Activated for netrom use */

                               NR_VERBOSE             4    /* broadcast routes verbose */

convers interface     IS_CONV_IFACE        8    /* Activated for conference call access */

ax25 bport             AX25_BEACON          16   /* Broadcast AX.25 beacons */

mbox hide              HIDE_PORT                 64   /* Don't show port in mbox 'P' command */

ax25 digi               AX25_DIGI                  128  /* Allow digipeating */

arp eaves              ARP_EAVESDROP     256  /* Listen to ARP replies */

arp poll                 ARP_KEEPALIVE      512  /* Keep arp entries alive after time-out */

ax25 hport            LOG_AXHEARD       1024 /* Do ax.25 heard logging on this interface */

ip hport                 LOG_IPHEARD         2048 /* Do IP heard logging on this interface */

mbox noax25        NO_AX25                  4096 /* No ax.25 mbox connections on this interface */

mbox bbsonly        BBS_ONLY              8192 /* BBSes only on this iface */

mbox usersonly      USERS_ONLY       16384 /* Users only on this iface */

mbox sysoponly     SYSOP_ONLY       32768 /* Sysops only on this iface */

 

ifconfig <iface> ax25 [<subcommand> [arguments]]

Sets the value for 'subcommand' per description in the ax25 commands.  'ifconfig <iface> ax25 ?' by itself displays the following list of accepted subcommands:

          bbscall

          bctext

          blimit

          cdigi

          irtt

          maxframe

          maxwait

          paclen

          pthresh

          retries

          timertype

          t2

          t3

          t4

          version

          window

 

ifconfig <iface> broadcast <addr>

Set the ip broadcast address of interface <iface> to <addr>.

 

ifconfig <iface> ax25 cdigi <call>

Set the 'crossband digipeater only' callsign.  If this call is set, digipeating works independently from the 'ax25 digipeat' setting.  Connections cannot be made to the cdigi call.  JNOS will search for another ax.25 interface with the same Cdigi call as that of the interface receiving the digipeated packet, and transmit the digipeated packet via that interface. 

Example:

ifconfig 2m ax25 cdigi 2x70

ifconfig 70cm ax25 cdigi 2x70

would allow someone to use digipeater call "2x70" to automatically transfer between the two interfaces.  Note in this example you would probably wish to use beacons to ID the interfaces periodically, since the transmissions don't contain your callsign.  This might argue for using a valid call-ssid as the cdigi value!

 

ifconfig <iface> description "descr"

This command sets the interface description to the string specified.  If no descr is supplied (i.e. ""), the current description will be cleared.  The description is displayed with the mailboxP command (if the interface wasn't hidden from that display).  It is also shown in the ifconfig command.

 

ifconfig <iface> encapsulation <mode>

Sets the encapsulation for interface iface to slip or ax25. This should never be needed, since it is automatically executed when interfaces are attached.

 

ifconfig <iface> forward <iface-2>

When a forward is defined, all output for interface <iface> is redirected to <iface-2>.  To remove the forward, set <iface-2> to <iface>.

 

ifconfig <iface> ipaddress <addr>

Set the IP address to <addr> for this interface. Normally the ip address is assigned from the system ip address when the interface is first attached. However, it might be necessary to change it when a system acts as a ip-gateway.

 

ifconfig <iface> linkaddress <linkaddr>

Set the hardware dependent address for this interface.  For AX.25 this is the callsign.  If you want to allow cross band digipeating, give each port a different ax.25 call with this command.

 

ifconfig <iface> mtu <num>

Set the maximum transfer unit to <num> bytes.

 

ifconfig <iface> netmask <address>

Set the sub-net mask for this interface.  The <address> 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 'broadcast' subcommand.  See also the 'route' command.

 

ifconfig <iface> ax25 paclen <num>

Set the AX.25 paclen for this interface. This is useful if you want to use a value different from the default as set with the 'ax25 paclen' command; e.g., if you have a port with an HF link, you might want to set it to 128.  You can also set it to greater

than 256 if you have a high speed port.  (This command only works for interfaces that can carry AX.25 connections, i.e., it is not for SLIP interfaces, etc.)

NOTE1:  The AX.25 V2 specification specifies a MAXIMUM of 256 for paclen. If you have a paclen > 256, you may run into problems when interfacing to other non-NOS systems (in particular G8BPQ- based systems.)

NOTE2:  The value of paclen influences NETROM behavior if the interface is activated for netrom with the 'netrom interface' command!  If the paclen for this interface is smaller than any other (netrom active) paclen, the netrom mtu value will be set to this paclen - 20 !  This is to assure that you will not get fragmentation at the ax.25 level when trying to send large data packets over netrom connections.  AX.25 V2.1 fragmentation is presently handled only by NOS and derived code as far as is  known.  Other systems, such as TheNet, BPQ, MSYS,  etc., may not  include proper handling of V2.1 fragmentation.

What the preceding means is, if you have a VHF port with paclen 256, and an Hf port with paclen 128, and BOTH are active with netrom, the netrom mtu will be 108 !

 

ifconfig <iface> rxecho <iface-2>

When a rxecho interface is defined, all input from interface <iface> is also copied (echoed) to <iface-2>.  To remove rxecho, set <iface-2> to "off".  This feature requires that RXECHO be #define'd at compile time.

 

ifconfig <iface> tcp [<command>]

Sets or displays the 'tcp' command parameters for <iface>. 'ifconfig <iface> tcp ?' by itself displays the following list:

          blimit

          irtt

          maxwait

          mss

          retries

          syndata

          timertype

          window

OUTGOING tcp connections get the values for the interface on which the initial sync packet ('connect request') is routed out. INCOMING tcp connections get the values for the interface the initial request arrives on.

System default TCP parameters must be set PRIOR TO attaching interfaces.  After attaching interfaces, use the 'ifconfig <iface> tcp' commands to set the interface.


index [<areaname>];

 

Causes the mail index program to be run and re-establish the indexes for the mailbox.  'index *' indexes ALL mailbox files.


info;

 

The 'info' command displays information about the NOS package


ip <subcommand>;

 

ip access <permit|deny|delete> <proto> <sourceaddr[/bits]|all><destaddr[/bits]|all> <iface>  [loport | all [hiport]]

ip address [<addr>]

ip encap

ip heard

ip flush

ip hport

ip hsize

ip rtimer

ip status

ip ttl

 

These commands are used for the Internet Protocol service.

 

ip access <permit|deny|delete> <proto> <sourceaddr[/bits]|all><destaddr[/bits]|all> <iface>  [loport | all [hiport]]

Display or set ip access controls. The ip access command controls packet routing via the specified <iface> by determining which source ip addresses <sourceaddr> are routed to which destination ip addresses <destaddr>.  If no ip access commands are issued for <iface>, the default behavior is to permit all sources to access all destinations.  But once an IP access command is entered for <iface>, all routes via <iface> that are not specifically permitted by an ip access command, will be denied.

Execution of this subcommand will add or delete an access control entry in an internal table.  Incoming packets that would be routed via <iface> are compared with the table entries for <iface>, in the order that they were added, to determine if access will be granted (and routing take place).  Access will be granted only if an entry matching <destaddr> and <sourceaddr> is found with "permit" set before either a match with "deny" set is found, or the end of the table is reached.  The optional /bits suffix to the ipaddr specifies how many leading bits in the ipaddr are to be considered significant in the routing comparisons.  If not specified, 32 bits (i.e., full significance) is assumed.  All addresses can be specified by "all".  Access can be made protocol dependent via the <proto> parameter. <proto> may be 'a' for any, 't' for TCP, 'u' for UDP, 'i' for ICMP, or the IP protocol number. For UDP and TCP protocols, loport and hiport specify the port or range of TCP or UDP ports for which the access control command applies.  If none or all is specified, all ports are assumed.

"ip access" will display the table of current access control entries.

Access commands should be entered from the most specific to the least specific, since the first match (permit or deny) encountered for a given interface in the internal table is definitive.

#Example:

#allow a specific AMPRnet host access to the internet ip access permit any 44.76.1.199 all eth0

#but deny all others except UDP (eg, DNS) access ip access permit udp 44/8 all eth0 all

#permit only AMPRnet hosts access to RF port ip access permit any 44/8 44/8 2m

 

ip address [<addr>]

Display or set the default local IP  address.  This  command must  be  given before  an  'attach' command if it is to be used as the default IP address for the interface.

 

ip encap [4 | 94]

Display or set the packet ID code used for transmitted IP-IP  encapsulated packets.  As of 1 March 1995, the default pid is 4.

 

ip heard

Display the ip-heard list. This shows the recently heard tcp/ip systems and may be set on netrom interfaces.  This See also the 'ip hport' and 'ip flush' commands.

 

ip flush

Clear the ip-heard list.  See 'ip heard' and 'ip hport'.

 

ip hport [<iface> [ON | off]]

Display or set the ip-heard facility.  If no argument is given, show the interfaces on which ip-heard is currently active. If <iface> is given, shows the status of the ip-heard flag for the given interface. If <iface> <on|off> is given, it will set the flag on or off.   Default is on.

If this flag is on, ip heard frames will be logged in a table.

This table can be shown with the 'ip heard' command or with the mailbox'IHeard' command.  Ip-heard logging on ax.25 interfaces logs all ip stations heard on the port, even if the system wasn't directly involved in the ip activity.  For non-ax.25 interfaces, only ip frames that we were actively involved in (i.e. that we routed) are logged. (this difference is due to code internals)

ip hport port1 off

 

ip hsize [n]                                       Default: 16

Display or  set the maximum size of  the Ip heard table. 0 means no limit.

 

ip rtimer [<seconds>]                       Default: 30

Display or set the IP reassembly time-out.

 

ip status

Display Internet Protocol (IP) statistics, such as total packet counts and error counters of various types.

 

ip ttl [<hops>]

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.

You should 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 255, the official recommended value for the Internet.


lock [ password "<password_string"> ];

 

Lock the keyboard or define a password string.

If 'password' is given then <password_string> is saved as the unlock string.

If no parameters are supplied, the keyboard becomes locked when a password was specified earlier.

If the keyboard is locked, the password is requested.  If a correct password is supplied, the keyboard becomes unlocked.

The setting of the password and locking of the keyboard can only been done at the system console keyboard or in the /autoexec.nos startup file.  The password can not been displayed.


log [ON | off];

 

Turn on or off system logging. Log files are created daily and stored in the logs directory.


look [user | socket#] (/<cmd>);

 

This command allows peeking into a user session on the BBS or into any non-local socket.  'look [user | socket#]' brings up a window which follows the specified user or socket.  If looking in on a bbs user, you can initiate a 'chat' session with that user.

There are a few commands available:

 /? or /h - will show a sort help line

 /m <msg> - send a message to user. (only if 'looking' at user)User sees: '<sysop>: message text'

 /c       - initiate a 'chat' with user. The bbs will suspend while you talk with the user.

 /q or /b - if in 'chat' mode, finishes it and returns the user to the bbs.

if in 'look' mode, finishes looking at user/socket.

Note: if not in 'chat' mode, all non-command strings will be ignored.

Looking at non-bbs sockets might be helpful debugging things or seeing what an ftp user or a smtp user is doing.

Note that often you won't see what you expect: e.g., ftp user sockets don't show the data transferred including directory listings because data transfer occurs on a separate socket. (Not seeing it is NOT a bug, for once...8) )


lzw;

 

lzw mode

lzw bits

lzw trace

 

Lzw (Lempel-Ziv-Welch) is the data compression capability for some ASCII-mode sockets.  At present, LZW compression is supported by JNOS SMTP, FTP, NNTP and POP3.

 

lzw mode [ fast | compact]                       Default: compact

Display or set the compression method used in data compression for specific sockets.

 

lzw bits [<number>]                              Default: 9

Display or set the number of bits used for the compression size.

The more bits defined the larger the table space needed.  Range is 9 to 16.

 

lzw trace [ on | off ]                           Default: off

Display or set the lzw trace flag.  If set on, compression statistics will be displayed on the console when a compressed socket is closed.


mailmsg  <to_addr> ["<subject>"] "msg";

 

Mail a message to <to_addr> from <msguser>@<Hostname>.  <msguser> can be set in the DOS environment (Set MSGUSER=<any_user_name>), and defaults to "sysop" if not set in the environment.  <subject> is optional, and must be quoted if it contains whitespace characters.  <msg> is either a string to be placed in the body of the message (quoted if it contains white- space characters) or the path to a file to be placed in the message body.  A path must begin with forward or backward slashes, or a drive specification, otherwise it is taken to be a <msg> string.  This command is available when JNOS was compiled with MAILMSG #define'd.

Example: mailmsg n5knx "don't forget!"  "replenish the Cardhu" at 0400 "mailmsg jpd@usl.edu /stats.out+"

Note:  the bm.exe program is often used to originate smtp messages in an automatic fashion, but requires that JNOS be shelled-out to run, and it is possible that memory may be insufficient to do this.  An alternative might be to use the mailbox "send" command, perhaps in conjunction with the upload command (to send a file), but this can't be easily automated.  Hence the introduction of the mailmsg command.


mbox [<subcommands>];

 

mbox alias

mbox attend

mbox bbsonly

mbox convers

mbox fbb

mbox fwdinfo

mbox haddress

mbox header

mbox hideport

mbox ifilter

mbox kick

mbox mailfor

mbox mailstats

mbox maxusers

mbox mport

mbox newmail

mbox noax25

mbox nobid

mbox nrid

mbox past

mbox password

mbox qth

mbox register

mbox reset

mbox secure

mbox sendquery

mbox showalias

mbox smtptoo

mbox status

mbox sysoponly

mbox timer

mbox tdisc

mbox tmsg

mbox trace

mbox usersonly

mbox zipcode

 

Without a subcommand, display the current users of the mailbox.

With a valid subcommand, it will execute the following commands.

 

mbox alias [<alias>] ["cmd"]

Set or show alias commands for the mailbox.  To use an alias, the user must type the full alias which will then cause "cmd" to be executed.  If the user types 'A', a list of sysop-defined aliases will be displayed.  'alias' is 6 characters maximum.  "cmd" is 64 characters maximum.  Note that "cmd" is in double quotes, and is interpreted as a mailbox command unless it begins with '@', in which case it is a console command.  Only console commands that don't spawn sessions, and that don't require special privileges, are allowed.

'mbox alias' displays the current aliases.

'mbox alias <alias>' displays only <alias> if it is defined.

'mbox alias <alias> <cmd>' adds, deletes, or redefines <alias>

Example:  To add a new BBS command -mbox alias bbs "c port bbscall"

To delete an alias- mbox alias myalias ""

To redefine an alias- mbox alias bbs "c newport newbbscall"

To invoke the console pkstat command- mbox alias pkst "@pkstat"

See also "mbox showalias", below.

 

mbox attend [ON | off]

This displays or sets the attend flag. If set, users can initiate chat with the sysop via the O)perator mailbox command. (You need to have started the ttylink server for this !)

 

mbox bbsonly [iface] [on | OFF]

Specify whether iface is only accessible to stations which have the BBS flag set.

 

mbox convers [ON | off]

Display or set the access to the conference bridge.  The mailbox or mailbox'CONV' command is disallowed when off.  Default is ON.

 

mbox fbb [0 | 1 | 2]

Display or set the flag which enables FBB batched-style forwarding (1) or FBB compressed and batched forwarding (2), or standard WA7MBL-style forwarding (0).  The setting is used to determine which forwarding capabilities we proposed to a another station.  The default value is determined by whether JNOS was compiled with FBBCMP and/or FBBFWD

#define'd.  In any case, the forwarding method actually used is the  intersection of capabilities of both stations involved in forwarding.

Batched forwarding allows the forwarding direction to be reversed every  5 messages.  Compressed FBB forwarding requires a completely transparent connection and uses Lempel Ziv Huffman compression.

 

mbox fwdinfo [string]

Displays or sets the string that is used in the BBS R: header when forwarding mail to other BBSes.

 

mbox haddress [string]

Displays or sets your system's hierarchical bbs address.  As of version 1.08, you must include the bbs call with the hierarchical address.

Example:

mbox haddress wg7j.or.usa.na

 

mbox header [on | OFF]

Explicitly turns the R: line in the message header on or off.

With mbox header off, regular users can forward from JNOS to another system designated as a full-service bbs without leaving a trace to their system.  This avoids having a downstream bbs improperly identify the originating station as a bbs.

The elements of the R: header are optional as of JNOS107.  The line has this format (where undefined elements will be dropped):  R:yymmdd/hhmmz @:haddress [qth] fwdinfo #:mid $:bid Z:zip

NOTE:  'mbox header off' also turns off the mbox third-party flag.

 

mbox hideport [<iface>] [on | OFF]

Display or set a port that should not be displayed when the 'P' command in the mailboxis given.  Display is always available to users with sysop permissions.  This command is usefor for ports that should be backbone linking only, etc.  Note that currently users can still do ax.25 connections via that port, if they know the name. Default is OFF, the port is displayed.

mbox hideport port1 on

 

mbox ifilter [on | OFF]

Display or set the spurious I-frame filter flag, which when set will prevent unexpected I-frames sent to mycall from spawning a mailbox  session.  The effect of setting this flag is to deny access to the mailbox unless our ax25 bbscall, ax25 ttycall, convers mycall, ax25 alias or netrom alias is used.  Mbox ifilter is necessary to send IP, Net/ROM, and segmentation frames over ROSE circuits.

 

mbox kick [<bbscall>]

This is an immediate command. It forces the system to start a new BBS forwarding cycle.  All BBSes in forward.bbs are examined unless <bbscall> is given, in which case only that entry in forward.bbs is considered.  If <bbscall> is given in uppercase, a poll will be done; otherwise, a connect is attempted only when there is traffic to send.

Example:  at 35 "mbox kick w5ddl+"          kicks just w5ddl at hh:35

mbox kick K5ARH                   forces an immediate poll

mbox mailfor [interval]

mbox mailfor exclude [areaname areaname ...]

mbox mailfor watch [call_1 call_2 ...]

Interval is in seconds.  At the end of each interval,  the system reads all non-area mailboxes and checks them for unread mail.

Next, a beacon is sent on all active interfaces. (see 'mbox  mport' command).  The beacon is addressed to the AX.25 address 'MAIL'.  The data in this packet contains a list of the mailboxes with unread mail in the format 'Mail for: <user> ... '.  Systems such as LAN-LINK can trigger mail-snatches from this beacon.  If <interval> is the string "now" an immediate check is done.  'mbox mailfor' will show the status of the timer and list mailboxes with unread mail.

In certain cases you might not want a private area to show up in the mail beacon; e.g., private areas to be forwarded to another bbs.  You can exclude such areas from the beacon with the 'mbox mailfor exclude' command. 'mbox mailfor exclude area1 area2 area3 ...' will disable these area names from the beacon.  You can give multiple exclude commands to build the list.

A simple 'mbox mailfor exclude' shows the list. 'mbox mailfor watch call ...' will watch for new mail arriving for the specified personal mailboxes, and add a blinking MAIL to the first status line if new mail exists.  To remove the MAIL from the status line, read the last message in the appropriate mailboxes, and force a run of the mailfor process by 'mbox mailfor now'.  The sysop will typically want to watch his personal mailbox, and perhaps a "check" mailbox to which unusual mail is rewritten.

 

mbox mailfor [interval]
mbox mailfor exclude [areaname areaname ...]
mbox mailfor watch [call_1 call_2 ...]

Interval is in seconds. At the end of each interval, the system reads all non-area mailboxes and checks them for unread mail.
Next, a beacon is sent on all active interfaces. (see 'mbox mport' command). The beacon is addressed to the AX.25 address 'MAIL'. The data in this packet contains a list of the mailboxes with unread mail in the format 'Mail for: <user> ... '. Systems such as LAN-LINK can trigger mail-snatches from this beacon. If <interval> is the string "now" an immediate check is done. 'mbox mailfor' will show the status of the timer and list mailboxes with unread mail.

In certain cases you might not want a private area to show up in the mail beacon; e.g., private areas to be forwarded to another bbs. You can exclude such areas from the beacon with the 'mbox mailfor exclude' command. 'mbox mailfor exclude area1 area2 area3 ...' will disable these area names from the beacon. You can give multiple exclude commands to build the list.
A simple 'mbox mailfor exclude' shows the list. 'mbox mailfor watch call ...' will watch for new mail arriving for the specified personal mailboxes, and add a blinking MAIL to the first status line if new mail exists. To remove the MAIL from the status line, read the last message in the appropriate mailboxes, and force a run of the mailfor process by 'mbox mailfor now'. The sysop will typically want to watch his personal mailbox, and perhaps a "check" mailbox to which unusual mail is rewritten.

 

mbox mailstats

This command shows how many messages have been read and sent by users and how many messages have been received from and forwarded to BBSes.  Also shown is the current amount of "core" memory unused, and the number of logins, current user count, and number of different users seen since JNOS was booted.

 

mbox maxusers [N]                              Default: 0

Display or set the number of simultaneous mailbox users permitted.

A value of zero disables this feature.  A mailbox connection which would exceed the maximum permitted user count, is disconnected with the error message "Too many mailbox sessions".  Note that both incoming and outgoing connections, even forwarding sessions, are counted.

 

mbox mport [<iface>] [on | off]

Displays or sets the interfaces for 'MAIL' beacons.  Set this  flag for each port you want the mail beacon to be sent on.

 

mbox newmail [ON | off]

When ON, users will be notified during login which areas have new mail since the last time that user logged out.  This function uses a time stamp on a status file for each message area.  The information shown can later be repeated with the 'AN' mailbox command.

 

mbox noax25 [iface] [on | OFF]

Specify whether iface is only accessible to stations connecting by other than the ax.25 protocol.  Connections to the converse call are not affected by this command.

 

mbox nobid [on | OFF]

Set whether to accept or refuse bulletins with NO BID.  Off means refuse if there is no BID.  On means accept regardless of BID. Default is OFF (refuse)

 

mbox nrid [ON | off]

When set, the first time a user logs onto the system, the system will add the netrom node id in NODE:CALL format to the prompt.

Users can then change it with the mailbox XN command. The system will use the new prompt format as set by the user the next time the user logs in.

 

mbox past [<N> | flush]

Displays the users that have logged on since the system has been running.  If an integer <N> is provided, only the most-recent N users are displayed.  If "flush" is provided, the list of past users is cleared.

 

mbox password <newpassword>

This sets a new remote sysop password.  A remote sysop is a user whose entry in the ftpusers file has the SYSOP_CMD bit set.  When a remote sysop enters the '@' command to the JNOS mailbox, and there is a non-null mbox password established, five random numbers are displayed.  The remote sysop is expected to then transmit the letters corresponding to these numbers, taken as zero-relative positions in the password string.  Several lines of five letters can be sent, only one of which need be correct.  The last line sent must be empty, i.e., just a CR.  If the response is correct, the remote sysop is then given the JNOS command-line prompt, and may issue most JNOS console commands.

Commands which would require creation of a new session are disallowed.

Use the "exit" command to exit from the JNOS command level.

 

mbox qth [location]

This displays or sets the location of your system, and uses it in the R: headers when doing bbs forwarding.

 

mbox register [ON | off]

Enable or disable user registration.  If the user gives an e-mail address during registration, messages sent will include a 'Reply-To:' header with that e-mail address.  Setting this command to OFF will prevent the 'please register' message from being sent to new users.

 

mbox reset [login_id_list]

Force a disconnect for the named user(s), or list the names of the users currently connected if no argument is provided.

 

mbox secure [on | OFF]

This displays or sets the mailbox secure flag. If set, only users coming on over netrom and ax25 connections can make gateway connects if they have the right privileges. If not set, anyone with the right privs can do a telnet connect, provided that their login name passes the valid-callsign tests within JNOS.

 

mbox sendquery [ON | off]

If on, users will be queried if they really want to send the message after they have typed the ^Z or /ex when sending a message. 'N' or 'n' will abort, anything else will send the message.

 

mbox showalias [on | OFF]

Set or display the flag which determines whether aliases (if defined) are listed in the mbox prompt.

 

mbox smtptoo [on | OFF]

This displays or sets the smtp header flag.  If set, the system will include most smtp headers when forwarding the message via bbs forwarding.  When not set, the headers will be stripped (default).

 

mbox status

Displays the current users of the system {NOS}.

 

mbox sysoponly [iface] [on | OFF]

Specify whether port is accessible only by stations with SYSOP flag set.  Default is off.

 

mbox timer [<nnnn>]            Default = 0 (No forwarding)

Entering only the subcommand displays the forwarding setting and countdown timer value.  [<nnnn>] sets the interval between forwarding attempts in seconds.  When the timer matures, the forward.bbs file is scanned for entries that match the time constraints, and either have msgs to forward or have the poll flag set on their entry.  A process is started to initiate forwarding with each matching entry, all processes begin at once!  Finer control of forwarding times can be obtained by keeping the timer at 0, and using the at command to issue repeated 'mbox kick' commands for the desired forwarding partners.  For example, at 05 "mbox kick k5arh+"  will try to forward to just k5arh at five minutes after each hour.

 

mbox tdisc [<nnnn>]

This command sets the mailbox inactivity timer in seconds.  If no user input has been received for nnnn seconds while connected to the mailbox, the user will be disconnected.  Default = 0 = no timeout.

 

mbox tmsg [<string>]

Display or set the 'telnet message'.  This is the message sent to telnet connections before the login prompt is sent!

 

mbox trace [on | OFF]

This displays or sets the value of the trace flag. If set, the mailbox is verbose about certain aspects of the forwarding cycle.

 

mbox usersonly [iface] [on | OFF]

Specify whether iface is only accessible to stations which don't have the BBS flag set.

 

mbox zipcode [<nnnnn>]

Set or display the system's postal zipcode.  This is used in the

R: line when forwarding.


memory <subcommands>;

 

memory freelist

memory ibufsize

memory minalloc

memory nibufs

memory sizes

memory status

memory threshold

 

These commands are used for memory allocation.

 

memory freelist

Display the storage allocator free list.  Each entry consists of a starting segment, in hex, and a size, in decimal bytes.

 

memory ibufsize [<size>]

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 8.  For example: If your ax.25 is the only interface and a packet length of 512 is defined, the ibufsize  should  be 512 + 72 + 8 = 592 .  The 72 is the ax.2  header (source , destination, 8 digipeaters, 1 control byte and 1 pid byte).  Default is obtained from the value of  IBUFSIZE in config.h.

 

memory minalloc [<bytes>]

Set the minimum number of bytes to allocate per malloc() call.

Setting a small value (32 or 64) might allow the realloc scheme to work more effectively by preventing excessive memory fragmentation.  Default = 0, no minimum allocation size.

 

memory nibufs [<number>]

Display or set the number of interrupt buffer pool buffers.

If the number of buffers is set, the statistics in the 'memory status' display are reset for number of interrupt buffer fails.

The minimum available value is set to the requested  number of buffers.  A rule of thumb for the number of buffers is to watch the statistics and keep a minimum of 2  free  buffers.  Increase or decrease as required. Default is 10.  See also the section on INTERFACE BUFFERS. 

 

memory sizes

Display a histogram of storage allocator requested sizes.  Each histogram bin is a binary order of magnitude (i.e., a factor of 2).

 

memory status

Display a summary of storage allocator statistics.

heap size 52560, avail 12880 (24%), morecores 150, coreleft 5872

The first line shows the total size of the internal heap, the amount of memory available on the internal heap with the percentage of the total heap size, next the number of times memory has been requested from the Operating System, and the amount of memory the OS has left over. allocs 16706, frees 16389 (diff 317), alloc fails 0, invalid frees 0

Next, the number of times memory has been allocated, and has been freed is shown.  The difference is the number of buffers currently allocated.  Alloc fails show up when the system is running out of memory resources. Invalid frees mean that memory was overwritten, and indicates the system is about to lose sanity... garbage collections yellow 0, red 0

Garbage collections free memory from network control structures that could not have otherwise been freed.  Yellow garbage collections are started when the total available memory, i.e. avail+coreleft, becomes smaller then memthresh.  Red garbage collections indicate that available memory got below memthresh/2 interrupts-off calls to malloc 0, free 0

These should never be other then 0.  They indicate calls to the memory allocator with interrupts off.  These requests should be handled by the interrupt buffer pool.  If these values are non zero, you most likely have a problem. Intqlen 9, Ibufsize 600, Iminfree 9, Ibuffail 0

This line shows the current number of interrupts buffers in the interrupts buffer pool, the size of each buffer, and the minimum number of free buffers.  If this last number gets close to, or becomes zero, you should increase the buffer pool size with the 'memory nibuf' command.  The statistics are reset when this command is executed.

 

memory threshold [<size>]

Displays or sets the memory threshold size in bytes.  If free memory gets below this value, no more new connections can be started and no new connections will be accepted. In addition, incoming packets are dropped.  This is an attempt to preserve the system's sanity.


mkdir <directory>;

 

Create a sub-directory in the current working directory.


mode <iface> [vc | datagram];

 

Control the default transmission mode on the specified AX.25 interface. In datagram mode, IP packets are encapsulated in AX.25 UI frames and transmitted without any other link level mechanisms, such as connections or acknowledgments.

In vc (virtual circuit) mode, IP packets are encapsulated in AX.25 I frames and are acknowledged at the link level according to the AX.25 protocol.  Link level (i.e. AX.25) connections are opened as

necessary.

In both modes, ARP is used to map IP to AX.25 addresses.

(Currently not implemented in JNOS: 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) is still larger  than the AX.25 <paclen> parameter.  In AX.25 fragmentation, datagrams are broken into several I frames and reassembled at the  receiving end before being passed to

IP.  This is preferable to IP fragmentation whenever possible because of decreased overhead (the IP header isn't repeated  in each fragment) and increased  robustness  (a  lost fragment is immediately retransmitted by the link layer).


more <filename> [<text> ...];

 

Display the specified file(s) a screen at a time.

To proceed to the next line, hit the CR key.

To proceed to the next screen, press the space bar.  To proceed to the next console screen by first clearing the current screen, press TAB.  This may be faster than the scrolling action used by the space-bar technique.

To cancel the display, hit the 'q' key.

If the text is given after the filename, each line in the file containing that text is displayed.

The 'more' command creates a session that you can suspend and resume just like any other session.


motd ["message"];

 

Display or set the current message of the day.  This message is shown to users logging in via telnet to port 87 (the ttylink service), or via connections to the system's ttycall alias (set by the 'ax25 ttycall' command).


netrom <subcommands>;

These commands influence netrom behavior.

 

netrom acktime

netrom alias

netrom bcnodes

netrom bcpoll

netrom call

netrom choke

netrom connect

netrom derate

netrom g8bpq

netrom hidden

netrom interface

netrom irtt

netrom kick

netrom load

netrom maxclients

netrom minquality

netrom neighbor

netrom nodefilter

netrom nodefilter add

netrom nodefilter mode

netrom nodefilter drop

netrom nodetimer

netrom obsotimer

netrom promiscuous

netrom qlimit

netrom reset

netrom retries

netrom route

netrom route add

netrom route drop

netrom route info

netrom save

netrom split

netrom status

netrom tdisc

netrom timertype

netrom ttl

netrom user

netrom window

 

netrom acktime [<milliseconds>]

Displays or sets the ack delay timer, similarly to ax25 t2.

Default is 8000ms (i.e. 8 seconds).

 

netrom alias <aliascall>

This sets the netrom alias call for this station. Other stations can connect to the ax25 callsign and to the NetRom alias (when set). The alias is broadcast with a NetRom broadcast.  If netrom is not activated, you can use the 'ax25 alias' command to set the alias callsign, such that users can still connect to the alias, even though netrom activities are not allowed.

 

netrom bcnodes <iface>

Initiates an immediate broadcast of nodelist on <iface>. Verbose behavior is controlled by the 'netrom interface' command.

 

netrom bcpoll <iface>

Initiates a poll sent to the named interface. This poll will request a netrom routes broadcast from other nodes, so that the routing table can be updated. This is automatically done any time an interface is activated (or changed) for netrom.  This should speed up route discovery at startup.

 

netrom call <call>

Displays or sets the call to be used by the netrom interface.  Note:  this is a shortcut for the 'ifconfig netrom linkaddress' command.  It defaults to the 'ax25 mycall' value.

 

netrom choke [<milliseconds>]

Display or set the time breaking a send choke. Choke is the term netrom  uses for flow control conditions. Default is 180000 ms (180 seconds.)

 

netrom connect <node>

Starts a new JNOS session and attempts to establish a netrom transport connection with <node>, which must be a known node call or alias.

 

netrom derate [ON|off]

Display or set automatic derating of netrom routes on link failure.  Default is on.

 

netrom g8bpq {on | OFF]

Display or set the G8BPQ-emulation behaviour.  If set, transport layer conreq frames carry two extra bytes to indicate round-trip time, and conack frames have one extra byte to contain TTL (hopcount).

 

netrom hidden [on|OFF]

Display or set the hidden node flag.  Nodes with aliases starting with the '#' character are displayed using the command 'N *'. Default is OFF.

 

netrom interface [<iface> <quality> [n]]

Activate <iface> as a netrom interface.  <quality> can be between 1 and  255. Interfaces are activated using verbose routes broadcasting by default, meaning that they broadcast all known routes. This can be changed by adding the optional 'n' parameter to the command. Then only the system itself will be announced in a broadcast, not the known routes.

If the paclen of the interface is smaller then the netrom mtu + 20, then the netrom mtu will be set to paclen-20 . This is to avoid fragmentation, causing incompatibilities with non-JNOS based NetRom nodes. See the 'ifconfig <iface> paclen' command for more.

If <iface> has already been activated as a netrom interface, reissuing the command will set <quality> and [n] to the new values. 'netrom interface' will show the currently active netrom interface.

Each time an interface is activated or changed, a broadcast poll will be sent out on the interface.  This minimizes the route discovery time at startup, and will update routes when the interface quality has changed.

 

netrom irtt [<milliseconds>]

Display or set the initial round trip time.  Default is 45000ms, i.e. 45 seconds.

 

netrom kick <nrcb>

Give the control block a kick to get activity going again.

 

netrom load

Retrieves the last set of netrom destination data saved with the 'netrom save' command.

 

netrom maxclients [<count>]

Displays or sets the maximum number of simultaneous outgoing netrom sessions that will be allowed.  The default is 10.  Reduce <count> if network congestion is a problem.

 

netrom minquality [<minqual>]

Display or set the minimum quality for recognizing a node entry. Entry's below this value are not considered valuable for usage. Default is 50.  You are strongly urged to set this value much higher, so as to minimize the space needed to store the nodes list.  A consequence of too many nodes listed is memory depletion, leading to lockups or reboots.

 

netrom neighbor

Display all known netrom neighbors.

 

netrom nodefilter <subcommands>

Manipulate node filtering.    

 

netrom nodefilter add <neighbor> <iface>

Add <neighbor> on port <iface> to the filter table.  See the 'netrom nodefilter mode' command to determine the manner to handle node updates from <neighbor>.

 

netrom nodefilter mode [none|accept|reject]

Display or set the initial node filter scheme. 'none' accepts all netrom routes and is the default. 'accept' accepts routes only from nodes defined with the 'netrom nodefilter add' command. 'reject' does not accept routes from any nodes defined with 'netrom nodefilter add'

 

netrom nodefilter drop <neighbor> <iface>

Delete the node <neighbor>  on interface <iface> from the filter table.

 

netrom nodetimer [<seconds>]

Display or set the interval to transmit the nodes list. If you want to use other than the default, you must first attach the netrom interface with 'attach netrom' and then set the new nodetimer value.  Default is 1800 seconds (half an hour). 

 

netrom obsotimer [<seconds>]

Display or set the time a node obsolescence count gets decremented.  If you want to use other than the default, you must first attach the netrom interface with 'attach netrom' and then set the new obsotimer value.  Default is 1800 seconds.

 

netrom promiscuous [OFF|on]

Enables nodes with a path quality greater than defined with minquality.  If on, all nodes are received regardless of nodefilter mode.  Default is off.

 

netrom qlimit [<nnnn>]

Display or set the maximum queue limit for choke to occur. Similar to ax25 window.  Default is 512 bytes.

 

netrom reset <nrcb>

Remove the control block.  You can find the control block with the 'netrom status' or 'socket' commands.

 

netrom retries [<nn>]

Display or set the maximum number of retries on connect, disconnect or data.  Default is 3.

 

netrom route <subcommands>

NetRom routing commands. Routes can be marked as 3 types in the various route displays:

'P' - a permanent route set with the 'netrom route add' command

'B' - a route received through a nodes broadcast from a neighbor node

'R' - a recorded route from an incoming packet from a not previously known netrom node

 

netrom route add <alias> <call> <iface> <quality> <neighbor>

Add a permanent netrom route. The new route is to netrom system <alias> with call <call>, and the route is on interface <iface> with quality <quality> via the neighbor <neighbor>.

netrom route add salem af7s-1 port1 178 k7uyx-1

A route to a direct neighbor looks like:

netrom route add crv k7uyx-1 port1 192 k7uyx-1

 

netrom route drop <destination> <neighbor> <iface>

Delete the netrom route to call <destination> via neighbor

<neighbor> on <iface>.

 

netrom route info [<destination>]

Display the route a packet would take to get to <destination>.

If <destination> is not given, information about all known netrom nodes is displayed.  'netrom route info' and 'netrom route info *' are equivalent commands.

 

netrom save

Saves (i.e., writes) the netrom node table to Netromrile (default is /netrom.sav) for later use by the 'netrom load' command.

 

netrom split <node>

Same as a 'netrom connect <node>', except a split-screen is used so that keyboard input appears in its own window.

 

netrom status

Display all netrom connections.

 

netrom tdisc [secs]

Display or set the NetRom Link "redundancy" timer.  Value is in seconds.  When no data exchange has happened during this time the link is reset and closed.  Default is 900 seconds (15 minutes).

 

netrom timertype [exponential|LINEAR]

Displays or sets the type of backoff used on netrom retries. Default is linear.

 

netrom ttl [<hops>]

Display or set the maximum number of hops a frame might take before being discarded.  Default is 10.

 

netrom user <usercall>

Display or set the user call to be used by 'netrom connect'.  The default call is the ax25 mycall.

 

netrom window [<frames>]

Display or set the size of the sliding window. This is the largest send and receive window we might negotiate.  Default is 2.


nntp;

 

nntp addserver

nntp directory

nntp dropserver

nntp firstpoll

nntp groups

nntp kick

nntp listservers

nntp lzw

nntp maxcleints

nntp trace

nntp active

nntp access

nntp add

nntp create

nntp drop

nntp dump

nntp ihave

nntp list

nntp post

nntp profile

nntp read

nntp quiet

 

The 'nntp' commands control the operation of the Network News

Transfer Protocol (NNTP).  The nntp features are defined at compile-time.  Two NNTP modules are available, "NNTP" which is an NNTP client only, that stores news in a mailbox-compatible form, and another, "NNTPS" which is both an NNTP client and server, that stores news articles in a form inaccessible to mailbox users.

We first describe the "NNTP" nntp client features:

 

nntp addserver <nntpserver_host> <interval> [<range>] [<groups>]

Add an NNTP news server to query every <interval> seconds for new articles in the specified <groups>. <range> specifies the time-of-day limits when the queries will be made, in the form hh:mm-hh:mm where start time precedes end time.

Multiple 'nntp addserver' commands may be used to concatenate groups (up to a maximum of 512 bytes).

Example:  nntp add w5ddl.ampr.org 3600 18:00-06:00

 

nntp directory [ <News_spool_dir> [News_control_dir> ]

Display or set the spool directory for spooling news articles.

Default is /spool/mail.  Optionally set a new control directory.

The default control dir is /spool/news.

nntp directory  old=new

Establish a newsgroup name mapping, so that a newsgroup name beginning with <old> is changed to one beginning with <new>, which may be a null string.  To delete a mapping, use <old>==.

The mapping scan continues until the list is exhausted, in the same order the nntp dir commands were specified.

Example:  nntp dir  rec.radio.=

nntp dir  amateur.=

nntp dir  shortwave=swl

nntp dir  equipment=eq

will map rec.radio.amateur.policy to policy, rec.radio.swap to swap, rec.radio.shortwave to swl, and rec.radio.amateur.equipment to eq.

 

nntp dropserver <nntpserver_host>

Drop the specified NNTP server from the list of servers to contact.

 

nntp firstpoll [<#days>]                              Default: 5

Sets or shows the number of days of old news that is requested in the initial poll to a new server.

 

nntp groups <group> [<group> ...]             Default: All groups

Display or set the currently set USEnet newsgroup(s).  The group names are separated by spaces or commas.  The '*' and '!' metacharacters (meaning 'all' and 'not' respectively) are supported.

 

nntp kick <nntpserver_host>

Kick the local NNTP client to get in touch with the named server.

 

nntp listservers

List the currently defined servers.

 

nntp lzw <ON | off>

Turn on or off attempts to request LZW compression be used by the server when sending articles.

 

nntp maxcleints [<count>]

Displays or sets the maximum number of simultaneous NNTP client  sessions that will be allowed.  The default is 0, that is, no limit (except that imposed available memory).

 

nntp trace <level>                                     Default: 1

Sets or shows the current trace level for NNTP traffic.

Level

0:  No tracing.

1:  Display serious errors only

2:  Display serious and transient errors

3:  Display serious and transient errors, plus session progress

4:  Display serious and transient errors, session progress and  actual received articles

5:  Display errors.

 

nntp active

Displays the active file, which shows configured newsgroups.  See 'nntp create'.

 

nntp access [on | OFF]

Displays or sets whether access permissions are enforced.  When enabled, the file /spool/news/access is scanned to determine the access permissions for a client host.  Each line of this file has fields of the form:  host:permissions: where host is explicit hostname (FQDN) or starname, eg, *.aara.org and permissions are a string of chars: R => read, P => post, none=>deny access.  When access is turned on, hosts not mentioned are DENIED nntp access.

 

nntp add <nntpserver_host> <interval> [<range>] [<groups>]

 Add an NNTP news server to query every <interval> seconds for new articles in the specified <groups>.  If no <groups> are specified, all groups found in /spool/news/active are checked.

<range> specifies the time-of-day limits when the queries will be  made, in the form hh:mm-hh:mm where start time precedes end time.

Multiple 'nntp add' commands may be used to concatenate groups (up to a maximum of 512 bytes).

Example:  nntp add news.usl.edu 3600 usl.test,rec.radio.swap

 

nntp create <news.group.name> [y|n]

Updates the /spool/news/active file, which must have an entry for each news group you wish to receive.  Choose y to permit  posting to this group, or n to deny posting.  y is assumed if nothing is specified.  The /spool/news/pointer file is also updated with the path to the directory which will contain the articles.  Articles will be stored as separate files, named  by an integer corresponding to their arrival order.

 

nntp drop <nntpserver_host>

Drop the specified NNTP server from the list of servers to contact.

 

nntp dump <newsgroup> [<areaname>]

Dump all the news articles in <newsgroup> to the JNOS area called <areaname>.  This would allow mailbox users to read news, but no provisions are made to dump just new articles.  If <areaname> is omitted, then <newsgroup> is used as the area name.

Note: this command is unavailable if JNOS was compiled with NEWS_TO_MAIL #define'd (see note 4 below).

 

nntp ihave [<val>]                                Default: 0

Set or display the IHAVE nntp-protocol behavior.

0 => IHAVE disabled (default)

1 => IHAVE reports only for newsgroups associated with serverhost

2 => IHAVE reports for all newsgroups

The IHAVE protocol tells the server the message-ids of articles stored here;  it is used to forward articles off this system.

 

nntp list

List the currently defined servers.

 

nntp post

Posts to a local newsgroup.  A session is created, and the console user is queried for UserName (unless established by a prior 'nntp profile' command), Newsgroup, Subject, and message body.  While  entering the msg, a line consisting of ".u" or ".r" will then prompt for a file name, which is inserted into the article being built.  "/EX", "***END" or "." will end the article when found alone on a line.  When the message body is terminated, the prompt [Send, Abort, Exit, List] is displayed.  Enter the first letter of the desired choice.

Note that Exit quits the post subcommand, while Abort (or Send) allows you to post another article.

 

nntp profile {fullname|host|organization|reply|sig|user} string_value

Profile establishes values for the header fields of posts originating here.  Options include:

sig  path_to_signature_file host FQDN    Defaults to our 'hostname'  fullname "First Mi. Lastname" organ "organization name desired" user "user name" reply reply-to-address

 

nntp read <newsgroup> [<article_number>]

Reads the local <newsgroup>, beginning with the first unread article unless <article_number> is also provided.  A session is created for displaying the articles.  After each article, a prompt "Read next/previous? (n/p/q) " allows the console user to easily progress through the articles.

 

nntp quiet <yes | NO>                                 Default: no

Sets or shows the current arrival-notification setting for NNTP traffic.  The notification will include a BEL character if  "smtp quiet no" is in effect.

We now describe the "NNTPS" client/server commands.  Remember  that the 'start nntp' command must be used to allow the nntp server to accept connects from other nntp clients.

Dispays or sets the value if the quiet behavior flag.  Nntp will display a message and/or beep when a new article arrives:

0 => beep only (default)

1 => beep and display msg

2 => no msg or beep

NOTES:

  1.  See the 'expire' command for information on removing old articles.

  2. The TO: addresses, when present, are stripped from article headers by the NNTP client.  This was done to prevent loops should the area be forwarded to another JNOS system, since the TO: address would cause the msg to be routed back to the mail-to-news daemon. If you want to forward an area, give the TO: address on the line in forward.bbs that lists the area.  Example: rec.radio.swl all@swl

  3. The NNTPS software includes a mail-to-news feature, such that email with a To: address that begins with "!" is passed to the NNTPS module.  The remainder of the To: address is interpreted as a newsgroup name, with the name truncated at the first occurrence of one of "%@.,/", and with "!" translated to "." and "+" to ",".  An alias is usually used to provide this special name.  For example, to route all ALLUS bulletins to both the allus area, and the ampr.allus newsgroup, use the alias:  allus    allus !ampr!allus To do the above task, and also post to local.allus, use: allus      allus !ampr!allus+local!allus

  4. The NNTPS software includes a news-to-mail feature, such that news articles can be emailed to local or remote destinations after they are processed by nntp.  This would allow, for example, emailing to a public area, so that BBS users too could read news articles. JNOS must be compiled with NNTPS and NEWS_TO_MAIL #define'd and a file /spool/news/gateway must exist to define the mapping from a newsgroup to an SMTP To: address.  Each non-comment line in the gateway file must begin with a newsgroup name (starnames OK), followed by spaces or tabs, followed by the email To: address.

Examples:

# comment line

rec.radio.swapsale

rec.radio.shortwaveswl

rec.radio.amateur.*  ham


nrstat;

 

Displays the netrom serial interface statistics. This is only valid if the serial port was attached in NRS mode. See the 'attach' command for more.


oldbid;

 

The 'oldbid' command is used to invoke the process which deletes old message-id's (or bids) in the Historyfile.  The default location of Historyfile is /spool/history.  Do not confuse this file with the NNTP History database, stored in /spool/news/history by default!

 

oldbid  [interval  age_in_days]

Begin the oldbid process every <interval> hours, and delete those bids which are older than <age_in_days> days.  If no arguments are provided, the current oldbid interval and age are displayed.

Example:  To expire bids every 24 hours, that are 30 days old, use:  oldbid  24  30


param <iface> [<param> [<value>]];

Param invokes a device-specific control routine.  A simple 'param

<iface>' will give a list of available parameters and their current values, for the interface <iface>.  <param>  can be the literal name of the parameter, or it can be its numeric index (see below).  <value> is either a boolean value (such as ON or OFF) converted to 1 or 0, or an integer.

 

On a serial interface,  the param command sends control packets over the serial port.  For example, 'param port1 txdelay  255' will set the keyup timer (called txdelay) on the KISS TNC configured as port1 to 2.55 seconds (255 x .01 sec).  In most TNC KISS implementations, a 10ms tick count is used, so that (for example) 30 means 300ms, and a limit of 255 is imposed on <value>.

The SCC driver, on the other hand, allows a limit of 65535 for <value>.

 

Currently supported <params> include:

Name (index)      Definition

 

TxDelay (1)       keyup delay before sending data

Persist (2)       the csma persistence (range 0-255) (probability of success

SlotTime (3)      the channel access slottime (how often we throw the dice)

TxTail (4)        time to keep transmitter keyed up after end of packet

FullDup (5)       simultaneous TX and RX enabled when ON

Hardware (6)

TxMute (7)

DTR (8)           Assert DTR when true, de-assert when false.

RTS (9)           Assert RTS when true, de-assert when false.

Speed (10)        async baud, etc.

EndDelay (11)

Group (12)        SCC iface group id and TX-interlock style

Idle (13)

Min (14)

MaxKey (15)       maximum time to allow transmitter to be keyed (0 - 65000)

Wait (16)

Down (129)        De-assert RTS and DTR on serial port

Up (130)          Assert RTS and DTR on serial port

Blind (131)       Ignore CTS and DSR transitions on serial port

RcvMode (253)     set packet driver receive mode

Return2 (254)     TNC partially (!!) exits KISS mode

Return (255)      TNC exits KISS mode

 

Additional information for selected <params>:

 

The GROUP param specified an integer whose low-order 8 bits provide a transmit-group number (0 implies no group membership), and whose remaining bits provide flags describing that group's behavior:

1 => only transmit when all receive channels in this group are clear.

2 => don't transmit simultaneously on interfaces in this group.


pause <seconds>;

 

Pauses for the specified number of seconds.  This command is commonly used in the autoexec.nos file when loading in large routing tables or to pause after various time critical commands.


ping <host> [<length> [<repeat_ms> [<incflag>]]];

 

Verify a host is alive, by sending it ICMP Echo Request packets.

<host> is the address to ping.

 

<length> is the number of bytes to use in the data portion of the packet being built.  <length> defaults to a small value, sufficient to contain a timestamp to facilitate determining round-trip timing.

Any additional data bytes will contain 0x55 characters ('U').

 

<repeat_ms> specifies that instead of sending a single ping, a session is to be established to do repeated pings every <repeat_ms> MILLISECONDS.

A running display of attempts, round-trip times, and mean deviation of round-trip times is maintained in this session.  To terminate the session, press F10 and then use the reset command.

<incflag> indicates that the host IP address is to be incremented by one at each ping attempt.  It is intended to help search blocks of IP addresses for active hosts.  It should be used sparingly if at all.


popmail <subcommands>;

 

popmail addserver

popmail dropserver

popmail kick

popmail list

popmail lzw

popmail quiet

popmail trace

popmail t4

 

popmail addserver <host> [<seconds>] [hh:mm-hh:mm] <protocol><mailbox> <username> <password>

Add hostP as a pop server. When seconds is given, a timer is started to query the  host with that interval for mail. If not specified no quering to the pop host  will be started. You have to do that manually with a kick.  When  hh:mm is given then only in that exact timeframe are queries to the host made (allowed).

Protocol is either POP2 or POP3, depending on the  mail service the host is providing.

A JNOS POP server host need only 'start' the pop2 or pop3 daemon, and configure the popusers file, to make his/her system accessible to pop clients.   

Note: pop2 is superseded by pop3.  If MD5AUTHENTICATE is #define'd

JNOS pop3 supports the apop technique, which avoids, were possible, sending a plain-text password.

Mailbox is the mailbox name on the host where mail has to be picked up.

Username and password are this system's validation parameters for the host.

Note: On entering this command the host name is looked up. If nonexistent, an error message is displayed.

 

popmail dropserver <host>

Drops host from the list of pop servers to be queried.  All references to the entry are deleted from the current system.

 

popmail kick <host>

Starts a pop session with host to retrieve mail.  This command is needed  when no interval is specified with the popmail addserver command.

 

popmail list

Lists the current popmail server table.

 

popmail lzw  [on|off]

Enables, disables lzw compression for popmail.

 

popmail quiet <yes|no>

Displays or sets the notification of new mail arriving via pop.

 

popmail trace <level>

Displays or sets the trace level of pop sessions. Current trace levels are:

0 - No tracing

1 - Serious errors reported

2 - Transient errors reported

3 - session progress reported

Note that tracing only goes to the log file.

 

popmail t4 [<#seconds>]                   Default: 0

Displays or sets the pop client's idle timeout value (in seconds).

Zero means no timeout, otherwise the value should be at least 300 seconds.  This command is only available when POPT4 was #define'd when JNOS was compiled.


prompt [on | OFF];

 

The 'prompt' command sets or displays the value of the MSDOS-Style prompt switch.  If set ON, and status lines are not enabled, the current directory is printed as the first part of the console command prompt.


ps;

 

Display process status information. The first line shows the time the system has been running, the active stack segment, the interrupt stack usage, and the JNOS psp segment.  Note that the DOS JNOS code is loaded at segment address psp+0x10.  Next, ps displays all processes in the system.

 

The fields are as follows:

 

PID - Process ID (the segment of the process descriptor).

 

SP - The current value of this process' stack pointer.

 

maxstk - The size of the stack allocated to this process.

 

stksize - The apparent peak stack utilization of this process.

This is done in a  somewhat  heuristic  fashion, so the numbers should be treated as approximate. If this number is close to the maxstk figure, the system is likely to crash.  Please notify the author if you find such a situation.  (The program should be recompiled to give the process a larger allocation when it is started.)

 

event - The event this process is waiting for, if it is not

runnable.  This is actually a pointer value.

 

fl - Process status flags. There are three: I (Interrupts enabled), W  (Waiting  for event) and S (suspended). The I flag is set whenever a task has executed a pwait() call (wait for event) without first disabling hardware interrupts.  Only tasks that wait for hardware interrupt events will turn off this flag; this is done to avoid critical sections and missed  interrupts.

The  W flag  indicates  that  the  process is waiting for an event; the 'event' column will be non-blank. Note that although there may be several runnable processes at  any  time  (shown  in the 'ps' listing as those without the W flag and with blank event fields) only one process is actually running at any  one  instant (The  Refrigerator  Light  Effect  says that the 'ps' command is always the one running when this display is generated.)


pwd [<directory>];

 

An alias for the 'cd' command.


rarp;

 

rarp query

 

The 'rarp' commands are associated with the Reverse Address

Resolution Protocol (RARP).  RARP is used where a station knows its own Ethernet address or callsign but does not know its own IP address.

rarp

Display RARP statistics.

 

rarp query <interface> <ether_address|callsign>[<ether_address|callsign> ...]

Issue a RARP request for an IP address for <ether_address><callsign>, via <interface>.


rdate <subcommand>;

 

rdate server

 

Remote Date (rdate) is used to set the time of the local JNOS system based on the time obtained from a remote system's time server. The Unix time (port 37) protocol is used.

 

rdate server <hostname>

Causes a connect to <hostname> TCP port 37, from which a time is obtained, adjusted by an offset if one was given, and then used to set the time on the local system.


record [off | <filename>];

 

Opens <filename> and appends to it all data received or sent in the current session.  (This includes up/downloading to a mailbox).

 

For example, if you are in a Telnet session and want to initiate recording, you will need to use the <F10> key to escape back to command mode to issue the 'record' command.  The message "Recording into <filename>" will be displayed and another "JNOS>" prompt will be issued.  Enter CR on a blank line and you will return to the Telnet session with recording activated. The command 'record off' stops recording and closes the file; this is done automatically when the associated session is closed.


remark;

 

Writes its arguments to the current output stream.  Similar to the MS-DOS 'echo' command.  Example: remark   "do:  source \dial_usl.nos...to dial USL and start PPP."

Writes the quoted string to the current output stream.


remote [-s <syskey>] [-g <gwkey>]


remote [-p <port>] [-k <key>] [-a <kickaddr>] <host> kick | exit | reset


remote [-p <port>] [-k <key>] [-r addr/#bits] <host> add | drop;

 

remote -s [<key>]

remote -g [<gwkey>]

 

The remote command can be invoked three ways.  First, to set a key phrase used by the remote server process to validate commands sent to it.  Second, to send a UDP packet to a specified host commanding it to exit JNOS, reset the processor, or force a retransmission on TCP connections.  Third, to send a UDP packet to a specified host commanding it to either add or drop an encapped route to a specified host or subnet via the sending system's IP address, that is, register ourselves as a gateway for a specified host or subnet for a finite period.

For the second and third forms of the remote command to be accepted, the remote system must be running the remote server.

Also, the port number specified in the remote command must match the port number given when the server was started on the remote system.  Further, if the remote system established a key phrase, then that phrase must also be provided via the -k option, so the remote system can check that it matches.

If the port numbers or keywords do not match, or if the remote server is not running on the target system, the command packet is ignored.

Even if the command is accepted there is no acknowledgement.

The 'kick' subcommand forces a retransmission timeout on all TCP connections that the remote node may have with the local node.

If the '-a' option is used, connections to the specified host are kicked instead.  No key is required when using the 'kick' subcommand.

The 'exit' and 'reset' subcommands are mainly useful for restarting JNOS on a remote unattended system after the configuration file has been updated.  The remote system should invoke JNOS automatically upon booting, preferably in an infinite loop.

The add or drop subcommands allow a JNOS system with a dynamically-assigned IP address, to register as a gateway with a cooperating system having a known IP address.  The duration of the route thus established is controlled by the remote system, typically 15 minutes.  Since UDP packets are not guaranteed to be delivered, it might be wise to send remote commands more frequently than the timeout.  See the at command, well suited to this purpose.

 

remote -s [<key>]

The 'exit' and 'reset' subcommands of 'remote' require a password.  The password is set on a given system with the '-s' option, and it is specified in a command to a remote system with the '-k' option.

If no password is set with the '-s' option, then the 'exit' and 'reset' subcommands are disabled.

 

remote -g [<gwkey>]

The 'add' and 'drop' subcommands of remote may require a password.  The password is set on a given system with the '-g' option, and it is specified in a command to a remote system with the '-k' option.

Note that 'remote' is an experimental feature in JNOS; it is not yet supported by any other non-KA9Q-derived TCP/IP implementations, although a version of the remote command for BSD Unix exists. 


rename <oldfilename> <newfilename>;

 

Renames <oldfilename> to <newfilename>. This performs the same function as the DOS rename command.

repeat [milliseconds] command;

 

Starts a new session screen with the output of the command updated every interval in milliseconds. If you hit F10 it ends the session.

 

Example: repeat 1000 tcp status

 

repeats every second 'tcp status' command


rewrite <address>;

 

Will show the result of the mail rewrite process, that is, how <address> is changed based on the contents of Rewritefile (default location is /spool/rewrite).  The result of rewriting determines whether an incoming message is stored in an area (and,

which area receives the message), or whether it is stored into /spool/mqueue for handling by SMTP.  The rewrite command is useful for testing modifications to Rewritefile.

 

Example:  rewrite n8fow@n8fow.ampr.org shows the mail rewriting that will be done for mail addressed to n8fow@n8fow.ampr.org.

 

REWRITE FILE

The Rewrite file is used to perform a one-to-one mapping between a message's destination (To:) addresses as received by JNOS, and the destination addresses as actually used by JNOS.

Each record within the rewrite file comprises a single line, containing either two or three fields separated by spaces. The first field is the template field; if a destination address matches the template, it is replaced by the second field after variable substitution.  The rewrite process terminates after the first template match, with JNOS using the resultant value as the new destination address, unless there is an optional third field which contains the single letter "r".  In this case, JNOS rescans the rewrite file from the beginning, attempting to match the new destination address with one of the templates.  If no template  matches the destination, it is used unchanged as the result.

 

If the address resulting from rewrite contains an "@" it is sent via smtp.  Otherwise it should be the name of an area.  There is one special case: "refuse" as the destination causes the message to be rejected.

 

A template contains a combination of verbatim ascii text, and special characters "?*+\".  To treat a special character as an ordinary character, precede it by '\'.  The '?' character matches any single character, '*' matches any number of consecutive characters (including zero), and '+' matches a sequence of one or more characters.  In the second field, the character "$", followed  by a single digit in the range 1 to 9, represents the string that matched the respective '*' or '+' in the template.  For example,

tcpip@* tcp

*@tcpip tcp

rewrites all addresses beginning or ending with "tcpip" to the  tcp area.  The two-character sequence, $H, in the second field  is replaced by the hostname of the system, as set by the hostname command.

 

SAMPLE REWRITE FILE


rip <subcommand>;

 

rip accept

rip add

rip drop

rip kick

rip merge

rip refuse

rip request

rip status

rip trace

rip ttl

 

ALSO see RIP

The commands given here are used for RIP.  After this list of commands is the list for RIP-2.  The RIP-2 implementation includes compatibility with RIP-1.  The sets of commands are separated here to improve clarity.

 

rip accept <gateway>

Remove the specified gateway from  the  RIP  filter  table, allowing  future broadcasts from that gateway to be accepted.

 

rip add <hostid> <seconds> <flags>

Add an entry to the RIP broadcast table. The IP routing table will be sent to <hostid> every interval of seconds. If <flags> is specified as 1, then "split horizon" processing will be performed for this destination. That is,  any  IP routing  table  entries pointing  to the interface that will be used to send this update will be removed from the update.  If split horizon processing  is not  specified,  then all routing table entries except those marked "private" will be sent in each update.  (Private entries are never sent in RIP packets).  If flags is 2, the broadcast will also advertise a route to the system itself.  Flags are accumulative, i.e. a value of 3 will mean both "split horizon" and "me too".  See also the 'route' command.

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 (e.g. 44.26.0.0 or 44.26.255.255) then chances are you already have the necessary IP routing table entry (unusual subnet or cluster-addressed networks may require special attention!)   However, an 'arp add' command will be required to translate this address to the appropriate link level broadcast address; For example, arp add 44.255.255.255 ax25 qst-0 for an AX25 packet radio channel. (If there are multiple AX25 interfaces, make a unique address for each interface.)

 

rip drop <dest>

Remove an entry from the RIP broadcast table.

 

rip kick

Immediate command to send a rip update.

 

rip merge [on|OFF]

This flag controls an experimental feature for consolidating redundant entries in the IP routing table. When rip merging is enabled, the table is scanned after processing each RIP update.

An entry is considered redundant if the target(s) it covers would be routed identically by a less "specific" entry already in the table. That is, the target address(es) specified by the entry in question must also match the target addresses of the less specific entry and the two entries must have the same interface and gateway fields. For example, if the routing table contains

Dest            Len      Interface      Gateway   Metric  P Timer  Use

44.2.3.4        32       ax0            44.96.1.2    1    0   0     0

44.2.3.0        24       ax0            44.96.1.2    1    0   0     0

then the first entry would be deleted as redundant since packets sent to 44.2.3.4 will still be routed correctly by the second entry. Note that the relative metrics of the entries are ignored.

 

rip refuse <gateway>

Refuse to accept RIP updates from the specified <gateway> by adding the gateway to the RIP filter table. It may be later removed with the 'rip accept' command.

rip request <gateway>

Send a RIP Request packet to the specified <gateway>, causing it to reply with a RIP Response packet containing its routing table.

 

rip status

Display RIP status, including a count of the number of packets sent and received, the number of requests and responses, the number of unknown RIP packet types, and the number of refused RIP updates from hosts in the filter table.  A list of the addresses and intervals to which periodic RIP updates are being sent is also shown, along with the contents of the filter table.

 

rip trace [0|1|2]                                    Default is 0.

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.

 

rip ttl <seconds>

Displays or sets the time to live timer to 'seconds'. Normal time-out value is 240 seconds.  This is not the ttl in a rip broadcast (16 = infinite).  Set this timer before starting rip.

Change this timer only in cooperation with your surrounding nodes.   Default is 240 seconds.


rlogin <host>;

 

Sets up an 'rlogin' session via port 511 to a Unix-compatible host.  Default terminal is a vt100-compatible terminal (with keyboard mappings as defined with the 'fkeys' command).


rmdir <directory>;

 

Remove a sub-directory from the current working directory.  The sub-directory must be empty before 'rmdir' can be used.


route [<subcommand>];

 

route add

route addprivate

route drop

route flush

route look

route sort

 

With no arguments, 'route' displays the IP routing table.

 

route add <desthostid>[/bits] | default  <iface> [<gatewayhostid> | direct] [<metric>]

NOTE:  Attempting tcp connections to an address without an existing route fails immediately.

This command adds an entry to the routing table.  It requires at least two more arguments, the desthostid of the target destination and the name of the interface <iface> 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 <gatewayhostid> 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, <gatewayhostid> is also unnecessary since the destination address is used to determine the interface link address).  If <rspf> is used and the system is a switch / router to multiple routes, the keyword 'direct' can be used instead of a <gatewayhostid> to set the metric higher than the default of 1.  This way routes advertised by other rspf stations can be cheaper and get selected.  If 'direct' is given but <metric> not, an new algorithm is used to set the metric dependent on the number of subnet mask bits.

The optional /bits suffix to the destination host id specifies how many leading bits in the host id are to be considered significant in the routing comparisons.  If not specified, 32 bits (i.e., full significance) is assumed. With this option, a single routing table entry may refer to many hosts all sharing a common bit string prefix in their IP addresses.  For example, ARPA Class A, B and C networks would use suffixes of /8,  /16 and /24 respectively. E.g. the command

route add 44/8 ax0 44.64.0.2 causes any IP addresses beginning with "44" in the first 8 bits to be routed to 44.64.0.2; the remaining 24 bits are "don't-cares".

When an IP address to be routed matches more than one entry in the routing table, the entry with largest 'bits' parameter (i.e., the "best" match) is used. This allows individual hosts or blocks of hosts to be exceptions to a more general rule for a large block of hosts.

The special destination 'default' is used to route datagrams to addresses not matched by any other entries in the routing table; it is equivalent to specifying a /bits suffix of /0 to any destination hostid. Care must be taken with 'default' entries since two nodes with default entries pointing at each other will route packets to unknown addresses back and forth in a loop until their  time-to-live (TTL) fields expire.  (Routing loops for specific addresses can also be created, but this is less likely to occur accidentally).

There is one built-in interface: loopback. Loopback is generally for internal purposes, although destinations explicitly routed via this interface result in the packet being dropped, i.e., loopback can be used as a bit-bucket!

Here are some examples of the route command:

# Route datagrams to IP address 44.0.0.3 to SLIP line #0.

# No gateway is needed because SLIP is 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

 

route addprivate <dest hostid>[/bits] | default  <iface>[<gateway hostid> [<metric>]]

This command is identical to 'route add' except that  it  also marks  the  new entry as private; it will never be included in outgoing RIP updates. It will also not be shown in themailbox 'IProute' command.

 

route drop <dest hostid>[/bits]

Delete an entry from the table.  If  a  packet  arrives  for  the deleted address and a default route is in effect, it will be used.

 

route flush

Delete (drop) all temporary routes, that is, routes added with an expiration timer (eg, by RIP).

 

route look <hostname>

Display just the routing table entry used to reach <hostname>.

 

route sort [off|ON]

Display or set the route display sort flag.  When set, the route command will sort its report, which tends to display similar routes together.  When reset, the report is by decreasing number of significant bits used in comparing host addresses.


rspf <subcommand>;

 

rspf interface

rspf mode

rspf rrhtimer

rspf suspecttimer

rspf timer

 

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, it will figure out if the link is bi-directional by pinging the  other  station. The protocol is described in the RSPF 2.1 specification.

 

rspf interface <interface> <quality> <horizon>

<interface> is the required interface rspf should use.  quality is from 1  to   127,  horizon  is between 1 to 255.  End nodes should have the quality set to 1. Immediate nodes normally set the quality to 8. The normally used value for horizon is 32.

 

rspf mode [vc | datagram | none]

Display the preferred mode for RSPF.  Modes are vc  (Virtual Circuit) and datagram.  none resets the preferred mode.

 

rspf rrhtimer [seconds]

Display or set the rrh timer value.

 

rspf suspecttimer [<seconds>]

Display or set the suspect timer value.

 

rspf timer [<seconds>]

Display or set the update timer value.


session [<session#>] [arguments;

 

session <session#> flowmode [on | off]

session <session#> split [on | off]

session swapmode [ems | xms | memory | file]

 

Without arguments, displays the list of current sessions, including session number, associated socket, the session screen-swap mode, the session type and state, the send and receive queue sizes, and the remote TCP or AX.25 address.  An asterisk (*) is shown next to the current session.

 

Entering  a session number as an argument to the session command will put you in converse mode with that session.  If you have started the TTYLINK server, and have set Attended mode, an incoming telnet connect to the ttylink port will automatically create a split-screen session and switch you to that session.

 

session <session#> flowmode [on | off]

<flowmode> displays or enables / disables setting of --more-- handling for <session#>.  This is handy for long directory listings coming from an ftp session, for example .  Escaping to command mode before issuing the dir command and entering "session # flowmode on" gives a page at a time to look at.  At any time you can escape out again and switch flowmode off.  Note that a ftp session has it's own flow command now built in.  See FTP commands later in this manual.

 

To avoid the --more-- prompt when the output of console commands exceeds the screen length, turn flowmode off for session 0.  This session number always exists, but is not shown in the session listing.  Some commands, such as "more" or "dir", will ignore flowmode since they manage their own output pagination.  But, these commands will accept a 'Q' to quit (abort) further output.

Example:  session 0 flowmode off

 

session <session#> split [on | off]

<split> displays or enables / disables the split-window capability of session <session#>.  This is useful to separate what you enter from the keyboard (shown in a small window at the bottom of the screen) from incoming data, which is shown in a large window at the top of the screen.  For example, a ttylink session is begun in split mode.

 

session swapmode [ems | xms | memory | file]

<swapmode> displays or defines how session screens are saved when the associated session is not current.  The initial setting is determined by the -m command-line argument value and/or compilation options.


shell  [cmd [args...]];

 

Suspends JNOS and executes a sub-shell  ("command  processor" under  MS-DOS).  When the sub-shell exits, NOS resumes (under MS-DOS, enter the exit command).

 

Note: see the COMSPEC environment 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 subshell and whatever command the user tries to run.  When shelled out, Mailbox Operator connects and ttylink incoming connections are refused.  A 'system unattended' message is sent to the "connector" of that socket.

 

Here are some comments particular to the MSDOS system:  if no arguments are provided to the JNOS shell command, the MSDOS command processor is invoked to process commands entered from the console. 

Use the exit command to return to JNOS.  If arguments are provided, the first one is assumed to be the program name to invoke.  If the program is a batch file, you must precede it's name with /c so as to invoke the command processor explicitly to process the batch file commands: shell /c ibackup.bat \spool\mail \bkup

 

The /c prefix is also useful to allow i/o redirection to be interpreted  by DOS:  shell /c FC /A /C autoexec.bat autoexec.sav >outfile


skick <socket#>;

 

This is a shorthand for the various 'kick' subcommands. This one searches  the socket for correct type and kicks the transport layer.


smtp <subcommand>;

 

smtp batch

smtp dtimeout

smtp gateway

smtp hopper

smtp kick

smtp kill

smtp list

smtp maxclients

smtp maxservers

smtp mode

smtp quiet

smtp t4

smtp tdisc

smtp timer

smtp trace

smtp usemx

 

These commands are used for the Simple  Message  Transport Protocol  service (that is, mail).

 

smtp batch [yes | no]

If set smtp will batch the commands into one frame.  When off only one command is sent and a response is waited for.  Some old and flaky smtp servers cannot handle more than one command at a time.  NOS can handle multiple.  If you are not hindered by an old smtp server, setting batch reduces bandwidth.  However, if you obtain bounced email containing:

         >>> DATA

         <<< 503 Need MAIL before RCPT

you should turn batching off!

 

smtp dtimeout [<hours>]                             Default: 0

Displays or sets the number of hours a message will remain in the smtp mqueue before being returned to sender.  Delivery attempts are made at "smtp timer" intervals.  If <hours> is zero, the message remains in mqueue indefinitely.

 

smtp gateway [<hostid> | none]

Displays or sets the host to be used as a "smart" mail relay.

Any  mail sent to a host not in the domain.txt file or not found

via a nameserver query, will instead be sent to the gateway for forwarding (if #define'd).  To undefine the gateway, specify "none".

 

smtp hopper [ON | off]

Displays or sets the flag used to enable the "hopper" feature.

This feature, available when JNOS is compiled with HOPPER #define'd, will attempt to deliver mail to a router which serves the mail's destination address.  The router address is used even when an 'smtp gateway' is defined.  This feature should not be enabled when X1J or other routers are used which don't accept SMTP connections.

Note that if HOPPER is ##define'd, then JNOS starts with smtp hopper enabled by default.  This feature is inherently "dangerous"!

 

smtp kick [<hostname>]

Run through the outgoing mail queue and attempt to deliver any pending mail to all systems, or just to <hostname> if specified.

This command allows the user to "kick" the mail system manually.

Normally, this command is periodically invoked by a timer whenever NOS is running.

 

smtp kill <jobid>

Kill <jobid> and delete the message.  If the job is "locked" by the smtp client process, you will be asked to confirm the removal.

 

smtp list

List the current jobs in the mqueue. An "L" means locked and in progress.

It is wise to add in autoexec.bat a "del /spool/mqueue/*.lck" command, since JNOS will not remove any pre-existing locks (it assumes other tasks share the mqueue, and dare not remove their locks).

 

smtp maxclients [<count>]

Displays or sets the maximum number of simultaneous outgoing SMTP sessions that will be allowed.  The default is 10.  Reduce <count> if network congestion is a problem.

 

smtp maxservers [<count>]

Displays or sets the maximum number of simultaneous incoming  SMTP sessions that will be allowed.  The default is 0, i.e., no limit other than the amount of memory available.

 

smtp mode [queue | ROUTE]

Sets the smtp delivery mode.  If 'queue', all messages are left in /spool/rqueue for external forwarding and handling.  If  'route', messages are handled and, if for local, appended to a  mailbox, or if remote they are forwarded.  Default = 'route'

 

smtp quiet [YES | no]

Enables or disables the inclusion of a beep in the message that new mail arrived at this system.  See 'smtp trace' below, to enable the printing of a new-mail-arrived message.

 

smtp t4 [<seconds>]

Displays or sets a t4 timer for smtp client (outgoing) sessions so that they will disconnect after a period of inactivity and prevent lockups.  Default = 0, i.e., no disconnect timeout.

 

smtp tdisc [<seconds>]

Displays or sets a disconnect timer for smtp server (incoming) sessions so that they will disconnect after a period of inactivity and prevent lockups. Default = 0, i.e., no disconnect timeout.

 

smtp timer [<seconds>]

Displays or sets the interval, between scans of the outbound mail queue.  For example, smtp timer 600 will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds, subject of course to the smtp maxclients limit.  Setting a value of zero disables queue scanning altogether.  This value is  recommended  for standalone IP gateways that never handle mail, since it saves wear and tear on the (floppy) disk drive.  Default = 0

 

smtp trace [<value>]

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 tracing.  A trace value of 1 just enables the "new mail for n5knx from <k5arh@w5ddl.ampr.org>".  Larger values produce more voluminous trace output.

 

smtp usemx [yes | NO]

Displays or sets a flag enabling or disabling MX record lookups.

This can  be enabled if a domain server is available in the near distance (reachable).  It should be disabled (default) if no domain server is in reach to  satisfy  the MX  query.  Note that

MX record handling is limited to the five highest-preference hosts.

Also, the smtp t4 timer must be set, in order to timeout on non-responsive hosts.


socket [<socket#>];

 

Without an argument, displays all active  sockets,  giving  their index  and type,  the address of the associated protocol control block and the and owner process ID and name. If the index to an active socket is supplied, the status display  for  the appropriate protocol is called.  For example, if the socket refers to a TCP connection, the display will be that given by the 'tcp status' command  with  the protocol  control block address.


source <script_filename>;

 

The 'source' command runs a set of NOS commands which are in <script_filename>.  This is a very convenient way of executing a series of commands without having to enter them individually at the keyboard.


split <iface> <call>;

 

Same as the 'connect' command but uses a split screen mode.

Do a   'help connect'   for more info.


start <servers...>;

 

Start the specified server. Do a 'start ?' for a list of available servers (this won't be displayed to remote sysops).

Servers often take an argument which specifies an alternate port number from which to listen.  Example: start callbook [port#]               Default port: 1235   

Default port numbers are listed in socket.h.

Exceptions:

start tip iface [modem | terminal] [timeout_secs] starts a mailbox server which listens for connections on <iface>.

If <modem> is used, CD (carrier detect) must be asserted before a connection is recognized.  A <timeout> value specifies how many seconds of inactivity must occur before a disconnect is initiated.

 

A tip about using the tip server to provide async dialup access to JNOS:  the following commands demonstrate one way to set it up.

 

# source this file to configure COM1 for dialup access to JNOS attach asy 0x3f8 4 ax25 dialup 2048 256 9600

# ifconfig dialup descrip "dialup access" param dialup up

# Send any desired config cmds here, eg, answer phone on 1st ring comm dialup "atz e0 s0=1" pause 2

#start tip dialup terminal 360 start tip dialup modem 360

# If the modem obeys DTR (must be asserted to answer the phone)

# the modem might be permed with S0=1, and then the answering could

# be controlled by param dialup up, param dialup down, commands

# possibly done daily by a repeating at command... start http [port#] [drive] [rootdir] starts an http server.  The default port is 80, the default disk drive is C, and the default rootdir (for html file access) is /wwwroot.

See the http helpfile for more information, especially in the notes section.


status [on|off];

 

The 'status' command displays general system information, attended flag, and a table of open files (when possible).  This is useful for monitoring file transfer activity.

 

If STATUSWIN and STATUSWINCMD were #define'd when JNOS was compiled, the status command can take an optional argument, which determines whether the status window is turned on or off.  The status window must be enabled when JNOS is started (see the -u, -w and -x command- line argument descriptions).  The 'status on|off' command can then be used to disable (via "off"), or re-enable (via "on"), the status window at the top of the screen.  When the status line state is changed, existing sessions will have their screen cursor repositioned.

 

The status window can have up to 3 lines.  The first line shows the time, heap/dos available memory, number of connections to various services, and then a list of active sessions, where sessions with data waiting to be read are blinking.  A blinking MAIL shows when the 'mbox mailfor watch' command detects unread email.  When JNOS contains a mailbox server, the next (second) line shows the users connected to the bbs. A status symbol precedes the user's id:

none - user is idle

* - user is a bbs

@ - user is in sysop mode

! - user has gatewayed out

# - user is reading or sending mail

= - user is transferring data (up/download)

^ - user is in convers or sysop-chat mode

? - use is in none of the above, but not idle...

 

The final line, when present, shows data depending on the current session.  The current session number and type are always displayed.

If the session is a network connection, the remote connection name, tx-queue (bytes for tcp, packets for ax.25), and state of the connection are displayed, followed by the retry timer, with current time left, and initial value.  In repeat, more or look sessions, the third line shows the command, filename or user/socket for the session.


stop <server...>;

 

Stop the specified server,  rejecting  any  further  remote connect requests. Existing connections are allowed to complete normally.


tail <filename>;

 

Tail displays the last 20 (twenty) lines from <filename>.   See also the taillog command.


taillog;

 

Displays the last 20 (twenty) lines from the log file.


tcp <subcommand>;

 

tcp blimit

tcp clean

tcp irtt

tcp kick

tcp maxwait

tcp mss

tcp reset

tcp retries

tcp rtt

tcp status

tcp syndata

tcp timertype

tcp trace

tcp window

 

These commands are used for the Transmission Control Protocol service. All TCP parameters are configurable per interface.  Commands of the form 'tcp <command>' set the default or global values.  Use the 'ifconfig <iface> tcp <command>' form to set or show the interface-specific values. To set the system default TCP parameters, you must do so BEFORE attaching interfaces.  After attachment, you must use the 'ifconfig <iface> tcp' command form to show or change values for that interface.

Notes:

Attempting outgoing connections to addresses without an existing route results in Error number 219. tcp access <permit|deny|delete> <ipaddr[/bits]|all> [loport [hiport]]

Display or set tcp access controls, which determine which TCP services (ports) are accessible to which IP addresses.  If no tcp access commands are issued, the default behavior is to permit all hosts to access all ports.  But once a TCP access command is entered, all other ports and addresses are denied unless specifically permitted by subsequent tcp access commands.

This subcommand adds or deletes an access control entry maintained in an internal table.  Incoming tcp packets are compared with the table entries, in the order that they were added, to determine if access will be granted. Access is granted only if an entry with matching ipaddr or range, and ports, is found with "permit" set before either a match with "deny" set if found, or the end of the table is reached.

The optional /bits suffix to the ipaddr specifies how many leading bits in the ipaddr are to be considered significant in the address comparisons.  If not specified, 32 bits (i.e., full significance) is assumed. All addresses can be specified by "all". Loport and hiport specify the port or range of TCP ports for which the access control command applies. If "all" is given as the loport, or if no port range is specified, all ports are assumed, i.e., 1 to 65534.  "tcp access" will display the table of current access control entries.

Access commands should be entered from the most specific ipaddr to the least specific, since the first match (permit or deny) encountered in the internal table is definitive.

#Example:

#Allow a specific AMPRnet host SMTP access tcp access permit 44.76.1.199 25

#but deny all other services to him tcp access deny 44.76.1.199

#Allow all other AMPRnet hosts full access to TCP services tcp access permit 44.76.1/24 all

#Allow a specific subnet access to ports 1 through 25,

#which includes echo, discard, ftp, telnet, and smtp. tcp access permit 23.1.46/24 1 25

#Note that all other hosts not matched above, are denied access

 

tcp blimit [<value>]                           Default: 31

Display or set the default tcp retransmission backoff limit. Normally each successive tcp retransmission is delayed a time value that increases exponentially or linearly.  The backoff limit <value> serves to set the maximum backoff delay allowed.

See also tcp timertype and tcp maxwait.   

 

tcp clean

Reset all tcp connections that are in a "FIN wait 2" state.  This is useful to release memory resources held by JNOS for connections that were not properly closed.

 

tcp irtt [<milliseconds>]

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 irtt when operating over slow  channels will avoid the flurry of re-transmissions that would otherwise occur as the smoothed estimate settles down at the correct value.  Note that this command should be given before servers are started in order for it to have effect on incoming connections.

TCP also keeps a cache of measured round trip times and mean deviations (MDEV) for current and recent destinations.  Whenever a new TCP connection is opened, the system first looks in this cache.  If the destination is found, the cached IRTT and MDEV values are used. If not, the default IRTT value mentioned above is used, along with a MDEV of 0.  This feature is fully automatic, and it can improve performance greatly when a series of connections are opened and closed to a given destination (e.g. a series of FTP  file transfers or directory listings).

 

tcp kick <tcb_addr>

If there is unacknowledged data on the send queue of the specified TCB, this command forces an immediate retransmission. <tcb addr> can be found with the 'tcp status' command.   

 

tcp maxwait [<msec>]

Set or show the maximum time for retry timeout in milliseconds. Default = 0, no maximum.

 

tcp mss [<size>]

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.

 

tcp reset <tcb_addr>

Deletes the TCP control block at the specified address. 

 

tcp retries [<num>]

Display or set the number of retries before a tcp connection will be reset. Default is 10. This is useful to eliminate idle connections that have not been properly shut down. If set to zero, there is no maximum, i.e. a connection will never retry out.  

 

tcp rtt <tcb_addr> <milliseconds>

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.

 

tcp status [<tcb_addr> | all]

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 <tcb addr> is  specified,  a more detailed dump of the specified TCB is generated, including send and receive sequence numbers and timer information.  If "all" is given, the summary will also include TCBs in a listening state (awaiting a connection).  In this case, a (S) will indicate that a server process is to be spawned when a connection occurs.

 

tcp syndata [yes | NO]

Display or set the tcp syn + data piggybacking flag. Some tcp systems cannot handle syn + data together.

 

tcp timertype [linear | exponential]

Display the current setting or set the timer type backoff algorithm.  Default is linear.

 

tcp trace [yes | NO]

Display or set the tcp trace flag on or off.  

 

tcp window [<size>]

Displays or sets the default receive window size in bytes to be used  by  TCP when creating new connections. Existing connections are unaffected.


telnet <host> [<port_number>]

 

Also see TELNET

The 'telnet' command allows you to initiate a connection using the Telnet protocol.  The end result is much the same as doing an  AX.25 connect in most cases, but you'll be taking advantage of the attributes of the TCP/IP protocols.

See also the descriptions of the "echo" and "eol" commands.


term

 

term iface [<iface> options...]

term iface <iface> 7bit [OFF | on]

term iface <iface> break [<integer>]

term iface <iface> cronly [OFF | on]

term iface <iface> drop

term iface <iface> flushwait [<#ms>]

term iface <iface> nlcr [OFF | on]

term iface <iface> noecho [OFF | on]

term iface <iface> noopt [OFF | on]

term password string

term iface <iface> winkdtr [OFF | on]

 

The term command is used to configure TCP acess to local async ports.  It is only available if JNOS was compiled with TERMSERVER #define'd.  Then if 'start term' is issued, connects to TCP port 5000 (default) will be asked the term password if one was defined, then asked an interface name (unless just one term interface was defined.)  After these questions are answered satisfactorily, whatever is received from the tcp connection is sent to the interface, and whatever is received from the interface is sent to the tcp connection.

 

term iface [<iface> options...]

Displays the list of interfaces accessible via term, or establishes a term interface and its operating parameters.

 

term iface <iface> 7bit [OFF | on]

Displays or changes the settings of the flag which causes term to apply a mask of 0x7F to all characters read during the term session.

 

term iface <iface> break [<integer>]

Displays or changes the value of the character code which, when read from the tcp input stream, causes term to send a BREAK to the associated serial device.  The default is -1, i.e., disabled. 

Example:  term iface mdm1 break 3 will interpret ASCII ^C as a send-break character.

 

term iface <iface> cronly [OFF | on]

Displays or changes the setting of the flag which causes term to ignore a newline (LF) read immediately after a CR is read from the tcp input stream.  Note that if the nlcr option is in effect, a CRLF sequence is translated into a CRCR sequence, since the nlcr option  is applied before the cronly option.

 

term iface <iface> drop

Deletes the interface <iface> from the list of interfaces accessible to term.  The interface must not be in use by a term process.

 

term iface <iface> flushwait [<#ms>]                   Default: 0

Displays or changes the number of milliseconds after which any non-newline-terminated input from the serial port, is flushed so that it becomes visible to the term user.  The default value is 0, meaning that no flushing is done.  A flushwait value of 500 ms is a good value to use when it is important to see, for example, login  prompts that are not followed by a CR.

 

term iface <iface> nlcr [OFF | on]

Displays or changes the setting of the flag which causes term to translate a newline read from the tcp input stream, into a CR to be sent to the serial interface. 

 

term iface <iface> noecho [OFF | on]

Displays or changes the setting of the flag which causes telnet echoing to be turned off for the duration of a term session.    

 

term iface <iface> noopt [OFF | on]

Displays or changes the setting of the flag which causes telnet option processing to be turned off for the duration of the a term session.  

   

term password string

Sets the term facility password to the provided string.  The default is no password required. start term [port#]

starts the server 

 

term iface <iface> winkdtr [OFF | on]

Displays or changes the setting of the flag which causes DTR to be deasserted for one second, at the start of a term session.


trace [<iface> [off | <btio> [outfile]];

 

Controls packet tracing by the interface drivers. Specific bits enable  tracing  of the various interfaces and the amount of information produced.  Tracing is controlled on a per-interface basis; without arguments, 'trace' gives a list of all defined interfaces and their tracing status.  Output can be limited to a single interface by specifying it, and the control flags can be changed by specifying them as well.  Trace control flags may be followed by <outfile>, a path to a disk file to contain the tracing output.

 

The flags are given as a hexadecimal number which is interpreted as follows:

 

B    - Broadcast & RawDump selector

  1  - Broadcast filter flag. If set, only packets specifically addressed to this node will be traced; broadcast packets will not be displayed.

  2  - If this bit is set, a "raw" dump style is selected, for those interfaces which support it (e.g., ppp).

  4  - If this bit is set, include polls in the output trace of polled-kiss interfaces.

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 per 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 chars per line.

  3  - A minimal display of headers and data is produced, provided JNOS was compiled with MONITOR #define'd.

I    - Enable tracing of input packets if 1, disable if 0

O    - Enable tracing of output packets if 1, disable if 0

 

Example:

    # Trace all packets on port1 and display with headers: trace port1 0111

    # Trace all lan non-broadcast received packets to a file: trace lan 1210 d:\lan_ipt.trc


ttylink <host> [<port_number>]             Default: 87

 

The 'ttylink' command starts a tcp protocol session with <host> using the split screen mode.  Also see the telnet command.


udp status;

 

Show the status of active udp control blocks


write <username|sock#> <message>;

 

Send a message to a particular user. <message> is the message, if "more then one word, put it in quotes."  <username|sock#> can be either the user name of a mailboxuser, or a valid sockeor a valid socket number.

The latter allows you to send a message to a network conference user etc.  See also 'writeall'.

 

E.g.: 'write wg7j "this is a test!"'

 

The message will be shown as: '<bell>*** Message from sysop


writeall <message>;

 

Send a message to all mailbox and conference users.  This command is useful to warn users of an impending shutdown, and might be suitable for inclusion in your onexit.nos script file.

Example: writeall "N5KNX BBS shutting down...bye!"

 

See also:  write