<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/14078">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">RTP_Emulation: Avoid failure if T_transmit triggers between bind and connect<br><br>During MGCP_Test's f_flow_modify, an RTP socket may be Tx-enabled, and<br>f_flow_modify first calls bind, then connect, with MDCX transaction in<br>the middle (which can take some time).<br><br>If T_transmit from RTP_Emulation triggers (RTP packet to be send),<br>during that time, TTCN3 will fail to send the packet:<br>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<br><br>Change-Id: I20e7aed35bb28200e30ee5efc718f77e036d8262<br>---<br>M library/RTP_Emulation.ttcn<br>1 file changed, 5 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/14078/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn</span><br><span>index 2494d74..7b9be68 100644</span><br><span>--- a/library/RTP_Emulation.ttcn</span><br><span>+++ b/library/RTP_Emulation.ttcn</span><br><span>@@ -85,6 +85,7 @@</span><br><span> </span><br><span>     /* state variables, change over time */</span><br><span>      var boolean g_rx_enabled := false;</span><br><span style="color: hsl(120, 100%, 40%);">+    var boolean g_tx_connected := false; /* Set to true after connect() */</span><br><span>       var LIN2_BO_LAST g_tx_next_seq := 0;</span><br><span>         var uint32_t g_tx_next_ts := 0;</span><br><span> </span><br><span>@@ -347,6 +348,8 @@</span><br><span>                            log("Local Port is not an even port number!");</span><br><span>                             continue;</span><br><span>                    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   g_tx_connected := false; /* will set it back to true upon next connect() call */</span><br><span>                     res := RTP_CodecPort_CtrlFunct.f_IPL4_listen(RTP, g_local_host,</span><br><span>                                                              g_local_port, {udp:={}});</span><br><span>                    if (not ispresent(res.connId)) {</span><br><span>@@ -387,6 +390,7 @@</span><br><span>                               setverdict(fail, "Could not connect to RTCP socket, check your configuration");</span><br><span>                            mtc.stop;</span><br><span>                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                     g_tx_connected := true;</span><br><span>                      CTRL.reply(RTPEM_connect:{g_remote_host, g_remote_port});</span><br><span>            }</span><br><span>            [] CTRL.getcall(RTPEM_mode:{RTPEM_MODE_NONE}) {</span><br><span>@@ -466,7 +470,7 @@</span><br><span>                }</span><br><span> </span><br><span>                /* transmit if timer has expired */</span><br><span style="color: hsl(0, 100%, 40%);">-             [] T_transmit.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+               [g_tx_connected] T_transmit.timeout {</span><br><span>                        /* send one RTP frame, re-start timer */</span><br><span>                     f_tx_rtp(g_cfg.tx_fixed_payload);</span><br><span>                    T_transmit.start;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/14078">change 14078</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/14078"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I20e7aed35bb28200e30ee5efc718f77e036d8262 </div>
<div style="display:none"> Gerrit-Change-Number: 14078 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>