FPAC
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.
The FPAC distribution includes a set of tools. Here are a few of them.
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 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 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 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.
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 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 is the daemon used to execute the Trace command.
Mailbbs is a simple mailer. It is used to send service messages from the FPAC node to a BBS.
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
Wpmaint is a DB repair utility. The WP Dbase is read and a new DB is created.
A utility used to monitor the ax25 port traffic. Similar to Listen.
When executed, will send UI frames until enter is pressed. The sintax is Calibrate <port>.
# calibrate 0
Press return to stop calibrate
Rose is configured from the rsports file in /etc/ax25. This file is created or updated each time fpad is started.
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.
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.
FPAC is run from the fpac.sh file. This script file controls the starting & stopping of the FPAC Node.
FPAC is configured by only one file. This file is named "fpac.conf" and must be located in /etc/ax25 directory.
#
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
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
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.
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
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
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
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
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
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
Do not forget to finish each block with a
End line.
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.
This file is optional. It is located in /etc/ax25 and is the connect text when connecting to the fpacnode.
This file is located in /etc/ax25 and sent in response to the Info command.
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 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
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.
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.
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.
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.