Skip to content

Feature request: Replacement for kernel AX.25 stack. #646

Description

@drahosj

The kernel is losing the ax.25 stack in 7.1. That means there won't be a straightforward way to do IP-over-packet with Direwolf (or any other TNC for that matter) using existing tools and utilities.

The most obvious replacement for the current direwolf -p and kissattach means of setting it up would be to create a tun interface
and connect a userspace component to to handle IP packets. That does require a re-implementation of ARP in userspace to resolve IP addresses to callsigns since tun interfaces run NOARP. Trying to force arp on doesn't work because of the 7-byte AX.25 addresses.

I put together a standalone proof-of-concept: https://github.com/drahosj/ax25tun. It connects to Direwolf's KISS-over-TCP server
and handles IPv4 traffic to/from the kernel stack via a tun interface. It seems to work as a more or less drop-in replacement for the old kissattach method.
It's also worth noting that non-root processes can be hooked up to a tuntap, as long as a persistent tuntap is created with the right user or group settings. Only interface creation and configuration needs to be privileged, not the link implementation.

I'm not sure if implementing something like this would be at home directly in Direwolf itself. A --tun flag that connects to an existing tunnel interface and implements the L1/L2 protocol would be pretty smooth. However, implementing ARP feels like scope creep. Either way, the 7.1 kernel changes mean that IP-over-packet users need to find a new way of doing things.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions