Well, for several years, I have had a nagging problem getting the udp mode of ax25ipd to work at all. Yesterday I finally hacked my way through it with use of strace and reference to various parts of the source, and lots of trial and error. It turns out to be a documentation problem, I didn't have to change any code, just the .conf file.
Just now, Ralf posted a request for improvements to ax25-howto, and this may fit in with that also. Ralf, I can take the ax25ipd portion of ax25-howto and edit it with this newer material if you like, but I guess I need to know where the recent official copy of it lives. (I might even redo the ax25ipd manpage, but I would have to figure out how to do the manpage editing. I haven't done anything with manpages before except READ them.) Continuing with the matter of running udp transport with ax25ipd: For various reasons, here centered around a simplistic DSL masquerading modem/router, I have a need to actually make the udp mode work. The dsl box allows me to masquerade a few tcp and/or udp ports through it to various hosts on its lan, but it doesn't allow me to masquerade any other protocols, such as axip # 93 for instance. The only other option is to demasquerade the whole thing and expose the lan to the internet, which I am not in a position to do with this particular lan. And I have a few other reasons as well that amount to experimentation with other gadgets that I would like to interconnect with ax25 and they also only have tcp and udp hooks, not ip. So, with the existing documentation I have been able to find, namely the ax25-howto, and the .conf file and some things that come with the ax25ipd tarball, anytime I configured it for udp, absolutely nothing happened. It just swallowed up the packets and never threw any udp packets out onto the lan. What isn't mentioned in the docs is that in addition to setting the udp option in the socket definition near the top of the .conf file, one must ALSO specify a udp option on the tail end of EACH routing line in the routing section near the end of the .conf file. It didn't tell me that, and the source didn't really help much, until I did a lot of trial and error with strace running, and I satisfied myself where routing was getting lost, and then after more trial and error, I eventually found what the config parsing wanted to see to set the flags that the routing processing wanted. When I added a udp option to the end of all of the route definitions, it started working. It doesn't say this anyplace that I have found. The code in the config parsing routines looks at first glance like some flags (b and d) might not parse in combination with the udp option. I didn't pursue or test that possibility any farther, although I think it needs to be looked at. That's a TODO or FIXME item. It also happens to be possible to listen on one udp port, and send udp packets to the far end under some other port number, although that would be a weird asymetrical routing situation that not very many situations would ever need. It turns out that the default udp port number of 10093 can be overridden by specifying some other port number just after the udp option on the end of either the socket or the route definitions. The socket definition sets the udp listen port, and also the source port on outgoing packets, so the other end knows what the return address/port is. The route definition sets the udp destination port for each route. Leaving off the udp option on a route leaves the packets in no-mans-land and they disappear entirely if udp socket has been defined. I think that is actually a bug, but anyway that is what it does. Of course, by specifying other ports on both socket and routes, some other udp port number can be used if necessary, in case some combination of firewalls and routers only allow some specific ports through. It is quite flexible it looks like, if one finds out how to set it up. Previously I also had to use some different param definitions to implement a higher speed modem on a tnc that I was feeding with one end of ax25ipd, and I have also documented how to specify the various params in the .conf file. They follow straight from the kiss definition itself. I also have encountered a situation a few times where the tnc gets reset while ax25ipd is running unaffected, and at that time, the tnc restarts with some default params of its own which may not be optimum, particularly if some params are deliberately set up in the .conf file. I then have to do things like stop and restart ax25ipd, or maybe disconnect the serial port from the tnc and send it some params from some other device, or maybe a kill -s SIGHUP <pid> to ax25ipd would accomplish the same thing. I think I vaguely recall that others have also observed that behavior. Maybe the workaround is to use a cronjob to periodically send the SIGHUP, but the real fix is to code up a periodic broadcast params patch in ax25ipd to refresh a tnc. (Or has this been done in later revisions of ax25ipd, I am not sure?) I also added a little blurb on how to set up pipes to kissattach, what naming conventions, which to start first and last, etc. I think that Tomi recently had a short blurb on that in the last few months, although I don't remember if it involved ax25ipd or something else piped to kissattach. So, below I have pasted in the relevant portions of my ax25ipd.conf file where I have showed a few more examples and comments. I am testing this against 1.0.2/0.0.5, and also I think 0.0.4 of ax25ipd. I do have it working on a couple pair of boxes, but only for a day or less, so it isn't extensively tested yet. I have had ip mode running on one pair for several months and it is otherwise just fine, I just swapped it over to udp mode a few hours ago and it works. I hope this helps someone else out. Read on... 73 de Bob WB5AOH (wb5aoh at arrl.net) ---PARTIAL of ax25ipd.conf, showing udp, pipes, tnc params docs and examples--- # # ax25ipd configuration file for station halvor.wb5aoh.ampr.org # # start up as: # ax25ipd -c /etc/ax25/ax25ipd.conf # ax25ipd -c /etc/ax25/ax25ipd-1.conf # # Select axip transport. 'ip' is what you want for compatibility # with most other gates ... # For situations with evil firewalls and simplistic dsl/cable modem # masquerading routers that won't/can't pass/masq ip protocol 93, you may # have to instead use udp at all endpoints of your ax25ip network. # It isn't possible to mix ip and udp in the same network, but it # may be possible to run more than one copy of ax25ipd, and start them # with -c options pointing to different copies of ax25ipd.conf, # also probably sourcing them with separate ax25 kissattach pipe ports. # # socket <ip | udp [udp_orig_port_num] > # # note for udp: default port number is 10093 if not specified otherwise. # additional note: this is the port number we LISTEN on for udp, # and for which outgoing packets are marked with as the originating port. # #socket ip #socket udp socket udp 10093 # ---SNIP--- # # Serial port, or pipe connected to a kissattach in my case # # Note for kissattach and pipes: kissattach needs to be the master end # and will attach to pipes of the form /dev/ptyq0 ... # AX25IPD needs to attach to slave end of pipes of the form /dev/ttyq0 ... # Note also that kissattach to these master ends needs to be executed # first in startup scripts and left up forever, and that ax25ipd needs to # be executed later on, and may be possibly stopped and restarted if necessary # without disturbing kissattach or the master end of the pipe. # #device /dev/ttyq0 device /dev/ttyS0 # ---SNIP--- # # We might have a real tnc here, so use param to # set the tnc parameters ... # # Possible problem: a real tnc may reset/powercycle and lose params while # system/ax25ipd continues to run, and it will revert to some non-optimum # default params of its own choosing, and it may be necessary to # stop/start/SIGHUP ax25ipd to re-output these params. # Cronjob workaround maybe? bugfix: periodic param broadcast to tncs. # # (from kiss original spec) # param 1 is txdelay, 10 mSec units # param 2 is P, 0-255 for p=0-1.0 # param 3 is slottime, 10 mSec units (or just dwait if P=255) # param 4 is obsolete txtail, 10 mSec units # param 5 is hdup/fdup, hdup=0, fdup!=0 # param 6 is tnc specific parameter #param 1 20 # these are for my tprs 9600b fsk modem: param 1 10 param 2 192 param 3 4 # ---SNIP--- # # ax.25 route definition, define as many as you need. # format is route (call/wildcard) (ip host at destination) # ssid of 0 routes all ssid's # # route <destcall> <destaddr> [flags] # route <destcall> <destaddr> [udp [udp_dest_port_no] ] # # note for udp: if you specify udp above in socket definition, # you MUST specify all udp routes here also, or it won't work. # (It will silently drop the outgoing packets internally.) # Also it IS possible to transmit to a different UDP port number # than the one we listen on, if some peculiar asymetrical routing # situation needed to be satisfied. Default udp port is 10093. # Parsing might not work for flags in combination with udp? # # Valid flags are: # b - allow broadcasts to be transmitted via this route # d - this route is the default route # #route vk2sut-0 188.8.131.52 b #route vk5xxx 184.108.40.206 b #route vk2abc 220.127.116.11 # #route wb5aoh-0 192.168.254.199 b d #route wb5aoh-0 192.168.254.199 udp route wb5aoh-0 192.168.254.199 udp 10093 # ---END--- - 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