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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/20541 ) Change subject: gsm48_rest_octets: Add parser for SI4 rest octets ...................................................................... gsm48_rest_octets: Add parser for SI4 rest octets Introduces osmo_gsm48_rest_octets_si4_decode() Change-Id: I9d6ed06731ae15fdcef1a1f397d6ac2b7b1ca980 Related: OS#3075 --- M include/osmocom/gsm/gsm48_rest_octets.h M src/gsm/gsm48_rest_octets.c M src/gsm/libosmogsm.map 3 files changed, 47 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm48_rest_octets.h b/include/osmocom/gsm/gsm48_rest_octets.h index d3bb878..8f143be 100644 --- a/include/osmocom/gsm/gsm48_rest_octets.h +++ b/include/osmocom/gsm/gsm48_rest_octets.h @@ -125,3 +125,6 @@ /* Parse SI3 Rest Octets */ void osmo_gsm48_rest_octets_si3_decode(struct osmo_gsm48_si_ro_info *si3, const uint8_t *data); + +/* Parse SI4 Rest Octets */ +void osmo_gsm48_rest_octets_si4_decode(struct osmo_gsm48_si_ro_info *si4, const uint8_t *data, int len); diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 3c1b22a..86f18b7 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -1022,3 +1022,46 @@ else si3->si2quater_indicator = 0; } + + +void osmo_gsm48_rest_octets_si4_decode(struct osmo_gsm48_si_ro_info *si4, const uint8_t *data, int len) +{ + struct osmo_gsm48_si_selection_params *sp = &si4->selection_params; + struct osmo_gsm48_si_power_offset *po = &si4->power_offset; + struct osmo_gsm48_si3_gprs_ind *gi = &si4->gprs_ind; + struct bitvec bv; + + memset(&bv, 0, sizeof(bv)); + bv.data = (uint8_t *) data; + bv.data_len = len; + + memset(si4, 0, sizeof(*si4)); + + /* Optional Selection Parameters */ + if (bitvec_get_bit_high(&bv) == H) { + sp->present = 1; + sp->cbq = bitvec_get_uint(&bv, 1); + sp->cell_resel_off = bitvec_get_uint(&bv, 6); + sp->temp_offs = bitvec_get_uint(&bv, 3); + sp->penalty_time = bitvec_get_uint(&bv, 5); + } else { + sp->present = 0; + } + + /* Optional Power Offset */ + if (bitvec_get_bit_high(&bv) == H) { + po->present = 1; + po->power_offset = bitvec_get_uint(&bv, 2); + } else { + po->present = 0; + } + + /* GPRS Indicator */ + if (bitvec_get_bit_high(&bv) == H) { + gi->present = 1; + gi->ra_colour = bitvec_get_uint(&bv, 3); + gi->si13_position = bitvec_get_uint(&bv, 1); + } else { + gi->present = 0; + } +} diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index dd28a15..031cc20 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -322,6 +322,7 @@ osmo_gsm48_rest_octets_si4_encode; osmo_gsm48_rest_octets_si13_encode; osmo_gsm48_rest_octets_si3_decode; +osmo_gsm48_rest_octets_si4_decode; gsm48_rr_msg_name; gsm48_cc_state_name; gsm48_construct_ra; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/20541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9d6ed06731ae15fdcef1a1f397d6ac2b7b1ca980 Gerrit-Change-Number: 20541 Gerrit-PatchSet: 2 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201015/ad261b19/attachment.htm>