Hi Robin.

 >> To be honest, the AX.25 specification needs SERIOUS revision in
 >> this area, to allow for callsigns of any length or pattern to be
 >> used. However, it needs to be done in a manner compatible with
 >> the current standard.

 >> My suggestion would be to make it dynamic to suit the callsigns,
 >> but allow individual callsigns in the address field to be padded
 >> with spaces. Here's my thoughts on the matter:

 >>  1. The actual callsign bytes in the address have the character
 >>     in the top seven bits of the byte. The following ASCII codes may
 >>     be considered for valid characters in that field:

 >>         ' ', '/', '0' to '9', 'A' to 'Z', 'a' to 'z'.

 >>     These correspond to the following bit patterns:

 >>         ' '      0100-0000
 >>         '/'      0101-1110
 >>         '0'-'7'  0110-xxx0
 >>         '8'-'9'  0111-00x0

 >>         'A'-'G'  1000-xxx0
 >>         'H'-'O'  1001-xxx0
 >>         'P'-'W'  1010-xxx0
 >>         'X'-'Z'  1011-0xx0

 >>         'a'-'g'  1100-xxx0
 >>         'h'-'o'  1101-xxx0
 >>         'p'-'w'  1110-xxx0
 >>         'x'-'z'  1111-0xx0

 > ie - bit 0 is clear to say that more info follows...

 >>  2. Each callsign field is followed by an SSID byte, formatted
 >>     as rrrssssf where the subfields are defined as follows:

 >>         rrr   Reserved for future use.
 >>         ssss  SSID for this callsign.
 >>         f     Final byte of address flag.

 >>     I have a sneaking suspicion that some of the bits in the rrr
 >>     field have been given meaning, but have no details to hand.

 > ie. bit 0 is set to say this is the end of the address field -
 > by this means, AX25 (and X25 on which it is based) already
 > support variable length address fields.

 > That most implementations don't support it is another matter
 > entirely!!!

I hate to disappoint you, but ALL of the AX.25 implementations
CORRECTLY support use of bit 0 to indicate the end of the address
field, and thus to support a variable number of bytes in the address
field. The problem is, AX.25 as currently defined requires that each
callsign+SSID group within that address field occupies a FIXED number
of bytes - the variability comes because there can be between 2 and 10
such groups within the field, thus giving an address field occupying
anywhere from 14 to 70 bytes.

Because of its use for that purpose, bit 0 can NOT be used to refer to
any extension that allows variable length callsign fields WITHIN the
address field.

Best wishes from Riley.

+----------------------------------------------------------------------+
| There is something frustrating about the quality and speed of Linux  |
| development, ie., the quality is too high and the speed is too high, |
| in other words, I can implement this XXXX feature, but I bet someone |
| else has already done so and is just about to release their patch.   |
+----------------------------------------------------------------------+
 * ftp://ftp.MemAlpha.cx/pub/rhw/Linux
 * http://www.MemAlpha.cx/kernel.versions.html

Reply via email to