BPQAXIP.DLL supports the encapsulation of AX.25 frames in AXIP (AX.25 IP Protocol 93), AXUDP (UDP IP Protocol 17) (as used in some Unix systems) and AXTCP (TCP IP Protocol 6). These three Internet protocols differ in their application. AXIP is best applicable between machines on the users LAN, for the reason that home routers are not designed to support directing incoming Internet AXIP packets to a specific machine on the LAN. Additionally some ISP’s do not transport AXIP, it being a relatively rare protocol. AXUDP, which in the bpqaxip.cfg file is simply referred to as UDP, is most commonly used. UDP is connectionless and peer to peer (each side has the same capabilities and can originate ‘connections’). In AXUDP BPQ32 provides the connection capability as defined in the AX.25 standard. AXUDP is, in most cases, the method of choice for BPQ32 local and internet users. A third method AXTCP has been added to deal with difficult cases where the ‘remote’ user lacks control over the internet connection properties and cannot control the routing of incoming packets. Such would be the case in a roaming environment such as a public Wi-Fi connection. TCP is a connected protocol and oriented to client-server usage. In AXTCP the remote BPQ32 user, the client, originates a TCP connection to the BPQ32 site, the server, whose network router is configured to route specific port numbered TCP packets to the BPQ32 server machine.
The program uses Winsock Version 2. This is provided as standard in NT 4 and Windows 98, but must be installed on Win 95 before the program can be used. The Winsock2 for 95 runtime should be included with this program - if not, you will need to download it from Microsoft (ws2setup.exe).
The driver is loaded when BPQ32 initializes the port. This occurs when the first program to use the DLL is loaded. Other BPQ32 programs may be loaded and unloaded, but if the first program exits before all the others, the AXIP dll will be deleted, and the other programs will crash. To get round this problem, I've written a simple application (BPQAPP.EXE) which can be run first, and does nothing but keep the switch and AXIP dlls in memory. This program should be run before any other programs that use the BPQ32 interface.
The driver is defined to BPQ32 as an External port:
The DLL reads a configuration file BPQAXIP.CFG, which defines the mapping from AX.25 callsign-ssid, to an IP address. This file needs to be in the current directory, or the directory pointed to by the registry entry
HKEY_LOCAL_MACHINE\Software\G8BPQ\BPQ32\Config File Location when BPQ32 is loaded.
; Config file for BPQAXIP
; The UDP lines are optional, without them only AXIP is possible
UDP 10093 ; Listens for UDP packets on this UDP port number
UDP 10094 ; Listens for UDP packets on this additional UDP port number
;DONTCHECKSOURCECALL ; This option prevents entries in the NODES table from
; stations sending you nodes broadcasts without the
; corresponding node being configured in your bpqaxip.cfg file
AUTOADDMAP ; This option automatically adds the node call and
; address of a node for which you do not have a
; pre-arranged fixed entry in your bpqaxip.cfg file.
; Using a LAN address. See RFC1597 for the range of LAN addresses.
MAP G8BPQ-7 10.2.77.1 B ; Using AXIP to a local machine on your LAN and include node broadcasts
; Using AXUDP to an Internet address:
MAP G8BPQ-7 188.8.131.52 UDP 10095 B ; Send UDP to port 10093 including node broadcasts.
MAP AE5E-14 dxspots.com KEEPALIVE 120 UDP 10093 B ; Using UDP Port 10093 to transmit to AE5E-14
; at URL dxspots.com including node broadcasts.
; The optional KEEPALIVE 120 sends a special
; keepalive packet every 120 seconds, which may be
; useful in sustaining a otherwise poor connection.
; Using AXTCP for unique situations as described in the Introduction:
MAP G8BPQ-6 0.0.0.0 TCP-Slave 10093 B ; Allows this BPQ32 session to accept TCP connections from
; G8BPQ-6 using TCP Port 10093. No IP address is specified.
MAP AE5E-14 example.com TCP-Master 10093 ; Allows this BPQ32 to originate TCP connections to AE5E-14
; with address example.com using TCP Port 10093.
; In the above mappings, the ‘B’ indicates node broadcasts are send to the same address. Although rarely
; used, it is possible to break this into two lines:
MAP AE5E-3 example.com KEEPALIVE 180 UDP 10093 ; without nodes broadcasts
MAP NODES example.com UDP 10093 ; adds nodes broadcasts
If an ssid is supplied, the entry only applies to that ssid value. If no ssid is supplied, the entry applies to all ssid values. So, if you want to select traffic for only G8BPQ, you must specify G8BPQ-0.
The code has been modified to allow more that one mapping for each callsign, so, for example NODES broadcasts can be sent to more than one station. Unfortunately this means that it is no longer possible to send traffic for G8BPQ to 10.2.77.1, and all other ssids to 10.2.77.2 by specifying:
MAP G8BPQ-0 10.2.77.1
MAP G8BPQ 10.2.77.2
If you try this, messages to G8BPQ will also be sent to 10.2.77.2
There is a limit of 128 entries in the mapping table.
You may specify hostnames instead of numeric IP addresses.
The software will work with an IP broadcast address, but if the destination is on the same net as the switch, it will receive its own broadcast frames.