-
Notifications
You must be signed in to change notification settings - Fork 39
Comm Effect Model
- Features
- [Configuration Parameters](#Configuration Parameters)
- [Example XML](#Example XML)
- Statistics
- [Statistic Tables](#Statistic Tables)
The Comm Effect utility model provides the ability to define the following network impairments:
-
Loss: The percentage of packets that will be dropped utilizing a uniform loss distribution model.
-
Latency: The average delay for a packet to traverse the network. The total delay is composed of a fixed and variable component. The fixed amount of the delay is defined via a latency configuration parameter and the variable amount via a jitter configuration parameter The jitter is determined randomly using a uniform random distribution model around +/- jitter . The randomly generated jitter value is then added to the fixed latency to determine the total delay.
-
Duplicates: The percentage of packets that will be duplicated at the receiver.
-
Unicast Bitrate: The bitrate for packets destined for the NEM or handled in promiscuous mode.
-
Broadcast Bitrate: The bitrate for packets destined for the NEM broadcast address.
##Configuration Parameters The following configuration parameters are available to tailor layer functionality:
###defaultconnectivitymode Defines the default connectivity mode for Comm Effects. When set to on, full connectivity will be engaged until a valid Comm Effect event is received.
Type: bool
Running-State Modifiable: no
Occurrence Range: [1,1]
Value Range: [no,yes]
Default Value(s): yes
###enablepromiscuousmode Defines whether promiscuous mode is enabled or not. If promiscuous mode is enabled, all received packets (intended for the given node or not) that pass the receive test are sent upstream to the transport.
Type: bool
Running-State Modifiable: no
Occurrence Range: [1,1]
Value Range: [no,yes]
Default Value(s): no
###filterfile Defines the absolute URI of the effects filter XML file which contains static filters to control network impairments.
Type: string
Running-State Modifiable: no
Occurrence Range: [1,1]
###groupid Defines the Comm Effect Group Id. Only NEMs in the same Comm Effect Group can communicate.
Type: uint32
Running-State Modifiable: no
Occurrence Range: [1,1]
Value Range: [0,4294967295]
Default Value(s): 0
###receivebufferperiod Defines the max buffering time in seconds for packets received from an NEM. The buffering interval for a given packet is determined by the bitrate for the source NEM and the packet size. Packets are then placed in a timed queue based on this interval and all packets that would cause the receive buffer period to be exceeded are discarded. A value of 0.0 disables the limit and allows all received packets to stack up in the queue.
Type: double
Running-State Modifiable: no
Occurrence Range: [1,1]
Value Range: [-DOUBLE_MAX,DOUBLE_MAX]
Default Value(s): 1.000000
Comm Effect configuration is specified using two files:
- NEM definition file
- Shim definition file
The NEM definition file groups the Shim definition file together with the transport definition file. The Comm Effect Model is not a radio model. It does not use the emultor physical layer so you must set the NEM type attribute to unstructured.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nem SYSTEM "file:///usr/share/emane/dtd/nem.dtd">
<nem type="unstructured">
<shim definition="commeffectshim.xml"/>
<transport definition="transvirtual.xml"/>
</nem>
The Shim definition file specifies the model DLL the emulator will load and the desired model configuration.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE shim SYSTEM "file:///usr/share/emane/dtd/shim.dtd">
<shim library="commeffectshim">
<param name="defaultconnectivity" value="off" />
<param name="enablepromiscuousmode" value="off" />
</shim>
##Available Statistics The below statistics can be accessed using emanesh.
Name | Type | Clearable | Description |
---|---|---|---|
avgDownstreamPacketSizeBroadcastGenerated0 | float | yes | Average layer generated downstream broadcast packet size |
avgDownstreamPacketSizeBroadcastRx0 | float | yes | Average downstream broadcast packet size received |
avgDownstreamPacketSizeBroadcastTx0 | float | yes | Average downstream broadcast packet size transmitted |
avgDownstreamPacketSizeGenerated0 | float | yes | Average layer generated downstream packet size |
avgDownstreamPacketSizeRx0 | float | yes | Average downstream packet size received |
avgDownstreamPacketSizeTx0 | float | yes | Average downstream packet size transmitted |
avgDownstreamPacketSizeUnicastGenerated0 | float | yes | Average layer generated downstream unicast packet size |
avgDownstreamPacketSizeUnicastRx0 | float | yes | Average downstream unicast packet size received |
avgDownstreamPacketSizeUnicastTx0 | float | yes | Average downstream unicast packet size transmitted |
avgDownstreamProcessingDelay0 | float | yes | Average downstream processing delay |
avgProcessAPIQueueDepth | double | yes | Average API queue depth for a processUpstreamPacket, processUpstreamControl, processDownstreamPacket, processDownstreamControl, processEvent and processTimedEvent. |
avgProcessAPIQueueWait | double | yes | Average API queue wait for a processUpstreamPacket, processUpstreamControl, processDownstreamPacket, processDownstreamControl, processEvent and processTimedEvent in microseconds. |
avgTimedEventLatency | double | yes | |
avgTimedEventLatencyRatio | double | yes | Average ratio of the delta between the scheduled timer expiration and the actual firing over the requested duration. An average ratio approaching 1 indicates that timer latencies are large in comparison to the requested durations. |
avgUpstreamPacketSizeBroadcastRx0 | float | yes | Average upstream broadcast packet size received |
avgUpstreamPacketSizeBroadcastTx0 | float | yes | Average upstream broadcast packet size transmitted |
avgUpstreamPacketSizeRx0 | float | yes | Average upstream packet size received |
avgUpstreamPacketSizeTx0 | float | yes | Average upstream packet size |
avgUpstreamPacketSizeUnicastRx0 | float | yes | Average upstream unicast packet size received |
avgUpstreamPacketSizeUnicastTx0 | float | yes | Average upstream unicast packet size transmitted |
avgUpstreamProcessingDelay0 | float | yes | Average upstream processing delay |
numDownstreamBytesBroadcastGenerated0 | uint64 | yes | Number of layer generated downstream broadcast bytes |
numDownstreamBytesBroadcastRx0 | uint64 | yes | Number of downstream broadcast bytes received |
numDownstreamBytesBroadcastTx0 | uint64 | yes | Number of downstream broadcast bytes transmitted |
numDownstreamBytesGenerated0 | uint64 | yes | Number of layer generated downstream bytes |
numDownstreamBytesRx0 | uint64 | yes | Number of downstream bytes received |
numDownstreamBytesTx0 | uint64 | yes | Number of downstream bytes transmitted |
numDownstreamBytesUnicastGenerated0 | uint64 | yes | Number of layer generated downstream unicast bytes |
numDownstreamBytesUnicastRx0 | uint64 | yes | Number of downstream unicast bytes received |
numDownstreamBytesUnicastTx0 | uint64 | yes | Number of downstream unicast bytes transmitted |
numDownstreamPacketsBroadcastDrop0 | uint64 | yes | Number of downstream broadcast packets dropped |
numDownstreamPacketsBroadcastGenerated0 | uint64 | yes | Number of layer generated downstream broadcast packets |
numDownstreamPacketsBroadcastRx0 | uint64 | yes | Number of downstream broadcast packets received |
numDownstreamPacketsBroadcastTx0 | uint64 | yes | Number of downstream broadcast packets transmitted |
numDownstreamPacketsDrop0 | uint64 | yes | number of downstream packets dropped |
numDownstreamPacketsGenerated0 | uint64 | yes | Number of layer generated downstream packets |
numDownstreamPacketsRx0 | uint64 | yes | Number of downstream packets received |
numDownstreamPacketsTx0 | uint64 | yes | Number of downstream packets transmitted |
numDownstreamPacketsUnicastDrop0 | uint64 | yes | Number of downstream unicast packets dropped |
numDownstreamPacketsUnicastGenerated0 | uint64 | yes | Number of layer generated downstream unicast packets |
numDownstreamPacketsUnicastRx0 | uint64 | yes | Number of downstream unicast packets received |
numDownstreamPacketsUnicastTx0 | uint64 | yes | Number of downstream unicast packets transmitted |
numDownstreamProcessingDelay0 | uint64 | yes | |
numUpstreamBytesBroadcastRx0 | uint64 | yes | Number of upstream broadcast bytes received |
numUpstreamBytesBroadcastTx0 | uint64 | yes | Number of updtream broadcast bytes transmitted |
numUpstreamBytesRx0 | uint64 | yes | Number of upstream bytes received |
numUpstreamBytesTx0 | uint64 | yes | Number of upstream bytes transmitted |
numUpstreamBytesUnicastRx0 | uint64 | yes | Number upstream unicast bytes received |
numUpstreamBytesUnicastTx0 | uint64 | yes | Number of upstream unicast bytes transmitted |
numUpstreamPacketsBroadcastDrop0 | uint64 | yes | Number of upstream broadcast packets dropped |
numUpstreamPacketsBroadcastRx0 | uint64 | yes | Number of upstream broadcast packets received |
numUpstreamPacketsBroadcastTx0 | uint64 | yes | Number of upstream broadcast packets transmitted |
numUpstreamPacketsDrop0 | uint64 | yes | Number upstream packets droppped |
numUpstreamPacketsRx0 | uint64 | yes | Number of upstream packets received |
numUpstreamPacketsTx0 | uint64 | yes | Number of upstream packets transmitted |
numUpstreamPacketsUnicastDrop0 | uint64 | yes | Number of upstream unicast packets dropped |
numUpstreamPacketsUnicastRx0 | uint64 | yes | Number upstream unicast packets received |
numUpstreamPacketsUnicastTx0 | uint64 | yes | Number of upstream unicast packets transmitted |
numUpstreamProcessingDelay0 | uint64 | yes | |
processedConfiguration | uint64 | yes | |
processedDownstreamControl | uint64 | yes | |
processedDownstreamPackets | uint64 | yes | |
processedEvents | uint64 | yes | |
processedTimedEvents | uint64 | yes | |
processedUpstreamControl | uint64 | yes | |
processedUpstreamPackets | uint64 | yes |
##Statistic Tables The below statistics can be accessed using emanesh.
Name | Clearable | Description |
---|---|---|
BroadcastPacketAcceptTable0 | yes | Broadcast packets accepted |
BroadcastPacketDropTable0 | yes | Broadcast packets dropped by reason code |
EventReceptionTable | yes | Received event counts |
UnicastPacketAcceptTable0 | yes | Unicast packets accepted |
UnicastPacketDropTable0 | yes | Unicast packets dropped by reason code |
- Home
- Introduction
- EMANE Shell
- Emulator Physical Layer
- Radio Models
- Utility Models
- Transports
- Event Generators
- Event Agents
- Building Packages
- Installing Packages
- Developer Documentation
- FAQ
- Copyright