Hello folks,

without doubt this year's mating season for homo sapiens approaches...

Seriously, this flame war is getting more and more off-topic, with
name-calling, personal attacks against people not even on this list
and mixing different things together.

When we talk about Flexnet, there are two (actually three) different
implementations:

- Flexnet for the RMNC. An RMNC is a multiprocessor system based on
  6809 cards and a Z8530. This is the platform for the greatest part
  of the German packet radio network.

- PC Flexnet for a DOS/Win16 system. This comes in two flavours: a
  user version and a digipeater version. Only the digipeater version
  implements the auto-router.

Gunter DK7WJ is the author of the RMNC implementation, he is the main
author of the PC Flexnet core (which AFAIK also includes some pieces from
the discontinued BayComNode project). The driver interface for PC Flexnet
is well documented, Tom, Matthias and some others wrote low level drivers
for it.

The whole fight against Flexnet has its roots before I even got my
licence in 1989. At that time -- or shortly before -- only TheNet (not 
TheNetNode) and some very few NET/ROM nodes were the only auto-routing
capable systems in use in Germany. Flexnet already existed, it did have
hop-2-hop acknowledge, but no auto-routing. IIRC Gunter wrote Flexnet
for a couple of reasons, among them:

- to promote the RMNC system (developed by people being fed up with
  the TNC diode matrix crap)
- to come up with something better than the NET/ROM protocol which
  simply fails under certain circumstances and needs proper 
  configuration by the node admin
- he had some problems with the attitude of some members of the TheNet
  group

The last point was one of the reasons he decided to not give out
the source code of Flexnet, in fact he did not give out _any_ information
about the routing scheme at first, even if asked nicely. Digiware was
an attempt to reverse-engineer the flexnet protocol. While they were
able to figure out the protocol, they had severe problems to get the
routing right. Furthermore, Gunter was quite upset when he heard that
someone was working on an independend implementation, which really didn't
help to calm people down. Of course this didn't stop the Digiware 
programmers -- quite the opposite, they released a half-cooked version --
and with the help of some members of the BayCom group (especially Flori, 
DL8MBT) he decided to at least outline the scheme involved in the
Interradio Scriptum 1991, which if read closely gives you a good idea
how it works. (All of this AFAIK and IIRC)

[BTW, what is Gunter's stance on distributing scans of the article?]

There are other implementations available now, I don't know whether
Digiware ist still around, but there is an implementation in TheNetNode
and Wampes. The main problems when trying to interoperate with the
NET/ROM compatible worlds are misconfigurations:

- trying to promote NET/ROM nodes that are solely available via the NET/ROM
  protocol in the Flexnet destination list

- trying to promote Flexnet destinations as NET/ROM node table entries

- pseudo-digipeating ala NETCHL or TheNetNode -- accepting connections
  with the own node callsign in the digipeater list and building a NRL4
  connection to the remote DXE. Example: I am on db0xxx and try
        => c db0yyy db0zzz
  db0zzz is the next hop, db0yyy is a NET/ROM target, several hops away.
  NETCHL even acknowledges the connection before the NRL4 connection to
  pi1tht is build up, thus a Flexnet link entry like that would measure
  the RTT between db0xxx and db0zzz, but not between db0xxx and db0yyy.
  Not to mention that a connection like this is only transparent for
  PID 0xf0 frames.

The reasons why nobody implemented the Flexnet router in Linux so far:

- the scheme is not easy to understand and implement.
- we need support for working hop-2-hop acknowledge for digipeated
  connections first
- a small protocol handler has to be implemented to pass down the
  Flexnet communication to a user space daemon. You certainly do not
  want to implement the router in the kernel. Or, alternatively, some
  way to bind to arbitrary PIDs from user space.

And some personal notes:

- What Gunter does or does not with his source code is solely *his*
  business. He has his reasons why he keeps it closed and I do even
  understand them. Nobody has the right to _demand_ opening them,
  porting them to Linux or whatever. After all Flexnet is available
  with no cost for Amateur Radio use. And where is an open and
  cost-free Clover or Pactor II implemententation? At least one of 
  the two is even protected by patents, making it impossible to write
  GPLed implementations.

- Gunter _did_ give out information about the routing scheme after some
  nagging.

- Nobody forces you to use Flexnet. Nobody forces you to use Linux.
  But Linux gives you the chance to implement it yourself without
  spending hundreds of dollars just for the development environment.

- On the other hand, "you can always reverse-engineer it" is not a
  good answer, either. Amateur Radio lives from sharing knowledge about
  technical methods an schemes. Furthermore, an RMNC is rather expensive,
  just to buy a kit for reverse-engineering a protocol for hobby
  purposes is a bit over the top, isn't it?

- [Um, Tom, talking about "textbook routing algorithms", there aren't
   that many textbooks on this topic, which one can your recommend?]

- Flaming Tom and Matthias for also contributing to the PC Flexnet
  project is by far the most outrages thing I've witnessed on this list
  so far. Folks, get a grip.

[NB: all uses of "you" in this text are proverbial unless stated otherwise]

73,

Joerg Reuter                                 http://poboxes.com/jreuter/
And I make my way to where the warm scent of soil fills the evening air. 
Everything is waiting quietly out there....                 (Anne Clark)

PGP signature

Reply via email to