#!/bin/bash # Get the IP addresses Daddr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' oram_D) Eaddr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' oram_E) # The ORAM size size=26 iters=128 if [ "$1" != "" ]; then size="$1" fi if [ "$2" != "" ]; then iters="$2" fi echo ===== Running oram $size $iters date "+===== Start %s %F %T" # Run, saving the output savefileC=$$.C.out savefileD=$$.D.out savefileE=$$.E.out docker exec -w /root/oram oram_C bash -c "perl -lp -i -e 's/addrBits: (\d+)/addrBits: '$size'/; s/iters: (\d+)/iters: '$iters'/' config/config.yaml" docker exec -w /root/oram oram_D bash -c "perl -lp -i -e 's/addrBits: (\d+)/addrBits: '$size'/; s/iters: (\d+)/iters: '$iters'/' config/config.yaml" docker exec -w /root/oram oram_E bash -c "perl -lp -i -e 's/addrBits: (\d+)/addrBits: '$size'/; s/iters: (\d+)/iters: '$iters'/' config/config.yaml" docker exec -w /root/oram oram_E bash -c "$ORAM_NUMA_E stdbuf -o 0 java -cp bin:lib/* ui/CLI -protocol pirrtv -debbie_ip $Daddr -eddie_ip $Eaddr eddie > $savefileE 2>&1" & sleep 2 docker exec -w /root/oram oram_D bash -c "$ORAM_NUMA_D stdbuf -o 0 java -cp bin:lib/* ui/CLI -protocol pirrtv -debbie_ip $Daddr -eddie_ip $Eaddr debbie > $savefileD 2>&1" & sleep 2 docker exec -w /root/oram oram_C bash -c "$ORAM_NUMA_C stdbuf -o 0 java -cp bin:lib/* ui/CLI -protocol pirrtv -debbie_ip $Daddr -eddie_ip $Eaddr charlie > $savefileC 2>&1" & wait echo ===== C output docker exec -w /root/oram oram_C cat $savefileC docker exec -w /root/oram oram_C rm -f $savefileC echo ===== D output docker exec -w /root/oram oram_D cat $savefileD docker exec -w /root/oram oram_D rm -f $savefileD echo ===== E output docker exec -w /root/oram oram_E cat $savefileE docker exec -w /root/oram oram_E rm -f $savefileE date "+===== End %s %F %T"