Compound Module FlatNet

File: Examples/INET/FlatNet/FlatNet.ned

(no description)

configurator: FlatNetworkConfigurator rte: Router cli: StandardHost srv: StandardHost

Usage diagram:

The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.

Contains the following modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

FlatNetworkConfigurator

Configures IP addresses and routing tables for a "flat" network, "flat" meaning that all hosts and routers will have the same network address and will only differ in the host part.

Router

IP router.

StandardHost

IP host with TCP, UDP layers and applications.

Contains the following channels:

ethernetline (no description)
ethernetline (no description)
ethernetline (no description)
ethernetline (no description)
ethernetline (no description)
fiberline (no description)
fiberline (no description)
fiberline (no description)
fiberline (no description)
fiberline (no description)

Networks:

flatNet (no description)

Unassigned submodule parameters:

Name Type Description
rte[*].routingFile string
rte[*].networkLayer.proxyARP bool
rte[*].networkLayer.ip.procDelay numeric const
rte[*].networkLayer.arp.retryTimeout numeric

number seconds ARP waits between retries to resolve an IP address

rte[*].networkLayer.arp.retryCount numeric

number of times ARP will attempt to resolve an IP address

rte[*].networkLayer.arp.cacheTimeout numeric

number seconds unused entries in the cache will time out

rte[*].ppp[*].queueType string
rte[*].eth[*].queueType string
rte[*].eth[*].mac.promiscuous bool

if true, all packets are received, otherwise only the ones with matching destination MAC address

rte[*].eth[*].mac.address string

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

rte[*].eth[*].mac.txrate numeric

maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured.

rte[*].eth[*].mac.duplexEnabled bool

whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection).

rte[*].eth[*].mac.writeScalars bool

enable/disable recording statistics in omnetpp.sca

rte[*].eth[*].encap.writeScalars bool

enable/disable recording statistics in omnetpp.sca

cli[*].numTcpApps numeric const
cli[*].numUdpApps numeric const
cli[*].tcpAppType string
cli[*].udpAppType string
cli[*].IPForward bool
cli[*].namid numeric const
cli[*].routingFile string
cli[*].tcp.mss numeric const

maximum segment size

cli[*].tcp.advertisedWindow numeric const

in bytes (Note: normally, NIC queues should be at least this size)

cli[*].tcp.tcpAlgorithmClass string

TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP

cli[*].tcp.sendQueueClass string

TCPVirtualDataSendQueue/TCPMsgBasedSendQueue

cli[*].tcp.receiveQueueClass string

TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue

cli[*].tcp.recordStats bool

recording seqNum etc. into output vectors on/off

cli[*].pingApp.destAddr string

destination IP or IPv6 address

cli[*].pingApp.srcAddr string

source IP or IPv6 address (useful with multi-homing)

cli[*].pingApp.packetSize numeric const

of ping payload, in bytes

cli[*].pingApp.interval numeric

time to wait between pings (can be random)

cli[*].pingApp.hopLimit numeric const

TTL or hopLimit for IP packets

cli[*].pingApp.count numeric const

stop after count ping requests, 0 means continuously

cli[*].pingApp.startTime numeric const

send first ping at startTime

cli[*].pingApp.stopTime numeric const

send no pings after stopTime, 0 means forever

cli[*].pingApp.printPing bool

dump on stdout

cli[*].networkLayer.ip.procDelay numeric const
cli[*].networkLayer.arp.retryTimeout numeric

number seconds ARP waits between retries to resolve an IP address

cli[*].networkLayer.arp.retryCount numeric

number of times ARP will attempt to resolve an IP address

cli[*].networkLayer.arp.cacheTimeout numeric

number seconds unused entries in the cache will time out

cli[*].ppp[*].queueType string
cli[*].eth[*].queueType string
cli[*].eth[*].mac.promiscuous bool

if true, all packets are received, otherwise only the ones with matching destination MAC address

cli[*].eth[*].mac.address string

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

cli[*].eth[*].mac.txrate numeric

maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured.

cli[*].eth[*].mac.duplexEnabled bool

whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection).

cli[*].eth[*].mac.writeScalars bool

enable/disable recording statistics in omnetpp.sca

cli[*].eth[*].encap.writeScalars bool

enable/disable recording statistics in omnetpp.sca

srv.numTcpApps numeric const
srv.numUdpApps numeric const
srv.tcpAppType string
srv.udpAppType string
srv.IPForward bool
srv.namid numeric const
srv.routingFile string
srv.tcp.mss numeric const

maximum segment size

srv.tcp.advertisedWindow numeric const

in bytes (Note: normally, NIC queues should be at least this size)

srv.tcp.tcpAlgorithmClass string

