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
This commit is contained in:
Philipp Maier 2019-09-24 11:44:28 +02:00
parent e9a3911844
commit 6dcdfb036a
1 changed files with 2 additions and 4 deletions

View File

@ -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) &&