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 7
Management of
AGWPE Applications thru (X)Net 7
Operation
with another Node. 8
Interoperability
with PC/FlexNet 8
Disclaimer and License
Statement. 8
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: colla@pec.pccp.com.ar
For
the most current version of XGlue go to the LU7DID Home Page.