From dde4e5ba7dd669196d068b32972b8eea83799883 Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Thu, 2 May 2024 21:05:40 +0200 Subject: [PATCH] doc: moved CRC from layer 1 to layer 2 --- doc/hamnet70.adoc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/hamnet70.adoc b/doc/hamnet70.adoc index 97e1d27..598738d 100644 --- a/doc/hamnet70.adoc +++ b/doc/hamnet70.adoc @@ -42,10 +42,9 @@ The PHY header describes how the following data symbols should be interpreted. I . Modulation/code combination ID (MODCOD): 4 bit . Number of data symbols: 12 bit -. CRC16 of the raw layer 2 packet data: 16 bit -. CRC8 of the previous 32 header bits: 8 bit +. CRC8 of the previous 16 header bits: 8 bit -Therefore the PHY header has as size of 40 bit, including CRC. +Therefore the PHY header has as size of 24 bit, including CRC. For additional protection, the header is encoded using a [8,4] Hamming code, which can reliably correct single-bit errors and detect double-bit errors in every block of four bits. @@ -120,6 +119,16 @@ The filter is applied to the whole symbol sequence of the burst. The same filter The Hamnet70 link layer is designed to ensure reliable communication between a central station (digipeater) and several clients, while making efficient use of the available airtime. To accomplish this, it uses several technologies, including variable-length addressing and automatic repetition of packets that could not be decoded. +=== Frame Structure + +The link layer frame consist of three elements, as follows: + +. The <<_link_layer_header,link layer header>> +. A variable amount of data, depending on the packet type +. CRC16 of all previous bytes, including the link layer header + +The CRC16 is calculated using the generator polynomial stem:[x^15 + x^2 + 1]. + === Node Addresses Node addresses use the https://github.com/arngll/arnce-spec/blob/main/n6drc-arnce.md#introduction[HAM-64 address format]. This format allows to encode callsigns of up to 12 characters in a number of 16, 32, 48 or 64 bits. Additionally, it allows to replace the full version of an address with a temporary short address with only 16 bits that is used during a connection. Multicast and broadcast addresses are also specified.