hamnet70/impl
Thomas Kolb f3b6ab1a29 digipeater: add one-shot packet queue and interval handling
The oneshot queue is for connection management frames that are only sent once,
at the beginning of the next burst. An example is the Connection Reset packet.

Intervals define the boundary between the handling of different connections.
The interval can be either ended by a packet with TX Request set, or by a
timeout. In either case, forwarding of packets to the current connection stops
and the connection is re-scheduled to a later point in time.
2024-12-12 19:44:07 +01:00
..
src digipeater: add one-shot packet queue and interval handling 2024-12-12 19:44:07 +01:00
test WIP: managing multiple connections 2024-12-12 19:44:07 +01:00
utils Apply free software+documentation licenses 2024-08-23 11:53:40 +02:00
.gitignore Initial commit: infrastructure 2021-10-17 19:25:42 +02:00
CMakeLists.txt Combine layer2_rx and layer2_tx in a new connection module 2024-08-25 22:26:56 +02:00
make.sh make.sh: allow passing parameters to make 2024-01-03 17:29:05 +01:00
README.md Remove config.h from Git; must be adapted by the user 2024-08-25 20:26:41 +02:00
setup_tundev.sh setup_tundev: limit TX queue len to 16 2024-07-19 21:59:38 +02:00

Hamnet70 Implementation

This directory contains an implementation of the Hamnet70 protocol.

Before you can compile and use this code, some additional steps are necessary:

  1. Copy src/config.h.template to src/config.h and set the following variables:
    • MY_CALL: the station call sign (i.e. your amateur radio call sign). This will be encoded into the address fields of outgoing packets.
  2. Install dependencies:
    • libliquid compiled with libfec support
    • libfec
    • fftw3
    • libhackrf

After everything is prepared, compile the code using ./make.sh. Parameters to this script are forwarded to make so you can speed things up a little with ./make.sh -j4 (on a CPU with 4 threads).

When compiled, you have two options for running Hamnet70:

  1. In digipeater (base station) mode: build/hamnet70 -c. This will broadcast beacons and wait for clients to connect.
  2. In client mode: build/hamnet70. This will wait for a beacon to arrive and connect to it.