BPQ Home   BPQ32 Home

G8BPQ Node Configuration File

Introduction

Information here applies to the Linux and MAC versions of BPQ32 as well as the Windows version.

The BPQ32 Node is configured by editing the file bpq32.cfg. Previous versions used file bpqcfg.txt, which had to be converted using program bpqcfg.exe. This is no longer necessary.

Most configuration statements take the form of a KEYWORD=VALUE pair. A few take the form:

NAME:
One or more lines of text
****

Comments may be included. Anything following a ; in a source line is ignored. Multiline comments may also be included, delimited by /* and */. For example:

; This is a comment line
KEYWORD=VALUE ; This is a comment on a configuration statement
/*
This is a multiline comment
Line 2
*/

C programmers please note - unlike C, /* and */ must start in column 1.

If you do not want to run any ax.25 links (ie only WINMOR or PACTOR), there is a simplified configuration option. See here

Configuration Command Categories

Environment

These set the basic software environment.

LOCATOR
This enables reporting to the node map. See here for details.
MAPCOMMENT
Include addtional text in the NodeMap display.

PASSWORD
This replaces the PASSWORD.BPQ file, and sets the password for the node SYSOP feature. See here for details.

AUTOSAVE
Tells Node to save Nodes and Routes information on closedown
SAVEMH
Tells Node to save and restore MH lists when shut down and restarted

BBS
This enables application support. If your system does not provide access to any application programs, then you could set BBS=0, but leaving it at 1 will do no harm.

NODE
This allows users to connect to your node, and then connect out to other stations. If NODE=0, then uses will only be able to connect to your applications, and not to the node command handler.

IPGATEWAY
Enables the IP Gateway feature. This enables you to handle IP over ax.25.

APRSDIGI
Enables the APRS Digipeater/IGate feature.

ENABLE_LINKED
This controls the *** LINKED command, which is intended for use by gateway software.
It can take one of three values:

ENABLE_LINKED=Y 	 	 Allows unrestricted use.	
ENABLE_LINKED=A Allows use by application programs.
ENABLE_LINKED=N Disables the command

As unrestricted use could be a security problem, I suggest it is set to A unless there are good reasons to do otherwise

C_IS_CHAT
This controls whether a CONNECT command without a callsign is interpreted as a request for Application #2. If BPQTERMINAL has the option "Enable Chat" set, it accepts connections for Appl #2, allowing a user to "chat" to you by typing C.


The following set the size of internal tables. Memory for these is allocated from the same pool as used for Buffers, so if you define many more than you need you could run short of buffers.

MAXLINKS
Maximum Level 2 lines (Uplink, Downlink and Internode)

MAXNODES
Number of Nodes (L4 destinations)

MAXROUTES
Number of adjacent Nodes

MAXCIRCUITS
Number of L4 Circults. Each connection through your node uses two L4 Circuit entries, so this should be at least twice the number of simultaneous users you want to allow.

BUFFERS
Number of packet buffers to allocate - 999 means allocate as many as possible. You are unlikely to use any other value, unless testing what heppens when the node runs short of buffers.

BRIDGE
Bridging copies packet from one port to another unchanged. This could be used, for example to share a TNC between BPQ and other packet application(s).

 BRIDGE 1=4,5           ; Send all packets received on Port 1 to Ports 4 and 5
 BRIDGE 4=1             ; Send all packets received on Port 4 to Port 1
 BRIDGE 5=1             ; Send all packets received on Port 5 to Port 1
 

Station Identification

NODECALL
The callsign used by the node

NODEALIAS
A symbolic name for the node.


IDMSG:
IDINTERVAL
IDMSG is sent every IDINTERVAL minutes. It is sent from the PORT Callsign if one is defined, otherwise from NODECALL. The main purpose of this is to satisfy the requirements of those administrations that require a regular station identification in the same mode as used for communication.

Information for Users

CTEXT:
Text to send to a user when he/she connects. If FULL_CTEXT is set to 1, it will be sent to all connects. If FULL_CETEXT is set to 0, it will only be sent to users who connect directly to the Node Alias.

FULL_CTEXT
See above. Normally should be set to 1, unless you have problems with the CTEXT confusing a system that connects to you.

HFCTEXT=Text
Text to send to a user when he/she connects on HF (Pactor, WINMOR, etc). Normally would be shorter that the main CTEXT. If not specified, the normal CTEXT will be sent.

You can also define a port specific CTEXT that overrides CTEXT or HFCTEXT. See Port Specific CTEXT

INFOMSG:
Text sent in response to the Node INFO (I) command.

BTEXT:
BTINTERVAL
BTEXT is the default beacon sent by the Node, every BTINTERVAL minutes. Note that application programs may change this, or generate their own beacons.
An APRS compatible position may be included, for example:

BTEXT:
=5828.54N/00612.69W- {BPQ32}
G8BPQ's Test Node
***

ax.25 Level 2 Parameters

Most Level 2 parameters are specified in the PORTS section.

T3
Link Validation Timer. If there is no activity for T3 seconds, an RR(P) command will be sent to make sure the other station is still there.

IDLETIME
If there is no traffic for IDLETIME seconds, the link will be closed.

