FPAC

Introduction

The FPAC/ROSE packets are transported across the AX25 protocol and which allows fast and efficient packet switching with a very small protocol overhead (only three bytes).

Before configuring and running FPAC, the AX25 and ROSE kernel must have been installed and running.

Except for the individual node configuration files ( fpac.conf, fpac.info and fpac.hello) the fpac node is ready to go.

FPAC tools

The FPAC distribution includes a set of tools. Here are a few of them.

fpad

Fpad is the main code. It creates the interface between AX25 and other protocols, like ROSE. It allows connections from ax25 users to the network and vice-versa in pseudo-digipeating mode, this is without first connecting a node application.

fpacnode

Fpacnode is the user interface to FPAC it acts like Linuxnode. Many parts of the code have been taken from linuxnode. Some additions have been made for the ROSE protocol. Fpacnode ties ax25, netrom, rose and tcpip networking together. It also supplies information and statistics on the system.

FPAC includes a white pages system which records the address of each node and user of the network. This information is also distributed to every other FPAC system in the network. This allows to connect any known call sign without giving any node or routing information.

Fpacnode has a built-in set of User commands. They can be disabled or additional commands added. A second set of commands for the SYS (sysop) are also available. To access the Sysop Commands you have to enter the Sysop Mode. The Sysop mode is password protected.

fpacshell

Fpacshell allows you to opens LINUX shell session with root privileges. These sessions are opened from the Sysop mode and are used for maintenance and troubleshooting.. The Sysop mode is protected by a password in either plain text, netrom or MD2/MD5 keys.

fpacstat

fpacstat is the statistics applications. It computes the traffic statistics of the trunks (L3 links between switches) and updates a last-hour file every minute /var/ax25/fpac/fpacstat.dat and each hour a last-day file /var/ax25/fpac/fpacstat.day.

These files can be read and sent to the user. The "-c" option writes CR characters instead of LF in order to be compatible with the packet radio protocol in which CR characters are used as end of line.

fpacwpd

Fpacwpd is the White Pages database server daemon. It respond to local or remote queries. The database file is located in /var/ax25/fpac/fpacwp2.dat.

To access this server, connect to WP via ROSE/L3 and type ":". The server will respond with its current status. Type return to disconnection.

fpaccfg

Fpaccfg prints the contents of the fpac.conf file to the std out device. Fpaccfg can be used in a node command to send the output as a text file.

fpacroute

Fpacroute is the daemon used to execute the Trace command.

mailbbs

Mailbbs is a simple mailer. It is used to send service messages from the FPAC node to a BBS.

wpedit

Wpedit allow you to change or delete WP entries. The sintax is wpedit <call>.

# wpedit n4xeo

Callsign Ok Last update DNIC address digis

N4OEO N 10/06/06 02:49 => 3100 727246

WP-Editing N4OEO : (A)ddress (D)igi (R)emove (U)ndelete (B)ye

wpcmp

wpmaint

Wpmaint is a DB repair utility. The WP Dbase is read and a new DB is created.

monitor

A utility used to monitor the ax25 port traffic. Similar to Listen.

Calibrate

When executed, will send UI frames until enter is pressed. The sintax is Calibrate <port>.

# calibrate 0

Press return to stop calibrate

Installation of FPAC

Rose is configured from the rsports file in /etc/ax25. This file is created or updated each time fpad is started.

Binaries

Copy the package of executable files from to /usr/sbin or /usr/local/bin directory. Add the line /usr/sbin/fpac.sh or /usr/local/bin/fpac.sh to the ax25-up file after the ax25 initialization lines.

Directories

The configuration files are in /etc/ax25/ and a set of HELP files are located in /etc/ax25/fpac/help. See section Help files.

The data files for FPAC will be located in the /var/ax25/fpac/ directory. The files and the directory will be created the first time FPAC is run.

Starting FPAC

FPAC is run from the fpac.sh file. This script file controls the starting & stopping of the FPAC Node.

Calling fpac.sh during linux start-up

To start fpac - run /usr/sbin/fpac.sh -start from your ax25-up file. Fpac.sh must only be run after the ax25 layers are fully initialized.

