XGlue AXUDP Driver for(X)Net to operate with
AGW Packet Engine Version 1.30.12 by Ing. Pedro
E. Colla (LU7DID) Copyright 2001 LU7DID
Interoperability with Linux (X)Net
Management of AGWPE Applications
thru (X)Net
Interoperability with PC/FlexNet
Disclaimer and License Statement
The
node software (X)Net© [1]
is provided on several platforms, being Win9x/ME and WinNT/2000®[2]
among them (NTNET).
However,
no native support to use the AGW Packet Engine ©[3]
is provided in the package as a Layer 2 Manager (the one who manages the radio
ports); at the same time native driver support for devices is rather limited on
(X)Net, mostly KISS TNCs and USCC cards on the Win platform, so interoperation
with the AGWPE might allow the access to a much wider selection of AX.25
devices.
One
of the drivers natively provided by (X)Net allows it to support AXIP
and AXUDP connections with other nodes (AX.25 over TCP/IP as per the
RFC-1226 standard).
XGlue is a program
that "glues" (X)Net to the radio ports managed by the AGW
Packet Engine by mean of acting as an AXUDP server in one end of the
conversation (XNET end) and an AGWPE WinSocks API
client (AGWPE end).
Once
the configuration is appropriately set, the interconnection is established data
sent by (X)Net is transparently posted on AGWPE and
data received at the AGWPE selected ports is posted into (X)Net.
Because
of the way the communication is performed all AX.25 parameters controlling the
links are the ones configured at (X)Net.
Installation is
rather simple
·
Execute the setup
file XGLUEVxx.EXE and choose the installation defaults.
·
Configure the file XGLUE.INI
configuration file (see XGLUE Configuration)
·
Configure (X)Net
to properly access the ports provided by XGlue (see (X)Net Configuration)
The TCP/IP stack of Windows must be properly installed and configured for this combination to work; TCP/IP is used to sustain the basic communications between AGWPE↔XGlue↔XNet so configuration problems on the stack would lead to bad results.
A basic verification
to see if the TCP/IP stack is properly configured is to be able to “ping” the
loopback port of the machine, to verify that at the Command Processor window
do:
Ping 127.0.0.1
A response like
Pinging
127.0.0.1 with 32 bytes of data:
Reply from
127.0.0.1: bytes=32 time<10ms TTL=128
Reply from
127.0.0.1: bytes=32 time<10ms TTL=128
Reply from
127.0.0.1: bytes=32 time<10ms TTL=128
Reply from
127.0.0.1: bytes=32 time<10ms TTL=128
Ping statistics
for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0
(0% loss),
Approximate
round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Will indicate a
proper configuration, other responses might indicate problems that got to be
fixed before to continue with the configuration.
Please refer to the
Windows documentation in order to understand the procedures and steps required
to properly install the TCP/IP stack.
No
special configuration is required on AGWPE, define all the radio ports you want
to support with the devices you got; one loopback port is supported if required
as just an additional radio port.
Use
the most updated version of the AGWPE, at the moment this manual is written
it’s Version 2001.12, get the lattest version from SV2AGW Home Page.
Perform
the installation according with the AGWPE documentation, verify the
installation is functional thru the successful usage of one or more of the
AGWPE clients (such as AGWMonitor or AGWTerminal)
Be
sure to:
·
Enable the WinSocks
support (Setup Interfaces/WinSock Interface)
o
Check the “Enable
Winsock TCP/IP Application Interface”
o
Set TCP as “8000”.
o
Click on “Accept”.
·
If security is
configured (Setup Interfaces/WinSock Interface Security) use the proper
settings on the XGLUE.INI file for it to be able to connect
AGWPE.
o
Check “Accept without
Login from Anywhere (No Security).
(X)Net
is a rather big and complex piece of code and it's completely beyond the scope
of this document to address that subject, you could get the latest version and
documentation directly from the DL1GJI Home
Page.
Warning!! XGlue
is prepared to work with (X)Net Version 1.30 or higher..
However,
the part of the configuration relevant for XGLUE is based on the proper use of
the ATTACH and PORT commands which will be discussed with further detail in the
following sections.
Use
one ATTACH entry for every port device you want to support thru an AGWPE port,
this configuration assumes you have no other device and assigns port numbers
starting with 0; this is not really a restriction since (X)Net knows nothing
about AGWPE or it’s port numbering but it’s a good approach for mnemonic
reasons to establish a convention where both (X)Net and AGWPE uses the same
port numbers for the same devices.
Nothing
prevents ATTACH statements bounding (X)Net to other interfaces not controlled
by AGWPE to be included as well on the
same configuration.
Follows
the general format of the ATTACH command required, Use one ATTACH
entry for every physical port supported by AGWPE (including the Loopback port),
the general format would be:
attach |
ip0 |
axudp |
0 |
1 |
l93 |
d9300 |
127.0.0.1 |
|
Interface Name,
XNet supports from ip0 thru ipf |
fixed |
First port
assignement, following
statements must increase this number into 1..n Should match the
AGWPE port number |
fixed |
UDP port where XNET
will listen for this AXUDP link |
UDP port where the
partner of the link (XGLUE in this case) will listen. |
IP Address where
the other end of the link is located. Use the proper IP address if located on
a different machine. |
UDP ports used for
both the (X)Net and XGlue ends must be unique on the machine both programs are
been run, duplicate port numbers will lead for communication failures.
Use
one set of PORT entries for each interface previously defined; the
following sample configuration set should be repeated for each port defined,
the complete set should be included into the autoexec.net file for automatic
configuration at startup. Replace “x” by the actual interface number, 0..n.
po x baud
1200
po
x dup 1
po x win 7
po x name AGW1>145.15 Mhz
po x
persistence 128
po x quality 250
po x retries 32
Actual
values should be customized by each sysop according with the link
characteristics he/she wants to set for the particular port (windows,
persistence, quality, retries, name, etc).
The
'baud' setting is VERY relevant, it has to
match the real bandwidth of the physical port in AGWPE to which
this port will be associated; if values higher than necessary are stated AGWPE
will be "flooded" with packets as speeds that it could not possibly
handle on the available bandwidth, result will be very unreliable physical
connections, timeouts, etc.
XGlue
configuration is made thru entries on the XGLUE.INI file (a sample is provided
with the installation installation).
Any
ASCII text editor could be used to configure the entries.
[XGLUE]
LOGFILE=XGLUE.LOG <-- Log file if TRACE > 0
TRACE=1 <-- Trace Level
RECOVER=TRUE
<-- Try to recover connection fails with AGWPE?
DUAL=YES <--.Dual UDP channel (default), Single (NOT)
[AGW]
ADDRESS=127.0.0.1 <-- Machine where AGWPE is running
PORT=8000 <-- Port where AGWPE listen for WinSock API apps
LOGIN= <-- Login (if configured on AGWPE)
PASSW= <-- Password (if configured on AGWPE)
[XNET]
ADDRESS=127.0.0.1 <-- Machine where (X)Net is running
[XNET.PORT]
0=1,9300,93 <-- Format
1=2,9400,94 XXX=1,9300,93
ß Port defined at XNet
2=3,9500,95 | |
|
3=4,9600,95 | |
|
| | +------> UDP port where XGlue listen
| |
should match the "d" argument
|
| on the XNet ATTACH
command
| |
| +--------> AGWPE
RadioPort mapped to this
| (X)Net interface (1..N)
|
+------------> Any non-repetitive
"fantasy"
name for the entry (i.e. “P0”)
·
Each
AGWPE radioport must have one entry on the [XNET.PORT] list and one ATTACH
command on the AUTOEXEC.NET file of (X)Net; both must be consistent.
·
Each
AGWPE radioport must have a maximum of one associated interface configured on
XGLue and/or (X)Net.
·
As stated
UDP ports for both (X)Net and XGlue must be unique on the machine both programs
are respectively used.
·
To
operate with PC/FlexNet32 the parameter DUAL=NOT must be stated.
This
setup assumes that (X)Net, XGlue and AGWPE will be run on the same machine; this is the configuration that
would make sense in most cases.
However,
nothing prevent to run those components on up to three different machines
provided that TCP/IP connectivity do exist between them.
In
case the machines where the programs are run be different the proper IP
Addresses must be configured on both the (X)Net and XGlue configurations to
point to the appropriate machines for the respective components.
Both
AGWPE and XGlue are Win based applications, so they MUST run under Windows, no version for Linux do exist for
any of them.
However,
(X)Net have equivalent versions for BOTH Win and Linux so it's inmaterial which
version is used.
Provided
the need for at least two different machines is acceptable (one for Win and
another for Linux) no other restriction do apply to interoperate between
AGWPE/XGlue on a Win platform and (X)Net on a Linux platform as long as both
machines has TCP/IP connectivity among them.
Applications running under AGWPE could be made visible to the (X)Net node thru it’s definition using the ROUTER LOCAL statements of the (X)Net configuration.
(X)Net should be configured to connect with the applications thru the AGWPE LoopBack port which must be configured and have a proper definition on XGlue and the respective ATTACH on (X)Net as just another port.
The following (X)Net configuration will allow a BBS
(LU7DID:LUGATE) and a DX Cluster (LU7DID-3:DXCDID) to be accessed thru
Port 3 (assumed to have been defined as associated with the AGWPE LoopBack
port). ROUTER LOCAL 3 LU7DID nd LUGATE ROUTER LOCAL 3 LU7DID-3 nd DXCDID at some part of the configuration a statement like … ATTACH ip3 axudp 3 1 –l96 –d9600 127.0.0.1 And XGlue must be configured accordingly with [XNET.PORT] ….. 3=3,96,9600 …..
EXAMPLE
Another NETROM or FlexNet node could be defined under the same AGWPE where (X)Net is attached to.
If such a
configuration is required routes on both nodes to see each other must be
established thru the AGWPE loopback port.
XGlue allows to establish interoperability between PC/FlexNet and AGWPE, in a way that the vastly superior quantity and quality of the AX.25 generation methods provided by AGWPE could be used from PC/FlexNet.
In order to comply with the requirements of the AXIP driver of PC/FlexNet32 XGlue has to operate with a single UDP socket instead of the default configuration of using dual socket; to enable this mode of operation the parameter DUAL has to be stated as NOT in the XGLUE.INI configuration.
However this mode of
operation could not receive any support since it’s impossible to get any answer
in case of problems from the PC/FlexNet team or any other gesture of
cooperation, so basically if you try it do it at your own risk since I’ll be
unable to support you.
The operation of
XGlue once configured is rather simple and unattended, for the connectivity
between AGWPE and (X)Net to be possible the program must be running but this is
all what is required to operate it.
XGlue, AGWPE, and
(X)Net could be shutdown and restarted in any order at any moment without
affect the others; connectivity will be resumed as soon as all components are
back into operation.
TCP/IP connectivity
between all machines is assumed to be of high bandwidth (LAN or Intranet),
operation thru a public network (such as the Internet) is not supported nor
recommended because of fragmentation and security issues. XGlue isn't
appropriate to be used on wormhole or tunnel setups, if you're willing to setup
such configuration implement it using (X)Net separately.
In
order to remove the program the directory where it's installed should be
deleted; no resources outside that directory are installed.
An
unistallation resource is provided when the program is installed.
XGlue
is free for radioamateur and experimental uses, commercial use requires written
permission from the author.
(X)Net is © of
Joachim Scherer (DL1GJI) and the AGW Packet Engine © of George Rossopoulous
(SV2AGW); this software doesn't affect either the copyright nor the license of
any of those packages; code used to develop XGlue is from my own development
and thus it's usage is Copyright © 2001 Pedro E. Colla (LU7DID)and subject to
this license restrictions.
It
is your responsability to fulfill all license conditions of the packages
integrated by this program and to avoid situations where it's usage might
conflict partially or totally with the licensed conditions of usage for them.
The
author bears no liability for damages related to the usage of this program nor guarantees
the proper functional behaviour. I could certainly be more sophisticated in
legal terms, but in a nutshell use it at your own risk.
Please
direct comments, bug reports and feedback for enhancements to:
AX.25: LU7DID@LU7DID.#ADR.BA.ARG.SOAM
Inet: [email protected]
For the most current
version of XGlue go to the LU7DID Home Page.