[MERGED] libosmocore[master]: Add function to encode classmark

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
Thu Feb 15 15:52:24 UTC 2018


Max has submitted this change and it was merged.

Change subject: Add function to encode classmark
......................................................................


Add function to encode classmark

The code is based on Osmocom-BB implementation.

Change-Id: I78f6968edaa3ed535673411fb2a80060a472290f
---
M include/osmocom/gsm/gsm48.h
M src/gsm/gsm48.c
M src/gsm/libosmogsm.map
3 files changed, 18 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h
index 9ec5463..5fda4e7 100644
--- a/include/osmocom/gsm/gsm48.h
+++ b/include/osmocom/gsm/gsm48.h
@@ -29,6 +29,7 @@
 		     uint16_t *mnc, uint16_t *lac);
 void gsm48_generate_lai(struct gsm48_loc_area_id *lai48, uint16_t mcc,
 			uint16_t mnc, uint16_t lac);
+void gsm48_encode_classmark1(struct gsm48_classmark1 *cm, uint8_t rev_lv, bool es_ind, bool a5_1, uint8_t rf_pwr);
 int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi);
 int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi);
 uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type);
diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c
index b58e9e2..d9a5527 100644
--- a/src/gsm/gsm48.c
+++ b/src/gsm/gsm48.c
@@ -508,6 +508,22 @@
 	lai48->lac = osmo_htons(lac);
 }
 
+/*! Encode TS 24.008 §10.5.1.5 Mobile Station Classmark 1
+ *  \param[out] cm caller-provided memory for output
+ *  \param[in] rev_lv Revision level
+ *  \param[in] es_ind ES IND "Controlled Early Classmark Sending" option
+ *  \param[in] a5_1 A5/1 algorithm supported
+ *  \param[in] pwr_lv RF power capability
+ */
+void gsm48_encode_classmark1(struct gsm48_classmark1 *cm, uint8_t rev_lv, bool es_ind, bool a5_1, uint8_t rf_pwr)
+{
+	memset(cm, 0, sizeof(*cm));
+	cm->rev_lev = rev_lv;
+	cm->es_ind = es_ind;
+	cm->a5_1 = !a5_1;
+	cm->pwr_lev = rf_pwr;
+}
+
 /*! Decode TS 04.08 Location Area Identifier
  *  \param[in] Location Area Identifier (encoded)
  *  \param[out] mcc Mobile Country Code
diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map
index 7a74718..b6152ce 100644
--- a/src/gsm/libosmogsm.map
+++ b/src/gsm/libosmogsm.map
@@ -245,6 +245,7 @@
 gsm48_encode_signal;
 gsm48_encode_ssversion;
 gsm48_encode_useruser;
+gsm48_encode_classmark1;
 gsm48_generate_lai;
 gsm48_generate_mid;
 gsm48_generate_mid_from_imsi;

-- 
To view, visit https://gerrit.osmocom.org/6481
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I78f6968edaa3ed535673411fb2a80060a472290f
Gerrit-PatchSet: 2
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>



More information about the gerrit-log mailing list