Configuration of FPAC

FPAC is configured by only one file. This file is named "fpac.conf" and must be located in /etc/ax25 directory.

The fpac.conf configuration file

This file is made of keywords and values . A block is always ended by an "end" keyword. Keywords are not case Dependant, but some values may be.

An example of fpac.conf.


# FPAC configuration file
#
#
# Informations on the node
#

L2call = F6FBB-10
L3call = F6FBB-11

TRcall = F6FBB-7
DNIC = 2080
Address = 931502
Coverage = 931602 931202 931102
InetPort = 10092

InetAddr = 44.1.1.1
Password = mypassword
City = Roquettes
Locator = JN03QL
UserPort = *
DefPort = 1

#
# Other commands
#

Command
BBs = /usr/sbin/call_tcp serveur 1022
CLuster = connect f6krq-3 2080931501
STat = /bin/cat /var/ax25/fpac/fpacstat.dat /var/ax25/fpac/fpacstat.day
CONVers = /usr/sbin/convers -l %u
Telnet =
end

#
# Other SysOp commands
#

Sysop
DIsk = /bin/df -k
RM = /bin/rm /tmp/%1
LS = /bin/ls -l /tmp/%1
CAT = /bin/cat /tmp/%1
YGET = /usr/sbin/yapp -u /tmp/%1
YPUT = /usr/sbin/yapp -d /tmp/%1
SYSop= /usr/sbin/fpacshell
end

#
# Other applications
#

Application
F6FBB-1 = /usr/sbin/call_tcp serveur 1022
End

#
# List of routes to port
#

AddPort = UHF
Address = 931402
Port = 5
End

AddPort = BEX
Address = 931302
Port = 0
End

#
# List of users on specific port
#

User = F6BEX
Path = F6BEX
Port = 2
End

#
# List of aliases
#

Alias = F6FBB-2
Path = F6FBB-2,931501
End

Alias = F6FBB-3
Path = F6KRQ-3,931501
End

#
# List of adjacent nodes
#

Node = Prat
Path = F5JTU-9
DNIC = 2080
Address = 909501
Port = 3
End

Node = Rebigue
Path = F6BEX-9
DNIC = 2080
Address = 931501
Port = 0
End

Node = Test
Path = F6FBB-9
DNIC = 2080
Address = 931503
Port = 5
End


#
# Routes to adjacent nodes
#
Routes
DNIC = 2080
1 = Rebigue
2 = Rebigue
3 = Rebigue
4 = Rebigue
5 = Rebigue
6 = Rebigue
7 = Prat
8 = Rebigue
909 = Prat
909202 = Rebigue
909502 = Rebigue
931201 = Rebigue
931501 = Rebigue
931203 = Test
931503 = Test
911 = Prat
930 = Prat
934 = Prat
946 = Rebigue
965 = Rebigue
966 = Prat
981 = Rebigue
981501 = Prat
982 = Rebigue
End



fpac.conf Sections

Header information

      All the keywords of the header are mandatory and must be defined.

#
# Informations on the node
#
L2call = F6FBB-10
L3call = F6FBB-11
DNIC = 2080
Address = 931502
Coverage = 931602 931202 931102
InetPort = 1022
Password = mypassword
City = Roquettes
Locator = JN03QL
UserPort = *
DefPort = 1

L2call - is the main callsign/ssid seen by users. Connecting this callsign will give access to fpacnode. Using this callign as digipeater will give access to local or remote station via the network.

L3call - the Call sign / ssid used to transport the X25 frames. This call sign should not used by users (no Connect Text is sent ). It is to be used by remote switches to transport the X25 packets with the PID 01 (X25). Using this call sign as digipeater will give a silent connection and disconnection, no message or report will be sent. It should only be used for services like s BBSes .

Trcall - the callsign/ssid that will be used when using the Trace command. Trace is a network test tool.

DNIC - the country designator. It follows the CCITT standard. It is 2080 for France. Use 3100 for The US.

Address - the numerical address of the switch. This address generally follows the telephone number format.

Coverage - the list of addresses that a switch will answer to added to the generic address.

InetPort - the port number (decimal) on which FPAC listens for FPAC for I-net (axip)connections.

