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