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 uploaded this change for review. ( https://gerrit.osmocom.org/12483 Change subject: LCLS: add status parameter to Assignment Completed message ...................................................................... LCLS: add status parameter to Assignment Completed message * add gsm0808_create_ass_compl2() with additional gsm0808_lcls_status parameter and make gsm0808_create_ass_compl() into trivial wrapper around it * update tests accordingly Change-Id: I547c6b8707123aa8c1ef636db88908df112d90a4 Related: OS#2487 --- M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map M tests/gsm0808/gsm0808_test.c 4 files changed, 42 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/83/12483/1 diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index ac88748..3c6896e 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -76,6 +76,12 @@ const struct gsm0808_speech_codec *sc, const struct gsm0808_speech_codec_list *scl); +struct msgb *gsm0808_create_ass_compl2(uint8_t rr_cause, uint8_t chosen_channel, + uint8_t encr_alg_id, uint8_t speech_mode, + const struct sockaddr_storage *ss, + const struct gsm0808_speech_codec *sc, + const struct gsm0808_speech_codec_list *scl, + enum gsm0808_lcls_status lcls_bss_status); struct msgb *gsm0808_create_assignment_completed(uint8_t rr_cause, uint8_t chosen_channel, uint8_t encr_alg_id, diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 59b1657..ebb453a 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -519,7 +519,7 @@ return gsm0808_create_ass2(ct, cic, ss, scl, ci, NULL, NULL); } -/*! Create BSSMAP Assignment Completed message +/*! Create BSSMAP Assignment Completed message as per 3GPP TS 48.008 §3.2.1.2 * \param[in] rr_cause GSM 04.08 RR Cause value * \param[in] chosen_channel Chosen Channel * \param[in] encr_alg_id Encryption Algorithm ID @@ -527,13 +527,14 @@ * \param[in] ss Socket Address of BSS-side RTP socket * \param[in] sc Speech Codec (current) * \param[in] scl Speech Codec List (permitted) + * \param[in] lcls_bss_status §3.2.2.119 LCLS-BSS-Status, optional * \returns callee-allocated msgb with BSSMAP Assignment Complete message */ -struct msgb *gsm0808_create_ass_compl(uint8_t rr_cause, uint8_t chosen_channel, +struct msgb *gsm0808_create_ass_compl2(uint8_t rr_cause, uint8_t chosen_channel, uint8_t encr_alg_id, uint8_t speech_mode, const struct sockaddr_storage *ss, const struct gsm0808_speech_codec *sc, - const struct gsm0808_speech_codec_list - *scl) + const struct gsm0808_speech_codec_list *scl, + enum gsm0808_lcls_status lcls_bss_status) { struct msgb *msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "bssmap: ass compl"); @@ -570,7 +571,11 @@ if (scl) gsm0808_enc_speech_codec_list(msg, scl); - /* write LSA identifier 3.2.2.15 */ + /* FIXME: write LSA identifier 3.2.2.15 - see 3GPP TS 43.073 */ + + /* LCLS-BSS-Status 3.2.2.119 */ + if (lcls_bss_status < GSM0808_LCLS_STS_NA) + msgb_tv_put(msg, GSM0808_IE_LCLS_BSS_STATUS, lcls_bss_status); msg->l3h = msgb_tv_push(msg, BSSAP_MSG_BSS_MANAGEMENT, msgb_length(msg)); @@ -582,14 +587,33 @@ * \param[in] chosen_channel Chosen Channel * \param[in] encr_alg_id Encryption Algorithm ID * \param[in] speech_mode Speech Mode + * \param[in] ss Socket Address of BSS-side RTP socket + * \param[in] sc Speech Codec (current) + * \param[in] scl Speech Codec List (permitted) + * \returns callee-allocated msgb with BSSMAP Assignment Complete message */ +struct msgb *gsm0808_create_ass_compl(uint8_t rr_cause, uint8_t chosen_channel, + uint8_t encr_alg_id, uint8_t speech_mode, + const struct sockaddr_storage *ss, + const struct gsm0808_speech_codec *sc, + const struct gsm0808_speech_codec_list *scl) +{ + return gsm0808_create_ass_compl2(rr_cause, chosen_channel, encr_alg_id, speech_mode, + ss, sc, scl, GSM0808_LCLS_STS_NA); +} + +/*! Create BSSMAP Assignment Completed message + * \param[in] rr_cause GSM 04.08 RR Cause value + * \param[in] chosen_channel Chosen Channel + * \param[in] encr_alg_id Encryption Algorithm ID + * \param[in] speech_mode Speech Mode * \returns callee-allocated msgb with BSSMAP Assignment Complete message */ struct msgb *gsm0808_create_assignment_completed(uint8_t rr_cause, uint8_t chosen_channel, uint8_t encr_alg_id, uint8_t speech_mode) { - return gsm0808_create_ass_compl(rr_cause, chosen_channel, encr_alg_id, - speech_mode, NULL, NULL, NULL); + return gsm0808_create_ass_compl2(rr_cause, chosen_channel, encr_alg_id, + speech_mode, NULL, NULL, NULL, GSM0808_LCLS_STS_NA); } /*! Create BSSMAP Assignment Failure message diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index bb97878..bed66d9 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -153,6 +153,7 @@ gsm0808_create_ass2; gsm0808_create_assignment_completed; gsm0808_create_ass_compl; +gsm0808_create_ass_compl2; gsm0808_create_assignment_failure; gsm0808_create_ass_fail; gsm0808_create_cipher; diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index 40e2b87..79f7145 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -514,7 +514,8 @@ GSM0808_IE_AOIP_TRASP_ADDR, 0x06, 0xc0, 0xa8, 0x64, 0x17, 0x04, 0xd2, GSM0808_IE_SPEECH_CODEC, 0x01, GSM0808_SCT_HR1 | 0x90, GSM0808_IE_SPEECH_CODEC_LIST, 0x07, GSM0808_SCT_FR3 | 0x50, 0xef, - 0xcd, GSM0808_SCT_FR2 | 0xa0, 0x9f, GSM0808_SCT_CSD | 0x90, 0xc0 }; + 0xcd, GSM0808_SCT_FR2 | 0xa0, 0x9f, GSM0808_SCT_CSD | 0x90, 0xc0, + GSM0808_IE_LCLS_BSS_STATUS, GSM0808_LCLS_STS_LOCALLY_SWITCHED }; struct msgb *msg; memset(&sin, 0, sizeof(sin)); @@ -533,8 +534,8 @@ setup_codec_list(&sc_list); printf("Testing creating Assignment Complete (AoIP)\n"); - msg = gsm0808_create_ass_compl(0x23, 0x42, 0x11, 0x22, - &ss, &sc, &sc_list); + msg = gsm0808_create_ass_compl2(0x23, 0x42, 0x11, 0x22, + &ss, &sc, &sc_list, GSM0808_LCLS_STS_LOCALLY_SWITCHED); VERIFY(msg, res, ARRAY_SIZE(res)); msgb_free(msg); } -- To view, visit https://gerrit.osmocom.org/12483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I547c6b8707123aa8c1ef636db88908df112d90a4 Gerrit-Change-Number: 12483 Gerrit-PatchSet: 1 Gerrit-Owner: Max <msuraev at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190108/21e20da9/attachment.htm>