Change in osmo-bts[master]: oml: ensure that IPA RSL Connect ACK/NACK contains all IEs

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

fixeria gerrit-no-reply at lists.osmocom.org
Sat Feb 6 16:07:24 UTC 2021


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22765 )


Change subject: oml: ensure that IPA RSL Connect ACK/NACK contains all IEs
......................................................................

oml: ensure that IPA RSL Connect ACK/NACK contains all IEs

All IEs in the BSC originated message are optional, so we assume
default values for them.  Let's reflect them all in the ACK/NACK.

Change-Id: I5c73e83daad0cea07b9cb674c393e0bfc6268a61
Related: OS#3791
---
M src/common/oml.c
1 file changed, 14 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/22765/1

diff --git a/src/common/oml.c b/src/common/oml.c
index d395d8f..c32260b 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -442,14 +442,15 @@
 		foh->msg_type += 2; /* nack */
 		/* add cause */
 		msgb_tv_put(msg, NM_ATT_NACK_CAUSES, cause);
-		/* update the length as we just made the message larger */
-		struct abis_om_hdr *omh = (struct abis_om_hdr *) msgb_l2(msg);
-		omh->length = msgb_l3len(msg);
 	} else {
 		LOGPFOH(DOML, LOGL_DEBUG, foh, "Sending FOM ACK.\n");
 		foh->msg_type++; /* ack */
 	}
 
+	/* ensure that the message length is up to date */
+	struct abis_om_hdr *omh = (struct abis_om_hdr *) msgb_l2(msg);
+	omh->length = msgb_l3len(msg);
+
 	/* we cannot use oml_send_msg() as we already have the OML header */
 	if (abis_oml_sendmsg(msg) != 0)
 		LOGPFOH(DOML, LOGL_ERROR, foh, "Failed to send ACK/NACK\n");
@@ -1406,6 +1407,16 @@
 		trx->rsl_tei = stream_id;
 		rc = e1inp_ipa_bts_rsl_connect_n(oml_link->ts->line, inet_ntoa(in), port, trx->nr);
 	}
+
+	/* The ACK/NACK is expected to contain all IEs */
+	if (!TLVP_PRESENT(tp, NM_ATT_IPACC_DST_IP)) /* TV32 */
+		msgb_tv_fixed_put(msg, NM_ATT_IPACC_DST_IP, sizeof(in),
+				  (const uint8_t *) &in);
+	if (!TLVP_PRESENT(tp, NM_ATT_IPACC_DST_IP_PORT)) /* TV16 */
+		msgb_tv16_put(msg, NM_ATT_IPACC_DST_IP_PORT, port);
+	if (!TLVP_PRESENT(tp, NM_ATT_IPACC_STREAM_ID)) /* TV */
+		msgb_tv_put(msg, NM_ATT_IPACC_STREAM_ID, stream_id);
+
 	if (rc < 0) {
 		LOGP(DOML, LOGL_ERROR, "%s: Error in abis_open(RSL): %d\n", trx_name, rc);
 		return oml_fom_ack_nack(msg, NM_NACK_CANT_PERFORM);

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22765
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I5c73e83daad0cea07b9cb674c393e0bfc6268a61
Gerrit-Change-Number: 22765
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210206/6a9f3cc8/attachment.htm>


More information about the gerrit-log mailing list