From: Stuart Longland VK4MSL <me@vk4msl.com>
To: David Ranch <linux-hams@trinnet.net>,
Lars Kellogg-Stedman <lars@oddbit.com>,
Dan Cross <crossd@gmail.com>
Cc: Chris Maness <christopher.maness@gmail.com>,
linux-hams@vger.kernel.org, dan.carpenter@linaro.org
Subject: Userspace AX.25 stack library [was Re: Kernel 6.9.1 AX.25 Crash]
Date: Thu, 23 May 2024 10:54:38 +1000 [thread overview]
Message-ID: <9f43ddd7-4e61-4a37-a8d5-aadb1e26f38b@vk4msl.com> (raw)
In-Reply-To: <e0643fcd-fc41-0d56-0497-684fc7c157ae@trinnet.net>
On 23/5/24 08:22, David Ranch wrote:
> There are a lot of fine protocol details in the Linux stack that are NOT
> exposed via the "defacto" AGW API standard that stands today. Maybe if
> the AGW API was heavily enhanced, maybe it would be possible but there
> is a whole other level of potential legal issues with that.
> The following was posted years after tools like ldsped, soundmodem,
> direwolf, etc. were already creating AGW "Server" API services:
>
> https://www.sv2agw.com/Home/Developers
> --
> License Agreement
>
> You must not reverse engineering the TCP/IP protocol that Packet Engine
> uses to communicate with client applications. This protocol copyright
> belongs to me and you cannot emulate it. You can only use it for writing
> client applications.
Ehh, fun stuff. I suppose the question then is, what would a home-grown
packet API look like?
I recall looking at the AGW API and observing some of its limitations
(the full list illudes me just now, but I recall things like the
reserved bits were inaccessible).
One thing I observed recently, is that other userspace stacks like BPQ32
will switch protocols after connecting, so the initial I-frame might be
sent without routing protocol data (PID 0xf0), but then it'll switch to
NETROM (PID 0xcf) with its own "frame" format within.
https://gist.github.com/sjlongland/0199d5a7cc7bbc71e83d0cc5577a2509
For someone like myself who's been used to dealing with TCP/IP, AX.25
seems quite weird… yes, there's UI frames that behave like UDP and
connected-mode that's sort-of like TCP; but then that connected-mode
stream is actually functions as a multiplex separated by PID code.
I haven't tried picking apart NETROM yet, nor have I looked at how ROSE
was structured. Finding relevant documentation for these protocols is
getting tricky now. So the Linux kernel stack, for all its faults and
failings, is still valuable as it at least implements these once
documented protocols.
Do we start with maybe defining a wire-representation of the Linux
kernel AX.25 stack data types and an RPC mechanism? Or should we toss
that and start afresh?
Regards,
--
Stuart Longland (aka Redhatter, VK4MSL)
I haven't lost my mind...
...it's backed up on a tape somewhere.
next prev parent reply other threads:[~2024-05-23 1:04 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-01 6:02 [PATCH net] ax25: Fix refcount leak issues of ax25_dev Duoming Zhou
2024-05-01 17:33 ` Markus Elfring
2024-05-01 17:43 ` Dan Carpenter
2024-05-02 4:35 ` duoming
2024-05-02 7:56 ` Dan Carpenter
2024-05-02 9:30 ` Paolo Abeni
2024-05-02 1:29 ` Lars Kellogg-Stedman
2024-05-03 20:36 ` Dan Carpenter
2024-05-03 23:40 ` Lars Kellogg-Stedman
2024-05-04 12:16 ` Dan Carpenter
2024-05-04 22:16 ` Lars Kellogg-Stedman
2024-05-07 3:18 ` Lars Kellogg-Stedman
2024-05-07 8:08 ` Dan Carpenter
2024-05-07 9:04 ` duoming
2024-05-08 18:27 ` Dan Carpenter
2024-05-09 1:40 ` duoming
2024-05-23 12:30 ` Lars Kellogg-Stedman
2024-05-07 6:38 ` Dan Carpenter
2024-05-15 9:52 ` duoming
2024-05-16 19:20 ` Lars Kellogg-Stedman
[not found] ` <CANnsUMHTZ_P4-C2iGdbakcp_Xk5c-aCO5kYEvaBdOcsaSnK5Pg@mail.gmail.com>
2024-05-20 14:42 ` Kernel 6.9.1 AX.25 Crash Lars Kellogg-Stedman
2024-05-20 14:49 ` Chris Maness
2024-05-21 0:11 ` Chris Maness
2024-05-21 0:48 ` Lars Kellogg-Stedman
2024-05-21 1:38 ` Chris Maness
2024-05-21 2:12 ` Dan Cross
2024-05-21 3:07 ` Chris Maness
2024-05-21 11:47 ` Dave Hibberd
2024-05-21 12:03 ` Chris Maness
2024-05-21 19:20 ` Mike Quin
2024-05-21 23:02 ` Chris Maness
2024-05-21 23:07 ` Mike Quin
2024-05-21 23:17 ` Chris Maness
2024-05-21 15:53 ` David Ranch
2024-05-21 16:28 ` Chris Maness
2024-05-21 18:12 ` Lars Kellogg-Stedman
2024-05-22 15:32 ` Dan Cross
2024-05-22 16:07 ` Chris Maness
2024-05-22 17:06 ` David Ranch
2024-05-22 18:04 ` Dan Cross
2024-05-22 17:54 ` Dan Cross
2024-05-22 18:17 ` Lars Kellogg-Stedman
2024-05-22 18:37 ` Dan Cross
2024-05-22 19:23 ` Lars Kellogg-Stedman
2024-05-22 22:22 ` David Ranch
2024-05-22 22:32 ` Lars Kellogg-Stedman
2024-05-23 0:54 ` Stuart Longland VK4MSL [this message]
2024-05-23 16:32 ` Userspace AX.25 stack library [was Re: Kernel 6.9.1 AX.25 Crash] Dan Cross
2024-05-22 16:10 ` Kernel 6.9.1 AX.25 Crash David Ranch
2024-05-22 18:13 ` Lars Kellogg-Stedman
2024-06-07 12:01 ` Lars Kellogg-Stedman
2024-06-07 13:49 ` David Ranch
2024-06-08 1:59 ` Lars Kellogg-Stedman
2024-06-08 15:23 ` David Ranch
2024-05-23 10:30 ` Dan Carpenter
2024-05-27 17:59 ` Chris Maness
2024-05-04 11:04 ` [PATCH net] ax25: Fix refcount leak issues of ax25_dev Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9f43ddd7-4e61-4a37-a8d5-aadb1e26f38b@vk4msl.com \
--to=me@vk4msl.com \
--cc=christopher.maness@gmail.com \
--cc=crossd@gmail.com \
--cc=dan.carpenter@linaro.org \
--cc=lars@oddbit.com \
--cc=linux-hams@trinnet.net \
--cc=linux-hams@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox