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.orgMax 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>