[aprssig] aprsd drops mic-e characters

Tapio Sokura oh2kku at iki.fi
Sat May 7 19:47:34 EDT 2005

Bill Diaz wrote:
>>>>I guess it wasn't fixed then, at least 2.2.5-13 contains it 
>>>It was fixed at one point, in some distributions.  Some of the older
>>I meant the aprsd at sourceforge, just to be clear.

> Just because something is posted at sourceforge does not guarantee it is
> correct.  Obviously, the version you are modifying contains code that may

Of course it doesn't. After doing some googling it looks like wa4dsy 
offers one version of aprsd, the original I guess? It doesn't seem to 
support the linux kernel ax.25 stack so at least it doesn't have the 
exact same problem. The distribution also has files in it that are dated 
to February 2004, the sourceforge version is dated September 2003 so it 
looks like the wa4dsy one is more recent.

>>Yes, but they are not ASCII. For example, a direct quote from 
>>APRS 1.0.1 
>>specification says "An Object Report has a fixed 9-character Object 
>>name, which may consist of any printable ASCII characters." And the 
>>glossary at the end describes ASCII as being a 7-bit code. And 
>>so do the 
>>documents that actually specify ASCII, I believe.

> You are only quoting a reference to object names and yes they are expected
> to constructed of ASCII characters.  There is no such reference to data in
> all payloads.

I quoted only one part of the spec as an example. For example regarding 
comments on packets (page 20) the spec says "The comment may contain any 
printable ASCII characters". On APRS messages the spec says on page 71 
"The message text may be up to 67 characters long, and may contain any 
printable ASCII characters" (plus notes on both cases about not using 
two TNC stream switch characters). The term "printable ASCII" is used 
throughout the document for describing text strings, I'm not going to 
quote all of those places here.

> Your intereptation is flawed.  You are unilaterally deciding what characters
> are valid and what is not.  I suggest you spend some time reviewing the
> APRSSig and APRSSpec archives.  Then you may be in a better position to
> judge what is generally considered to be proper behavior both on RF and on
> the APRS-IS. 

I'm not deciding anything, I'm just trying to follow the specification 
the way it is written. I'm used to following specifications like that, 
not make my own rules about what is right and what is wrong. If the true 
spec is only spread out in mailing list archives, it's no wonder there 
are numerous interpretations on how to implement the APRS "specification".

> Obviously you are not interested in determining how a packet is delimited or
> constructed, you would rather tell everyone how it SHOULD, in your opinion
> be constructed.  FYI, the FromCall can be up to 9 printable ASCII

I'm just saying how the specification says the packet is constructed. If 
I can't trust the specification to be the authoritative source, I don't 
know who to trust.

> How many APRS applications can you name that cannot correctly handle a nul
> char?  

At least one, because it is the only one whose source code I have read 
through and am familiar with. But I guess it doesn't do that correctly 
either, because it dumps the zero byte (it is not used in other than 
user defined APRS packets) and reads on until it sees the end of the 
packet. After rereading some parts of the spec, I guess zero bytes can 
be valid bytes in APRS user defined formats, because they are not 
disallowed there. Discouraged yes, but not forbidden. And I guess this 
is the loophole in the spec that also officially allows full 8 bit 
character usage at least in the user defined packets and therefore 8 bit 
characters can be gated, in user-defined packets, to APRS-IS.

>>I think APRS(-IS) has been "improved" to the point it currently stands 
>>very well even without my input. And this is not a compliment.

> FWIW, you need to understand how APRS packets are constructed before you
> attempt to criticize what has evolved over the years.  We have a workable
> system that was developed by many talented, dedicated individuals who worked
> for years to bring us to where we are today.  There were many disagreements
> and arguments that were resolved after much debate.  

Without looking further into the archives, I'd guess many of those 
debates have been sparked by having an ambiguous specification to begin 
with. I'm not saying the efforts of these individuals have been in vain, 
on the contrary many things in APRS are better now than they were 5 
years ago. But they could be a lot better too.

> If you are not happy with what is presently available, you are free to
> design your own "improved" system, but please do not pollute the existing

Are you saying here that APRS the way it is now is written in stone and 
it can't be improved anymore and that's why I should start designing a 
better system?

>>when it makes it to the APRS-IS. It doesn't matter what software is 
>>doing the igating, it will break those packets because APRS-IS 
>>is not an 
>>8-bit (or should I say, 7-bit) clean packet transfer medium.

> It is not clean because of defective software (such as your "improvements"
> to aprsd) or improperly setup TNC's.  Please don't make it worse with ill
> considered "improvements".

The APRS-IS stream can never be 8-bit (or 7-bit) clean the way it is 
specified now. This is why KISS and many similar things (like SLIP and 
PPP encapsulation) were developed a long time ago, to reliably pass 
8-bit packets of data in a serial stream. There's nothing wrong with not 
being 7/8 bit clean in APRS-IS, but in that case there should be a clear 
procedures for dealing with those packets that really use those 
bytestrings that cause the "cr or cr/lf delimits packets" rule to break.

If you actually read the patch I provided, you could easily see that the 
patch actually _increases_ the chances of a valid (according to the 
spec!) aprs ax.25 packet being passed into aprs-is without being mangled.


PS. I'm not going to return to this matter anymore. This is by now well 
off topic on this list and I want to spare other list members from the QRM.

More information about the aprssig mailing list