pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve
on RUA DT for unknown context, respond with RUA Disconnect

If we receive a DirectTransfer for an unknown RUA context, respond with
a RUA Disconnect to make sure the peer knows there is no such context.
(Do not respond to RUA Disconnect though.)

Related: OS#6283
Tweaked-by: Oliver Smith <osmith@sysmocom.de>
Change-Id: If0b9a999649c9822f55b42b0cae8408af668e1b8
---
M src/osmo-hnbgw/hnbgw_rua.c
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/osmo-hnbgw/hnbgw_rua.c b/src/osmo-hnbgw/hnbgw_rua.c
index 01e9e3a..b804b46 100644
--- a/src/osmo-hnbgw/hnbgw_rua.c
+++ b/src/osmo-hnbgw/hnbgw_rua.c
@@ -242,7 +242,6 @@
struct msgb *ranap_msg = NULL;
struct hnbgw_context_map *map = NULL;
bool is_ps;
- int logl;

switch (cN_DomainIndicator) {
case RUA_CN_DomainIndicator_cs_domain:
@@ -267,7 +266,6 @@
}

map = context_map_find_by_rua_ctx_id(hnb, context_id, is_ps);
- logl = LOGL_ERROR;

switch (rua_procedure) {
case RUA_ProcedureCode_id_Connect:
@@ -293,13 +291,19 @@
/* For RUA Disconnect, do not spam the ERROR log. It is just a stray Disconnect, no harm done.
* Context: some CN are known to rapidly tear down SCCP without waiting for RUA to disconnect gracefully
* (IU Release Complete). Such CN would cause ERROR logging for each and every released context map. */
- logl = LOGL_DEBUG;
- /* fall thru */
+ if (!map) {
+ LOGHNB(hnb, DRUA, LOGL_DEBUG, "rx RUA %s for unknown RUA context %u\n",
+ rua_procedure_code_name(rua_procedure), context_id);
+ return -EINVAL;
+ }
+ break;
+
default:
/* Any message other than Connect must have a valid RUA context */
if (!map) {
- LOGHNB(hnb, DRUA, logl, "rx RUA %s for unknown RUA context %u\n",
+ LOGHNB(hnb, DRUA, LOGL_ERROR, "rx RUA %s for unknown RUA context %u\n",
rua_procedure_code_name(rua_procedure), context_id);
+ rua_tx_disc_conn_fail(hnb, is_ps, context_id);
return -EINVAL;
}
break;

To view, visit change 37808. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-hnbgw
Gerrit-Branch: master
Gerrit-Change-Id: If0b9a999649c9822f55b42b0cae8408af668e1b8
Gerrit-Change-Number: 37808
Gerrit-PatchSet: 3
Gerrit-Owner: neels <nhofmeyr@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-CC: laforge <laforge@osmocom.org>
Gerrit-CC: osmith <osmith@sysmocom.de>