[General] network = WebserverShowcase scheduler-class = "inet::RealTimeScheduler" sim-time-limit = 10s # set number of clients *.numClients = 3 # unshare user and network namespaces unshare-namespaces = true # disable loopback interfaces *.*.numLoInterfaces = 0 # turn off unused protocols *.*.hasTcp = false *.*.hasUdp = false *.*.hasIpv4 = false *.*.hasIpv6 = false # disable ethernet protocols *.client[*].ethernet.typename = "" *.server.ethernet.typename = "" # configure network interfaces *.*.eth[0].bitrate = 1Gbps *.*.eth[0].mac.duplexMode = true *.*.eth[0].mac.fcsMode = "computed" # configure server network interface *.server.eth[0].typename = "ExtUpperEthernetInterface" *.server.eth[0].copyConfiguration = "copyFromExt" *.server.eth[0].device = "tap0" *.server.eth[0].namespace = "server" # configure client network interfaces *.client[*].eth[0].typename = "ExtUpperEthernetInterface" *.client[*].eth[0].copyConfiguration = "copyFromExt" *.client[*].eth[0].device = "tap0" *.client[*].eth[0].namespace = nodeFullName() # configure server external environment *.server.hasEnvironment = true *.server.environment.namespace = "server" *.server.environment.setupCommand = "ip tuntap add mode tap dev tap0 && " + "ip link set lo up && " + "ip link set dev tap0 up && " + "ip addr add 192.168.0.1/24 dev tap0" *.server.environment.teardownCommand = "ip link set dev tap0 down && " + "ip tuntap del mode tap dev tap0 ; " + "rm -f WebserverShowcase.ned.*" # configure client external environment *.client[*].hasEnvironment = true *.client[*].environment.namespace = nodeFullName() *.client[*].environment.setupCommand = "ip tuntap add mode tap dev tap0 && " + "ip link set lo up && " + "ip link set dev tap0 up && " + "ip addr add 192.168.0.1" + string(nodeIndex()) + "/24 dev tap0" *.client[*].environment.teardownCommand = "ip link set dev tap0 down && " + "ip tuntap del mode tap dev tap0" # configure webserver application *.server.numApps = 1 *.server.app[0].typename = "ExternalApp" *.server.app[0].process.namespace = "server" *.server.app[0].process.command = "python3 -m http.server 8080" # configure wget application *.client[*].numApps = 1 *.client[*].app[0].typename = "ExternalApp" *.client[*].app[0].process.namespace = nodeFullName() *.client[*].app[0].process.command = "wget -o /dev/stdout http://192.168.0.1:8080/WebserverShowcase.ned" *.client[*].app[0].process.startTime = 0.5s *.client[*].app[0].process.onExit = "relaunch" *.client[*].app[0].process.relaunchDelay = 0.1s *.client[*].app[0].process.printStdout = true