start simulator with tcp port open
authorMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 25 Nov 2025 13:53:58 +0000 (14:53 +0100)
committerMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 25 Nov 2025 13:53:58 +0000 (14:53 +0100)
ulvpn.sh

index fbe7aa3f1ea0105e42086816dc5483109fc1e4b4..b6720429620bb35fbe3ebecfab0e21292611207f 100755 (executable)
--- a/ulvpn.sh
+++ b/ulvpn.sh
@@ -1,13 +1,20 @@
 #!/bin/sh
 
-MTU=1439
+#MTU=1439
+MTU=1400
+
+TCPPORT=1245
 
 TEST=$(basename $0 .sh)
 PWD=$(dirname $0)
-#PWD=/opt/ulvpn/bin
+DATA=.
+[ "$1" ] && DATA=$1
+
+[ -t 1 -o "$DAEMON" ] || { export DAEMON=yes; $0 $1 &>$DATA/$TEST.log; exit 0; }
 
 CRYPTOMOD=$PWD/cryptomod.exe
 SIMULATOR=$PWD/simulator.exe
+TRAFFICSHAPING=$PWD/trafficshaping.sh
 VPN=$PWD/ulvpn.exe
 
 ulimit -c unlimited
@@ -107,10 +114,10 @@ pass OK
 
 launch create provisioning files
 #dd if=/dev/random of=crypto.key bs=1 count=32 2>/dev/null
-echo -n "123456789abcdef0123456789abcdef0" > crypto.key
+echo -n "123456789abcdef0123456789abcdef0" > $DATA/crypto.key
 #dd if=/dev/random of=prng.key bs=1 count=16 2>/dev/null
-echo -n "123456789abcdef0" >prng.key
-cat > provisioning.eth <<EOF
+echo -n "123456789abcdef0" > $DATA/prng.key
+cat > $DATA/provisioning.eth <<EOF
 SLEEP 500
 T:PROVISIONING LOAD_KEY_REQ KEYID=0 KEY=@crypto.key
 R:PROVISIONING LOAD_KEY_RESP STATUS=0
@@ -120,7 +127,7 @@ EOF
 pass OK
 
 pids=
-trap "for pid in $pids; do echo killing $pid; kill -SIGTERM $pid; done;" 1 2 15
+trap "for pid in $pids; do echo killing $pid; kill -SIGTERM $pid; done;" 1 2 15
 
 for DEV in $DEVS; do
     N=$(echo ${DEV/:*} | sed 's/[^0-9]//g')
@@ -135,7 +142,8 @@ done
 
 if [ "$CM" = soft ]; then
     launch starting soft cm
-    $CRYPTOMOD -v 1 -V 1 -l cryptomod.log \
+    #$CRYPTOMOD -v 1 -V 1 -l $DATA/cryptomod.log
+    $CRYPTOMOD -v 2 -V 1 \
         -s BYPASS_B2R -t $LRED/080D -r $LBLK/083D \
         -s BYPASS_R2B -t $LBLK/082D -r $LRED/081D \
         -s CONTROL -t $LRED/080E -r $LRED/081E \
@@ -150,7 +158,7 @@ fi
 
 if [ "$VPNBLK" ]; then
     launch starting black vpn
-    $VPN -v 1 -V 1 -l vpnblk.log \
+    $VPN -v 1 -V 1 \
         -n tun \
         $VPNBLK \
         -x $RBLK/0809 $RBLK/0809 \
@@ -163,7 +171,8 @@ fi
 
 if [ "$VPNRED" ]; then
     launch starting red vpn
-    $VPN -v 1 -V 1 -l vpnred.log \
+    #$VPN -v 1 -V 1
+    $VPN -v 2 -V 2 \
         $VPNRED \
         -n udp \
         -n black \
@@ -176,9 +185,18 @@ if [ "$VPNRED" ]; then
     ps | awk '$1 == '$pid' || $2 == '$pid' {exit 1}' && { fail KO; exit 1; } || pass OK
 
     launch provisioning $CM cryptomod
-    $SIMULATOR -v1 -V1 -s PROVISIONING -r $RRED/080B -t $RRED/$RPRO provisioning.eth && pass OK || { fail KO; exit 1; }
+    #{ cd $DATA; $SIMULATOR -v 2 -V 1 -l $DATA/sim.log -s PROVISIONING -r $RRED/080B -t $RRED/$RPRO provisioning.eth; } && pass OK || { fail KO; exit 1; }
+    $SIMULATOR -v 2 -V 1 -l $DATA/sim.log -s PROVISIONING -r $RRED/080B -t $RRED/$RPRO -p $TCPPORT &
+    pid=$!
+    pids="$pids $pid"
+    sleep 1
+    ps | awk '$1 == '$pid' || $2 == '$pid' {exit 1}' && { fail KO; exit 1; } || pass OK
+
+    launch start traffic shaping
+    $TRAFFICSHAPING start && pass OK || { fail KO; exit 1; }
 fi
 
+[ "$DAEMON" ] && while true; do sleep 1000; done
 title press any key to stop
 read a