InetAddr - the IP Address of the base. Usually the Ampernet ip address of the facility.

Password - the word or sentence to compute the password for the SYS command.

City - the location of the switch.

Locater - the QTH locater of the switch.

UserPort - a list of ports available for the users connection. A star enables all ports.

DefPort - the port to which the outgoing connections will be sent by default.

Command section

The Command section adds or remove commands to/from the main menu. These commands will be executed with the root privileges, so avoid possible destructive commands.

#
# Other commands
# Command
BBs = /usr/sbin/call_tcp serveur 1022
CLuster = connect f6krq-3 2080931501
STat = /bin/cat /var/ax25/fpac/fpacstat.dat /var/ax25/fpac/fpacstat.day
CONVers = /usr/sbin/convers -l %u
Telnet =
end



The Command section consists of a list of Keywords and Values.

Uppercase characters are the mandatory characters to be received for the command to be interpreted. This allows similar commands to be unique yet shortened.

Example:

WPages Whitehall WInsor

Display Wpages Shortcut = WP

Connect to Whitehall Node Shortcut = W

Connect to Winsor Short cut = WI

Keywords will appear as menu items. Keywords with no value will be omitted from the list of commands displayed by ?. Some Commands are built into the FPACNODE. A built in command may be redefined by adding the new Keyword = Value to the command section the original command will be replaced by the new one.

Value is a command which can be executed by LINUX. The user tied to this command, receiving what is typed and sending the the output of the commands. When the command execution is complete the user will be returned to the fpacnode menu.

Connect is a special command which issues a request for a L2 or L3 connection. If a port is specified after "connect" then a L2 local connection will be made. If no port is specified and the callsign is a known a NetRom node or a ROSE address an L3 connection will be made. In case of a ROSE connection where the callsign is known by the White Pages Database and where no address is specified the a route will be supplied from the FPAC White Pages Database.

Sysop section

The Sysop section defines commands to be used by the Sysop. These commands are only available after the SYSop command has succeeded. These are commands for maintenance and troubleshooting. Remember, these commands are executed with root privileges, so avoid possible destructive commands. The SYSop command may be redefined to allow running a LINUX shell via the fpacshell utility.


# Other SysOp commands
#
Sysop
DIsk = /bin/df -k
RM = /bin/rm /tmp/%1
LS = /bin/ls -l /tmp/%1
CAT = /bin/cat /tmp/%1
YGET = /usr/sbin/yapp -u /tmp/%1
YPUT = /usr/sbin/yapp -d /tmp/%1
SYSop= /usr/sbin/fpacshell
end


Application section

The Application section includes a list of lines which associates a callsign to a LINUX application. When a connect request is detected for the callsign the user will be tied to the LINUX program as if they executed the application locally.

#
# Other applications
#

Application
F6FBB-1 = /usr/sbin/call_tcp serveur 1022
End

AddPort section

The AddPort section will contain one or more AddPort blocks. AddPorts is used to assign a ROSE address to a USER port. Ports used exclusively for network linking will Not need a unique address. The FPAC node will normally have only one ROSE address assigned. The coverage keyword, in the header will add addresses which will reflect the whole node. AddPort blocks will only effect one port.

#
# List of routes to port
#

AddPort = UHF
Address = 931402
Port = 5
End


AddPort = BEX
Address = 931302
Port = 0
End


User section

The User section will contain one or more User blocks. Each block associates a single User with a port. This is used when you have a BBS on a Networking port and don't want to make the port a User port by using AddPort.. Calls to User at the Node's base address will be routed to the specified port .

#
# List of users on specific port
#

User = F6BEX
Path = F6BEX
Port = 2
End



Alias section

The Alias section is similar to Application section, but maps a connection request to callsign1 to callsign2 . In the example below the connect request for F6FBB-3 will be routed to F6KRQ-3 address 931501 (the default DNIC of the switch will be used).

The Alias section will contain one or more Alias blocks. Each block will specify one alias.


#
# List of aliases
#

Alias = F6FBB-3
Path = F6KRQ-3,931501
End


Node section

