User Tools

Site Tools


b2f:start

This is an old revision of the document!


BBS Forwarding protocol

WARNING At this stage, this page is the scratchpad of an attempt to summarize everything related to the BBS forwarding protocol (including Winlink extensions). Considering the poor redactional and lacunar nature of the reference documentation, DO NOT take the content of this page at face value until this message disappears. Here be dragons, don't come complaining.

SID

The System IDentifier string (or SID) is used by BBS software exchange their author, their version, and, optionally, a list of extended features, as described in the next subsection.

Here is an ABNF syntax of the SID string:

SID_ALNUM   = %x20-2c / %x2e-5a / %x5c / %x5e-7e ; All printables except for "[", "-" and "]".
AUTHOR      = 1*SID_ALNUM
VERSION     = 1*SID_ALNUM
FEATURES    = 1*SID_ALNUM
SID         = "[" AUTHOR "-" VERSION [ "-" FEATURES ] "]"

PCRE compatible format string:

/^\[(?<author>[^-]+)-(?<version>[^-\]]+)(?:-(?<features>[^\]]+))?\]$/

Extensions list

Letter(s) Description F6FBB? WL2K? W0RLI? LA5NTA? F4HOF1)
A Acknowledge for personal messages X X
B FBB compressed protocol version 0 X # X
B1 FBB compressed protocol version 1 X # X
B2 FBB compressed protocol version 2 X X
C Automatic distribution of current date / time (obsolete) #
D FIXME X
F FBB basic protocol support X X
G GZIP compression X
H Hierarchical Location designators X # X
I Calling station ID support X
J Winlink: Seems to indicate “Linked to CMSFIXME X
L G1NNA Compression #
M Message Identifier support X #
N Winlink: Calling station ID with SSID #
R AA4RE Extended reject responses #
S AA4RE Extended S commands support #
T Winlink FIXME #
U Winlink FIXME #
W Winlink features (non required for P2P) X
X Compressed batch forwarding X
$ BID supported X
  • X ⇒ Fully specified
  • # ⇒ Partially described, or references its existence

FIXME Fuzz Wl2k express to see which extensions break its nominal operation.

Here are the strict minimum extensions required by Winlink to accept a remote party, according the selected mode of operation:

Operating mode Extensions
Winlink B2FWIHJM$
Radio Only B2FWIHM$
Post Office B2FWIHM$
P2P B2FHM$

Commands (AKA proposals)

Ascii Basic Protocol

(i) Usage of this proposal implies the presence of the F feature in the SID.

Details in the dedicated page on the ASCII Basic Protocol

Binary compressed protocol version 0

(i) Usage of this proposal implies the presence of both the B and F features in the SID.

Details in the dedicated page on the Binary Compressed Forward Version 0.

Binary compressed protocol version 1

(i) Usage of this proposal implies the presence of both the B1 and F features in the SID.

Details in the dedicated page on the Binary Compressed Forward Version 1.

B2F

B2F is a superset of BCFv1, so FA and FB commands work the same way.

This protocol's specifics are described in Open B2F.

GZIP Experiment

The GZIP Experiment is a superset of BCPv2 which adds the FD proposal while following the FC proposal specifics, except for the use of GZIP instead of the LZHUF version 1 format.

Apparently, clients and servers add the feature W in their SID string when establishing a WL2K connection. Some even complain if the remote peer doesn't expose it. The precise meaning and purpose of that flag is undocumented.

W0RLI also ties the features T and U in their specification, but without any details on their real meaning.

Forward messages

Pending messages

Radio Only mode

Data Transfer Modes

Standard Forwarding protocol (MBL/RLI)

FIXME No online documentation found, as of Feb 2025 on the specifics of this protocol.

According to the FBB forwarding protocol specification, it is the least common denominator that enables message transfer.

Your software is supposed to fall back in this mode when the feature F is not proposed by the remote party.

Best recommended stance, for now, is to reject connections with an error message, given the lack of available documentation.

ASCII Basic Protocol

Binary compressed protocol version 0

Binary compressed protocol version 1

Binary compressed protocol version 2

Compression algorithm defined in https://github.com/ham-radio-software/lzhuf

GZIP Experiment

Typical protocol flows

Sources

1)
Inferred by F4HOF through opaque box analysis, not explicitly documented
b2f/start.1739614365.txt.gz · Last modified: 2025/02/15 10:12 by f4hof