TCPTahoe/TCPReno/TCPNoCongestionControl/DumbTCP

srv.tcp.sendQueueClass string

TCPVirtualDataSendQueue/TCPMsgBasedSendQueue

srv.tcp.receiveQueueClass string

TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue

srv.tcp.recordStats bool

recording seqNum etc. into output vectors on/off

srv.pingApp.destAddr string

destination IP or IPv6 address

srv.pingApp.srcAddr string

source IP or IPv6 address (useful with multi-homing)

srv.pingApp.packetSize numeric const

of ping payload, in bytes

srv.pingApp.interval numeric

time to wait between pings (can be random)

srv.pingApp.hopLimit numeric const

TTL or hopLimit for IP packets

srv.pingApp.count numeric const

stop after count ping requests, 0 means continuously

srv.pingApp.startTime numeric const

send first ping at startTime

srv.pingApp.stopTime numeric const

send no pings after stopTime, 0 means forever

srv.pingApp.printPing bool

dump on stdout

srv.networkLayer.ip.procDelay numeric const
srv.networkLayer.arp.retryTimeout numeric

number seconds ARP waits between retries to resolve an IP address

srv.networkLayer.arp.retryCount numeric

number of times ARP will attempt to resolve an IP address

srv.networkLayer.arp.cacheTimeout numeric

number seconds unused entries in the cache will time out

srv.ppp[*].queueType string
srv.eth[*].queueType string
srv.eth[*].mac.promiscuous bool

if true, all packets are received, otherwise only the ones with matching destination MAC address

srv.eth[*].mac.address string

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

srv.eth[*].mac.txrate numeric

maximum data rate supported by this station (bit/s); actually chosen speed may be lower due to auto- configuration. 0 means fully auto-configured.

srv.eth[*].mac.duplexEnabled bool

whether duplex mode can be enabled or not; whether MAC will actually use duplex mode depends on the result of the auto-configuration process (duplex is only possible with DTE-to-DTE connection).

srv.eth[*].mac.writeScalars bool

enable/disable recording statistics in omnetpp.sca

srv.eth[*].encap.writeScalars bool

enable/disable recording statistics in omnetpp.sca

Source code:

