Loading .gitlab-ci.yml +11 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,17 @@ build:container: - docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG - docker rmi $CI_REGISTRY_IMAGE:$DOCKER_TAG build:container_tcp: stage: build tags: - docker script: - export DOCKER_TAG=$(echo "$CI_BUILD_REF_NAME""_tcp" | sed 's#/#_#' | sed 's#^master$#latest#') - docker build -t $CI_REGISTRY_IMAGE:$DOCKER_TAG --build-arg http_proxy=http://www-proxy.uni-saarland.de:3128 -f docker/Dockerfile_tcp . - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG - docker rmi $CI_REGISTRY_IMAGE:$DOCKER_TAG test:prrt_mem: stage: test dependencies: Loading docker/Dockerfile +8 −5 Original line number Diff line number Diff line Loading @@ -2,9 +2,13 @@ FROM gcc:5 MAINTAINER Andreas Schmidt <schmidt@nt.uni-saarland.de> RUN apt-get update \ && apt-get upgrade -y \ && apt-get install -y cmake ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install --yes --force-yes \ bc \ cmake \ traceroute \ tshark COPY CMakeLists.txt /prrt/ COPY prrt /prrt/prrt Loading @@ -15,8 +19,7 @@ WORKDIR /prrt RUN cmake . \ && make ENV PATH /prrt/bin:$PATH WORKDIR /prrt/bin ENV PATH /prrt:$PATH VOLUME /output Loading docker/Dockerfile_tcp 0 → 100644 +26 −0 Original line number Diff line number Diff line FROM gcc:5 MAINTAINER Andreas Schmidt <schmidt@nt.uni-saarland.de> ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install --yes --force-yes \ bc \ cmake \ traceroute \ tshark COPY CMakeLists.txt /prrt/ COPY prrt /prrt/prrt COPY tests /prrt/tests COPY docker/entrypoint.sh / WORKDIR /prrt RUN cmake -DTCP=1 . \ && make ENV PATH /prrt:$PATH VOLUME /output ENTRYPOINT ["/entrypoint.sh"] docker/entrypoint.sh +45 −3 Original line number Diff line number Diff line Loading @@ -5,13 +5,15 @@ dev=eth0 command=$1 shift if [[ "$command" == "sender" || "$command" == "receiver" ]]; then if [[ "$command" == "sender" || "$command" == "receiver" || "$command" == "time-sender" || "$command" == "time-receiver" ]]; then : else echo "Command should be either sender or receiver." exit 0; fi TARGET="127.0.0.1" OUTPUT="/dev/null" NETEM=() PRRT=() while [[ $# -gt 0 ]] Loading @@ -19,7 +21,24 @@ do key="$1" case $key in -t|--target|-p|--port|-r|--rounds) -t|--target) if [[ "$command" == "sender" || "$command" == "time-sender" ]]; then PRRT+=("$1 $2") fi TARGET=("$2") shift shift ;; -w|--wireshark) OUTPUT=("$2") shift shift ;; -T|--threadpinning) PRRT+=("$1") shift ;; -p|--port|-r|--rounds|-s|--size|-R|--rcvbuf|-S|--sndbuf|-o|--output|-a|--appdelay) PRRT+=("$1 $2") shift shift Loading @@ -34,8 +53,31 @@ done PRRT_PARAMS="${PRRT[@]}" NETEM_PARAMS="${NETEM[@]}" echo "Starting Wireshark." tshark -i eth0 -w $OUTPUT.pcap & TSHARK_PID=$! sleep 5 start=$(date +%s.%N); echo "Checking reachability of $TARGET." until ping -c1 $TARGET &>/dev/null; sleep 1; do :; done dur=$(echo "$(date +%s.%N) - $start" | bc); printf "Reachable after %.6f seconds\n" $dur traceroute $TARGET > $OUTPUT.tr echo "Traceroute done." if [[ "$command" == "sender" || "$command" == "time-sender" ]]; then echo "Delaying sender start." else echo "Delaying receiver start." fi echo "Running PRRT with command: \"$command $PRRT_PARAMS\" and link parameters: \"$NETEM_PARAMS\"" tc qdisc add dev $dev root netem $NETEM_PARAMS /prrt/$command $PRRT_PARAMS -o /output/log.csv /prrt/$command $PRRT_PARAMS echo "Done." tc qdisc del dev $dev root kill $TSHARK_PID Loading
.gitlab-ci.yml +11 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,17 @@ build:container: - docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG - docker rmi $CI_REGISTRY_IMAGE:$DOCKER_TAG build:container_tcp: stage: build tags: - docker script: - export DOCKER_TAG=$(echo "$CI_BUILD_REF_NAME""_tcp" | sed 's#/#_#' | sed 's#^master$#latest#') - docker build -t $CI_REGISTRY_IMAGE:$DOCKER_TAG --build-arg http_proxy=http://www-proxy.uni-saarland.de:3128 -f docker/Dockerfile_tcp . - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG - docker rmi $CI_REGISTRY_IMAGE:$DOCKER_TAG test:prrt_mem: stage: test dependencies: Loading
docker/Dockerfile +8 −5 Original line number Diff line number Diff line Loading @@ -2,9 +2,13 @@ FROM gcc:5 MAINTAINER Andreas Schmidt <schmidt@nt.uni-saarland.de> RUN apt-get update \ && apt-get upgrade -y \ && apt-get install -y cmake ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install --yes --force-yes \ bc \ cmake \ traceroute \ tshark COPY CMakeLists.txt /prrt/ COPY prrt /prrt/prrt Loading @@ -15,8 +19,7 @@ WORKDIR /prrt RUN cmake . \ && make ENV PATH /prrt/bin:$PATH WORKDIR /prrt/bin ENV PATH /prrt:$PATH VOLUME /output Loading
docker/Dockerfile_tcp 0 → 100644 +26 −0 Original line number Diff line number Diff line FROM gcc:5 MAINTAINER Andreas Schmidt <schmidt@nt.uni-saarland.de> ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install --yes --force-yes \ bc \ cmake \ traceroute \ tshark COPY CMakeLists.txt /prrt/ COPY prrt /prrt/prrt COPY tests /prrt/tests COPY docker/entrypoint.sh / WORKDIR /prrt RUN cmake -DTCP=1 . \ && make ENV PATH /prrt:$PATH VOLUME /output ENTRYPOINT ["/entrypoint.sh"]
docker/entrypoint.sh +45 −3 Original line number Diff line number Diff line Loading @@ -5,13 +5,15 @@ dev=eth0 command=$1 shift if [[ "$command" == "sender" || "$command" == "receiver" ]]; then if [[ "$command" == "sender" || "$command" == "receiver" || "$command" == "time-sender" || "$command" == "time-receiver" ]]; then : else echo "Command should be either sender or receiver." exit 0; fi TARGET="127.0.0.1" OUTPUT="/dev/null" NETEM=() PRRT=() while [[ $# -gt 0 ]] Loading @@ -19,7 +21,24 @@ do key="$1" case $key in -t|--target|-p|--port|-r|--rounds) -t|--target) if [[ "$command" == "sender" || "$command" == "time-sender" ]]; then PRRT+=("$1 $2") fi TARGET=("$2") shift shift ;; -w|--wireshark) OUTPUT=("$2") shift shift ;; -T|--threadpinning) PRRT+=("$1") shift ;; -p|--port|-r|--rounds|-s|--size|-R|--rcvbuf|-S|--sndbuf|-o|--output|-a|--appdelay) PRRT+=("$1 $2") shift shift Loading @@ -34,8 +53,31 @@ done PRRT_PARAMS="${PRRT[@]}" NETEM_PARAMS="${NETEM[@]}" echo "Starting Wireshark." tshark -i eth0 -w $OUTPUT.pcap & TSHARK_PID=$! sleep 5 start=$(date +%s.%N); echo "Checking reachability of $TARGET." until ping -c1 $TARGET &>/dev/null; sleep 1; do :; done dur=$(echo "$(date +%s.%N) - $start" | bc); printf "Reachable after %.6f seconds\n" $dur traceroute $TARGET > $OUTPUT.tr echo "Traceroute done." if [[ "$command" == "sender" || "$command" == "time-sender" ]]; then echo "Delaying sender start." else echo "Delaying receiver start." fi echo "Running PRRT with command: \"$command $PRRT_PARAMS\" and link parameters: \"$NETEM_PARAMS\"" tc qdisc add dev $dev root netem $NETEM_PARAMS /prrt/$command $PRRT_PARAMS -o /output/log.csv /prrt/$command $PRRT_PARAMS echo "Done." tc qdisc del dev $dev root kill $TSHARK_PID