Thomas Kolb
fc9e5c5229
Combine layer2_rx and layer2_tx in a new connection module
...
The new module is not used yet, but this is a preparation for the future
multi-client networking support.
2024-08-25 22:26:56 +02:00
Thomas Kolb
899152a530
Remove config.h from Git; must be adapted by the user
...
A template for the config file is provided in src/config.h.template. It must be
copied to src/config.h and adapted for force users to set their own station
call sign.
2024-08-25 20:26:41 +02:00
Thomas Kolb
c52d0766d7
Remove obsolete compile_flags.txt
2024-08-23 19:52:24 +02:00
Thomas Kolb
2e91fd7c42
Apply free software+documentation licenses
...
All code is now licensed under GPLv3+. The documentation is licensed under
CC BY-SA 4.0.
This is now officially free software! \o/
2024-08-23 11:53:40 +02:00
Thomas Kolb
017eb221f1
Integrate the interleaver
2024-08-16 22:14:07 +02:00
Thomas Kolb
325abdbd02
packet_queue: allow max. 15 packets to be queue (transmit window)
...
16 is not allowed because it leads to an overflow in sequence numbers, making
them ambiguous.
2024-08-09 22:22:01 +02:00
Thomas Kolb
6d9068f63d
define INTERLEAVE_DISTANCE
2024-08-09 22:18:20 +02:00
Thomas Kolb
2ddb8aa18c
Randomize retransmit time
2024-08-09 22:16:14 +02:00
Thomas Kolb
d2ef6d9741
Remove empty packets from the queue after their first transmission
2024-07-27 00:50:04 +02:00
Thomas Kolb
04dcfff6fd
Do not transmit an empty packet if an empty packet was received
2024-07-27 00:33:47 +02:00
Simon Ruderich
9990aa5fbb
main: check return value of layer2_tx_fill_packet_queue()
2024-07-24 20:20:36 +02:00
Simon Ruderich
52f45cb433
layer2: check return values when adding empty packets
2024-07-24 20:20:36 +02:00
Simon Ruderich
4e2815923c
layer2: handle invalid message types just in case
2024-07-23 09:24:32 +02:00
Simon Ruderich
766caf7e07
layer2/packet_structs: use variable to reduce duplication
2024-07-23 09:15:56 +02:00
Simon Ruderich
b3a49fe0ba
layer2: update comments, use constant
2024-07-23 09:15:34 +02:00
Simon Ruderich
8aacbaf8c3
layer2/packet_queue: remove unused function packet_queue_can_add_packet()
2024-07-23 08:41:42 +02:00
Simon Ruderich
9845514a46
layer2/packet_queue: permit using full queue size
...
Previously, only PACKET_QUEUE_SIZE - 1 elements could be stored.
2024-07-23 08:41:25 +02:00
Thomas Kolb
10a869d1a2
Layer 2: send Empty Packet acknowledgements if there’s nothing else to transmit
2024-07-22 22:19:23 +02:00
Thomas Kolb
c9916c08da
Add a simple interleaver implementation (not used yet)
2024-07-21 17:23:15 +02:00
Thomas Kolb
04f29b94bf
rx: show AGC gain after preamble, header and data
2024-07-20 22:33:08 +02:00
Thomas Kolb
576cdbfac5
Added ham64.c/.h to CMakeLists.txt
2024-07-20 22:32:01 +02:00
Thomas Kolb
77b24cf591
tests: Added variant of rx_file test for layer2 debugging
2024-07-20 22:31:13 +02:00
Thomas Kolb
38010ea672
rx-debugging: always dump symbols on packet boundaries
2024-07-20 22:30:27 +02:00
Thomas Kolb
12e727be00
packet_structs: add function to dump a packet header to the log
2024-07-20 22:29:04 +02:00
Thomas Kolb
3068db1d50
Handle retransmit timeouts
2024-07-20 01:04:03 +02:00
Thomas Kolb
fe684f7a1d
Fixed stack overflow in transmit()
2024-07-20 01:03:31 +02:00
Thomas Kolb
db2700c0f7
layer2_decode_packet_header: fixed rx_seq_nr readout
2024-07-20 01:02:42 +02:00
Thomas Kolb
bfe1cce6e3
packet_queue: wrap sequence number in packet_queue_delete()
2024-07-20 01:01:55 +02:00
Thomas Kolb
ac0fb54623
layer2_tx: fixed logging
2024-07-20 01:01:35 +02:00
Thomas Kolb
3b7d6baa74
layer2_tx: fixed packet size
2024-07-20 01:01:01 +02:00
Thomas Kolb
bcbcf5aeff
Layer 2: Added logging for retransmit handling
2024-07-20 00:26:53 +02:00
Thomas Kolb
d449e31586
logger: show module name
2024-07-20 00:04:32 +02:00
Thomas Kolb
041255e15f
layer2_tx: Fixed stack-use-after-return
2024-07-19 22:26:02 +02:00
Thomas Kolb
725a0ffd21
Ignore the squelch while receiving a packet
...
Before this commit, samples could be dropped during packet reception, which for
sure destroys the current packet and potentially the following one. Now samples
are stored even if the squelch „closes“, and decoding will potentially fail due
to high noise, but not due to missing samples.
2024-07-19 22:11:29 +02:00
Thomas Kolb
60d7fbf373
setup_tundev: limit TX queue len to 16
2024-07-19 21:59:38 +02:00
Thomas Kolb
48f061e334
Handle sequence numbers
...
This should enable basic retransmission handling.
2024-07-18 23:26:57 +02:00
Thomas Kolb
93aa429f4f
Fixed unused variable warning
2024-07-18 22:58:13 +02:00
Thomas Kolb
9bbac6ae95
Add new files to CMakeLists.txt
2024-07-18 22:57:22 +02:00
Thomas Kolb
a6464a28b8
Layer 2 received packet handling
2024-07-18 22:56:42 +02:00
Thomas Kolb
7381c7e808
Integrate new layer2 TX packet handling
2024-07-18 22:23:24 +02:00
Thomas Kolb
5adbbca786
Added functions for basic layer 2 transmission handling
2024-07-18 21:55:05 +02:00
Thomas Kolb
2348cd0c88
Implement a packet queue (incl. tests)
2024-07-11 23:23:18 +02:00
Thomas Kolb
402e36dda5
packet_structs: check data length in layer2_decode_packet_header()
2024-07-04 21:37:05 +02:00
Simon Ruderich
153ff61dcd
ham64: apply improvements suggested by rudi_s
2024-07-04 21:18:57 +02:00
Simon Ruderich
62d81fc2cc
test_ham64: check results using assertions
2024-07-04 21:16:20 +02:00
Thomas Kolb
9a151e0cbb
Rename layer2_structs -> packet_structs
2024-07-02 20:09:56 +02:00
Thomas Kolb
f17d5649fc
layer2_structs: use the new HAM-64 address structure
2024-07-01 21:25:49 +02:00
Thomas Kolb
4bb4017623
HAM-64 address format implementation
2024-07-01 21:03:43 +02:00
Thomas Kolb
546d86ffb0
Implement layer 2 header packing and unpacking
2024-07-01 21:03:43 +02:00
Thomas Kolb
27e2859090
Start defining layer2 structures
2024-07-01 21:03:43 +02:00