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
changes/99/15599/1
Philipp Maier 3 years ago
parent e9a3911844
commit 6dcdfb036a
  1. 6
      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) &&

Loading…
Cancel
Save