module FlatNet
    submodules:
        configurator: FlatNetworkConfigurator;
            parameters:
                moduleTypes = "Router StandardHost",
                nonIPModuleTypes = "",
                networkAddress = "145.236.0.0",
                netmask = "255.255.0.0";
            display: "i=block/cogwheel";
        rte: Router[57];
            display: "i=misc/node_vs,green4";
        cli: StandardHost[2];
            display: "i=device/laptop_s";
        srv: StandardHost;
            display: "i=device/server_s";
    connections nocheck:
        cli[0].out++ --> ethernetline --> rte[50].in++;
        cli[0].in++ <-- ethernetline <-- rte[50].out++;
        cli[1].out++ --> ethernetline --> rte[8].in++;
        cli[1].in++ <-- ethernetline <-- rte[8].out++;

        srv.out++ --> fiberline --> rte[18].in++;
        srv.in++ <-- fiberline <-- rte[18].out++;

        rte[0].out++ --> fiberline --> rte[1].in++;
        rte[0].in++ <-- fiberline <-- rte[1].out++;

        rte[1].out++ --> fiberline --> rte[2].in++;
        rte[1].in++ <-- fiberline <-- rte[2].out++;

        rte[1].out++ --> fiberline --> rte[4].in++;
        rte[1].in++ <-- fiberline <-- rte[4].out++;

        rte[3].out++ --> fiberline --> rte[4].in++;
        rte[3].in++ <-- fiberline <-- rte[4].out++;

        rte[4].out++ --> fiberline --> rte[5].in++;
        rte[4].in++ <-- fiberline <-- rte[5].out++;

        rte[4].out++ --> fiberline --> rte[7].in++;
        rte[4].in++ <-- fiberline <-- rte[7].out++;

        rte[5].out++ --> fiberline --> rte[6].in++;
        rte[5].in++ <-- fiberline <-- rte[6].out++;

        rte[5].out++ --> fiberline --> rte[10].in++;
        rte[5].in++ <-- fiberline <-- rte[10].out++;

        rte[6].out++ --> fiberline --> rte[7].in++;
        rte[6].in++ <-- fiberline <-- rte[7].out++;

        rte[6].out++ --> fiberline --> rte[9].in++;
        rte[6].in++ <-- fiberline <-- rte[9].out++;

        rte[7].out++ --> fiberline --> rte[8].in++;
        rte[7].in++ <-- fiberline <-- rte[8].out++;

        rte[7].out++ --> fiberline --> rte[12].in++;
        rte[7].in++ <-- fiberline <-- rte[12].out++;

        rte[9].out++ --> fiberline --> rte[11].in++;
        rte[9].in++ <-- fiberline <-- rte[11].out++;

        rte[10].out++ --> fiberline --> rte[11].in++;
        rte[10].in++ <-- fiberline <-- rte[11].out++;

        rte[10].out++ --> fiberline --> rte[13].in++;
        rte[10].in++ <-- fiberline <-- rte[13].out++;

        rte[11].out++ --> fiberline --> rte[12].in++;
        rte[11].in++ <-- fiberline <-- rte[12].out++;

        rte[11].out++ --> fiberline --> rte[14].in++;
        rte[11].in++ <-- fiberline <-- rte[14].out++;

        rte[12].out++ --> fiberline --> rte[15].in++;
        rte[12].in++ <-- fiberline <-- rte[15].out++;

        rte[13].out++ --> fiberline --> rte[18].in++;
        rte[13].in++ <-- fiberline <-- rte[18].out++;

        rte[14].out++ --> fiberline --> rte[15].in++;
        rte[14].in++ <-- fiberline <-- rte[15].out++;

        rte[14].out++ --> fiberline --> rte[22].in++;
        rte[14].in++ <-- fiberline <-- rte[22].out++;

        rte[15].out++ --> fiberline --> rte[16].in++;
        rte[15].in++ <-- fiberline <-- rte[16].out++;

        rte[16].out++ --> fiberline --> rte[17].in++;
        rte[16].in++ <-- fiberline <-- rte[17].out++;

        rte[16].out++ --> fiberline --> rte[23].in++;
        rte[16].in++ <-- fiberline <-- rte[23].out++;

        rte[18].out++ --> fiberline --> rte[19].in++;
        rte[18].in++ <-- fiberline <-- rte[19].out++;

        rte[18].out++ --> fiberline --> rte[21].in++;
        rte[18].in++ <-- fiberline <-- rte[21].out++;

        rte[19].out++ --> fiberline --> rte[20].in++;
        rte[19].in++ <-- fiberline <-- rte[20].out++;

        rte[19].out++ --> fiberline --> rte[26].in++;
        rte[19].in++ <-- fiberline <-- rte[26].out++;

        rte[20].out++ --> fiberline --> rte[21].in++;
        rte[20].in++ <-- fiberline <-- rte[21].out++;

        rte[20].out++ --> fiberline --> rte[24].in++;
        rte[20].in++ <-- fiberline <-- rte[24].out++;

        rte[20].out++ --> fiberline --> rte[25].in++;
        rte[20].in++ <-- fiberline <-- rte[25].out++;

        rte[21].out++ --> fiberline --> rte[22].in++;
        rte[21].in++ <-- fiberline <-- rte[22].out++;

        rte[21].out++ --> fiberline --> rte[23].in++;
        rte[21].in++ <-- fiberline <-- rte[23].out++;

        rte[21].out++ --> fiberline --> rte[24].in++;
        rte[21].in++ <-- fiberline <-- rte[24].out++;

        rte[23].out++ --> fiberline --> rte[24].in++;
        rte[23].in++ <-- fiberline <-- rte[24].out++;

        rte[24].out++ --> fiberline --> rte[28].in++;
        rte[24].in++ <-- fiberline <-- rte[28].out++;

        rte[25].out++ --> fiberline --> rte[27].in++;
        rte[25].in++ <-- fiberline <-- rte[27].out++;

        rte[26].out++ --> fiberline --> rte[32].in++;
        rte[26].in++ <-- fiberline <-- rte[32].out++;

        rte[27].out++ --> fiberline --> rte[29].in++;
        rte[27].in++ <-- fiberline <-- rte[29].out++;

        rte[27].out++ --> fiberline --> rte[30].in++;
        rte[27].in++ <-- fiberline <-- rte[30].out++;

        rte[27].out++ --> fiberline --> rte[32].in++;
        rte[27].in++ <-- fiberline <-- rte[32].out++;

        rte[28].out++ --> fiberline --> rte[29].in++;
        rte[28].in++ <-- fiberline <-- rte[29].out++;

        rte[28].out++ --> fiberline --> rte[31].in++;
        rte[28].in++ <-- fiberline <-- rte[31].out++;

        rte[29].out++ --> fiberline --> rte[31].in++;
        rte[29].in++ <-- fiberline <-- rte[31].out++;

        rte[30].out++ --> fiberline --> rte[36].in++;
        rte[30].in++ <-- fiberline <-- rte[36].out++;

        rte[31].out++ --> fiberline --> rte[33].in++;
        rte[31].in++ <-- fiberline <-- rte[33].out++;

        rte[32].out++ --> fiberline --> rte[34].in++;
        rte[32].in++ <-- fiberline <-- rte[34].out++;

        rte[33].out++ --> fiberline --> rte[37].in++;
        rte[33].in++ <-- fiberline <-- rte[37].out++;

        rte[34].out++ --> fiberline --> rte[35].in++;
        rte[34].in++ <-- fiberline <-- rte[35].out++;

        rte[34].out++ --> fiberline --> rte[40].in++;
        rte[34].in++ <-- fiberline <-- rte[40].out++;

        rte[35].out++ --> fiberline --> rte[36].in++;
        rte[35].in++ <-- fiberline <-- rte[36].out++;

        rte[35].out++ --> fiberline --> rte[39].in++;
        rte[35].in++ <-- fiberline <-- rte[39].out++;

        rte[36].out++ --> fiberline --> rte[37].in++;
        rte[36].in++ <-- fiberline <-- rte[37].out++;

        rte[37].out++ --> fiberline --> rte[38].in++;
        rte[37].in++ <-- fiberline <-- rte[38].out++;

        rte[38].out++ --> fiberline --> rte[39].in++;
        rte[38].in++ <-- fiberline <-- rte[39].out++;

        rte[38].out++ --> fiberline --> rte[42].in++;
        rte[38].in++ <-- fiberline <-- rte[42].out++;

        rte[39].out++ --> fiberline --> rte[40].in++;
        rte[39].in++ <-- fiberline <-- rte[40].out++;

        rte[39].out++ --> fiberline --> rte[41].in++;
        rte[39].in++ <-- fiberline <-- rte[41].out++;

        rte[40].out++ --> fiberline --> rte[43].in++;
        rte[40].in++ <-- fiberline <-- rte[43].out++;

        rte[40].out++ --> fiberline --> rte[44].in++;
        rte[40].in++ <-- fiberline <-- rte[44].out++;

        rte[40].out++ --> fiberline --> rte[52].in++;
        rte[40].in++ <-- fiberline <-- rte[52].out++;

        rte[41].out++ --> fiberline --> rte[42].in++;
        rte[41].in++ <-- fiberline <-- rte[42].out++;

        rte[41].out++ --> fiberline --> rte[43].in++;
        rte[41].in++ <-- fiberline <-- rte[43].out++;

        rte[42].out++ --> fiberline --> rte[43].in++;
        rte[42].in++ <-- fiberline <-- rte[43].out++;

        rte[43].out++ --> fiberline --> rte[46].in++;
        rte[43].in++ <-- fiberline <-- rte[46].out++;

        rte[44].out++ --> fiberline --> rte[45].in++;
        rte[44].in++ <-- fiberline <-- rte[45].out++;

        rte[44].out++ --> fiberline --> rte[47].in++;
        rte[44].in++ <-- fiberline <-- rte[47].out++;

        rte[45].out++ --> fiberline --> rte[46].in++;
        rte[45].in++ <-- fiberline <-- rte[46].out++;

        rte[46].out++ --> fiberline --> rte[49].in++;
        rte[46].in++ <-- fiberline <-- rte[49].out++;

        rte[47].out++ --> fiberline --> rte[48].in++;
        rte[47].in++ <-- fiberline <-- rte[48].out++;

        rte[48].out++ --> fiberline --> rte[50].in++;
        rte[48].in++ <-- fiberline <-- rte[50].out++;

        rte[48].out++ --> fiberline --> rte[51].in++;
        rte[48].in++ <-- fiberline <-- rte[51].out++;

        rte[49].out++ --> fiberline --> rte[50].in++;
        rte[49].in++ <-- fiberline <-- rte[50].out++;

        rte[50].out++ --> fiberline --> rte[53].in++;
        rte[50].in++ <-- fiberline <-- rte[53].out++;

        rte[51].out++ --> fiberline --> rte[52].in++;
        rte[51].in++ <-- fiberline <-- rte[52].out++;

        rte[51].out++ --> fiberline --> rte[53].in++;
        rte[51].in++ <-- fiberline <-- rte[53].out++;

        rte[52].out++ --> fiberline --> rte[53].in++;
        rte[52].in++ <-- fiberline <-- rte[53].out++;

        rte[52].out++ --> fiberline --> rte[54].in++;
        rte[52].in++ <-- fiberline <-- rte[54].out++;

        rte[53].out++ --> fiberline --> rte[56].in++;
        rte[53].in++ <-- fiberline <-- rte[56].out++;

        rte[54].out++ --> fiberline --> rte[55].in++;
        rte[54].in++ <-- fiberline <-- rte[55].out++;

        rte[55].out++ --> fiberline --> rte[56].in++;
        rte[55].in++ <-- fiberline <-- rte[56].out++;
endmodule