Change in libosmocore[master]: LCLS: add GCR comparison helper

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Max gerrit-no-reply at lists.osmocom.org
Mon Jan 14 23:46:35 UTC 2019


Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12493 )

Change subject: LCLS: add GCR comparison helper
......................................................................

LCLS: add GCR comparison helper

Change-Id: I9e3b5560a058b976638d03cb819415d237ae9984
---
M include/osmocom/gsm/gsm29205.h
M src/gsm/gsm29205.c
M src/gsm/libosmogsm.map
M tests/gsm0808/gsm0808_test.c
4 files changed, 27 insertions(+), 19 deletions(-)

Approvals:
  Harald Welte: Looks good to me, but someone else must approve
  Neels Hofmeyr: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/gsm/gsm29205.h b/include/osmocom/gsm/gsm29205.h
index 0c3c153..f93e34a 100644
--- a/include/osmocom/gsm/gsm29205.h
+++ b/include/osmocom/gsm/gsm29205.h
@@ -39,3 +39,4 @@
 
 uint8_t osmo_enc_gcr(struct msgb *msg, const struct osmo_gcr_parsed *g);
 int osmo_dec_gcr(struct osmo_gcr_parsed *gcr, const uint8_t *elem, uint8_t len);
+bool osmo_gcr_eq(const struct osmo_gcr_parsed *gcr1, const struct osmo_gcr_parsed *gcr2);
diff --git a/src/gsm/gsm29205.c b/src/gsm/gsm29205.c
index 0ef29b7..0d34468 100644
--- a/src/gsm/gsm29205.c
+++ b/src/gsm/gsm29205.c
@@ -91,3 +91,24 @@
 
 	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 60ce5d1..f9e9b8b 100644
--- a/src/gsm/libosmogsm.map
+++ b/src/gsm/libosmogsm.map
@@ -240,6 +240,7 @@
 
 osmo_enc_gcr;
 osmo_dec_gcr;
+osmo_gcr_eq;
 
 gsm0858_rsl_ul_meas_enc;
 
diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c
index b3cab50..546a487 100644
--- a/tests/gsm0808/gsm0808_test.c
+++ b/tests/gsm0808/gsm0808_test.c
@@ -732,25 +732,10 @@
                 abort();
         }
 
-	if (lcls_out.gcr->net_len != g.net_len) {
-		printf("Network ID length parsed wrong: %u != %u\n", lcls_out.gcr->net_len, g.net_len);
-		abort();
-	}
-
-	if (lcls_out.gcr->node != g.node) {
-		printf("Node ID parsed wrong: 0x%X != 0x%X\n", lcls_out.gcr->node, g.node);
-		abort();
-	}
-
-	if (memcmp(lcls_out.gcr->net, g.net, g.net_len) != 0) {
-		printf("Network ID parsed wrong: %s\n", osmo_hexdump(lcls_out.gcr->net, lcls_out.gcr->net_len));
-		abort();
-	}
-
-	if (memcmp(lcls_out.gcr->cr, g.cr, 5) != 0) {
-		printf("Call ref. ID parsed wrong: %s\n", osmo_hexdump(lcls_out.gcr->cr, 5));
-		abort();
-	}
+	if (!osmo_gcr_eq(lcls_out.gcr, lcls_in.gcr)) {
+		printf("GCR parsed wrong.\n");
+                abort();
+        }
 
 	printf("\tdecoded %d bytes: %s\n", rc, rc == len ? "OK" : "FAIL");
 	msgb_free(msg);

-- 
To view, visit https://gerrit.osmocom.org/12493
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I9e3b5560a058b976638d03cb819415d237ae9984
Gerrit-Change-Number: 12493
Gerrit-PatchSet: 3
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190114/a3c05a6d/attachment.htm>


More information about the gerrit-log mailing list