Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search

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.

Linux TAPR TNC Description
T1 FRACK How long to wait before retransmitting an unacknowledged frame.
T2 RESPTIME The minimum amount of time to wait for another frame to be received before transmitting an acknowledgement.
T3 CHECK The period of time we wait between sending a check that the link is still active.
N2 RETRY How 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.
Window MAXFRAME The 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:

Filename Meaning Values Default
ip_default_mode IP Default Mode 0=DG 1=VC 0
ax25_default_mode AX.25 Default Mode 0=Normal 1=Extended 0
backoff_type Backoff 0=Linear 1=Exponential 1
connect_mode Connected Mode 0=No 1=Yes 1
standard_window_size Standard Window 1 .. 7 2
extended_window_size Extended Window 1 .. 63 32
t1_timeout T1 Timeout 1s .. 30s 10s
t2_timeout T2 Timeout 1s .. 20s 3s
t3_timeout T3 Timeout 0s .. 3600s 300s
idle_timeout Idle Timeout 0m or greater 20m
maximum_retry_count N2 1 .. 31 10
maximum_packet_length AX.25 Frame Length 1 .. 512 256

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:

Filename Meaning Values Default
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:

Filename Meaning Values Default
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