A Node block identifies a neighbor node. The Node section may contain one or more Node blocks. Each block identifies one adjacent switch. Use as many blocks as needed in this section.

#
# List of adjacent nodes
#

Node = Prat
Path = F5JTU-9
DNIC = 2080
Address = 909501
Port = 3
NoWp = 0
End

Node = Rebigue
Path = F6BEX-9
DNIC = 2080
Address = 931501
Port = 0
End

Node = Test
Path = KP4DJT
DNIC = 3100
Address = 813626
Port = 0
End


Node - the name of the adjacent switch. This name will be used in the routing section. The names are case sensitive. Four keywords are required for each block. Each block

Path specifies the callsign/ssid of the adjacent switch optionnaly followed by one or more digipeaters

DNIC specifies the DNIC (4 digits) of the adjacent switch

Address specifies the main address of the adjacent switch

Port specifies the port on which the adjacent switch will be linked.

NoWP = 1 specifies that the port will Not broadcast White Page information to the adjacent nodes(default 0).

Do not forget to finish each block with a

End line.


Routes section

This single block section defines the routing table. Hierarchical Routing is evaluated by DNIC and then by address, from left to right.

DNIC, 4 digits for the country

Address, up to 1 to 6 digits for the region/city/district/number. The address is country dependant.

#
# Routes to adjacent nodes
#
Routes
DNIC = 2080

1 = Rebigue
2 = Rebigue
3 = Rebigue
4 = Rebigue
5 = Rebigue
6 = Rebigue
7 = Prat
8 = Rebigue
909 = Prat

909202 = Rebigue
909502 = Rebigue

931201 = Rebigue
931501 = Rebigue

911 = Prat
930 = Prat
934 = Prat
946 = Rebigue
965 = Rebigue
966 = Prat
981 = Rebigue
981501 = Prat
982 = Rebigue

DNIC = 3100

813 = Test

352 = Test

726 = Test
End


A DNIC = line will define all the following addresses as being routed to this DNIC (country).

Address = Nodename (from the Node section)

If the address is less than 6 digits, all addresses starting with this number will be routed to the indicated switch.

The “most specific” route will have a higher priority. For instance :

DNIC = 2080
981 = Rebigue
981501 = Prat

indicates that all addresses starting with 981, for the DNIC 2080, will be routed to Rebigue except 981501 which will be routed to Prat. The order is not important, the addresses are sorted in the routing algorithm.

fpac.hello

This file is optional. It is located in /etc/ax25 and is the connect text when connecting to the fpacnode.

fpac.info

This file is located in /etc/ax25 and sent in response to the Info command.

fpac.dnic

This file is located in /etc/ax25 and associates a a 3 character country identifier to a DNIC. This country designator will be displayed in some commands (Node for instance) or can be used instead of the DNIC when requesting a connection.

Only the two first words on each line define an association. The rest of the line is ignored.

Empty lines or lines starting starting with a [num ] character are ignored.

#
# Example of fpac.dnic file
#

FRA 2080

USA 3100
ESP 2120

Help files

Help files contain the Help texts which are sent in response to help commands. Help files are located in the directory /etc/ax25/fpac/help. The file name must be the representation of the command and is case Dependant

For instance the help file for the Connect command will be Connect.hlp the help file for the SYSop command will be SYSop.hlp

Testing your FPAC configuration

Once you have your FPAC files in order you will want to test them before trying to start the FPAC node and it's associated processes.

Running FPAC (First time)

Open a root terminal window and type:

fpac.sh fpad

This will put fpad in a loop. If there is an error in you config file(s) the error(s) will be listed. Otherwise, the routes table will be displayed and a message indicating the ROSE ports have been attached.

Type Ctl-C to exit the loop.

Running FPAC

In the same terminal window type:

fpac.sh -start

Check /var/log/fpac for Route information. This is the log file for errors and startup messages.

FPAC status

In the same terminal window type:

fpac.sh -status

An Example of FPAC Status

Status of FPAC :

fpad is running

fpacwpd is running

fpacstat is running

fpacroute is running

fpacwdog is not running

flexd is not running



Unless you are running a sound card fpacwd and will be the only program NOT running.



Adding Netrom to FPAC