[General]

network = VoIPStreamLargeNet

warnings = true
num-rngs = 8
rng-class = "cMersenneTwister"
sim-time-limit = 100s
total-stack = 2MiB # increase if necessary

cmdenv-express-mode = true

# tkenv-default-run=1

#[Config config1]
# udp app
**.voipClient.numUdpApps = 1
**.voipClient.udpApp[0].typename = "VoIPStreamReceiver"
**.voipClient.udpApp[0].localPort = 1000
**.voipClient.udpApp[0].resultFile = "results/results.wav"

**.voipServer.numUdpApps = 1
**.voipServer.udpApp[0].typename = "VoIPStreamSender"
**.voipServer.udpApp[0].packetTimeLength = 20ms
**.voipServer.udpApp[0].voipHeaderSize = 4B
**.voipServer.udpApp[0].samplingRate = 8000Hz
**.voipServer.udpApp[0].compressedBitRate = 40000bps
**.voipServer.udpApp[0].voipSilenceThreshold = 100
**.voipServer.udpApp[0].repeatCount = 2
**.voipServer.udpApp[0].traceFileName = "results/srctrace.wav"
# **.voipServer.udpApp[0].filemode = "random"

#**.voipServer.udpApp[0].soundFile = "../soundFiles/Beatify_Dabei_cut.mp3"
#**.voipServer.udpApp[0].soundFile = "../soundFiles/Beatify_Ria_cut.mp3"
**.voipServer.udpApp[0].soundFile = "../soundFiles/husten.mp3"
#**.voipServer.udpApp[0].soundFile = "../soundFiles/husten.wav"
#**.voipServer.udpApp[0].soundFile = "../soundFiles/langes blabla.wav"
#**.voipServer.udpApp[0].soundFile = "../soundFiles/ria_44100_stereo.mp3" #OK
#**.voipServer.udpApp[0].soundFile = "../soundFiles/ria_8000_mono.mp3" #BUG extra 576 sample at the end
#**.voipServer.udpApp[0].soundFile = "../soundFiles/ria_8000_stereo.mp3"  #BUG: sinus noise at 0.15-0.22s, extra 576 sample at the end
#**.voipServer.udpApp[0].soundFile = "../soundFiles/steuern.wav"
#**.voipServer.udpApp[0].soundFile = "../soundFiles/test.wav"


**.voipServer.udpApp[0].localPort = 1000
**.voipServer.udpApp[0].destPort = 1000
**.voipServer.udpApp[0].srcAddress = ""
**.voipServer.udpApp[0].destAddress = "voipClient"

# tcp apps (off)

**.client.numTcpApps = 0
**.client.tcpAppType = "TCPSessionApp"


#**.voipServer.tcpAppType="TCPSinkApp"
**.voipServer.numTcpApps = 0
**.voipServer.tcpAppType = "TCPEchoApp"

# tcp settings
**.tcp.mss = 1024
**.tcp.advertisedWindow = 14336  # 14*mss
#**.tcp.sendQueueClass = "TCPVirtualDataSendQueue"
#**.tcp.receiveQueueClass = "TCPVirtualDataRcvQueue"
**.tcp.tcpAlgorithmClass = "TCPReno"
**.tcp.recordStats = true

# ip settings
**.ip.procDelay = 10us
**.forwarding = false  # Router's is hardwired "true"

# hook names
**.qosBehaviorClass = "EnqueueWithoutQoS"
**.ip.*.procDelay = 0

# ARP configuration
**.arp.retryTimeout = 1s
**.arp.retryCount = 3
**.arp.cacheTimeout = 100s
**.networkLayer.proxyARP = true  # Host's is hardwired "false"

# Ethernet NIC configuration
**.eth[*].encap.writeScalars = false
**.eth[*].mac.promiscuous = false
**.eth[*].mac.address = "auto"
**.eth[*].mac.duplexMode = true
**.eth[*].mac.writeScalars = false

# Queues
**.ppp[*].queueType = "DropTailQueue"
**.ppp[*].queue.frameCapacity = 10

**.eth[*].queueType = "DropTailQueue" # in routers
**.eth[*].queue.dataQueue.frameCapacity = 10  # in routers

# nam trace
**.nam.logfile = "trace.nam"
**.nam.prolog = ""
**.namid = -1  # auto

# Ethernet switch
**.switch*.relayUnitType = "MACRelayUnit"
**.relayUnit.addressTableSize = 100
**.relayUnit.agingTime = 120s
**.relayUnit.bufferSize = 1048576B  # 1Mb
**.relayUnit.highWatermark = 524288B  # 512K
**.relayUnit.pauseUnits = 300  # pause for 300*512 bit (19200 byte) time
**.relayUnit.addressTableFile = ""
**.relayUnit.numCPUs = 2
**.relayUnit.processingTime = 2us
**.relayUnit.writeScalars = true

**.mac[*].writeScalars = true
**.mac[*].address = "auto"
**.mac[*].maxQueueSize = 50
**.mac[*].promiscuous = false
**.mac[*].duplexMode = true

VoIPStreamLargeNet.n = 8   # number of switches on backbone

VoIPStreamLargeNet.*s = 1   # uncomment for testing: one LAN of each type on each switch
VoIPStreamLargeNet.*m = 1   # uncomment for testing: one LAN of each type on each switch
VoIPStreamLargeNet.*l = 1   # uncomment for testing: one LAN of each type on each switch

#VoIPStreamLargeNet.bbs=6  # number of small LANs on backbone switches
#VoIPStreamLargeNet.bbm=15 # number of medium LANs on backbone switches
#VoIPStreamLargeNet.bbl=8  # number of large LANs on backbone switches

#VoIPStreamLargeNet.?s=4   # sets as,bs,cs: number of small LANs on switches A,B,C,D
#VoIPStreamLargeNet.?m=8   # sets am,bm,cm: number of medium LANs on switches A,B,C,D
#VoIPStreamLargeNet.?l=3   # sets al,bl,cl: number of large LANs on switches A,B,C,D

#VoIPStreamLargeNet.*.n=12 # number of hosts connected to a switch in each LAN
#VoIPStreamLargeNet.*.n = 4 # number of hosts connected to a switch in each LAN
#VoIPStreamLargeNet.*.h = 4 # number of hosts connected to a hub in each LAN
#VoIPStreamLargeNet.*.b = 4 # number of hosts connected to a bus in each LAN
VoIPStreamLargeNet.*.n = 8 # number of hosts connected to a switch in each LAN
VoIPStreamLargeNet.*.h = 5 # number of hosts connected to a hub in each LAN
VoIPStreamLargeNet.*.b = 7 # number of hosts connected to a bus in each LAN

VoIPStreamLargeNet.**.cli.reqLength = intuniform(50,1400)*1B
VoIPStreamLargeNet.**.cli.respLength = truncnormal(5000B,5000B)
VoIPStreamLargeNet.**.cli.sendInterval = exponential(30s)

VoIPStreamLargeNet.*.*host[0].cli.destAddress = "serverA"
VoIPStreamLargeNet.*.*host[1].cli.destAddress = "serverB"
VoIPStreamLargeNet.*.*host[2].cli.destAddress = "serverB"
VoIPStreamLargeNet.*.*host[3].cli.destAddress = "serverC"
VoIPStreamLargeNet.*.*host[4].cli.destAddress = "serverC"
VoIPStreamLargeNet.*.*host[*].cli.destAddress = "serverD"

VoIPStreamLargeNet.server*.cli.destAddress = ""

VoIPStreamLargeNet.*.switch.relayUnit.numCPUs = 1
VoIPStreamLargeNet.switch*.relayUnit.numCPUs = 2
