home *** CD-ROM | disk | FTP | other *** search
- The PE1CHL version of NET by KA9Q
-
- by R.E. Janssen, PE1CHL. last update: 27-May-1988.
-
- This document describes some changes I have made to the NET
- program (by KA9Q) after porting the program to the Atari ST.
- These features are now also available in a PC version.
- Current program version is 871225.12.PE1CHL
-
-
- AX.25 callsign handling
-
- The 'mycall' variable and command have been replaced by a more
- powerful set of commands, that allow more complex ax.25 use of
- the package. The callsign to use in IP and NET/ROM is now
- specified as an extra parameter to the attach command.
-
- This change allows a different callsign-ssid to be used on
- different bands, a requirement in some countries. Also it is the
- basis of some cross-band digipeating features. A problem occurs
- when the same station can be contacted on 2 bands, and the
- routing tables in each station indicate a different band to be
- used. The other station incorrectly assumes the same callsign is
- valid on both bands. ARP can be fixed to include the interface in
- the table, and keeping separate callsigns for each IP address-
- interface pair. This has not yet been implemented.
-
- The digipeater functionality and command have been enhanced. It
- is now possible to switch digipeating on and off independently
- for each interface, and as an extra option it is now possible to
- have a digipeater gateway between 2 or more bands. To use this
- feature, set a different callsign-ssid on each band (in the
- attach command), and use "ax25 digipeat <interface> gate"
- commands for each interface participating in the gateway.
- Packets arriving on an interface, and requiring to be digipeated
- by the call of another interface, will be sent out on the
- digipeat interface with the digi call replaced by the call of the
- interface where the packet arrived. (a known trick to implement
- a multi-band digipeater gateway).
-
- Example: If the callsign on 2m is PE1CHL-2, and on 70 it is
- PE1CHL-7, someone qrv on 2m can connect a station on 70 by
- connecting "via PE1CHL-7". This results in a transmission on 70
- cm specifying PE1CHL-2 as a digipeater. When the destination
- station replies, the packet will be digipeated on 2m with
- digipeater callsign PE1CHL-7.
-
-
- MHEARD
-
- The familiar "MHEARD" command has been added. It is now only
- implemented for ax.25, but it could be used on any network.
- It is possible to set the number of different addresses to
- remember using "mheard <interface> number". The default is 0,
- i.e. no recording of heard stations.
- Use the command "mheard 144 23" to keep the last 23 heard
- stations in the list (i.e. one screenful).
- The command "mheard 144" will then list the heard stations, in
- this format:
-
- May 25 21:25:34 PA0GRI-1 to PE1CHL-2
- May 25 21:25:20 PI8CIK to MAIL via PI8HOB >(PI8VRZ)
-
- In the second line, a station was heard using a digipeater. The
- part of the digipeater list in brackets indicates the digipeaters
- that did not yet relay the packet when it was last heard. So in
- the example, PI8VRZ was not heard digipeating the packet.
- The ">" sign indicates that the input of the digipeater was
- heard, in this case the transmission by PI8HOB to PI8VRZ.
- If the 2nd line reads:
-
- May 25 21:25:20 PI8CIK to MAIL via >PI8HOB >(PI8VRZ)
-
- this means that PI8CIK was heard DIRECT and via PI8HOB, but not
- via PI8VRZ.
- The most common use of this feature is to determine if a station
- can be heard direct and/or via a digipeater, as in:
-
- May 25 21:38:10 PI8RNI-7 to PI8ESA-7 via >PI8HOB
-
- This indicates the station can be heard both direct and via the
- digipeater.
-
-
- SOURCE
-
- The "source" command has been added to read a commands file, like
- the autoexec.net file. The syntax is "source <filename>" This
- command can also appear within the autoexec.net file itself,
- making it possible to subdivide this file in some logical parts
- (e.g. setup and routing commands).
- This allows you to structure the autoexec.net file into different
- parts, like attach of interfaces, parameter setting, routing
- commands etc. Now, it is possible to share some of these files
- between different setups to be used by NET.
-
-
- ROUTE
-
- The "route" command hast been extended: when you enter
- "route add <host> via <ipgate>", the existing route to <ipgate>
- is stored in the routing table. This means that if you change
- the route to <ipgate> in your autoexec file, all the routes that
- are via this gateway will automatically be updated when you start
- NET. (especially handy when you change the interface at which a
- gateway can be reached, and still more important when you want to
- run different configurations of you local machine(s) using a
- cleverly built autoexec.net using the "source" command to read
- routing tables from separate files.)
-
- Example:
-
- route add pa0gri 144
- route add bbs.pa0gri via pa0gri
-
- Some very minor changes in the doadd and dodrop routing functions
- now make it possible to use symbolic names in route commands,
- even when specifying the number of bits:
-
- Example:
-
- route add Belgium/16 via pa0gri
-
-
- TRACE
-
- Tracing can now be routed to a file. Use "trace to <pathname>" to
- enable tracing to a file, "trace to con" to switch back to
- console tracing. Always use an absolute pathname for the file
- (e.g.: trace to c:\net\tracefile), as it is sometimes closed and
- re-opened using the specified name. This could fail if you
- change the working directory.
- The date and time-of-day has been added to the first line of each
- trace output, which is useful when writing to a file.
-
-
- FLOW
-
- The "flow" command has been implemented, and works like in the
- TNC code. Incoming input is not printed when the user is typing
- input on an interactive connection, greatly enhancing the
- readability of keyboard-to-keyboard communications. The input
- will be printed when a RETURN is typed, or whenever you backspace
- to the beginning of the line. "flow on" enables this feature.
-
-
- Input Line Editing
-
- Input line editing has been enhanced, and a history of command
- lines (of more than 1 character) is kept. The arrow keys can be
- used to move through this history, and to edit input lines. An
- "insert" mode is recognized (insert key).
- Key functions are:
-
- left arrow nondestructive backspace through the current
- line. allows corrections in your input.
-
- right arrow to move towards the end of the line. when it
- is used at the end of the input, characters
- from the previous input line will be
- inserted.
-
- up arrow get the previous line in the input line
- history and show it. put cursor at end of
- this input line.
-
- down arrow get next line from input line history.
-
- delete when the cursor is over a character in the
- current input line, deletes that character.
-
- insert toggles between overtype and insert mode. in
- insert mode, anything typed when the cursor
- is not at the end of the input line will be
- inserted at the cursor position.
-
- ^H, backsp delete the character left from the cursor
- position.
-
- ^R redisplays the input line and puts the cursor
- at the end.
-
- ^U, ^X cancels the current input line.
-
- RETURN accepts the current input line. note that the
- cursor may be anywhere in the line, the
- complete line will always be accepted.
-
-
- AX.25 ports
-
- The "ax25 port" command has been added to allow ax.25 servers to
- run in the NET program, just like TCP servers. It is possible to
- define a callsign (and optionally an interface) that can be
- connected to, and a port number of a corresponding ax.25 server.
- The type "digi" can be specified, in this case the program will
- open a "fake" connection when the callsign appears in the
- digipeater field of an incoming packet. This allows interesting
- uses, like implementing net/rom-like digipeaters that operate
- transparently as far as the end-user is concerned, and that are
- probably more acceptable to some PTT administrations.
- The syntax of the ax25 port command is:
-
- ax25 port <number> conn <call> [<interface> [multi]]
- or: ax25 port <number> digi <call> [<interface> [gate]]
-
- "multi" specifies that the port can be connected from all AX.25
- interfaces. This is also true when the interface is omitted.
- "gate" specifies that a digi port may be connected from, and can
- itself connect to other AX.25 interfaces.
-
- Interactive (TNC-like) connections now also can use this server
- concept. This allows immediate printing of "Incoming AX.25
- session" upon connection, as the system does not have to wait for
- an information frame containing a Text PID.
-
- The "ax25 start/stop" commands can be used to start and stop
- ax.25 servers.
-
- Currently, the following port numbers have been defined for AX.25
- servers that have been written:
-
- 1 TNC server. Allows interactive TNC-like connections
- 2 NetDigi server. A digipeater using 2 separate
- connections and independent error recovery.
- 3 MHEARD server. Allows other stations to read your
- MHEARD list.
- 4 Conference bridge server. Allows multi-station round-
- table QSO's.
-
- The TNC server emulates an old-fashioned TNC. Stations can
- connect to it, and will receive a connect text immediately (when
- defined). Also, the server will alert the operator with a
- message. ("Incoming AX.25 session # from <call>").
- The connect text is given as a parameter to the ax25 start
- command:
-
- ax25 start tnc "Hello OM! Name is ROB, QTH is UTRECHT"
-
- When you issue a "connect" command to connect to another station,
- the program will use the callsign of a TNC port (conn port with
- number 1) if it is available. If not, it will use the callsign
- assigned to the interface with the attach command.
- The advantage is, that the callsign you use for outgoing connects
- is the same as the callsign other users can connect to.
-
-
- The "NetDigi" server (port #2) implements a clever digipeater
- that uses 2 fake connections for 1 standard ax.25 connection
- (only pid=Text allowed).
-
- Example:
-
- ax25 port 2 digi PE1CHL-3 144 gate
- ax25 port 2 digi PE1CHL-4 430 gate
- ax25 start netdigi
-
- It is possible to connect "via" PE1CHL-3 or PE1CHL-4, using
- the "NetDigi" feature (that uses ax25 port 2). This will access
- the clever digipeater, that uses separate connections for both
- links, each with separate retries and acknowledges.
- This "netdigi" will also function as a gateway between bands, but
- it can only serve ax.25 (pid=Text) users.
-
-
- The MHEARD server (port #3) returns the MHEARD list of an
- interface. Because this server needs to know which list it has to
- send, you should include an <interface> specification in the ax25
- port command. Specify "multi" if you want the MHEARD list to be
- available on other interfaces as well.
-
-
- Another ax25 server has been implemented: the conference bridge.
- It uses ax25 port number 4 (connect mode), and can be started
- with the command "ax25 start bridge".
- It supports the connection of a number of stations, and will pass
- input from any of the connected stations to all others connected
- to the bridge. You can create several independent bridges by
- creating more than one ax25 port with number 4, e.g. "ax25 port 4
- pe1chl-5" and "ax25 port 4 pe1chl-6" will create 2 independent
- bridges under the -5 and -6 calls.
- The bridge supports some commands that the connected users can
- enter by typing //command at the beginning of an input line.
- Commands are:
-
- //connect call [interface]: Will cause the bridge to attempt
- connection of the specified station, via the specified
- interface.
-
- //disconnect [call]: Will disconnect the specified station,
- or yourself if the call is omitted.
-
- //interface: Will print a list of available interfaces.
-
- //mheard [interface]: Will send the MHEARD list of the
- specified interface, or by default the interface at
- which you are connected.
-
- //users: Will print a list of users connected to the bridge.
-
- ///any text: Will pass //any text to the other users.
-
-
- Of course, it helps if the interface names are mnemonic to the
- users connecting from outside, e.g. "144" and "430", or "2m" and
- "70cm". I've found this more convenient than the suggested "ax0"
- etc, also for my own use.
-
-
- More AX.25 features
-
- AX25 loopback has been added to the code, using a separate
- axloopq structure analogous to the loopq used for IP datagrams.
- This allows you to connect to one of your local ax.25 ports using
- an interactive ax.25 session. Useful for debugging ax.25
- servers, and also to be able to connect to your own conference
- bridge.
-
- AX.25 events are now logged in the NET logfile, if logging is
- enabled.
-
- An AX.25 timer T4 has been added. This timer is started whenever
- a packet arrives or a transmitted packet is acknowledged. When
- the timer times out, the link is disconnected. This feature is
- used to disconnect AX.25 connections set up by NET/ROM or by IP
- virtual circuit mode. The timer is automatically disabled for
- interactive sessions.
-
- NETROM
-
- Support for NET/ROM level 3 has been added to the package. I am
- working on level 4 and 7. Now, it is possible to route IP
- packets over the NET/ROM net, and to serve as a NET/ROM node
- capable of routing packets flowing between other "real" NET/ROM
- nodes. The connection to NET/ROM by AX.25 stations, and support
- for connections to other NET/ROMs is NOT YET FINISHED.
-
- [a lot of stuff still to be documented]
-
-
- EXIT
-
- The exit command now checks if TCP and/or AX.25 sessions are
- still open. If so, it gives a warning message, and the exit is
- not performed. You can use "exit !" to force an exit in this
- case. The open connections will be RESET, which means that open
- files will be closed and SMTP lockfiles removed.
-
-
- FTPUSERS file
-
- It is now possible to specify more than one directory/permission
- pair for each user in the FTPUSERS file. This allows better
- definition of the permissions for each user.
- The permissions are searched left-to-right for a match of the
- directory field, and the corresponding permissions field is used
- when a match is found. So, if you want to specify a different
- permission for a subdirectory, that subdirectory should be placed
- before the directory in which it appears.
- The "working directory" for a logged-in user will be the LAST
- directory named on the line in FTPUSERS.
-
- All entries in the file should be separated by exactly one space.
- On the Atari ST and MS/DOS, it is now also possible to include a
- drive specifier as part of the directory name.
-
- Example:
-
- guest * \net\files 3 \net\ftpusers 0 \net 1
- rob myself! a:\ 7 b:\ 7 \ 7
- user1 * g:\ 7 b:\ 3
-
- In this example, guest can create files in \net\files, and read
- everything in \net except \net\ftpusers. This is because the
- match for \net\ftpusers will return permission 0, while
- \net\other will return permission 1.
-
-
-
-
-
- 73, de ROB PE1CHL.
-
-
-