Commit e8e952b8 authored by Andreas Schmidt's avatar Andreas Schmidt
Browse files

Update Docker files.

parent e38e26d6
Loading
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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:
+8 −5
Original line number Diff line number Diff line
@@ -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
@@ -15,8 +19,7 @@ WORKDIR /prrt

RUN cmake . \
    && make
ENV PATH /prrt/bin:$PATH
WORKDIR /prrt/bin
ENV PATH /prrt:$PATH

VOLUME /output

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"]
+45 −3
Original line number Diff line number Diff line
@@ -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 ]]
@@ -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
@@ -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