Package: inet.tutorials.protocol
Network90
network(no description)
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