This document describes the basic concepts behind PC/FlexNet, a
modular AX.25 stack for DOS or Windows95 based personal computers.
What is PC/FlexNet?
PC/FlexNet is a powerful, flexible and easy to use AX.25 stack for
Intel-80x86 based PC's running on DOS or MS-Windows95. PC/FlexNet's
sister software, RMNC/FlexNet, is a digipeater software for a
microcontroller hardware (the RMNC). It is widely used in central
europe and famous for its reliability. PC/FlexNet's features can be
summarized as follows:
Speed |
Actual speeds depend on the hardware configuration, but PC/FlexNet is
much faster than other AX.25 stacks, eg. TheNet |
Flexibility |
PC/FlexNet is highly modular, every module (except the Kernel) is
optional, so you can load just the modules you need. |
Ease of use |
PC/FlexNet has very few parameters to adjust, just two per radio
channel. The other parameters, especially the channel access
parameters, are set automatically according to the channel usage characteristics. |
Compatibility |
PC/FlexNet works with virtually any hardware that can be used as a
modem and almost all DOS based amateur radio applications. |
Digipeater |
The FlexNet kernel contains a simple SSID based digipeater. The
optional FLEXDIGI module provides a full fledged digipeater featuring
a proprietary routing protocol that is much more reliable and faster
converging than eg. NET/ROM. FlexNet's hop-to-hop acknowledges reduce
packet loss significantly and make connections over dozens of
digipeaters possible! |
Background operation |
PC/FlexNet and its L1 drivers are TSR (terminate and stay resident)
programs, i.e. they return immediately to the DOS prompt. PC/FlexNet
applications come in two flavours: TSR and non-TSR. PC/FlexNet
supports any number TSR applications (as long as memory suffices...),
but only one non-TSR application (the last one). |
Extendability |
PC/FlexNet's modular concept makes development easy. Unlike other big
monolithical solutions, each author only needs to know his small
module. This improved the quality and stability of the modules a lot.
Besides, there are developer kits available from the author, (D)K7WJ.
The kits provide C sample files and C linkable libraries. |
The module hierarchy
Please note that the graph only shows a subset of the available
modules and applications, look at the appropriate web sites for
additional modules and applications!
The most important module (and the only one not optional :-)) is the
FlexNet kernel, FLEXNET.EXE. It provides an interface to the L1
drivers at the lower edge, and an application interface at the upper
edge. The kernel uses the L1 drivers to actually transmit and receive
packets over the air (or the wire). PC/FlexNet applications use the
kernel to set up outgoing connects and listen to incoming connects.
The L1 drivers actually access the hardware to transmit and receive
packets. The FlexNet kernel supports up to 16 channels. L1 drivers
may support more than one channel. Each driver should be accompanied
by a .DOC file describing its capabilities and command line
parameters. Most .DOC files are bi or trilingual (german, english and
some french too).
There are a few applications that support the PC/FlexNet application
programming interface directly, most notably the Baycom Mailbox (BCM)
and the Baycom Terminal (BCT). Emulators such as TFEMU (WA8DED
emulator) provide standard amateur interfaces. As they are
emulations, they are not perfect; but they are good enough so that
almost all programs work with them.
Installing PC/FlexNet
Starting the software requires the following steps. Enter them at the
DOS prompt (or write them into a batch file)
- FLEXNET
- This loads the FlexNet kernel. Now you'll need to load the L1
drivers according to your hardware. As an example, the following line
will load the Baycom SER12 driver at COM1. The command line options
are described in the .DOC file of the driver.
- SER12 1
- When you have loaded all the L1 driver you wanted (PC/FlexNet
supports up to 16 channels), you may start the Kernel with:
- FLEX
- After this command, it is no longer possible to load L1 driver,
but now Applications may be started. You should now set the operating
parameters of the drivers just loaded. The kernel is now functional
and will receive and transmit packets.
- FSET MODE 0 1200
- sets the baud rate of channel 0 (the first channel) to 1200 baud
- FSET TXDELAY 0 20
- sets the TxDelay (the time spent after keying the transmitter and
before sending any data to allow the PA to arrive at its rated power
level) to 200ms, which is suitable for many HT transceivers. Crystal
controlled transceivers usually need much less.
- BCT /n yourcall
- You may now start PC/FlexNet applications. This example starts
the baycom terminal. Replace yourcall by your callsign.
- TFEMU
- This starts the WA8DED emulator in TFPC* compatible mode. If your
application expects the DRSI mode, use the parameter /dr.
PC/FlexNet modules may be unloaded. The following commands achieve this:
- KILLAPPL
- This command removes the last loaded TSR application (such as TFEMU).
- FLEX /u
- Removes every PC/FlexNet module including the Kernel, L1 drivers,
and TSR applications
Reporting bugs
PC/FlexNet exists now for over one year. Its roots (RMNC FlexNet) are
even much older, more than 6 years. It is thus a very mature
software. So if you find an unexpected behaviour, please read the
documentation first! If the problems persist, send an E-mail (via the
Internet or via Packet Radio) to the appropriate author (the address
listed in the .DOC file of the module that causes your problems).
Please always include a detailed description of:
Since this is our hobby, do not expect us to reply within 24 hours,
don`t even expect an answer at all. Please include as much
information as possible, "it does not work" does not help
us to help you.
Why does the FlexNet group always have to reinvent the wheel?
Sorry. We are trying to use established amateur standards, but
sometimes they do not provide the features we need. Rather than
presenting an inferior solution, we invent a new specification.
- Application interface
- The established standard for AX.25 stacks communicating to
applications is the WA8DED hostmode. It has several drawbacks.
-
it is slow
- it is hard to use for application developers (need for polling,
resynch procedures)
- it is not transparent (i.e. you cannot do e.g. TCP/IP through it!)
- Therefore we decided to invent an easy to use, fast and
proprietary application programming interface and provide WA8DED
compatibility via an optional module.
- Using TNCs with PC/FlexNet
- The established protocols at the TNC to PC connection and their
disadvantages are:
-
WA8DED hostmode
- it is slow
- it is hard to use
- it is not transparent
- KISS
The disadvantage of KISS is that it does not allow the tight control
of the channel activities that are needed for advanced channel access
protocols such as Optima or DAMA. You can never know when a KISS TNC
actually transmits the packets you've sent it!
- Proprietary protocols
because they are proprietary
- That's why we invented 6PACK. There is an EPROM image available
that implements 6PACK on TNC2 compatible designs. The specification
of 6PACk is also available from our homepage.
- The KISS driver supplied with PC/FlexNet is intended to
communicate with other computers. Don't use it to drive your TNC,
it will not work.
- The routing protocol
- The routing protocol that existed when (D)K7WJ started with
RMNC/FlexNet was NET/ROM. It had (and mostly still has) many
disadvantages so that (D)K7WJ decided to build a new one. Success
justified him! In central europe, it is now possible to reliably
connect over dozens of digipeaters without knowing the path!
|