la5nta / wl2k-go

A Winlink framework for Go.
https://getpat.io
MIT License
50 stars 20 forks source link

Support for KISS over TCP #47

Closed dpkingston closed 4 years ago

dpkingston commented 7 years ago

It would be great if wl2k-go would support connecting to a TNC in KISS mode over TCP. With LAN attached Raspberry Pi 3's running Direwolf, this is a great, sharable alternative to running the software on individual PCs wired to radios.

martinhpedersen commented 7 years ago

Hi!

Yes, that would be a great addition to wl2k-go. The only problem is that in order to support KISS directly, we need an AX.25 implementation to go with it. (Unless you're looking for some Go package that exposes the KISS frames?)

Ref issue #36.

martinhpedersen commented 7 years ago

Just realized that you maybe ment KISS over TCP support for Pat?

The same answer applies, but for a Linux only solution I believe this is possible by attaching a KISS device to the Linux kernel over TCP. I assume this has been done before for other AX.25 applications on Linux?

kd8drx commented 7 years ago

Seconding on this - it would be an excellent feature. Direwolf, especially, has some odd issues when providing a pseudo-serial devices for wl2k-go or other apps to use.

Another option would be supporting AGW-over-TCP format, though that may be more work. However, Direwolf appears to have a full AX.25 stack built in that can be accessed using the AGW format, which I think would free you from needing to use Linux's built in stack. You would just send the necessary text commands to connect to a station and call the RMS - basically the same as the telnet mode.

If it's helpful, the Direwolf code is open source and the author is very responsive. The specific code (in C) for supporting KISS-over-TCP is located here

martinhpedersen commented 7 years ago

Yes - I agree that KISS (serial/tcp/udp) support and built-in AX.25 would be a very nice feature for Pat. But please note that KISS over tcp/udp is already possible if both ends of the tcp/udp connection is running Linux.

If Direwolf now implements a full AX.25 stack that are exposed over a TCP socket API, then we should add support for that. It would be a much more convenient solution than to port and maintain a full AX.25 stack internally in the project. Direwolf may be a great solution for macOS users looking for AX.25 packet capabilities.

A PR is welcomed from anyone who have the time and know-how to start working on a AGW-over-TCP transport package that would support Direwolf. :+1: I will be happy to help and/or do it myself, but I don't have much time before autumn for such a task unfortunately.

martinhpedersen commented 4 years ago

See issue #56 regarding native support for KISS and AX.25.

I still welcome anyone who want to implement a net.Conn/net.Listener wrapper for the AGW interface that Direwolf exposes. That would be a nice way to support AX.25 on multiple platforms until #56 is resolved.

Closing this issue, since the main discussion is related to KISS and AX.25.