GeForce | 2 Jan 2009 17:22
Picon

ax25d not hearing incoming connection requests


Hi all, need a hand here if you would be so kind. I have ax25d running, with
ax25d.conf looking like this:

[M3XYZ-1 VIA tncx]
default 1 * * * * * *  root /usr/sbin/axspawn axspawn %u

Using the "listen" command I can see the incoming connection request
packets, which look like:

tncx: fm M3XYZ-3 to M3XYZ-1 ctl SABM+

But ax25d seems to be doing nothing with them! ax25d is set to log, but
there are no entries in the syslog  related to the incoming connection. The
only ax25d entries are "starting" and "loaded config successfully" ones.

I can transmit a packet using
beacon -s tncx "hello"
without any problems, so I know both stations can tx and rx correctly.

Anyone got any ideas as to why ax25d is not responding to the connection
request?

Thanks,
Jon
--

-- 
View this message in context: http://www.nabble.com/ax25d-not-hearing-incoming-connection-requests-tp21253389p21253389.html
Sent from the linux-hams mailing list archive at Nabble.com.

--
(Continue reading)

Curt, WE7U | 2 Jan 2009 19:34
Favicon

Re: ax25d not hearing incoming connection requests

On Fri, 2 Jan 2009, GeForce wrote:

> Anyone got any ideas as to why ax25d is not responding to the connection
> request?

It's been a while since I've played with that stuff, but I seem to
recall that you need to send a line first so that the protocol is
known to the AX.25 kernel-mode layer.  Once the protocol is known
then the packets start getting fed to whatever applications have
registered to receive that protocol.

"Listen" is a special case in that it has registered to receive
everything.

For instance a ROSE packet might get routed to one application,
connected mode info packet to another (aprsd in this case).  Extend
this to APRS, NET/ROM, TCP, UDP, etc.

The connection packet itself doesn't specify the upper-level
protocol being used, therefore there's nothing to send to the
application at that point.

Send a blank packet immediately after the connect packet which
should pass a LF or a CRLF off to aprsd.  Aprsd should then respond.

That was one thing I had to get used to compared to similar
non-Linux systems way back when:  Sending an extra packet before the
stuff would respond to me in connected mode.

--

-- 
(Continue reading)

Ray Wells | 2 Jan 2009 21:47
Picon

Re: ax25d not hearing incoming connection requests

GeForce wrote:
> Hi all, need a hand here if you would be so kind. I have ax25d running, with
> ax25d.conf looking like this:
>
> [M3XYZ-1 VIA tncx]
> default 1 * * * * * *  root /usr/sbin/axspawn axspawn %u
>
> Using the "listen" command I can see the incoming connection request
> packets, which look like:
>
> tncx: fm M3XYZ-3 to M3XYZ-1 ctl SABM+
>
> But ax25d seems to be doing nothing with them! ax25d is set to log, but
> there are no entries in the syslog  related to the incoming connection. The
> only ax25d entries are "starting" and "loaded config successfully" ones.
>
> I can transmit a packet using
> beacon -s tncx "hello"
> without any problems, so I know both stations can tx and rx correctly.
>
> Anyone got any ideas as to why ax25d is not responding to the connection
> request?
>
> Thanks,
> Jon
>   
Jon,

My only use for ax25d these days is to steer Netrom connections to 
fpacnode. All other applications (ax25 and Rose) do their own listening 
(Continue reading)

Christof Bodner | 4 Jan 2009 17:10
Picon

Re: KPC3+ open-source code?

Am Montag, den 22.12.2008, 13:56 -0800 schrieb Curt, WE7U:

> *) Open hardware for my shack which I could write new code for would
> definitely be on my wish list.  Whether that's doing my own
> AVR-based TNC, helping with somebody else's AVR project, or waiting
> for Scott's next ARM-based TNC, I don't know.  I'm picky about
> processors and compilers.  I'm not a PIC fan.  The stuff Scott did
> with the OpenTracker series and Motorola processors is great, but
> the compilers cost $$.  Byon with his TT4/AVR project is heading in
> the right direction, but as far as I know it's not open-source.  If
> he has a "normal" bootloader in it perhaps it can be used for other
> things via a GCC cross-compiler.
> 

