aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-02-16 13:59:05 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2021-02-16 13:59:07 +0100
commit11ccc4305d8a29969018111a1f6dfad062842f47 (patch)
tree2b86f5f2d22cf3894be992a4128a0dad0f7a6cc4 /include
parent901ed14c898ef229c654009ac0dc078d09d7b054 (diff)
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
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/sgsn/gprs_gb.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/osmocom/sgsn/gprs_gb.h b/include/osmocom/sgsn/gprs_gb.h
index c98dd3448..916236761 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);