From 13227559220789f876fe7cf56f70327cb1dcecf2 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 10 Jan 2022 14:21:19 +0100 Subject: [PATCH] iuup: Improve CRC checksum error logging Change-Id: I14f2ff14af24f20b788d123c0bfb47aeb0333d19 --- src/gsm/iuup.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gsm/iuup.c b/src/gsm/iuup.c index c0e12a706..dbca344fc 100644 --- a/src/gsm/iuup.c +++ b/src/gsm/iuup.c @@ -835,7 +835,7 @@ static int iuup_verify_pdu(const uint8_t *data, unsigned int len) header_crc_computed = osmo_iuup_compute_header_crc(data, len); if (iuup_get_hdr_crc(data) != header_crc_computed) { - LOGP(DLIUUP, LOGL_NOTICE, "Checksum error: rx 0x%02x vs exp 0x%02x\n", + LOGP(DLIUUP, LOGL_NOTICE, "Header Checksum error: rx 0x%02x vs exp 0x%02x\n", iuup_get_hdr_crc(data), header_crc_computed); return -EIO; } @@ -849,7 +849,7 @@ static int iuup_verify_pdu(const uint8_t *data, unsigned int len) payload_crc = ((uint16_t)t0h->payload_crc_hi << 8) | t0h->payload_crc_lo; payload_crc_computed = osmo_iuup_compute_payload_crc(data, len); if (payload_crc != payload_crc_computed) - return -EIO; + goto payload_crc_err; break; case IUUP_PDU_T_CONTROL: t14h = (struct iuup_pdutype14_hdr *) data; @@ -857,13 +857,18 @@ static int iuup_verify_pdu(const uint8_t *data, unsigned int len) payload_crc = ((uint16_t)t14h->payload_crc_hi << 8) | t14h->payload_crc_lo; payload_crc_computed = osmo_iuup_compute_payload_crc(data, len); if (payload_crc != payload_crc_computed) - return -EIO; + goto payload_crc_err; } break; default: return -EINVAL; } return 0; + +payload_crc_err: + LOGP(DLIUUP, LOGL_NOTICE, "Payload Checksum error (pdu type %u): rx 0x%02x vs exp 0x%02x\n", + pdu_type, payload_crc, payload_crc_computed); + return -EIO; } /* A IuUP TNL SAP primitive from transport (lower layer) */