Network NClients

Package: inet.examples.sctp.nclients
File: examples/sctp/nclients/NClients.ned

(no description)

ChannelInstaller FlatNetworkConfigurator NAMTrace Router Router Router StandardHost StandardHost

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
n int

Properties:

Name Value Description
isNetwork

Unassigned submodule parameters:

Name Type Default value Description
configurator.networkAddress string "192.168.0.0"

network part of the address (see netmask parameter)

configurator.netmask string "255.255.0.0"

host part of addresses are autoconfigured

nam.logfile string ""

the name of the logfile ("trace.nam")

nam.prolog string ""
r1.networkLayer.ip.procDelay double 0s
r1.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

r1.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

r1.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

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

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

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

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

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

r1.eth.mac.mtu int 1500
r2.networkLayer.ip.procDelay double 0s
r2.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

r2.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

r2.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

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

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

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

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

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

r2.eth.mac.mtu int 1500
r3.networkLayer.ip.procDelay double 0s
r3.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

r3.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

r3.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

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

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

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

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

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

r3.eth.mac.mtu int 1500
cli.sctp.numGapReports int 3

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

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

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

cli.sctp.enableHeartbeats bool true

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

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

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

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

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

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

RFC4960=0

cli.sctp.ssModule int 0

ROUND_ROBIN=0

cli.sctp.arwnd int 65535
cli.sctp.swsLimit int 3000

Limit for SWS

cli.sctp.udpEncapsEnabled bool false
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 double 56B

of ping payload, in bytes

cli.pingApp.interval double 1s

time to wait between pings (can be random)

cli.pingApp.hopLimit double 32

TTL or hopLimit for IP packets

cli.pingApp.count double 0

stop after count ping requests, 0 means continuously

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

send first ping at startTime

cli.pingApp.stopTime double 0s

send no pings after stopTime, 0 means forever

cli.pingApp.printPing bool true

dump on stdout

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

number seconds ARP waits between retries to resolve an IP address

cli.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

cli.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

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

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

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

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

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

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

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

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

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

srv.sctp.enableHeartbeats bool true

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

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

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

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

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

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

RFC4960=0

srv.sctp.ssModule int 0

ROUND_ROBIN=0

srv.sctp.arwnd int 65535
srv.sctp.swsLimit int 3000

Limit for SWS

srv.sctp.udpEncapsEnabled bool false
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 double 56B

of ping payload, in bytes

srv.pingApp.interval double 1s

time to wait between pings (can be random)

srv.pingApp.hopLimit double 32

TTL or hopLimit for IP packets

srv.pingApp.count double 0

stop after count ping requests, 0 means continuously

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

send first ping at startTime

srv.pingApp.stopTime double 0s

send no pings after stopTime, 0 means forever

srv.pingApp.printPing bool true

dump on stdout

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

number seconds ARP waits between retries to resolve an IP address

srv.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

srv.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

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

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

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

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

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

srv.eth.mac.mtu int 1500
srv.ext.filterString string
srv.ext.device string
srv.ext.mtu int 1500
srv.tcpdump.dumpFile string ""
srv.tcpdump.threadEnable bool false
srv.tcpdump.snaplen int 65535
srv.tcpdump.verbosity int 0

Source code:

network NClients
{
    parameters:
        int n;
    types:
        channel fiberline extends DatarateChannel
        {
            delay = 1us;
            datarate = 512Mbps;
        }
        channel ethernetline extends DatarateChannel
        {
            delay = 0.1us;
            datarate = 10Mbps;
        }
    submodules:
        channelInstaller: ChannelInstaller {
            parameters:
                channelClass = "ThruputMeteringChannel";
                channelAttrs = "format=u";
                @display("p=98,50");
        }
        configurator: FlatNetworkConfigurator {
            parameters:
                @display("p=185,50");
        }
        nam: NAMTrace {
            parameters:
                @display("p=260,50");
        }
        r1: Router {
            parameters:
                @display("p=186,250");
        }
        r2: Router {
            parameters:
                @display("p=304,220");
        }
        r3: Router {
            parameters:
                @display("p=433,250");
        }
        cli[n]: StandardHost {
            parameters:
                @display("i=device/laptop");
        }
        srv: StandardHost {
            parameters:
                @display("p=544,194;i=device/server_l");
        }
    connections:
        for i=0..n-1 {
            cli[i].pppg++ <--> ethernetline <--> r1.pppg++;
        }
        r1.pppg++ <--> ethernetline <--> r2.pppg++;
        r2.pppg++ <--> ethernetline <--> r3.pppg++;
        r3.pppg++ <--> ethernetline <--> srv.pppg++;
}