PACLEN
PACLEN defines maximum size for packets generated by the node. Many applications will obey the PACLEN parameter, but unfortunately some do not. The ideal size depends on the link(s) over which a packet will be sent. For a session involving another node, we have no idea what is at the far end. When the node is accessed directly, things are a bit easier, as we know at least something about the link. So there are two PACLEN params, one here and one in the PORTS section. This one is used to set the initial value for sessions via other nodes, and for sessions initiated from here. The other is used for incoming direct (Level 2) sessions.

A NETROM link can only handle packets of up to 236 bytes without fragmetation, so don't go above this unless you don't have any NETROM links.

AGWPE Emulator Configuration

BPQ32 now includes the AGWPE Emulator previously provided by programs AGWtoBPQ.

This is enabled with the following statements:

; AGW Emulator Params

AGWPORT=8000               ; Port Applications connect to
AGWSESSIONS=5              ; Max sessions allowed
AGWMASK=1                  ; Application Mask. This os only needed for connects to the application,
                           ; and can be specified in decimal or hex - ie 16 or 0x10

TNC Emulator Configuration

BPQ32 now includes the TNC Emulators previously provided by programs BPQTNC2, BPQHOSTMODES and BPQDED32.

Each TNC is defined by a set of statements of the form:

TNCPORT
	PARAM=VALUE
	..
	..
ENDPORT

Possible PARAM values are:

COMPORT=PORT
Required. On Windows system, may be a real COM port, or a BPQ Virtual COM Port.
COMPORT=COM1
COMPORT=VCOM2

On linux, A pty (virtual com port) is created, and symlink'ed to the name given,

COMPORT=/home/john/com1
COMPORT=/home/john/.wine/dosdevices/com2      This would create a com2 under WINE

TYPE=TYPE
Required. TYPE may be TNC2, DED, KANT, SCS

APPLFLAGS=n
Optional. Value is the sum of these values

1 Pass Application Command to Application
2 Send 'CONNECTED' message to User
4 Send 'CONNECTED' message to Application
8 Look for ^d or ^D from remote user to disconnect session
	
Common values are 6 for most cases and 14 for a session used for "talk to sysop"

APPLMASK=N
Optional. If you want users to connect to an application, set the APPLMASK corresponding to the defined APPLICATION. May be either a decimal or a hex value, preceded by 0x. eg
APPLMASK=1
APPLMASK=0x10 - the same as APPLMASK 16

APPLNUM=N
Alternative to Application Mask. Specify Application Number (1-32) instead of hex ApplMask.

CHANNELS=N
Defines the number of channels allowed. TNC2 only allows one. The DED protocol allows the program to set the number, but if you are using Kantronics or SCS emulation you must set the number you need.

POLLDELAY=100
Optional. Only works on BPQ VCOM ports. Some programs loop reading the seial port, and so consume all available CPU. POLLDELAY will add a delay to each com port read. Value is in milliseconds.

If using the TNC2 emulator you can specify some TNC Parameters
CONOK=1
AUTOLF=1
ECHO=1

Typical configurations could be

For use with Airmail Packet Server 

TNCPORT
 COMPORT=VCOM2
 TYPE=SCS
 APPLMASK=0x20
 CHANNELS=10
ENDPORT

or for Linux "Chat to Sysop" Application using minicom

TNCPORT
 COMPORT=/home/pi/linbpq/com8
 TYPE=TNC2
 APPLNUM=32
 APPLFLAGS=14
 CONOK=1
 ECHO=1
 AUTOLF=1
ENDPORT

Port Configuration

This defines your external links - either to radios, or to other computers, modems, etc.

Each port is defined by a set of statements of the form:

PORT
	PARAM=VALUE
	..
	..
ENDPORT



Samples of various configurations are given later, but the full list
of PARAM values supported is given below

PORTNUM=n
Number for use in PORTS display, connects, etc. Default is next sequential number.

ID=text string
Up to 30 chars, appears on PORTS display

TYPE=ASYNC/I2C/DRSI/PC120/RLC100/INTERNAL/EXTERNAL/BAYCOM/PA0HZP
Hardware type.

ASYNC is for KISS or NETROM TNC connected to a serial port.
Also used for KISS over UDP or TCP connections

I2C is for KISS over I2C interface (eg for TNC-PI)

INTERNAL defines a 'loopback' port - anything sent on it will be received. Intended to allow KISS applications (eg TCP/IP) to talk to the switch.

EXTERNAL defines a port using a driver .dll.

PC120, DRSI, RLC100, BAYCOM, PA0HZP are the internal HDLC cards, the first two support up to two channels, the others up to 4. Note that support for HDLC Cards is experimental, and requires OS-specfic hardware drivers. Contact me if you would like to try them.

DLLNAME=file.dll
DRIVER=DriverName
The driver to use if TYPE=EXTERNAL. Many of these drivers are now built in to bpq32.dll, but they are still configured as if they were separate .dll files. Either DRIVER or DLLNAME may be specified.
The following drivers are provided:

BPQtoAGW.dll

This allows BPQ32 to use SV2AGW's AGW Packet Engine as a virtual TNC. This allows BPQ32 to interface via sound cards, or indeed any device supported by AGWPE.

BPQAXIP.dll

Supports Node to node connections over the Internet using AX/IP or AX/UDP.

BPQETHER.dll

Supports a connection over a local Ethernet to other BPQ (DOS or BPQ32) systems, or others supporting the BPQETHER protocol (eg Linux, NOS).

BPQVKISS.dll

