[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#606338: ax25ipd transmission bug



Hi Ralf and Thomas,

First of all, thank you very much for your work on the AX.25 userland tools. It is much appreciated. I am new both to amateur radio and to AX.25 in general and am thus being exposed to them for the first time.

I have discovered a bug in ax25ipd. I was setting up ax25ipd last night, and it would receive data fine, but wouldn't transmit anything out the IP side. After looking in my log files, I observed this message every time I tried to send a packet out via ax25ipd:

Dec 7 17:49:56 hephaestus ax25ipd: assemble_kiss: dumped - control byte non-zero

I investigated, and found a check on the control byte in kiss.c. I studied the control bytes, and believe that they are used primarily to select a port on multi-port TNCs. I don't know why kissnetd or kissattach cares about them, but there it is.

Now then, this is trivial to fix with the attached patch. This is a minimally-invasive one; a more proper upstream patch would remove the
whole test.  I have tested this patch and it works beautifully.

The procedure I'm using to set up ax25ipd is documented here:

http://wiki.complete.org/LinuxPacketRadio#ax25ipd

I have other kissnetd / kissattach instances running on my system, which may possibly explain why the control byte is nonzero.

Thank you,

-- John Goerzen
KR0L
diff -durN ax25-apps-0.0.6/ax25ipd/kiss.c fixed/ax25-apps-0.0.6/ax25ipd/kiss.c
--- ax25-apps-0.0.6/ax25ipd/kiss.c	2001-10-08 20:03:12.000000000 -0500
+++ fixed/ax25-apps-0.0.6/ax25ipd/kiss.c	2010-12-07 18:35:19.444623640 -0600
@@ -72,7 +72,7 @@
 		if (c == FEND) {
 			if (ifcount > 0) {
 				/* Make sure that the control byte is zero */
-				if (*iframe == '\0' || *iframe == 0x10) {
+				if (1) {
 					/* Room for CRC in buffer? */
 					if (ifcount < (MAX_FRAME - 2)) {
 						stats.kiss_in++;

Reply to: