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/osmo-sgsn/+/22929 ) Change subject: Fix nsei+bvci not updated on rx UL SNDCP data ...................................................................... Fix nsei+bvci not updated on rx UL SNDCP data msgid2mmctx() was already being called for signalling messages in gsm0408_gprs_rcvmsg_gb() before calling gprs_gb_recv_pdu(), but it was not called in sndcp_llunitdata_ind(). Let's move msgid2mmctx() inside gprs_gb_recv_pdu() since we want to always update the nsei+bvci, regardless of message containing data or control content. This commit fixes the scenario where an MS changes to a new cell (PCU) and then continues transmitting UL data. Prior to this patch, the SGSN kept sending DL content to the old cell (PCU nsei+bvci) instead of the new one even after the MS transmitted Ul content fro mthe new cell. Related: SYS#4909 Change-Id: I2c14e1d65575f54212924f7c5f0a2f4c1b76ec81 --- M include/osmocom/sgsn/gprs_gb.h M src/sgsn/gprs_gb.c M src/sgsn/gprs_sndcp.c 3 files changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/sgsn/gprs_gb.h b/include/osmocom/sgsn/gprs_gb.h index c98dd34..9162367 100644 --- a/include/osmocom/sgsn/gprs_gb.h +++ b/include/osmocom/sgsn/gprs_gb.h @@ -8,7 +8,7 @@ int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme, bool drop_cipherable); /* Has to be called whenever any PDU (signaling, data, ...) has been received */ -void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx); +void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx, const struct msgb *msg); /* page a MS in its routing area */ int gprs_gb_page_ps_ra(struct sgsn_mm_ctx *mmctx); diff --git a/src/sgsn/gprs_gb.c b/src/sgsn/gprs_gb.c index 2585d6d..cddd1b1 100644 --- a/src/sgsn/gprs_gb.c +++ b/src/sgsn/gprs_gb.c @@ -38,7 +38,8 @@ #include <osmocom/sgsn/debug.h> /* Has to be called whenever any PDU (signaling, data, ...) has been received */ -void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx) { +void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx, const struct msgb *msg) { + msgid2mmctx(mmctx, msg); if (mmctx->gb.llme) osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_PDU_RECEPTION, NULL); } @@ -56,10 +57,9 @@ bssgp_parse_cell_id(&ra_id, msgb_bcid(msg)); mmctx = sgsn_mm_ctx_by_tlli(msgb_tlli(msg), &ra_id); if (mmctx) { - msgid2mmctx(mmctx, msg); rate_ctr_inc(&mmctx->ctrg->ctr[GMM_CTR_PKTS_SIG_IN]); mmctx->gb.llme = llme; - gprs_gb_recv_pdu(mmctx); + gprs_gb_recv_pdu(mmctx, msg); } /* MMCTX can be NULL */ diff --git a/src/sgsn/gprs_sndcp.c b/src/sgsn/gprs_sndcp.c index b237bf9..6692f1a 100644 --- a/src/sgsn/gprs_sndcp.c +++ b/src/sgsn/gprs_sndcp.c @@ -808,7 +808,7 @@ lle, lle->llme->tlli, lle->sapi, sch->nsapi); return -EIO; } - gprs_gb_recv_pdu(mmctx); + gprs_gb_recv_pdu(mmctx, msg); if (scomph) { sne->defrag.pcomp = scomph->pcomp; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2c14e1d65575f54212924f7c5f0a2f4c1b76ec81 Gerrit-Change-Number: 22929 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis at fe80.eu> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210216/6aecc524/attachment.htm>