Network90

Package: inet.tutorials.protocol

Network90

network

(no description)

SenderHost ReceiverHost

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Properties

Name Value Description
isNetwork

Unassigned submodule parameters

Name Type Default value Description
sender.sourceA.displayStringTextFormat string "created %p pk (%l)"

determines the text that is written on top of the submodule

sender.sourceA.packetNameFormat string "%a-%c"

see directives in module documentation

sender.sourceA.packetRepresentation string "byteCount"

determines the chunk of the packet data

sender.sourceA.packetLength int
sender.sourceA.packetData int -1
sender.sourceA.attachCreationTimeTag bool true
sender.sourceA.attachIdentityTag bool true
sender.sourceA.attachDirectionTag bool true
sender.sourceA.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sender.sourceA.initialProductionOffset double 0s
sender.sourceA.productionInterval double

elapsed time between subsequent packets pushed to the connected packet consumer

sender.sourceA.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

sender.taggerA.displayStringTextFormat string "tagged %p pk (%l)"

determines the text that is written on top of the submodule

sender.taggerA.dscp int -1

specifies differentiated services code point

sender.taggerA.ecn int -1

specifies explicit congestion notification

sender.taggerA.tos int -1

if not -1, set the Type Of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value

sender.taggerA.interfaceName string ""

specifies outgoing interface, unused by default

sender.taggerA.hopLimit int -1

specifies network layer TTL, unused by default

sender.taggerA.vlanId int -1

specifies VLAN, unused by default

sender.taggerA.pcp int -1

specifies PCP, unused by default

sender.taggerA.userPriority int -1

specifies user priority, unused by default

sender.taggerA.transmissionPower double nan W

specifies signal transmission power, unused by default

sender.taggerA.filterClass string "inet::queueing::AnyPacketFilter"

determines which packets are tagged

sender.sourceB.displayStringTextFormat string "created %p pk (%l)"

determines the text that is written on top of the submodule

sender.sourceB.packetNameFormat string "%a-%c"

see directives in module documentation

sender.sourceB.packetRepresentation string "byteCount"

determines the chunk of the packet data

sender.sourceB.packetLength int
sender.sourceB.packetData int -1
sender.sourceB.attachCreationTimeTag bool true
sender.sourceB.attachIdentityTag bool true
sender.sourceB.attachDirectionTag bool true
sender.sourceB.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sender.sourceB.initialProductionOffset double 0s
sender.sourceB.productionInterval double

elapsed time between subsequent packets pushed to the connected packet consumer

sender.sourceB.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

sender.taggerB.displayStringTextFormat string "tagged %p pk (%l)"

determines the text that is written on top of the submodule

sender.taggerB.dscp int -1

specifies differentiated services code point

sender.taggerB.ecn int -1

specifies explicit congestion notification

sender.taggerB.tos int -1

if not -1, set the Type Of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value

sender.taggerB.interfaceName string ""

specifies outgoing interface, unused by default

sender.taggerB.hopLimit int -1

specifies network layer TTL, unused by default

sender.taggerB.vlanId int -1

specifies VLAN, unused by default

sender.taggerB.pcp int -1

specifies PCP, unused by default

sender.taggerB.userPriority int -1

specifies user priority, unused by default

sender.taggerB.transmissionPower double nan W

specifies signal transmission power, unused by default

sender.taggerB.filterClass string "inet::queueing::AnyPacketFilter"

determines which packets are tagged

sender.sourceC.displayStringTextFormat string "created %p pk (%l)"

determines the text that is written on top of the submodule

sender.sourceC.packetNameFormat string "%a-%c"

see directives in module documentation

sender.sourceC.packetRepresentation string "byteCount"

determines the chunk of the packet data

sender.sourceC.packetLength int
sender.sourceC.packetData int -1
sender.sourceC.attachCreationTimeTag bool true
sender.sourceC.attachIdentityTag bool true
sender.sourceC.attachDirectionTag bool true
sender.sourceC.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sender.sourceC.initialProductionOffset double 0s
sender.sourceC.productionInterval double

elapsed time between subsequent packets pushed to the connected packet consumer

sender.sourceC.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

sender.taggerC.displayStringTextFormat string "tagged %p pk (%l)"

determines the text that is written on top of the submodule

sender.taggerC.dscp int -1

specifies differentiated services code point

sender.taggerC.ecn int -1

specifies explicit congestion notification

sender.taggerC.tos int -1

if not -1, set the Type Of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value

sender.taggerC.interfaceName string ""

specifies outgoing interface, unused by default

sender.taggerC.hopLimit int -1

specifies network layer TTL, unused by default

sender.taggerC.vlanId int -1

specifies VLAN, unused by default

sender.taggerC.pcp int -1

specifies PCP, unused by default

sender.taggerC.userPriority int -1

specifies user priority, unused by default

sender.taggerC.transmissionPower double nan W

specifies signal transmission power, unused by default

sender.taggerC.filterClass string "inet::queueing::AnyPacketFilter"

determines which packets are tagged

sender.multiplexer1.displayStringTextFormat string "passed %p pk (%l)"

determines the text that is written on top of the submodule