There is an AVR-based APRS module already available:
http://www.ralfwilke.com/amateurfunk/aprs_tracker/
(this site is in german, but try the Babelfish:
http://babelfish.yahoo.com/ it's not perfect, but you get a feeling of
what's about)

The hardware and software is based on
http://garydion.com/projects/whereavr/ and a kit is available at
http://www.beta.df6ef.de/index.php?option=com_content&task=view&id=57&Itemid=98

Worse luck, it's not! I mailed DF6EF for a kit but he said, this boards
were hand-made and he has no time make more of them. But he said, he
will contact me in case he gets professionally fabricated ones. For this
he needs orders. So who wants to join?

OK, it's "only" an APRS-module but we could think of a processor with a
(Continue reading)

Stephen Hemminger | 10 Jan 2009 00:01

[patch 33/45] baycom: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger <at> vyatta.com>

--- a/drivers/net/hamradio/baycom_epp.c	2009-01-09 10:22:45.000000000 -0800
+++ b/drivers/net/hamradio/baycom_epp.c	2009-01-09 10:42:00.000000000 -0800
 <at>  <at>  -1102,6 +1102,14  <at>  <at>  static int baycom_ioctl(struct net_devic

 /* --------------------------------------------------------------------- */

+static const struct net_device_ops baycom_netdev_ops = {
+	.ndo_open	     = epp_open,
+	.ndo_stop	     = epp_close,
+	.ndo_do_ioctl	     = baycom_ioctl,
+	.ndo_start_xmit      = baycom_send_packet,
+	.ndo_set_mac_address = baycom_set_mac_address,
+};
+
 /*
  * Check for a network adaptor of this type, and return '0' if one exists.
  * If dev->base_addr == 0, probe all likely locations.
 <at>  <at>  -1129,16 +1137,12  <at>  <at>  static void baycom_probe(struct net_devi
 	/*
 	 * initialize the device struct
 	 */
-	dev->open = epp_open;
-	dev->stop = epp_close;
-	dev->do_ioctl = baycom_ioctl;
-	dev->hard_start_xmit = baycom_send_packet;

 	/* Fill in the fields of the device structure */
 	bc->skb = NULL;
(Continue reading)

Stephen Hemminger | 10 Jan 2009 00:01

[patch 37/45] dmascc: convert to network_device_ops

Signed-off-by: Stephen Hemminger <shemminger <at> vyatta.com>

--- a/drivers/net/hamradio/dmascc.c	2009-01-09 12:47:32.000000000 -0800
+++ b/drivers/net/hamradio/dmascc.c	2009-01-09 12:52:12.000000000 -0800
 <at>  <at>  -440,6 +440,13  <at>  <at>  static void __init dev_setup(struct net_
 	memcpy(dev->dev_addr, &ax25_defaddr, AX25_ADDR_LEN);
 }

+static const struct net_device_ops scc_netdev_ops = {
+	.ndo_open = scc_open,
+	.ndo_stop = scc_close,
+	.ndo_start_xmit = scc_send_packet,
+	.ndo_do_ioctl = scc_ioctl,
+};
+
 static int __init setup_adapter(int card_base, int type, int n)
 {
 	int i, irq, chip;
 <at>  <at>  -575,11 +582,7  <at>  <at>  static int __init setup_adapter(int card
 		sprintf(dev->name, "dmascc%i", 2 * n + i);
 		dev->base_addr = card_base;
 		dev->irq = irq;
-		dev->open = scc_open;
-		dev->stop = scc_close;
-		dev->do_ioctl = scc_ioctl;
-		dev->hard_start_xmit = scc_send_packet;
-		dev->get_stats = scc_get_stats;
+		dev->netdev_ops = &scc_netdev_ops;
 		dev->header_ops = &ax25_header_ops;
 		dev->set_mac_address = scc_set_mac_address;
(Continue reading)

Stephen Hemminger | 10 Jan 2009 00:01

[patch 34/45] bpqether: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger <at> vyatta.com>

--- a/drivers/net/hamradio/bpqether.c	2009-01-08 08:30:11.000000000 -0800
+++ b/drivers/net/hamradio/bpqether.c	2009-01-08 11:51:31.000000000 -0800
 <at>  <at>  -110,7 +110,6  <at>  <at>  struct bpqdev {
 	struct list_head bpq_list;	/* list of bpq devices chain */
 	struct net_device *ethdev;	/* link to ethernet device */
 	struct net_device *axdev;	/* bpq device (bpq#) */
-	struct net_device_stats stats;	/* some statistics */
 	char   dest_addr[6];		/* ether destination address */
 	char   acpt_addr[6];		/* accept ether frames from this address only */
 };
 <at>  <at>  -222,8 +221,8  <at>  <at>  static int bpq_rcv(struct sk_buff *skb, 
 	skb_pull(skb, 2);	/* Remove the length bytes */
 	skb_trim(skb, len);	/* Set the length of the data */

-	bpq->stats.rx_packets++;
-	bpq->stats.rx_bytes += len;
+	dev->stats.rx_packets++;
+	dev->stats.rx_bytes += len;

 	ptr = skb_push(skb, 1);
 	*ptr = 0;
 <at>  <at>  -292,7 +291,7  <at>  <at>  static int bpq_xmit(struct sk_buff *skb,
 	bpq = netdev_priv(dev);

 	if ((dev = bpq_get_ether_dev(dev)) == NULL) {
-		bpq->stats.tx_dropped++;
+		dev->stats.tx_dropped++;
 		kfree_skb(skb);
(Continue reading)

Stephen Hemminger | 10 Jan 2009 00:01

[patch 40/45] yam: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger <at> vyatta.com>

--- a/drivers/net/hamradio/yam.c	2009-01-09 10:16:50.000000000 -0800
+++ b/drivers/net/hamradio/yam.c	2009-01-09 12:54:25.000000000 -0800
 <at>  <at>  -115,10 +115,6  <at>  <at>  struct yam_port {

 	struct net_device *dev;

-	/* Stats section */
-
-	struct net_device_stats stats;
-
 	int nb_rxint;
 	int nb_mdint;

 <at>  <at>  -507,7 +503,7  <at>  <at>  static inline void yam_rx_flag(struct ne
 		} else {
 			if (!(skb = dev_alloc_skb(pkt_len))) {
 				printk(KERN_WARNING "%s: memory squeeze, dropping packet\n", dev->name);
-				++yp->stats.rx_dropped;
+				++dev->stats.rx_dropped;
 			} else {
 				unsigned char *cp;
 				cp = skb_put(skb, pkt_len);
 <at>  <at>  -515,7 +511,7  <at>  <at>  static inline void yam_rx_flag(struct ne
 				memcpy(cp, yp->rx_buf, pkt_len - 1);
 				skb->protocol = ax25_type_trans(skb, dev);
 				netif_rx(skb);
-				++yp->stats.rx_packets;
+				++dev->stats.rx_packets;
(Continue reading)

Stephen Hemminger | 10 Jan 2009 00:01

[patch 35/45] bpqether: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger <at> vyatta.com>

--- a/drivers/net/hamradio/bpqether.c	2009-01-09 14:00:32.000000000 -0800
+++ b/drivers/net/hamradio/bpqether.c	2009-01-09 14:00:32.000000000 -0800
 <at>  <at>  -466,16 +466,17  <at>  <at>  static const struct file_operations bpq_

 /* ------------------------------------------------------------------------ */

+static const struct net_device_ops bpq_netdev_ops = {
+	.ndo_open	     = bpq_open,
+	.ndo_stop	     = bpq_close,
+	.ndo_start_xmit	     = bpq_xmit,
+	.ndo_set_mac_address = bpq_set_mac_address,
+	.ndo_do_ioctl	     = bpq_ioctl,
+};

 static void bpq_setup(struct net_device *dev)
 {
-
-	dev->hard_start_xmit = bpq_xmit;
-	dev->open	     = bpq_open;
-	dev->stop	     = bpq_close;
-	dev->set_mac_address = bpq_set_mac_address;
-	dev->get_stats	     = bpq_get_stats;
-	dev->do_ioctl	     = bpq_ioctl;
+	dev->netdev_ops	     = &bpq_netdev_ops;
 	dev->destructor	     = free_netdev;

 	memcpy(dev->broadcast, &ax25_bcast, AX25_ADDR_LEN);

(Continue reading)

Stephen Hemminger | 10 Jan 2009 00:01

[patch 41/45] yam: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger <at> vyatta.com>

--- a/drivers/net/hamradio/yam.c	2009-01-09 12:54:25.000000000 -0800
+++ b/drivers/net/hamradio/yam.c	2009-01-09 12:54:26.000000000 -0800
 <at>  <at>  -1044,6 +1044,14  <at>  <at>  static int yam_set_mac_address(struct ne

 /* --------------------------------------------------------------------- */

+static const struct net_device_ops yam_netdev_ops = {
+	.ndo_open	     = yam_open,
+	.ndo_stop	     = yam_close,
+	.ndo_start_xmit      = yam_send_packet,
+	.ndo_do_ioctl 	     = yam_ioctl,
+	.ndo_set_mac_address = yam_set_mac_address,
+};
+
 static void yam_setup(struct net_device *dev)
 {
 	struct yam_port *yp = netdev_priv(dev);
 <at>  <at>  -1064,18 +1072,11  <at>  <at>  static void yam_setup(struct net_device 
 	dev->base_addr = yp->iobase;
 	dev->irq = yp->irq;

-	dev->open = yam_open;
-	dev->stop = yam_close;
-	dev->do_ioctl = yam_ioctl;
-	dev->hard_start_xmit = yam_send_packet;
-	dev->get_stats = yam_get_stats;
-
 	skb_queue_head_init(&yp->send_queue);
(Continue reading)


Gmane