<p>pespin <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15651">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  fixeria: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Create dummy gsmtap sink with netcat<br><br>otherwise ICMP messages appear in pcap files and some messages are lost<br>since they seem to be dropped by the kernel.<br><br>Change-Id: Id69d98db63f8260067ad6bc1525fb05c936912f2<br>---<br>M ttcn3-tcpdump-start.sh<br>M ttcn3-tcpdump-stop.sh<br>2 files changed, 39 insertions(+), 18 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ttcn3-tcpdump-start.sh b/ttcn3-tcpdump-start.sh</span><br><span>index 9bf3c0a..3ad14c0 100755</span><br><span>--- a/ttcn3-tcpdump-start.sh</span><br><span>+++ b/ttcn3-tcpdump-start.sh</span><br><span>@@ -1,10 +1,22 @@</span><br><span> #!/bin/sh</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-PIDFILE=/tmp/dumper.pid</span><br><span style="color: hsl(120, 100%, 40%);">+PIDFILE_PCAP=/tmp/pcap.pid</span><br><span> TCPDUMP=/usr/sbin/tcpdump</span><br><span> DUMPCAP=/usr/bin/dumpcap</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+PIDFILE_NETCAT=/tmp/netcat.pid</span><br><span style="color: hsl(120, 100%, 40%);">+NETCAT=/bin/nc</span><br><span style="color: hsl(120, 100%, 40%);">+GSMTAP_PORT=4729</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> TESTCASE=$1</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+kill_rm_pidfile() {</span><br><span style="color: hsl(120, 100%, 40%);">+        if [ -e $1 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+            kill "$(cat "$1")"</span><br><span style="color: hsl(120, 100%, 40%);">+                rm $1</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> echo "------ $TESTCASE ------"</span><br><span> date</span><br><span> </span><br><span>@@ -12,10 +24,8 @@</span><br><span>         TTCN3_PCAP_PATH=/tmp</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-if [ -e $PIDFILE ]; then</span><br><span style="color: hsl(0, 100%, 40%);">-  kill "$(cat "$PIDFILE")"</span><br><span style="color: hsl(0, 100%, 40%);">-    rm $PIDFILE</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(120, 100%, 40%);">+kill_rm_pidfile $PIDFILE_NETCAT</span><br><span style="color: hsl(120, 100%, 40%);">+kill_rm_pidfile $PIDFILE_PCAP</span><br><span> </span><br><span> if [ "$(id -u)" = "0" ]; then</span><br><span>       CMD="$TCPDUMP -U"</span><br><span>@@ -39,9 +49,14 @@</span><br><span>     fi</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Create a dummy sink for GSMTAP packets</span><br><span style="color: hsl(120, 100%, 40%);">+$NETCAT -l -u -k -p $GSMTAP_PORT >/dev/null 2>$TESTCASE.netcat.stderr &</span><br><span style="color: hsl(120, 100%, 40%);">+PID=$!</span><br><span style="color: hsl(120, 100%, 40%);">+echo $PID > $PIDFILE_NETCAT</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> $CMD -s 1500 -n -i any -w "$TTCN3_PCAP_PATH/$TESTCASE.pcap" >$TTCN3_PCAP_PATH/$TESTCASE.pcap.stdout 2>&1 &</span><br><span> PID=$!</span><br><span style="color: hsl(0, 100%, 40%);">-echo $PID > $PIDFILE</span><br><span style="color: hsl(120, 100%, 40%);">+echo $PID > $PIDFILE_PCAP</span><br><span> </span><br><span> # Wait until packet dumper creates the pcap file and starts recording.</span><br><span> # We generate some traffic until we see packet dumper catches it.</span><br><span>diff --git a/ttcn3-tcpdump-stop.sh b/ttcn3-tcpdump-stop.sh</span><br><span>index c1ab9d0..1f4da3d 100755</span><br><span>--- a/ttcn3-tcpdump-stop.sh</span><br><span>+++ b/ttcn3-tcpdump-stop.sh</span><br><span>@@ -1,9 +1,24 @@</span><br><span> #!/bin/sh</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-PIDFILE=/tmp/dumper.pid</span><br><span style="color: hsl(120, 100%, 40%);">+PIDFILE_PCAP=/tmp/pcap.pid</span><br><span style="color: hsl(120, 100%, 40%);">+PIDFILE_NETCAT=/tmp/netcat.pid</span><br><span> TESTCASE=$1</span><br><span> VERDICT="$2"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+kill_rm_pidfile() {</span><br><span style="color: hsl(120, 100%, 40%);">+if [ -e $1 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+        PSNAME="$(ps -q "$(cat "$1")" -o comm=)"</span><br><span style="color: hsl(120, 100%, 40%);">+     if [ "$PSNAME" != "sudo" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+          kill "$(cat "$1")"</span><br><span style="color: hsl(120, 100%, 40%);">+        else</span><br><span style="color: hsl(120, 100%, 40%);">+  # NOTE: This requires you to be root or something like</span><br><span style="color: hsl(120, 100%, 40%);">+        # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file</span><br><span style="color: hsl(120, 100%, 40%);">+         sudo kill "$(cat "$1")"</span><br><span style="color: hsl(120, 100%, 40%);">+   fi</span><br><span style="color: hsl(120, 100%, 40%);">+    rm $1</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> date</span><br><span> </span><br><span> if [ x"$VERDICT" = x"pass" ]; then</span><br><span>@@ -31,14 +46,5 @@</span><br><span>    i=$((i+1))</span><br><span> done</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-if [ -e $PIDFILE ]; then</span><br><span style="color: hsl(0, 100%, 40%);">-        DUMPER="$(ps -q "$(cat "$PIDFILE")" -o comm=)"</span><br><span style="color: hsl(0, 100%, 40%);">-      if [ "$DUMPER" != "sudo" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">-            kill "$(cat "$PIDFILE")"</span><br><span style="color: hsl(0, 100%, 40%);">-    else</span><br><span style="color: hsl(0, 100%, 40%);">-    # NOTE: This requires you to be root or something like</span><br><span style="color: hsl(0, 100%, 40%);">-  # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file</span><br><span style="color: hsl(0, 100%, 40%);">-           sudo kill "$(cat "$PIDFILE")"</span><br><span style="color: hsl(0, 100%, 40%);">-       fi</span><br><span style="color: hsl(0, 100%, 40%);">-      rm $PIDFILE</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(120, 100%, 40%);">+kill_rm_pidfile "$PIDFILE_PCAP"</span><br><span style="color: hsl(120, 100%, 40%);">+kill_rm_pidfile "$PIDFILE_NETCAT"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15651">change 15651</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/c/osmo-ttcn3-hacks/+/15651"/><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-Change-Id: Id69d98db63f8260067ad6bc1525fb05c936912f2 </div>
<div style="display:none"> Gerrit-Change-Number: 15651 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>