5. A note on callsigns, addresses and things before we start

Each AX.25 and NET/ROM port on your system must have a callsign/ssid allocated to it. These are configured in the configuration files that will be described in detail later on.

Some AX.25 implementations such as NOS and BPQ will allow you to configure the same callsign/ssid on each AX.25 and NET/ROM port. For somewhat complicated technical reasons Linux does not allow this. This isn't as big a problem in practice as it might seem.

This means that there are things you should be aware of and take into consideration when doing your configurations.

  1. Each AX.25 and NET/ROM port must be configured with a unique callsign/ssid.

  2. TCP/IP will use the callsign/ssid of the AX.25 port it is being transmitted or received by, ie the one you configured for the AX.25 interface in point 1.

  3. NET/ROM will use the callsign/ssid specified for it in its configuration file, but this callsign is only used when your NET/ROM is speaking to another NET/ROM, this is not the callsign/ssid that AX.25 users who wish to use your NET/ROM `node' will use. More on this later.

  4. ROSE will, by default, use the callsign/ssid of the AX.25 port, unless the ROSE callsign has been specifically set using the `rsparms' command. If you set a callsign/ssid using the `rsparms' command then ROSE will use this callsign/ssid on all ports.

  5. Other programs, such as the `ax25d' program can listen using any callsign/ssid that they wish and these may be duplicated across different ports.

  6. If you are careful with routing you can configure the same IP address on all ports if you wish.

5.1. What are all those T1, T2, N2 and things ?

Not every AX.25 implementation is a TNC2. Linux uses nomenclature that differs in some respects from that you will be used to if your sole experience with packet is a TNC. The following table should help you interpret what each of the configurable items are, so that when you come across them later in this text you'll understand what they mean.

LinuxTAPR TNCDescription
T1FRACKHow long to wait before retransmitting an unacknowledged frame.
T2RESPTIMEThe minimum amount of time to wait for another frame to be received before transmitting an acknowledgement.
T3CHECKThe period of time we wait between sending a check that the link is still active.
N2RETRYHow many times to retransmit a frame before assuming the connection has failed.
Idle The period of time a connection can be idle before we close it down.
WindowMAXFRAMEThe maximum number of unacknowledged transmitted frames.

5.2. Run time configurable parameters

The kernel allows you to change many parameters at run time. If you take a careful look at the /proc/sys/net/ directory structure you will see many files with useful names that describe various parameters for the network configuration. The files in the /proc/sys/net/ax25/ directory each represent one configured AX.25 port. The name of the file relates to the name of the port.

The structure of the files in /proc/sys/net/ax25/portname/ is as follows:

FilenameMeaningValuesDefault
ip_default_modeIP Default Mode0=DG 1=VC0
ax25_default_modeAX.25 Default Mode0=Normal 1=Extended0
backoff_typeBackoff0=Linear 1=Exponential1
connect_modeConnected Mode0=No 1=Yes1
standard_window_sizeStandard Window1 .. 72
extended_window_sizeExtended Window1 .. 6332
t1_timeoutT1 Timeout1s .. 30s10s
t2_timeoutT2 Timeout1s .. 20s3s
t3_timeoutT3 Timeout0s .. 3600s300s
idle_timeoutIdle Timeout0m or greater20m
maximum_retry_countN21 .. 3110
maximum_packet_lengthAX.25 Frame Length1 .. 512256

In the table T1, T2 and T3 are given in seconds, and the Idle Timeout is given in minutes. But please note that the values used in the sysctl interface are given in internal units where the time in seconds is multiplied by 10, this allows resolution down to 1/10 of a second. With timers that are allowed to be zero, e.g. T3 and Idle, a zero value indicates that the timer is disabled.

The structure of the files in /proc/sys/net/netrom/ is as follows:

FilenameMeaningValuesDefault
default_path_quality  10
link_fails_count  2
network_ttl_initialiser  16
obsolescence_count_initialiser  6
routing_control  1
transport_acknowledge_delay  50
transport_busy_delay  1800
transport_maximum_tries  3
transport_requested_window_size  4
transport_timeout  1200

The structure of the files in /proc/sys/net/rose/ is as follows:

FilenameMeaningValuesDefault
acknowledge_hold_back_timeout  50
call_request_timeout  2000
clear_request_timeout  1800
link_fail_timeout  1200
maximum_virtual_circuits  50
reset_request_timeout  1800
restart_request_timeout  1800
routing_control  1
window_size  3

To set a parameter all you need to do is write the desired value to the file itself, for example to check and set the ROSE window size you'd use something like:

# cat /proc/sys/net/rose/window_size
3
# echo 4 >/proc/sys/net/rose/window_size
# cat /proc/sys/net/rose/window_size
4