sender.multiplexer1.forwardServiceRegistration bool true
sender.multiplexer1.forwardProtocolRegistration bool true
sender.sequenceNumbering.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

sender.pendingQueue.displayStringTextFormat string "contains %p pk (%l) pushed %u\npulled %o removed %r dropped %d"

determines the text that is written on top of the submodule

sender.pendingQueue.packetCapacity int -1

maximum number of packets in the queue, no limit by default

sender.pendingQueue.dataCapacity int -1b

maximum total length of packets in the queue, no limit by default

sender.pendingQueue.dropperClass string ""

determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class

sender.pendingQueue.comparatorClass string ""

determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class

sender.pendingQueue.bufferModule string ""

relative module path to the IPacketBuffer module used by this queue, implicit buffer by default

sender.server.displayStringTextFormat string "served %p pk (%l)"

determines the text that is written on top of the submodule

sender.fragmenter.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

sender.fragmenter.deleteSelf bool false
sender.fragmenter.headerPosition string "front"
sender.multiplexer2.displayStringTextFormat string "passed %p pk (%l)"

determines the text that is written on top of the submodule

sender.multiplexer2.forwardServiceRegistration bool true
sender.multiplexer2.forwardProtocolRegistration bool true
sender.inProgressQueue.displayStringTextFormat string "contains %p pk (%l) pushed %u\npulled %o removed %r dropped %d"

determines the text that is written on top of the submodule

sender.inProgressQueue.packetCapacity int -1

maximum number of packets in the queue, no limit by default

sender.inProgressQueue.dataCapacity int -1b

maximum total length of packets in the queue, no limit by default

sender.inProgressQueue.dropperClass string ""

determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class

sender.inProgressQueue.comparatorClass string ""

determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class

sender.inProgressQueue.bufferModule string ""

relative module path to the IPacketBuffer module used by this queue, implicit buffer by default

sender.preemptingServer.displayStringTextFormat string "served %p pk (%l)"

determines the text that is written on top of the submodule

sender.preemptingServer.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sender.preemptingServer.datarate double
sender.fcsInserter.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

sender.fcsInserter.fcsMode string "declared"
sender.fcsInserter.headerPosition string "back"
sender.InterpacketGapInserter.displayStringTextFormat string "delayed %p pk (%l)\nifg: %g"

determines the text that is written on top of the submodule

sender.InterpacketGapInserter.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sender.InterpacketGapInserter.initialChannelBusy bool false

assume that channel was busy before the simulation started

sender.InterpacketGapInserter.duration double
sender.transmitter.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

sender.transmitter.clockModule string ""

relative path of a module that implements IClock(1,2); optional

sender.transmitter.datarate double
receiver.sinkA.displayStringTextFormat string "received %p pk (%l)"

determines the text that is written on top of the submodule

receiver.sinkA.clockModule string ""

relative path of a module that implements IClock(1,2); optional

receiver.sinkA.consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

receiver.sinkA.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

receiver.sinkB.displayStringTextFormat string "received %p pk (%l)"

determines the text that is written on top of the submodule

receiver.sinkB.clockModule string ""

relative path of a module that implements IClock(1,2); optional

receiver.sinkB.consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

receiver.sinkB.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

receiver.sinkC.displayStringTextFormat string "received %p pk (%l)"

determines the text that is written on top of the submodule

receiver.sinkC.clockModule string ""

relative path of a module that implements IClock(1,2); optional

receiver.sinkC.consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

receiver.sinkC.scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

receiver.classifier.displayStringTextFormat string "classified %p pk (%l)"

determines the text that is written on top of the submodule

receiver.classifier.reverseOrder bool false
receiver.classifier.defaultGateIndex int 0

default gate index if no matching labels are found

receiver.classifier.packetFilters object

array of packet filter expressions

receiver.defragmenter.multiplexer.displayStringTextFormat string "passed %p pk (%l)"

determines the text that is written on top of the submodule

receiver.defragmenter.multiplexer.forwardServiceRegistration bool true
receiver.defragmenter.multiplexer.forwardProtocolRegistration bool true
receiver.defragmenter.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

receiver.defragmenter.defragmenter.deleteSelf bool false
receiver.defragmenter.defragmenter.headerPosition string "front"
receiver.defragmenter.classifier.displayStringTextFormat string "classified %p pk (%l)"

determines the text that is written on top of the submodule

receiver.defragmenter.classifier.reverseOrder bool false
receiver.defragmenter.classifier.classifierClass string

determines the output queue of packets, the parameter must be the name of a C++ class which implements the IPacketClassifierFunction interface and is registered via Register_Class

receiver.defragmenter.classifier.submoduleName string
receiver.defragmenter.classifier.moduleType string
receiver.fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

determines the text that is written on top of the submodule

receiver.fcsChecker.backpressure bool false
receiver.fcsChecker.headerPosition string "back"
receiver.receiver.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

receiver.receiver.datarate double

Source code

network Network90
{
    submodules:
        sender: SenderHost {
            @display("p=100,100");
        }
        receiver: ReceiverHost {
            @display("p=200,100");
        }
    connections:
        sender.g --> {  delay = 1us; } --> receiver.g;
}
File: tutorials/protocol/Network90.ned