Re: Ethereal ax25 monitoring
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
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
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
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