From bcbcf5aeff4a40478d41dac7f4ff9e2a3ab41c28 Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Sat, 20 Jul 2024 00:26:53 +0200 Subject: [PATCH] Layer 2: Added logging for retransmit handling --- impl/src/layer2/layer2_rx.c | 7 +++++++ impl/src/layer2/layer2_tx.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/impl/src/layer2/layer2_rx.c b/impl/src/layer2/layer2_rx.c index c463144..b96e7e7 100644 --- a/impl/src/layer2/layer2_rx.c +++ b/impl/src/layer2/layer2_rx.c @@ -4,6 +4,9 @@ #include +#define LOGGER_MODULE_NAME "l2rx" +#include "logger.h" + #include "layer2_rx.h" #include "packet_structs.h" @@ -44,6 +47,8 @@ result_t layer2_rx_handle_packet(layer2_rx_t *ctx, const uint8_t *buf, size_t bu return ERR_INTEGRITY; } + LOG(LVL_DEBUG, "Handling packet with rx_seq_nr %u, tx_seq_nr %u.", header.rx_seq_nr, header.tx_seq_nr); + ctx->last_acked_seq = header.rx_seq_nr; if(ctx->next_expected_seq != header.tx_seq_nr) { @@ -54,6 +59,8 @@ result_t layer2_rx_handle_packet(layer2_rx_t *ctx, const uint8_t *buf, size_t bu ctx->next_expected_seq++; ctx->next_expected_seq &= 0xF; + LOG(LVL_INFO, "Received ACK for seq_nr %u in packet seq_nr %u.", header.rx_seq_nr, header.tx_seq_nr); + size_t header_size = layer2_get_encoded_header_size(&header); // extract the payload and forward it to the tun device diff --git a/impl/src/layer2/layer2_tx.c b/impl/src/layer2/layer2_tx.c index 62ca81f..3f9815a 100644 --- a/impl/src/layer2/layer2_tx.c +++ b/impl/src/layer2/layer2_tx.c @@ -5,6 +5,9 @@ #include #include +#define LOGGER_MODULE_NAME "l2tx" +#include "logger.h" + #include "layer2_tx.h" #include "packet_structs.h" @@ -76,6 +79,8 @@ result_t layer2_tx_fill_packet_queue(layer2_tx_t *ctx) break; } + LOG(LVL_INFO, "Adding packet tx_seq %u to queue -> %zu entries", + header.tx_seq_nr, packet_queue_get_used_space(&ctx->packet_queue)); packet_queue_add(&ctx->packet_queue, &header, packetbuf, ret); ctx->next_seq_nr++; @@ -104,6 +109,8 @@ size_t layer2_tx_encode_next_packet(layer2_tx_t *ctx, uint8_t ack_seq_nr, uint8_ header.rx_seq_nr = ack_seq_nr; // encode the header + LOG(LVL_DEBUG, "Encoding packet with rx_seq_nr %u, tx_seq_nr %u.", header.rx_seq_nr, header.tx_seq_nr); + size_t packet_size = layer2_encode_packet_header(&header, buf); // add the payload data @@ -145,6 +152,9 @@ void layer2_tx_handle_ack(layer2_tx_t *ctx, uint8_t acked_seq) } packet_queue_delete(&ctx->packet_queue, packets_to_remove); + + LOG(LVL_DEBUG, "handling ack for seq_nr %u, removing %zu packets, %zu packets remaining.", acked_seq, packets_to_remove, packet_queue_get_used_space(&ctx->packet_queue)); + }