











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An in-depth exploration of packets in the context of network simulation using opnet. Topics include packet formatting, processing, and delivery mechanisms such as packet streams, sending packets, and packet delivery. Learn about various communication links, packet ownership, and the use of interface control information (ici) and event states.
Typology: Study notes
1 / 19
This page cannot be seen from the preview
Don't miss anything!












Formatted Unformatted Value vectors
Memory allocation is not the same as packet size
Defined between output port of a source module to input port of a destination module
Associated with destination module’s input stream No limit on the number of packets that the stream can hold Waits until the destination module picks up the packet using op_pk_get() Queuing is FIFO
Schedules a stream event at the destination Time of the event is the current time + “delay” attribute of the packet stream Destination may receive the packet using op_pk_get(); may also choose to ignore Even if an interrupt cannot be generated at the destination, packet is still queued
Uses event scheduling framework Generates an interrupt for an appropriate process in the destination module Supports delaying the packet by a pre-specified time Generates an interrupt at current time + specified time + delay attribute time Note: delay is set on an a per-packet basis, so can be used for non-FIFO delivery
Irrespective of physical connection
Irrespective of location
op_pk_deliver(), op_pk_deliver_delayed(), op_pk_deliver_forced(), op_pk_deliver_quiet() Need to specify destination module’s object ID Object IDs are identified using ID and TOPO packages of the simulation kernel
Point-to-point links Bus
Simplex and duplex Must be attached to transmitter and receiver modules (four modules if duplex) Think of link as a bundle of channels (channels may be viewed as wavelengths in WDM net.)
Used with bus transmitters and bus receivers at a node “Tap” the bus for transmitter, receiver, or both
Delay attribute denotes time for signal to propagate one meter Packet transmission will result in “staggered” arrival at nodes
When two packet receptions overlap, the receiver is in a collided state Collisions are at the receiver! Collisions are considered to be destructive to the packet (default behavior) Behavior of collisions can be changed through pipeline stages (Bus Transceiver Pipeline)
Communication mechanisms between modules in same or different nodes ICI provides a “payload” Payload is transferred from the module that sets the interrupt to the one that receives
self: op_intrpt_schedule_self() Provides only an integer value to denote the event name remote, process, multicast: Similar to self (only integer code is provided) access: no information is provided statistic: one floating point value may be conveyed with this type of interrupt
Function call: op_ici_create()
Structure attributes contain address Memory must be deallocated by user
/* Allocate a structure of type "Command" to pass within an ICI / command_ptr = (Command) op_prg_mem_alloc (sizeof (Command)); /* Setup the command structure. / command_ptr->type = COMMAND_TYPE_A; command_ptr->priority = COMMAND_PRIORITY_LOW; command_ptr->request = SET_COMPRESSED_MODE; / Install the structure in "command" attribute of a new ICI. */ ici_ptr = op_ici_create ("link_control"); op_ici_attr_set (ici_ptr, "command", command_ptr);
You can create an arbitrary data structure Access it using standard C/C++ way
The source of the statistic “outputs” the statistics The destination of the statistic takes “input”
Dynamically monitor the state of other modules within the node Performance is better than polling strategy Improved accuracy as the process may be notified immediately (FORCED interrupt) By using triggers, you can alert a module ONLY when it is appropriate
To implement low-level signaling mechanisms between modules One implementation is “lock” (value is 0 or 1)
Monitors only the activity; provides past and present metrics to predict future Using triggers, you can generate alarms