[General]
network = extserver

warnings = true
sim-time-limit = 60.0s

scheduler-class = "inet::cSocketRTScheduler" # needed for externalInterface
cmdenv-express-mode = true

cmdenv-event-banners = true   # for normal (non-express) mode only

tkenv-plugin-path = ../../../etc/plugins

#
# Network specific settings
#

# set inet_addr, Mask, MTU ( = 1500), default route (=router)
**.client.routingTable.routingFile = "client.mrt"
**.router.routingTable.routingFile = "router.mrt"
**.server.routingTable.routingFile = "server.mrt"

# ip settings
**.ip.procDelay = 0s
**.forwarding = false

# ARP settings
**.arp.retryTimeout = 1s
**.arp.retryCount = 3
**.arp.cacheTimeout = 100s

# NIC settings
**.ppp[*].queueType = "DropTailQueue"
**.ppp[*].queue.frameCapacity = 100    # packets

# tcp apps - client
**.client.numTcpApps = 1
**.client.tcpApp[*].typename = "TCPSessionApp"  # FTP
**.client.tcpApp[*].sendBytes = 100MiB
**.client.tcpApp[*].active = true
**.client.tcpApp[*].localAddress = "172.0.0.1"
**.client.tcpApp[*].localPort = 10020
**.client.tcpApp[*].connectAddress = "192.168.0.111" # 192.168.0.111 = external server
**.client.tcpApp[*].connectPort = 10021
**.client.tcpApp[*].tOpen = 0s
**.client.tcpApp[*].tSend = 0s
**.client.tcpApp[*].tClose = 0s
**.client.tcpApp[*].sendScript = ""

# tcp apps - server
**.server.numTcpApps = 1
**.server.tcpApp[*].typename = "TCPSinkApp"
**.server.tcpApp[*].localAddress = "172.0.1.111"
**.server.tcpApp[*].localPort = 10021

# tcp settings
**.tcp.advertisedWindow = 65535                      # in bytes, corresponds with the maximal receiver buffer capacity (Note: normally, NIC queues should be at least this size)
**.tcp.delayedAcksEnabled = false                    # delayed ACK algorithm (RFC 1122) enabled/disabled
**.tcp.nagleEnabled = true                           # Nagle's algorithm (RFC 896) enabled/disabled
**.tcp.limitedTransmitEnabled = false                # Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl)
**.tcp.increasedIWEnabled = false                    # Increased Initial Window (RFC 3390) enabled/disabled
**.tcp.sackSupport = true                            # Selective Acknowledgment (RFC 2018, 2883, 3517) support (header option) (SACK will be enabled for a connection if both endpoints support it)
**.tcp.windowScalingSupport = false                  # Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it)
**.tcp.timestampSupport = false                      # Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it)
**.tcp.mss = 1452                                    # Maximum Segment Size (RFC 793) (header option)
**.tcp.tcpAlgorithmClass = "TCPReno"                 # TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl/DumbTCP
**.tcp.recordStats = true                            # recording of seqNum etc. into output vectors enabled/disabled

# pcapRecorder settings
**.numPcapRecorders = 1
**.client.pcapRecorder[0].pcapFile = "client.pcap"
**.server.pcapRecorder[0].pcapFile = "server.pcap"

# extInt
**.ext[0].filterString = "ip and dst host 172.0"     # 172.0.0.1 = client  172.0.1.111 = server
**.ext[0].device = "eth0"
**.ext[0].mtu = 1500B

#
# Config specific settings
#

[Config Uplink_Traffic]
description = "Hybrid Network - Uplink Traffic"
# tcp apps - client
**.client.numTcpApps = 1
**.client.tcpApp[*].typename = "TCPSessionApp"
**.client.tcpApp[*].sendBytes = 100MiB
**.client.tcpApp[*].localAddress = "172.0.0.1"
**.client.tcpApp[*].localPort = 10020
# tcp apps - server (off)
**.server.numTcpApps = 0

[Config Downlink_Traffic]
description = "Hybrid Network - Downlink Traffic"
# tcp apps - client (off)
**.client.numTcpApps = 0
# tcp apps - server
**.server.numTcpApps = 1
**.server.tcpApp[*].typename = "TCPSinkApp"
**.server.tcpApp[*].localAddress = "172.0.1.111"
**.server.tcpApp[*].localPort = 10021

[Config Uplink_and_Downlink_Traffic]
description = "Hybrid Network - Uplink and Downlink Traffic"
# tcp apps - client
**.client.numTcpApps = 1
**.client.tcpApp[*].typename = "TCPSessionApp"
**.client.tcpApp[*].sendBytes = 100MiB
**.client.tcpApp[*].connectAddress = "192.168.0.111" # 192.168.0.111 = external server
**.client.tcpApp[*].localPort = 10020
# tcp apps - server
**.server.numTcpApps = 1
**.server.tcpApp[*].typename = "TCPSinkApp"
**.server.tcpApp[*].localAddress = "172.0.1.111"
**.server.tcpApp[*].localPort = 10021
