Change in osmo-ttcn3-hacks[master]: RTP_Emulation: Avoid failure if T_transmit triggers between bind and ...

Harald Welte gerrit-no-reply at lists.osmocom.org
Tue May 21 10:25:42 UTC 2019


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/14078 )

Change subject: RTP_Emulation: Avoid failure if T_transmit triggers between bind and connect
......................................................................

RTP_Emulation: Avoid failure if T_transmit triggers between bind and connect

During MGCP_Test's f_flow_modify, an RTP socket may be Tx-enabled, and
f_flow_modify first calls bind, then connect, with MDCX transaction in
the middle (which can take some time).

If T_transmit from RTP_Emulation triggers (RTP packet to be send),
during that time, TTCN3 will fail to send the packet:
RTP_Emulation.ttcn:312 Message enqueued on RTP from system @Socket_API_Definitions.PortEvent : { result := { errorCode := ERROR_SOCKET (4), connId := 2, os_error_code := 89, os_error_text := "Destination address required" } } id 1

Change-Id: I20e7aed35bb28200e30ee5efc718f77e036d8262
---
M library/RTP_Emulation.ttcn
1 file changed, 5 insertions(+), 1 deletion(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn
index 2494d74..7b9be68 100644
--- a/library/RTP_Emulation.ttcn
+++ b/library/RTP_Emulation.ttcn
@@ -85,6 +85,7 @@
 
 	/* state variables, change over time */
 	var boolean g_rx_enabled := false;
+	var boolean g_tx_connected := false; /* Set to true after connect() */
 	var LIN2_BO_LAST g_tx_next_seq := 0;
 	var uint32_t g_tx_next_ts := 0;
 
@@ -347,6 +348,8 @@
 				log("Local Port is not an even port number!");
 				continue;
 			}
+
+			g_tx_connected := false; /* will set it back to true upon next connect() call */
 			res := RTP_CodecPort_CtrlFunct.f_IPL4_listen(RTP, g_local_host,
 								g_local_port, {udp:={}});
 			if (not ispresent(res.connId)) {
@@ -387,6 +390,7 @@
 				setverdict(fail, "Could not connect to RTCP socket, check your configuration");
 				mtc.stop;
 			}
+			g_tx_connected := true;
 			CTRL.reply(RTPEM_connect:{g_remote_host, g_remote_port});
 		}
 		[] CTRL.getcall(RTPEM_mode:{RTPEM_MODE_NONE}) {
@@ -466,7 +470,7 @@
 		}
 
 		/* transmit if timer has expired */
-		[] T_transmit.timeout {
+		[g_tx_connected] T_transmit.timeout {
 			/* send one RTP frame, re-start timer */
 			f_tx_rtp(g_cfg.tx_fixed_payload);
 			T_transmit.start;

-- 
To view, visit https://gerrit.osmocom.org/14078
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I20e7aed35bb28200e30ee5efc718f77e036d8262
Gerrit-Change-Number: 14078
Gerrit-PatchSet: 3
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190521/bdc687c7/attachment.html>


More information about the gerrit-log mailing list