#!/bin/bash echo "Setting up routes..." # By default, docker containers don't compute UDP / TCP checksums. # When packets run through ns3 however, the receiving endpoint requires valid checksums. # This command makes sure that the endpoints set the checksum on outgoing packets. ethtool -K eth0 tx off # this relies on the IPv4 address being first in the "hostname -I" output IP=$(hostname -I | cut -f1 -d" ") GATEWAY="${IP%.*}.2" echo "Gateway is $GATEWAY" UNNEEDED_ROUTE="${IP%.*}.0" echo "Unneeded route is $UNNEEDED_ROUTE" echo "Endpoint's IPv4 address is $IP" route add -net 193.167.0.0 netmask 255.255.0.0 gw $GATEWAY echo "ROUTE ADDED" # delete unused route route del -net $UNNEEDED_ROUTE netmask 255.255.255.0 echo "ROUTE DELETED" # TODO figure out if we need ipv6 configs # # this relies on the IPv6 address being second in the "hostname -I" output # IP=$(hostname -I | cut -f2 -d" ") # GATEWAY="${IP%:*}:2" # UNNEEDED_ROUTE="${IP%:*}:" # echo "Endpoint's IPv6 address is $IP" # ip -d route add fd00:cafe:cafe::/48 via $GATEWAY # # delete unused route # ip -d route del $UNNEEDED_ROUTE/64 # create the /logs and the /logs/qlog directory mkdir -p /logs/qlog