Network multi

Package: inet.examples.sctp.multihomed
File: examples/sctp/multihomed/multi.ned

(no description)

StandardHost StandardHost Router Router Router Router

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Parameters:

Name Type Default value Description
testTimeout double 0s
testing bool false

Properties:

Name Value Description
isNetwork

Unassigned submodule parameters:

Name Type Default value Description
cli1.sctp.numGapReports int 3

====== SCTP Association Parameters =================================

cli1.sctp.rtoInitial double 3s
cli1.sctp.rtoMin double 1s
cli1.sctp.rtoMax double 60s
cli1.sctp.rtoAlpha double 0.125
cli1.sctp.rtoBeta double 0.250
cli1.sctp.maxBurst int 4
cli1.sctp.assocMaxRetrans int 10
cli1.sctp.pathMaxRetrans int 5
cli1.sctp.maxInitRetrans int 8
cli1.sctp.sackPeriod double 200ms
cli1.sctp.sackFrequency int 2
cli1.sctp.reactivatePrimaryPath bool false
cli1.sctp.sendQueueLimit int 0
cli1.sctp.validCookieLifetime double 10s

====== Testing =====================================================

cli1.sctp.enableHeartbeats bool true

====== Heartbeats ==================================================

cli1.sctp.hbInterval double 30s
cli1.sctp.nagleEnabled bool true

====== Nagle Algorithm =============================================

cli1.sctp.naglePoint int 1468
cli1.sctp.fastRecoverySupported bool true

====== Congestion Control ==========================================

cli1.sctp.sctpAlgorithmClass string "SCTPAlg"
cli1.sctp.ccModule int 0

RFC4960=0

cli1.sctp.ssModule int 0

ROUND_ROBIN=0

cli1.sctp.arwnd int 65535
cli1.sctp.swsLimit int 3000

Limit for SWS

cli1.sctp.udpEncapsEnabled bool false
cli1.pingApp.destAddr string ""

destination IP or IPv6 address

cli1.pingApp.srcAddr string ""

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

cli1.pingApp.packetSize double 56B

of ping payload, in bytes

cli1.pingApp.interval double 1s

time to wait between pings (can be random)

cli1.pingApp.hopLimit double 32

TTL or hopLimit for IP packets

cli1.pingApp.count double 0

stop after count ping requests, 0 means continuously

cli1.pingApp.startTime double uniform(0s,this.interval)

send first ping at startTime

cli1.pingApp.stopTime double 0s

send no pings after stopTime, 0 means forever

cli1.pingApp.printPing bool true

dump on stdout

cli1.networkLayer.ip.procDelay double 0s
cli1.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

cli1.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

cli1.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

cli1.ppp.ppp.mtu int 4470
cli1.eth.mac.promiscuous bool false

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

cli1.eth.mac.address string "auto"

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

cli1.eth.mac.txrate double 100Mbps

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

cli1.eth.mac.duplexEnabled bool true

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).

cli1.eth.mac.mtu int 1500
cli1.ext.filterString string
cli1.ext.device string
cli1.ext.mtu int 1500
cli1.tcpdump.dumpFile string ""
cli1.tcpdump.threadEnable bool false
cli1.tcpdump.snaplen int 65535
cli1.tcpdump.verbosity int 0
srv1.sctp.numGapReports int 3

====== SCTP Association Parameters =================================

srv1.sctp.rtoInitial double 3s
srv1.sctp.rtoMin double 1s
srv1.sctp.rtoMax double 60s
srv1.sctp.rtoAlpha double 0.125
srv1.sctp.rtoBeta double 0.250
srv1.sctp.maxBurst int 4
srv1.sctp.assocMaxRetrans int 10
srv1.sctp.pathMaxRetrans int 5
srv1.sctp.maxInitRetrans int 8
srv1.sctp.sackPeriod double 200ms
srv1.sctp.sackFrequency int 2
srv1.sctp.reactivatePrimaryPath bool false
srv1.sctp.sendQueueLimit int 0
srv1.sctp.validCookieLifetime double 10s

====== Testing =====================================================

srv1.sctp.enableHeartbeats bool true

====== Heartbeats ==================================================

srv1.sctp.hbInterval double 30s
srv1.sctp.nagleEnabled bool true

====== Nagle Algorithm =============================================

srv1.sctp.naglePoint int 1468
srv1.sctp.fastRecoverySupported bool true

====== Congestion Control ==========================================

srv1.sctp.sctpAlgorithmClass string "SCTPAlg"
srv1.sctp.ccModule int 0

RFC4960=0

srv1.sctp.ssModule int 0

ROUND_ROBIN=0

srv1.sctp.arwnd int 65535
srv1.sctp.swsLimit int 3000

Limit for SWS

srv1.sctp.udpEncapsEnabled bool false
srv1.pingApp.destAddr string ""

destination IP or IPv6 address

srv1.pingApp.srcAddr string ""

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

srv1.pingApp.packetSize double 56B

of ping payload, in bytes

srv1.pingApp.interval double 1s

time to wait between pings (can be random)

srv1.pingApp.hopLimit double 32

TTL or hopLimit for IP packets

srv1.pingApp.count double 0

stop after count ping requests, 0 means continuously

srv1.pingApp.startTime double uniform(0s,this.interval)

send first ping at startTime

srv1.pingApp.stopTime double 0s

send no pings after stopTime, 0 means forever

srv1.pingApp.printPing bool true

dump on stdout

srv1.networkLayer.ip.procDelay double 0s
srv1.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

srv1.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

srv1.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

srv1.ppp.ppp.mtu int 4470
srv1.eth.mac.promiscuous bool false

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

srv1.eth.mac.address string "auto"

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

srv1.eth.mac.txrate double 100Mbps

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

srv1.eth.mac.duplexEnabled bool true

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).

srv1.eth.mac.mtu int 1500
srv1.ext.filterString string
srv1.ext.device string
srv1.ext.mtu int 1500
srv1.tcpdump.dumpFile string ""
srv1.tcpdump.threadEnable bool false
srv1.tcpdump.snaplen int 65535
srv1.tcpdump.verbosity int 0
router1.networkLayer.ip.procDelay double 0s
router1.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

router1.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

router1.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

router1.ppp.ppp.mtu int 4470
router1.eth.mac.promiscuous bool false

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

router1.eth.mac.address string "auto"

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

router1.eth.mac.txrate double 100Mbps

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

router1.eth.mac.duplexEnabled bool true

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).

router1.eth.mac.mtu int 1500
router2.networkLayer.ip.procDelay double 0s
router2.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

router2.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

router2.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

router2.ppp.ppp.mtu int 4470
router2.eth.mac.promiscuous bool false

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

router2.eth.mac.address string "auto"

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

router2.eth.mac.txrate double 100Mbps

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

router2.eth.mac.duplexEnabled bool true

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).

router2.eth.mac.mtu int 1500
router3.networkLayer.ip.procDelay double 0s
router3.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

router3.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

router3.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

router3.ppp.ppp.mtu int 4470
router3.eth.mac.promiscuous bool false

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

router3.eth.mac.address string "auto"

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

router3.eth.mac.txrate double 100Mbps

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

router3.eth.mac.duplexEnabled bool true

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).

router3.eth.mac.mtu int 1500
router4.networkLayer.ip.procDelay double 0s
router4.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

router4.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

router4.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

router4.ppp.ppp.mtu int 4470
router4.eth.mac.promiscuous bool false

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

router4.eth.mac.address string "auto"

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

router4.eth.mac.txrate double 100Mbps

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

router4.eth.mac.duplexEnabled bool true

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).

router4.eth.mac.mtu int 1500

Source code:

network multi
{
    parameters:
        double testTimeout @unit(s) = default(0s);
        bool testing = default(false);
    types:
        channel ppp1line extends DatarateChannel
        {
            delay = 10ms;
            datarate = 1 Mbps;
        }
        channel ppp2line extends DatarateChannel
        {
            delay = 0ms;
            datarate = 1 Gbps;
        }
    submodules:
        cli1: StandardHost {
            parameters:
                IPForward = false;
                routingFile = "cli1.mrt";
                @display("p=61,142;i=device/laptop");
            gates:
                pppg[1];
        }
        srv1: StandardHost {
            parameters:
                IPForward = false;
                routingFile = "srv1.mrt";
                @display("p=426,135;i=device/server2");
            gates:
                pppg[1];

        }
        router1: Router {
            parameters:
                routingFile = "router1.mrt";
                @display("p=p=188,77;i=abstract/router");
            gates:
                pppg[2];
        }
        router2: Router {
            parameters:
                routingFile = "router2.mrt";
                @display("p=323,75;i=abstract/router");
            gates:
                pppg[2];
        }
        router3: Router {
            parameters:
                routingFile = "router3.mrt";
                @display("p=188,192;i=abstract/router");
            gates:
                pppg[2];
        }
        router4: Router {
            parameters:
                routingFile = "router4.mrt";
                @display("p=328,188;i=abstract/router");
            gates:
                pppg[2];
        }
    connections:
        cli1.pppg++ <--> ppp2line <--> router1.pppg++;
        router1.pppg++ <--> ppp1line <--> router2.pppg++;
        router2.pppg++ <--> ppp2line <--> srv1.pppg++;
        cli1.pppg++ <--> ppp2line <--> router3.pppg++;
        router3.pppg++ <--> ppp1line <--> router4.pppg++;
        router4.pppg++ <--> ppp2line <--> srv1.pppg++;
}