Re: Ethereal ax25 monitoring

2005-09-07 Thread Richard Stearn

An update on AX.25 in Ethereal.

I now have a version of libpcap that recognises the existance of AX.25.
99% of it was already there, I just had to add a few lines in a couple
of files to allow recognition.

From there I have gone on to start adding a print-ax25 to tcpdump. I now
have something to test.

At this point it all started to go wrong.

Currently all my AX.25 packet comms is done from a dedicated system running
on a (heavily) modified 2.0.36 kernel that I really do not wish to disturb
with software testing. Also I doubt if many others are still running on
2.0.X anyway.

All the development has been done on a Toshiba laptop running a 2.4.31 kernel.
So, for convenience, I have just attempted to get AX.25 running on the laptop
and run into a problem.

It don't transmit, the packets don't even appear to make it down the protocol
stack (the packet stats don't change at any level). Well, to be slightly more
accurate, it did for about 10 minutes until I rebooted the laptop and it has
not transmitted since.

So, the necessary initial detail:

Toshiba 510CDT
Slackware 8.1
kernel 2.4.31
ax25-apps-0.0.6
ax25-tools-0.0.8
libax25-0.0.11
baycom serial half duplex modem (the minimal hardware one)

Yes, the modem works, I put it on another laptop running a 2.0.36 kernel nd
it chatters happily to my main station.

Yes, the tty works as a tty.

There is one unusual "feature", from a cold boot, the baycom_ser_hdx module
has to be loaded, unloaded and reloaded before the bcsh0 interface will
come up. If I don't do that then ifconfig returns the error:
SIOCSIFFLAGS permission denied.

Yes, the modules are loading. I have even tried recompiling with all the
necessary drivers compiled in, this did not work either. It actually goes
worse as the load, unload, reload trick to fix the SIOCSIFFLAGS error #
could not be done of course.

Yes, I can turn on debugging and work my way through the stack but Chuck
and others would like a protocol analyser before the collapse of the
universe.

My current guess is I am missing a patch or I need to change one of the
ax25 stack defaults.

So, what have I missed?

--
Regards
Richard
-
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ax25-howto

2005-09-07 Thread Dave Stubbs

Ralf Baechle DL5RB wrote:


On Sun, Sep 04, 2005 at 08:15:22AM -0400, Harold Hartley wrote:

 

I must agree as I have found it talks in some places about files that 
are not relevent to most distro's now and in fact are very out of date.
Now with the newer files such as the ax25-config, ax25-tools and 
ax25-apps, most of the how-to don't apply to the newer files and mainly 
applies the the old ax25-utils and such...


I'm wondering if someone will evenually update the How-to in places that 
does need some update to, but not all the How-to needs updating.
   



THe AX.25 and Ham Howtos are all horribly outdated - probably beyond
recovery.  I'm working on converting them into a wiki so everybody
can start contributing.
 


Very nice!

I'm not exactly a guru or anything, but I have managed to get ax25, 
node, f6fbb and a couple other things running on the 2.6 kernel with 
Debian.  So I'd be more than willing to contribute to a wiki-howto.  
Please send info when it is up and running!


Dave
VA3BHF
-
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ax25-howto

2005-09-07 Thread Dave Stubbs

vk4akm wrote:


G'day Folks
This might be a real dumb question but how do I get ax25 to work on a 
Suse 9.3 PC.

The AX25-Howto is a little confusing.
I assumed with a late model Kernel the compiling a Kernel for ax25 is 
not required.
So I stepped on to the next stage, downloaded and installed the 
appropriate rpms for libax25, ax25-tools, ax25-apps and soundmodem.

What to do next?

I have Gmfsk working fine on the PC so the soundcard radio link etc is 
working.


Any help to push me in the right direction would be appreciated.


Just for info, you don't need any ax25 support running to use Gmfsk.  
Gmfsk is a terminal program that sends sounds out on your soundcard to 
the radio.  It would actually conflict with ax25 if you were using your 
soundcard as a network interface.


Dave.
VA3BHF
-
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[AX.25] Make asc2ax thread-proof

2005-09-07 Thread Ralf Baechle DL5RB
Asc2ax was still using a static buffer for all invocations which isn't
exactly SMP-safe.  Change asc2ax to take an additional result buffer as
the argument.  Change all callers to provide such a buffer.

This one only really is a fix for ROSE and as per recent discussions
there's still much more to fix in ROSE ...

Signed-off-by: Ralf Baechle DL5RB <[EMAIL PROTECTED]>

 include/net/ax25.h   |2 +-
 net/ax25/ax25_addr.c |   27 ---
 net/rose/rose_subr.c |4 ++--
 3 files changed, 15 insertions(+), 18 deletions(-)

Index: linux-cvs/include/net/ax25.h
===
--- linux-cvs.orig/include/net/ax25.h
+++ linux-cvs/include/net/ax25.h
@@ -279,7 +279,7 @@ extern struct sock *ax25_make_new(struct
 /* ax25_addr.c */
 extern ax25_address null_ax25_address;
 extern char *ax2asc(char *buf, ax25_address *);
-extern ax25_address *asc2ax(char *);
+extern void asc2ax(ax25_address *addr, char *callsign);
 extern int  ax25cmp(ax25_address *, ax25_address *);
 extern int  ax25digicmp(ax25_digi *, ax25_digi *);
 extern unsigned char *ax25_addr_parse(unsigned char *, int, ax25_address *, 
ax25_address *, ax25_digi *, int *, int *);
Index: linux-cvs/net/ax25/ax25_addr.c
===
--- linux-cvs.orig/net/ax25/ax25_addr.c
+++ linux-cvs/net/ax25/ax25_addr.c
@@ -67,37 +67,34 @@ char *ax2asc(char *buf, ax25_address *a)
 /*
  * ascii -> ax25 conversion
  */
-ax25_address *asc2ax(char *callsign)
+void asc2ax(ax25_address *addr, char *callsign)
 {
-   static ax25_address addr;
char *s;
int n;
 
for (s = callsign, n = 0; n < 6; n++) {
if (*s != '\0' && *s != '-')
-   addr.ax25_call[n] = *s++;
+   addr->ax25_call[n] = *s++;
else
-   addr.ax25_call[n] = ' ';
-   addr.ax25_call[n] <<= 1;
-   addr.ax25_call[n] &= 0xFE;
+   addr->ax25_call[n] = ' ';
+   addr->ax25_call[n] <<= 1;
+   addr->ax25_call[n] &= 0xFE;
}
 
if (*s++ == '\0') {
-   addr.ax25_call[6] = 0x00;
-   return &addr;
+   addr->ax25_call[6] = 0x00;
+   return;
}
 
-   addr.ax25_call[6] = *s++ - '0';
+   addr->ax25_call[6] = *s++ - '0';
 
if (*s != '\0') {
-   addr.ax25_call[6] *= 10;
-   addr.ax25_call[6] += *s++ - '0';
+   addr->ax25_call[6] *= 10;
+   addr->ax25_call[6] += *s++ - '0';
}
 
-   addr.ax25_call[6] <<= 1;
-   addr.ax25_call[6] &= 0x1E;
-
-   return &addr;
+   addr->ax25_call[6] <<= 1;
+   addr->ax25_call[6] &= 0x1E;
 }
 
 /*
Index: linux-cvs/net/rose/rose_subr.c
===
--- linux-cvs.orig/net/rose/rose_subr.c
+++ linux-cvs/net/rose/rose_subr.c
@@ -337,13 +337,13 @@ static int rose_parse_ccitt(unsigned cha
memcpy(&facilities->source_addr, p + 7, 
ROSE_ADDR_LEN);
memcpy(callsign, p + 12,   l - 10);
callsign[l - 10] = '\0';
-   facilities->source_call = *asc2ax(callsign);
+   asc2ax(&facilities->source_call, callsign);
}
if (*p == FAC_CCITT_SRC_NSAP) {
memcpy(&facilities->dest_addr, p + 7, 
ROSE_ADDR_LEN);
memcpy(callsign, p + 12, l - 10);
callsign[l - 10] = '\0';
-   facilities->dest_call = *asc2ax(callsign);
+   asc2ax(&facilities->dest_call, callsign);
}
p   += l + 2;
n   += l + 2;
-
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html