From 1bec3908c6c25a0814872ca3c383f5bfe6babbe8 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 14 Jan 2019 19:31:42 +0100 Subject: LCLS: add GCR comparison helper Change-Id: I9e3b5560a058b976638d03cb819415d237ae9984 --- src/gsm/gsm29205.c | 21 +++++++++++++++++++++ src/gsm/libosmogsm.map | 1 + 2 files changed, 22 insertions(+) (limited to 'src') diff --git a/src/gsm/gsm29205.c b/src/gsm/gsm29205.c index 0ef29b72..0d344688 100644 --- a/src/gsm/gsm29205.c +++ b/src/gsm/gsm29205.c @@ -91,3 +91,24 @@ int osmo_dec_gcr(struct osmo_gcr_parsed *gcr, const uint8_t *elem, uint8_t len) return parsed + 5; } + +/*! Compare two GCR structs. + * \param[in] gcr1 pointer to the GCR struct + * \param[in] gcr2 pointer to the GCR struct + * \returns true if GCRs are equal, false otherwise */ +bool osmo_gcr_eq(const struct osmo_gcr_parsed *gcr1, const struct osmo_gcr_parsed *gcr2) +{ + if (gcr1->net_len != gcr2->net_len) + return false; + + if (gcr1->node != gcr2->node) + return false; + + if (memcmp(gcr1->cr, gcr2->cr, 5) != 0) + return false; + + if (memcmp(gcr1->net, gcr2->net, gcr2->net_len) != 0) + return false; + + return true; +} diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 60ce5d13..f9e9b8bf 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -240,6 +240,7 @@ gsm29118_create_service_abort_req; osmo_enc_gcr; osmo_dec_gcr; +osmo_gcr_eq; gsm0858_rsl_ul_meas_enc; -- cgit v1.2.3