diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2019-09-24 11:44:28 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2019-09-24 11:48:19 +0200 |
commit | 6dcdfb036a7a129ea038b8f7b44a18132fa831ef (patch) | |
tree | e56e6e2f4fd6ae58c3e9949bc6671afc28e6ee0d /src/libmsc | |
parent | e9a39118448e4e6f50f2f1ec579a1b6f5ab5434e (diff) |
sgs_iface: Accept messages with unknown TLV elements
3GPP TS 29.118, chapter 7.5 states that unknown TLV elements should be
ignored rather than that the whole message is discarded a STATUS message
is sent. Lets turn the returncode check of the tlv_parse() call into a
log message and continue normally.
Change-Id: Ic6714451ad970043d4765f8420d753daf5294a44
Related: OS#4214
Diffstat (limited to 'src/libmsc')
-rw-r--r-- | src/libmsc/sgs_iface.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index b12991c77..a4527f460 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -945,10 +945,8 @@ int sgs_iface_rx(struct sgs_connection *sgc, struct msgb *msg) /* Parse TLV elements */ rc = tlv_parse(&tp, &sgsap_ie_tlvdef, msgb_l2(msg) + 1, msgb_l2len(msg) - 1, 0, 0); - if (rc < 0) { - TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_SEMANT_INCORR_MSG, "SGsAP Message %s parsing error\n"); - goto error; - } + if (rc < 0) + LOGSGC(sgc, LOGL_NOTICE, "SGsAP Message %s contains unknown TLV IEs\n", sgsap_msg_type_name(msg_type)); /* Most of the messages contain an IMSI as mandatory IE, parse it right here */ if (!TLVP_PRESENT(&tp, SGSAP_IE_IMSI) && |