Provides a virtual KISS TNC via an emulated serial port. Allows applications written to talk to a KISS TNC (such as UI-View (16bit), G7JJF's WINTNC, WinAPRS) to use BPQ32.

AEAPactor.dll

This allows BPQ32 to use a AEA/Timewave PK232 Controller in Pactor Mode.

HALDriver.dll

This allows BPQ32 to use a HAL Controller in Clover or Pactor Mode.

KAMPactor.dll

This allows BPQ32 to use a Kantronics KAM Controller in Pactor Mode.

SCSPactor.dll

This allows BPQ32 to use an SCS PTC Controller in Pactor Mode.

SCSTracker.dll

This allows BPQ32 to use an SCS Tracker in Single Session Mode (primarily for HF Forwarding).

TRKMulti.dll

This allows BPQ32 to use an SCS Tracker in Multi Session Mode (primarily for HF User Acces).

UZ7HO

This allows BPQ32 to use the UZ7HO Sound Card Modem in Session modee.

V4.dll

This allows BPQ32 to use the V4 Virtual TNC.

Winmor.dll

This allows BPQ32 to use the Winmor Virtual TNC.

PROTOCOL=HDLC/KISS/NETROM/PACTOR/WINMOR
Protocol to be used on the link.

NETROM is to connect to the async port of a real NETROM KISS is to connect to a KISS TNC

IOADDR=xxxH
COMPORT=xxx
The COM Port Number for Async Cards. The base I/O address for HDLC cards. IOADDR is in hex. Alternatively you can specify COMPORT in decimal. On Linux systems, COMPORT can also be a device name, eg /dev/ttyUSB0

IPADDR=n.n.n.n
UDPPORT=n
UDPRXPORT=n
UDPTXPORT=n
TCPPORT=n
Used instead of IOADDR or COMPORT for KISS over UDP or TCP. If you need to use different ports for each direction, use UDPTXPORT and UDPRXPORT.

I2CBUS=n
I2CDEVICE=n
Used instead of IOADDR or COMPORT for KISS over I2C

INTLEVEL=n
The interrupt level to be used for HDLC cards. Any spare level may be used, up to 7 on an 8 bit card, or 15 on a 16 bit card. More than one card may share a level if the hardware has the necessary logic.

SPEED=nnnn
The radio speed for HDLC cards, or the async link speed for KISS and NETROM links. If set to zero, the modem must supply a 1x clock. (TXC on RTXC pin, RXC on TRXC pin.)

CHANNEL=A/B/..
Selects port on HDLC cards, dual port KISS (eg KPC4) or Multidropped KISS

BBSFLAG=NOBBS
Stops direct connects to the BBS on this port.

NOKEEPALIVES=0/1
If set, causes Nodes heard on this port to be added to the ROUTES table with the "No Keepalives" flag set. Locked Routes will still have the Keepalive setting defined in the ROUTES: section.

QUALITY=nnn
Default quality for nodes heard on this port. Set to zero to suppress all level 3/4 activity (including NODES broadcasts) on this port.

MAXFRAME=n
Maximum outstanding frames.

TXDELAY=nnn
TX Keyup delay in milliseconds

SLOTTIME=100
CSMA interval timer (milliseconds)

PERSIST=nnn
'Probability to transmit' value (1-255)

FULLDUP=0/1
Passed on to TNC if using KISS. Used to allow transmission whilst DCD is active on HDLC cards, and to allow connection of a NETROM cluster via a diode matrix.

SOFTDCD=0/1
If set to 1, system uses the detection of a valid frame to indicate that the channel is busy, rather than the DCD signal from the modem. Used only for HDLC cards.

TXTAIL=nnnn
TXTAIL timer in ms. Used only by KISS TNCs. If running on HF at 300 baud, the default is probably too short. If others have trouble copying your frames, try a value of 50 - 100.

FRACK=nnnn
Level 2 timout in milliseconds

RESPTIME=nnnn
Level 2 delayed ack timer in milliseconds

RETRIES=n
Level 2 maximum retry value

PACLEN=nnn
Default maximum packet length for this port

CWID=CALL
Only used on HDLC cards. CWID is sent every 29 mins.

CWIDTYPE=ONOFF
Send CWID using ON-OFF Keying. Without this param, the CWID will be sent using normal modem tones. This is fine for low speed links, but faster modems (eg the G3RUH) include scramblers which make it impossible to read the CW. Note that the TX must have a pretty fast keying characteristic to work with ON-OFF keying - certainly < 20mS.

PORTCALL=CALL
PORTALIAS=ALIAS
PORTALIAS2=ALIAS2
Additional callsign/alias for level 2 connects to the node for this port. Should not be the same as BBSCALL

BCALL=CALL
Call used as the origin for beacons on this port

ALIAS_IS_BBS=0/1
If set then PORTCALL and PORTALIAS access the BBS instead of the node.

VALIDCALLS=CALLS
Up to about 40 callsigns, separated by single commas. If present, only stations in the list will be allowed to connect to you on this port. The SSID should not be specified, and multiple VALIDCALLS lines may be included. End all but the last line with commas. The total length of the list, including commas, is 256 bytes.

PERMITTEDAPPLS=APPLS
This limits which applications can be accesed via this port, and prevents direct connects to the Application Callsign or Alias. Parameter is a comma separated list of Appl Numbers allowed to connect. Default is to permit all applications.

MINQUAL=NNN
Defines the minimum quality for a destination to be included in a 'Nodes' broadcast on this port.

QUALADJUST=NNN
Percentage to reduce the quality of a NODE in the NODES broadcast, if the best neighbour is on the same port as the broadcast. Designed to improve throughput if more than one channel is available, by discouraging routes which cause a node to send a packet on the same port that it received it on.

NODESPACLEN=NNN
The maximum length of a NODES broadcast packet.

DIGIFLAG=0/1/255
Digipeat control flag for this port. 0 = dont digi, 1 = digi everything, 255 = digi UI frames only.

DIGIPORT=N
Port to send digied frames on. Zero means the port it was received on, any other number means send on that port.

DIGIMASK=XXXX
If set, a packet to be digipeated will be sent to all ports that have the corresponding bit set in DIGIMASK. This should only be used in conjunction with DIGIFLAG=255 - sending other than UI frames to more than one port is not a good idea!

XDIGI=CALL,N[,UI]
With DIGIPORT all frames are digi'ed to the same port. With XDIGI you can define additional digipeater aliases for cross port digipeating, so frames could be digi'ed to different ports. Packets with a digi of CALL will be sent to port N. If UI is set, only Unproto frames will be digi'ed, eg

XDIGI=XXXXX,1
XDIGI=YYYYY,9,UI

Any frame to XXXXX will go to port 1
UI frames to YYYYY will go to port 9

Note CALL is treated as a callsign, not an alias, so the SSID is significant

If you are digi-ing connected mode frames, you will need the reverse definition on the other port. So if the above were on port 3. on port 1 you'd need
XDIGI=XXXXX,3

You can have as many XDIGI lines as you need.

MAXDIGIS=N
Limits the number of digipeaters that can be used to access this port

USERS=N
This limits the number of L2 sessions to the supplied number. Zero means no limit. The limit applies to all L2 sessions (even those with other nodes), but is only checked for incoming connects (ie you can make outgoing connects even when the limit is reached). Intended mainly to control the number of users on busy user access ports (especially 2m).

UNPROTO=
Unproto destination and digi string for this port. Use commas between calls, and don't include the VIA.

UIONLY=0/1
If set to 1 will stop any connects on this port ie it can only be used for UNPROTO traffic, such as APRS.

WL2KREPORT .....
Enables reporting of channel information to the Winlink Database. See here for details.

L3ONLY=0/1
If set to 1 will stop users (but not HOST sessions) issuing downlink connects on this port.

IGNOREUNLOCKEDROUTES=0/1
If set to 1 NODES broadcasts will only be accepted from locked Routes.

INP3ONLY=0/1
If set to 1 only INP3 routing is allowed. NODES broadcasts are ignored, and any learned routes will use INP3.

INTERLOCK=n
Used with Pactor, WINMOR or similar ports to prevent two or more ports being active at the same time (for example if using WINMOR and Pactor on the same radio).
Also used with HDLC cards to allow groups of ports to be defined which will not transmit at the same time. A value of zero indicates no locking, if any other value is specifed the code will make sure that no two ports with the same value can transmit at the same time.

TXPORT=n
Allows frames for this port to be transmitted on a different port. This is for use when you are operating a central node, with a single transmitter, and a number of receivers.

MHEARD=Y/N
Enables or disables the MHEARD function on this port. There is a slight overhead in maintaining the MHEARD list, so if it is not needed (eg on an internode port) it may be disabled. Default is enabled.

HIDE=0/1
If set to one hides the port from the PORTS display and the Port List in the AGW Emulator. The port is still visible via the management interface.

KISSOPTIONS=POLLED,CHECKSUM,ACKMODE,SLAVE,D700,PITNC,NOPARAMS,FLDIGI,TRACKER
The first 3  select my extended KISS mode.

These extended KISS options are supported by my BPQKISS EPROM for the TNC2 and clones, the TNCPI and most Kantronics TNCs (where it is called XKISS).

POLLED selects multi-dropped mode, where the TNC only transmits when requested (Polled) by the PC. This allows several TNCs to share an async port any risk of collisions.

CHECKSUM selects a mode where a checksum byte is appended to each data message, and checked by the other end. This reduces the risk of data corruption if errors occur on the link from PC to TNCs. It may be used on its own, but should always be used if POLLED mode is selected.

ACKMODE enables the transmission of 'ACK required' frames. These cause the TNC to send a reply when the frame has been transmitted. This will improve link performance by avoiding the possibility of a retry being sent before the original frame has even left the TNC. This mode should always be used if the TNC support it.

SLAVE allows a PC to be multidropped along with one or more KISS TNCs on a multidropped link. If you use SLAVE, you shouldn't set POLLED, and you shouldn't use ACKMODE on either end.

D700 removes the risk of accidentally taking D700/D710 radios out of KISS Mode

PITNC is for use the the TNC-PI on a Raspberry PI

NOPARAMS  - Don't send Parameters (TXDELAY, SLOTTIME, etc) to TNC;

FLDIGI  - Set if you are using the "KISS over UDP" option in FLDIGI

TRACKER - Used with SCS Tracket to place it in KISS mode on initialisation

CONFIG
Some drivers require additional configuration (see the docs for each driver for details). The software no longer supports using a separate config file, so this must be included in bpq32.cfg. The config commands are preceded by the CONFIG statement, and come immediately before ENDPORT.

NETROM Networking Parameters

NETROMCALL
Call used for NETROM Activity. Normally the node will use NODECALL for NETROM L3 functions (eg sending NODES broadcasts), and as the Source Callsign for Node-Node Links. Occasionally there are advantages in using a differene call for this. If not specified, defaults to NODECALL.

OBSINIT
Initial Obsolescence value

OBSMIN
Minimum Obsolescence value to be included in NODES broadcasts.

NODESINTERVAL
Time between NODES broadcasts (seconds)

L3TIMETOLIVE
Maximum Level 3 hops

L4RETRIES
Level 4 Retries

L4TIMEOUT
Level 4 Timeout

L4DELAY
Level 4 Delayed ACK timer

L4WINDOW
Level 4 Window

MINQUAL
Minimum Quality to add to NODES table.

HIDENODES
Suppresses the display of NODES with an Alias that starts with a # sign.


MAXRTT
Used for INP3 routing. The largest Round Trip Time to be added to your IMP3 routing table

MAXHOPS
Used for INP3 routing. The largest hop count to be added to your IMP3 routing table

AUTOSAVE
Causes the NODES and ROUTES tables to be saved to file BPQNODES.DAT when the switch closes. They will be reloaded when the program is restarted.

Application Configuration

You can define additional Node commands that are available to your users. These may connect to applications running on you computer, or be aliases or 'shortcuts' to other node commands. For example you can define the command "BBS". This can either be set up to connect to a BBS running on your computer, or to be an alias for a command that connects to a BBS on another system. You can set up a callsign that if connected to will select the command, and if required cause the call to be added to your NODES list. The callsign should be different from your NODECALL and any other application call.

There are two ways of defining this:

"New" Method

APPLICATION n,CMD,New Command,Call,Alias,Quality,L2Alias

n Application Number. You can define up to 32.
CMD The command the user types
New Command (optional) The Node command to be run
Call (optional) The call which directly invokes CMD
Alias and Quality (optional) If specified, causes an entry for Call and Alias to be added to your NODES table with the specified Quality
L2Alias (optional)is an additional Alias for direct (L2) connects to the Node. For example: APPLICATION 1,BBS,,G8BPQ,BPQBBS,200 APPLICATION 2,CHAT,,G8BPQ-1,BPQCHT,255 APPLICATION 3,DX,C DXCLUS

Legacy Method

APPLICATIONS=BBS,CHAT,DX/C DXCLUS

APPL1CALL=G8BPQ
APPL1ALIAS=BPQBBS
APPL1QUAL=200

APPL2CALL=G8BPQ-1
APPL2ALIAS=BPQCHT
APPL2QUAL=255

Note that only the first eight applications can be defined using the Legacy method.

The following three parameters are obsolescent. They are aliases for APPL1CALL, APPL1ALIAS and APPL1QUAL. They are still accepted for compatibility with old config files.

BBSALIAS
BBSCALL
BBSQUAL

Locked Routes

Normally routes to other nodes are learned from NODES braodcasts, but routes can be locked if you want to use other than the normal port quality, change some of the L2 parameters, or enable INP3 Mode. If you set IGNOREUNLOCKEDROUTES=1 to a PORT config only routes in this list will be added to your table.

Format is

CALLSIGN,QUALITY,PORT[,MAXFRAME,FRACK,PACLEN,INP3Flag]

MAXFRAME, FRACK and PACLEN if stated override the port defaults.

INP3Flag = 1 enables INP3, 0 or null disables. If using INP3 you should normally disable normal Quality based routing by setting QUALITY to 1 - eg HISCAL-12,1,1,0,0,0,1

Normally the node will try to keep links open to all its neighbours. This can be disabled by setting INP3Flag to 2.

Note that locking a route with QUALITY=0 will prevent the station connecting to you.

Obsolete Parameters

The following six parameters were used by DOS BPQCODE, but are not used by BPQ32. They are accepted, but will be ignored

EMS
DEDHOST
DESQVIEW
HOSTINTERRUPT
TRANSDELAY


The following two parameters are no longer used by BPQ32.

L4APPL
UNPROTO
  (in the main section of the config file - it is still a PORT configuration parameter)

"Simple" Configuration Mode

The configuration command SIMPLE sets the following values:

BBS = 1
BTINTERVAL = 60
BUFFERS = 999
C_IS_CHAT = 1
FULLCTEXT = 1
HIDENODES = 0
IDINTERVAL = 10
IDLETIME = 900
IPGATEWAY = 0
L3TIMETOLIVE = 25
L4DELAY = 10
L4RETRIES = 3
L4TIMEOUT = 60
L4WINDOW = 4
LINKEDFLAG = 'A'
MAXCIRCUITS = 128
MAXNODES = 250
MAXHOPS = 4
MAXLINKS = 64
MAXROUTES = 64
MAXRTT = 90
MINQUAL = 150
NODE = 1
NODESINTERVAL = 30
OBSINIT = 6
OBSMIN = 5
PACLEN = 236
AUTOSAVE = 1
SAVEMH=1
T3 = 180

The following is an example of a configuration using SIMPLE mode.

;	 WINMOR to RMS configuration using SIMPLE Mode
SIMPLE
NODECALL=G8BPQ
INFOMSG:
G8BPQ's WINMOR to RMS Gateway
***
PORT
 ID=WINMOR Port 1
 DRIVER=WINMOR
 CONFIG                 ; Driver-Specific Configuration 
  ADDR 127.0.0.1 8500 PATH C:\Program Files\bpq32\Winmor\Winmor TNC.exe
  CWID True
  BW 1600
  DRIVELEVEL 100
ENDPORT

APPLICATION 1,RMS,,G8BPQ-10

Alphabetic list of all configuration commands

APPLnALIAS    where n can be 1 to 8
APPLnCALL
APPLnQUAL
APPLICATION
APPLICATIONS
APRSDIGI
AUTOSAVE
BBS
BBSALIAS
BBSCALL
BBSQUAL
BRIDGE
BTEXT:
BTINTERVAL
BUFFERS
C_IS_CHAT
CTEXT:
DEDHOST
DESQVIEW
EMS
ENABLE_LINKED
FULL_CTEXT
HFCTEXT
HIDENODES
HOSTINTERRUPT
IDINTERVAL
IDLETIME
IDMSG:
INFOMSG:
IPGATEWAY
L3TIMETOLIVE
L4APPL
L4DELAY
L4RETRIES
L4TIMEOUT
L4WINDOW
LOCATOR
MAPCOMMENT
MAXCIRCUITS
MAXHOPS
MAXLINKS
MAXNODES
MAXROUTES
MAXRTT
MINQUAL
NETROMCALL
NODE
NODEALIAS
NODECALL
NODESINTERVAL
OBSINIT
OBSMIN
PACLEN
PASSWORD
PORT
ROUTES:
SAVEMH
SIMPLE
T3
TNCPORT
TRANSDELAY

Typical Configuration File

The following is a typical configuration file with embedded comments.

;
;
;	CONFIGURATION FILE FOR G8BPQ SWITCH SOFTWARE
;
;	The order of parameters in not important, but they
;	all must be specified - there are no defaults
;
PASSWORD=ABCDEFGHILKLMNOPQRSTUVWXY	  	 ; SYSOP Passord

LOCATOR=IO68VL		; Enable Map Reporting
MAPCOMMENT=BPQ32 Test Node<BR>Skigersta, Isle of Lewis

;
;
;	BBS enables the Application support system. If you have specified any of the APPLnCALLS,
;	you should set BBS to 1.
;
BBS=1		; INCLUDE BBS SUPPORT
;
;	NODE
NODE=1		; INCLUDE SWITCH SUPPORT



; The NODES and ROUTES tables can be saved, so that they can be reloaded when the software is restarted,
; rather than having to wait for the tables to be rebuilt. There is a program SAVENODES.exe and a command
; to the BPQ32 console to to this. By Setting AUTOSAVE=1, the tables will be saved each time the softare closes

AUTOSAVE=1		; Save Nodes File before exiting

;
;	Station Identification.
;
;	If a user connects to the NODE Callsign or Alias, he is linked
;	to the switch code, and can use normal NetRom/TheNet commands
;
;	If he connects to an Application Callsign or Alias he will be connected
;	directly to the corresponding application. If not available, the connect will
;	be rejected. See the section on Application Calls towards the bottom of the file for
;	more information.
;
;	Note that for compatibility with the DOS version, and older versions of BPQ32, BBSCALL is an alias for APPL1CALL,
;	and BBSALIAS is an alias for APPL1ALIAS. If both BBSCALL and APPL1CALL are specified, the BBSCALL will be ignored.	
;

NODECALL=G8BPQ-2	; NODE CALLSIGN
NODEALIAS=BPQ

;	'ID' MESSAGE - SENT EVERY IDINTERVAL MINS
;
;	WILL BE ADDRESSED FROM THE PORT CALLSIGN (IF DEFINED)
;	     ELSE FROM THE NODE CALL
;
;	The main purpose of this is to satisfy the requrements of those administations that require a regular station 
;	identification in the same mode as used for communication. 

IDMSG:
Network node (BPQ)
***
;

;	'I' COMMAND TEXT
;
;
INFOMSG:
G8BPQ Win32 Test Switch, Skigersta, Isle of Lewis.
***

; BTEXT is the default beacon sent by the Node. Note that application programs may change this, or
; generate their own beacons.

; An APRS compatible position may be included. 

BTEXT:
=5828.54N/00612.69W- {BPQ32}
G8BPQ's Test Node
***

IDINTERVAL=15		; 'ID' BROADCAST INTERVAL (UK Regs require an AX25 ID every 15 mins)
BTINTERVAL=15		; BTEXT is sent at this interval

;
;	CTEXT - Normally will only be sent when someone connects to 
;	the NODE ALIAS at level 2. If FULL_CTEXT is set to 1, it 
;	will be sent to all connectees. Note that this could confuse BBS
;	forwarding connect scripts. 
;
CTEXT:
Welcome to G8BPQ's Test Switch in Skigersta
Type ? for list of available commands.
***

FULL_CTEXT=0		; SEND CTEXT TO EVERYBODY

HFCTEXT=BPQ32 Node, Skigersta

;	Network System Parameters. 
;
;	These are my values. Many other node sysops use other values. If in doubt, liase with
;	those running nodes that you link to

OBSINIT=5		; INITIAL OBSOLESCENCE VALUE
OBSMIN=4		; MINIMUM TO BROADCAST
NODESINTERVAL=60		; 'NODES' INTERVAL IN MINS

L3TIMETOLIVE=25		; MAX L3 HOPS
L4RETRIES=4;		; LEVEL 4 RETRY COUNT
;
L4TIMEOUT=60;		; LEVEL 4 TIMEOUT
L4DELAY=10		; LEVEL 4 DELAYED ACK TIMER
L4WINDOW=4		; DEFAULT LEVEL 4 WINDOW
;
MINQUAL=140		; MINIMUM QUALITY TO ADD TO NODES TABLE	



;	The following MAX params set the limits for various tables. 
;
;	Although significantly larger values can be used, a common area is used
;	for these tables and the buffer pool, so don't increase them more than 
;	necessary.

MAXLINKS=100		; MAX LEVEL 2 LINKS (UP,DOWN AND INTERNODE)
MAXNODES=300; 		; MAX NODES IN SYSTEM
MAXROUTES=30		; MAX ADJACENT NODES
MAXCIRCUITS=150		; NUMBER OF L4 CIRCUITS

	

BUFFERS=999		; PACKET BUFFERS - 999 MEANS ALLOCATE AS MANY
				; AS POSSIBLE - NORMALLY ABOUT 600, DEPENDING
				; ON OTHER TABLE SIZES
;
;	TNC DEFAULT PARAMS
;
PACLEN=236		; MAX PACKET SIZE
;
;	PACLEN is a problem! The ideal size depends on the link(s) over
;	which a packet will be sent. For a session involving another node,
;	we have no idea what is at the far end. Ideally each node should have
; the capability to combine and then refragment messages to suit each
; link segment - maybe when there are more of my nodes about than 'real'
; ones, i'll do it. When the node is accessed directly, things are a
; bit easier, as we know at least something about the link.
; So there are two PACLEN params, one here and
; one in the PORTS section. This one is used to set the initial value
; for sessions via other nodes, and for sessions initiated from here.
; The other is used for incoming direct (Level 2) sessions. In all cases
; the Node PACLEN command can be used to override the defaults.
;
; 236 is the largest that can be sent over a NETROM link without fragmetation.
; so don't go above this unless you don't have ant NETROM links.
;
; Level 2 Parameters
;
; Most Level 2 parametes are specified in the PORTS section'
;
T3=180 ; LINK VALIDATION TIMER (3 MINS)
IDLETIME=900 ; IDLE LINK SHUTDOWN TIMER (15 MINS)
;
;
HIDENODES=0 ; IF SET TO 1, NODES STARTING WITH # WILL
; ONLY BE DISPLAYED BY A NODES * COMMAND
;
; THE *** LINKED COMMAND IS INTENDED FOR USE BY GATEWAY SOFTWARE, AND
; CONCERN HAS BEEN EXPRESSED THAT IT COULD BE MISUSED. I RECOMMEND THAT
; IT IS DISABLED IF NOT NEEDED.
;
ENABLE_LINKED=A ; CONTROLS PROCESSING OF *** LINKED COMMAND
; Y ALLOWS UNRESTRICTED USE
; A ALLOWS USE BY APPLICATION PROGRAM
; N (OR ANY OTHER VALUE) DISABLE
;
; AX25 PORT DEFINITIONS
;
; These define the external links - normally to radios, but possibly
; to other computers, modems, etc.
;

; The KISS protocol supports dual port TNC's such as the KAM and KPC4.
; You should define two port entries with the same IO addr
; and SPEED - set CHANNEL=A for the first and B for the second.
;
; Note that all timer values are in ms intervals. Most TNC's
; use different units for the various timers, so be careful!
;
; All parameters should be set for all ports, but not all
; drivers support all features. For instance, the NETROM driver
; does not use the TXDELAY, SLOTTIME and PERSIST values. The NETROM
; driver only works in FULL DUPLEX mode, and the HDLC only in
; HALF DUPLEX.
;;
; CWID works only on DRSI and PC120 cards, and can be suppressed
; by omitting the parameter.
;
; BECAUSE OF OUR ODD LICENCING CONDITIONS YOU MAY WISH TO BAN
; CONNECTIONS TO THE BBS CALLSIGN ON SOME PORTS - USERS MAY STILL
; CONNECT USING L4, OR CONNECT TO THE NODE ADDR, AND USE BBS
; COMMAND. PUT 'BBSFLAG=NOBBS' TO ACTIVATE THIS FUNCTION.
; 'BBSFLAG=BBSOK', OR NO PARM, MEANS BEHAVE AS NORMAL
;
; You can have an extra callsign and alias for each
; port for user access only. The callsigns defined in NODECALL and
; BBSCALL are used for all networking activity.
;

PORT
ID=LOOPBACK
TYPE=INTERNAL
PROTOCOL=KISS
CHANNEL=A
QUALITY=0
MAXFRAME=6
FULLDUP=0
FRACK=10000
RESPTIME=3000
RETRIES=10
PACLEN=200
TXDELAY=500
SLOTTIME=100
PERSIST=64
DIGIFLAG=1
UNPROTO=FBB
ENDPORT

PORT
ID=AXIP Link
TYPE=EXTERNAL
DLLNAME=BPQAXIP.DLL
QUALITY=200
MAXFRAME=4
FRACK=5000
RESPTIME=1000
RETRIES=10
PACLEN=236
MINQUAL=150
UNPROTO=FBB ; DEFAULT UNPROTO ADDR
BCALL=GM8BPQ ; Call for Beacons

CONFIG

UDP 10093 # Optional. Enables UDP support, and defines the port
# AX.IP listens on. You can specify more than one
# UDP line if you need to listen on more than one port

MHEARD # Optional - opens a window to display a "Heard List"

BROADCAST NODES

MAP G8BPQ-7 G8BPQ.NO-IP.COM UDP 10093 B

; Steve Conrad, VE9SC, provides a service which displays a map of BPQMailChat
; nodes dynamically updated: http://guardian.no-ip.org/bpqmap/ChatNetwork.htm
; The following line causes your Chat Node to be included on the map.

MAP DUMMY chatmap.g8bpq.net UDP 10090

ENDPORT

PORT
ID=BPQEther Link
TYPE=EXTERNAL
DLLNAME=BPQETHER.DLL
QUALITY=200
IOADDR=2
CHANNEL=A
MAXFRAME=7
FRACK=5000
RESPTIME=1000
RETRIES=10
PACLEN=236
MINQUAL=255
UNPROTO=MAIL ; DEFAULT UNPROTO ADDR

CONFIG

TXMODE BPQ # BPQ or RLI
RXMODE BPQ # BPQ or RLI
TYPE 08FF # Ethernet Type
DEST 01-42-50-51-00-00 # Target Ethernet Addr - Multicast as used in DOS BPQCODE
SOURCE 02-FF-60-BA-5C-9E # Source Ethernet Addr
ADAPTER \Device\NPF_{959094A1-C20D-4FFD-AF68-D43229E4854B} # Adapter Name

ENDPORT

;
; WINMOR Port
;
PORT
ID=WINMOR Port 1
TYPE=EXTERNAL
DLLNAME=WINMOR.DLL
INTERLOCK=4
CONFIG
ADDR 127.0.0.1 8506 PTT DTR
RIGCONTROL COM61 4800 ICOM IC718 5E 5 3.573/u1nA1 7.077/u1 10.133/u1 10.146/u1wA3 14.1105/u1w
CWID True
BW 1600
DRIVELEVEL 100
BUSYLOCK False

ENDPORT

PORT
ID=KAM PACTOR COM 100
TYPE=EXTERNAL
PROTOCOL=PACTOR
IOADDR=64
SPEED=9600
DLLNAME=KAMPACTOR.DLL
QUALITY=0
INTERLOCK=4

CONFIG ; Driver-Specific Configuration

APPL RMS ; Autoconnect to BPQ32 RMS Application
RIGCONTROL COM2 19200 ICOM IC700 70 4 14.103/U1W 14.112/U1 18.1/U1N 10.12/L1
OLDMODE ; Optional - Causes controller to be set to PACTOR mode instead of TOR mode XMITLVL 50/35; ENDPORT PORT ID=SCS PACTOR COM 103 DRIVER=SCSPACTOR COMPORT=103 SPEED=38400 PORTCALL=GM8BPQ CONFIG ; Driver-Specific Configuration APPL RMS ; Autoconnect to BPQ32 RMS Application RIGCONTROL COM2 19200 ICOM IC700 70 4 14.103/U1W 14.112/U1 18.1/U1N 10.12/L1
PSKA 140 ; PSK TX Output level. FSKA 100 ; TX Level for FSK modes. ENDPORT PORT ID=KISS COM53 TYPE=ASYNC PROTOCOL=KISS COMPORT=53 SPEED=9600 INTLEVEL=4 CHANNEL=A QUALITY=0 MAXFRAME=6 FULLDUP=0 FRACK=10000 RESPTIME=3000 RETRIES=10 PACLEN=200 TXDELAY=500 SLOTTIME=100 PERSIST=64 DIGIFLAG=1 ; ; KISSOPTIONS=ACKMODE ; KISSOPTIONS=POLLED,CHECKSUM UNPROTO=FBB ENDPORT PORT ID=VKISS COM2 Link to MIXW DRIVER=BPQVKISS QUALITY=200 COMPORT=2 CHANNEL=A MAXFRAME=4 FRACK=5000 RESPTIME=1000 RETRIES=10 PACLEN=120 DIGIFLAG=1 DIGIMASK=65535 ; Digi UI Frames to all ports ENDPORT PORT ID=AGW Port 1 DRIVER=BPQtoAGW QUALITY=0 IOADDR=1F41 CHANNEL=A MAXFRAME=4 FRACK=7000 RESPTIME=1000 RETRIES=10 PACLEN=120 UNPROTO=MAIL ; DEFAULT UNPROTO ADDR ; ENDPORT ROUTES: ; ; ROUTES TO LOCK IN ; ; specify Callsign, Quality and Port. You can now also specify ; MAXFRAME, FRACK, PACLEN (in that order) to override the port ; defaults. ; ; AE5E-14,200,2,0,0,0,2 ; No Keepalives ;G4RFG,0,1 ; Marginal, So lock out by setting QUALITY = 0 ;G0GDR-1,100,2,1,6000,100 ; not always very good, so MAXFRAME = 1 *** ; ; APPLICATIONS SUPPORTED ; ; NAMES STARTING WITH * ARE NOT INCLUDED IN 'VALID COMMANDS' DISPALY ; APPLICATION 1,RMS,,GM8BPQ-10,BPQRMS,0 APPLICATION 2,CHAT,,G8BPQ-4,BPQCHT,255 APPLICATION 3,FBB,,GM8BPQ-3,BPQFBB,0 APPLICATION 4,BBS,,G8BPQ,BPQBBS,255

John Wiseman G8BPQ
October 2011
Updated February 2021