1.01k likes | 1.24k Views
Transceiver Pipeline and Radio Modeling. Goals. Introduce the OPNET Transceiver Pipeline Capabilities Defaults Modify pipeline Show openness and extensibility Model custom wireless effects. Overview. Wireless modeling overview Transceiver pipeline
E N D
Goals • Introduce the OPNET Transceiver Pipeline • Capabilities • Defaults • Modify pipeline • Show openness and extensibility • Model custom wireless effects
Overview • Wireless modeling overview • Transceiver pipeline • Pipeline architecture and default stages • Lab: Closure - Custom Pipeline Statistic • Break • Lab: Channel Match - Doppler Shifts • Break • Lab: Power, Inoise, ECC - Signal Lock vs. Power Lock • Conclusion
Wireless Modeling Overview • Wireless communications • Broadcast medium • Communication more likely to be problematic • Less of a controlled environment than wireline • Wireless channels need to be characterized appropriately • Model real-world channel behavior • Frequencies, power, line-of-sight, interference, etc. • Channel characteristics affect higher layer protocol behavior • Simulation tool must support wireless modeling • Node mobility • Car, ship, aircraft, satellite, etc. • Link-budget-analysis computation
Packet Each stage models an aspect of the channel’s behavior . . . S1 S2 S3 S13 Tx Rx Transceiver Pipeline • Models packet transmission across communications channel • Implements physical layer characteristics • Divided into multiple stages • Determines if packet can be received
Pipeline Stages • Sequence of ‘C’ or ‘C++’ procedures • Computes line-of-sight, signal strength, bit errors, etc. • Can indicate packet is not receivable • Each procedure has a defined interface (prototype) • Argument is typically a packet • Information typically obtained and stored as Transmission Data Attributes (TDA)
User-Defined Pre-Defined TDA Tx Rx Transmission Data Attributes (TDA) • Scope • Special packet storage areas • Part of every packet • Carry numerical values • Integer, Object ID, floating point, or pointer • Initialized by kernel at start of transmission • Readable during a packet’s life • Writable only in pipeline • Purpose • Carry pipeline information • Kernel to pipeline stage • Pipeline stage to kernel • Between pipeline stages
Pipeline Models • Scope • Each stage uses a pipeline model • Stages are referenced via a pipeline model object attributes • Point-to-Point - link attributes • Bus -Bus attributes • Radio - transceiver attributes • Stages must be compiled prior to reference • Modeling method • Create stage in context of the pipeline model • Compile stage into object form • Change pipeline model object attribute to reference stage • NOTE: Stage and procedure (pipeline model context) can be used interchangeably
Pipeline Model Attributes • Point-to-point • 4 stages • Specified as link attributes • Bus • 6 stages • Specified as bus attributes • Radio • 14 stages • Specified as transceiver attributes
Default Pipeline Stage Location • Default stages • <mil3_dir>/<rel_dir>/models/std/links • Default stage prefixes • dpt_* - default point-to-point • dbu_*- default bus • dra_* - default radio • NOTE: OPNET can access pipeline stages from any path in mod_dirs
Pipeline Stage Conventions • File naming • <name>.ps.c - C procedure • <name>.ps.cpp - C++ procedure • <name>.ps.o - object form • Procedure naming • Same as file name w/o extension • Compilation • op_mko -type ps -m <name> • Generates <name>.ps.o • NOTE: Choices for pipeline stages in OPNET are taken from the set of .ps.o files located in mod_dirs.
Point-to-Point Pipeline Models • Execution for one transmission Transmission Delay Propagation Delay 0 1 transmitter Error Correction Error Allocation 3 2 receiver
Bus Pipeline Models • Execution sequence for one transmission transmitter stages 2 and up are executed separately for each receiver Transmission Delay Closure Propagation Delay Closure Propagation Delay Closure Propagation Delay Closure Propagation Delay 0 1 2 stage 0 executed once per transmission Error Correction Error Allocation Collision Error Correction Error Allocation Collision Error Correction Error Allocation Collision Error Correction Error Allocation Collision 5 4 3 collision stage may be executed zero or more times multiple receivers
Radio Pipeline Models • Execution sequence for one transmission executed once at the start of simulation for each pair of transmitter and receiver channels Receiver Group Receiver Group Receiver Group transmitter Receiver Group 0 stages 2-6 executed separately for each receiver Transmission Delay Link Closure Channel Match Link Closure Channel Match Link Closure Channel Match Link Closure Channel Match 1 2 3 stage 1 executed once per transmission Propagation Delay Tx Antenna Gain Propagation Delay Tx Antenna Gain Propagation Delay Tx Antenna Gain Propagation Delay Tx Antenna Gain 5 4 (Continued on the next slide)
Radio Pipeline Models (cont.) • Execution sequence for one transmission (cont.) Received Power Background Noise Interference Noise Received Power Background Noise Interference Noise Received Power Background Noise Interference Noise Rx Antenna Gain Received Power Background Noise 6 8 8 Stages 10-12 may be executed one or more times Error Allocation Bit Error Rate Signal-to-Noise Ratio Stages 9-11 may be executed zero or more times Error Allocation Bit Error Rate Signal-to-Noise Ratio Error Allocation Bit Error Rate Signal-to-Noise Ratio Bit Error Rate Signal-to-Noise Ratio Interference Noise 11 10 9 Error Allocation Rx Antenna Gain Error Allocation Rx Antenna Gain Error Allocation Rx Antenna Gain Error Allocation Error Correction multiple receivers 12 13
Radio Pipeline Model Attributes Radio Transmitter Radio Receiver • Receiver Group • Transmission Delay • Link Closure • Channel Match • Tx Antenna Gain • Propagation Delay • Rx Antenna Gain • Received Power • Background Noise • Interference Noise • Signal-to-Noise Ratio • Bit Error Rate • Error Allocation • Error Correction 6 Stages (0-5) Associated with Radio Transmitter 8 Stages (6-13) Associated with Radio Receiver
Rx 0 Rx 2 Rx 0 Rx 1 Rx 3 Tx Rx 3 Rx 1 Stage 0: Receiver Group • Invocation • Once at start of simulation • Purpose • Filter out ineligible receiver channels • Simulation runtime improvements • Possible uses • Disjunct frequency bands • Excessive physical separation • Antenna Nulls • Requirements • Return value of OPC_TRUE or OPC_FALSE • Results • Defines destination channel set for each transmitting channel Example:
Tx Rx Rx Rx Rx Tx Rx Rx Rx Rx Stage 0: Receiver Group (default) Default: • Name • dra_rxgroup • Computation • None • Result • All receivers are potential destinations • Returns OPC_TRUE Custom:
Stage 1: Transmission Delay • Invocation • First dynamic stage • Start of packet transmission • Single invocation for all destination channels • Purpose • Computes time required to transmit packet • Requirements • Sets TX_DELAY TDA • Results • Kernel schedules end-of-transmission event • Signals start of transmission of next packet in transmitter queue
Tx Tx Time Tx Delay Tx Start Tx End Stage 1: Transmission Delay (default) Default: • Name • dra_txdel • Computation • Based on channel data rate and packet length • Data rate (bits/sec) from TX_DRATE TDA • Packet length (bits) from op_pk_total_size_get () • Result • Places computed delay value in TX_DELAY TDA
Stage 2: Closure • Invocation • Once for each destination channel • Called immediately after stage 1 - no intervening events • Purpose • Determines if signal can reach destination • Allows dynamic enabling/disabling of links • Requirements • Sets PROP_CLOSURE TDA • Results • Occlusion (obstruction) • Packet destroyed by kernel • No further stages are called for packet
Tx T T T D D D Rx > 90 R R R < 90 < 90 Rx Tx < 90 > 90 Rx Tx d Stage 2: Closure (default) Case 1: • Name • dra_closure • Computation • Based on ray-tracing line of sight model • Assumes Earth is spherical • Three occlusion checks • Case 1: 90o • Case 2: 90o , < 90o • Case 3: 90o, 90o, d Earth Radius • Result • If any case fails, occlusion exists • PROP_CLOSURE set to OPC_FALSE Case 2: Case 3:
Lab: Link Closure - Overview • Problem • Higher layer protocols implemented and tested to operate over wireline • Models were updated to include wireless transceivers • Results show no traffic received • Goals • Determine link closure status • Modify closure stage to record statistic • Eliminate any occlusions • Use closure stage that guarantees link closure is met • Purpose • Show how stages can be modified • Guarantee link closure
Lab: Link Closure - Project/Scenario • Start OPNET Modeler (Radio) • Double desktop icon • Open project • Closure • View scenario • Zero_Antenna_Height_Failure • Transmitter • Receiver • NOTE: When OPNET is not being used, minimize application
Lab: Link Closure - Choose Results / Simulation • Observe chosen results • Pulldown menu: Simulation Choose Individual Statistics • Node Statistics:Radio Receiver: Traffic Received (bits/sec) • Node Statistics:Radio Transmitter: Traffic Sent (bits/sec) • Node Statistic:Radio Transmitter: Link Closure Failure (failures/sec) • Execute simulation • Pulldown menu: Simulation Run Simulation
Lab: Closure - View Results • View Results • Pulldown menu: Results View Results • Select statistics • Object Statistics:Closure:Transmitter:Radio Transmitter: Traffic Sent (bits/sec) • Object Statistics:Closure:Receiver:Radio Receiver: Traffic Received (bits/sec) • Show results • Click Show • Conclusion • Traffic is being generated by transmitter • Traffic is not being received by receiver
Lab: Closure - Stage Modification Overview • Goal • Modify the link closure stage • Collect a custom statistic • Approach • Modify the pipeline stage • Add code to collect new statistic • Update Models • Project: Create new scenario • Node: Update node model • Execute simulation • View results
Lab: Closure - Open Pipeline Stage • Open pipeline stage • Open Windows NT Explorer • Double click desktop icon • Go to directory containing file • c:\users\student\op_models • Double click to open file • opnetwork_closure_stats.ps.c • Pipeline stage should open in Microsoft Development Studio
Lab: Closure - Modify Pipeline Stage • Modify stage • Observe code block at end of file • Line 99 through 142 • Cut lines • Line 103: #if 0 • Line 142: #endif • Save file • NOTE: When Microsoft Development Studio is not being used, minimize application
Lab: Closure - Compile Pipeline Stage • Compile the pipeline stage • Open a Command Prompt window • Double click desktop icon • Execute the compile command • op_mko -type ps -m opnetwork_closure_stats • NOTE: When Command Prompt is not being used, minimize application
Lab: Closure - Duplicate Scenario • Return to OPNET Modeler (Radio) • Maximize application • Refresh model directories • Pulldown menu: File Refresh Model Directories • Required for OPNET to know about new files • Duplicate scenario • Pulldown menu: Scenarios Duplicate Scenario • Scenario name: Zero_Antenna_Height_Failure_Stats
Lab: Closure - Update Node Model • Open Transmitter node model • Double click Transmitter object • Node model: closure_rt • Change transmitter module attribute • Right click transmitter module • Change attribute • closure model: opnetwork_closure_stats • Save node model • Pulldown menu: File Save As • Filename:closure_stats_rt • Close node editor
Lab: Closure - Update Network Model • Change Transmitter node attribute • Right click Transmitter node • Select Edit Attributes • Change model attribute value • Select Edit... • Select closure_stats_rt • Close attribute edit box • Select Close • Execute simulation • Pulldown menu: Simulation Run Simulation
Lab: Closure - View Results • View Results • Pulldown menu: Results View Results • Select Statistics • Object Statistics:Closure:Transmitter:Radio Transmitter: Link Closure Failure (failures/sec) • Show results • Click Show • Conclusion • Closure is failing, causing undesired packet loss
Lab: Closure - Stage Modification Overview • Goal • Modify the link closure model to eliminate closure failure • Approach • Update Models • Project: Create new scenario • Node: Update node model • Execute simulation • View results
Lab: Closure - Duplicate Scenario • Duplicate scenario • Pulldown menu: Scenarios Duplicate Scenario • Scenario name: Zero_Antenna_Height_Success
Lab: Closure - Update Node Model • Open Transmitter node model • Double click Transmitter object • Node model: closure_stats_rt • Change module attribute • Right click transmitter module • Change attribute • closure model: dra_closure_all • Save node model • Pulldown menu: File Save As • Filename:closure_all_rt • Close node model
Lab: Closure - Closure All Stage • Open pipeline stage • Return to Windows NT Explorer • Go to directory containing file • c:\users\student\op_models • Double click to open file • dra_closure_all.ps.c • Closure All • Performs no computation • Link closure met for all destination channels • Sets CLOSURE TDA to OPC_TRUE
Lab: Closure - Update Network Model • Return to OPNET Modeler (Radio) • Maximize application • Change Transmitter object • Right click Transmitter node • Edit Attributes • Change model attribute value • Select Edit... • Select closure_all_rt • Execute simulation • Pulldown menu: Simulation Run Simulation
Lab: Closure - View Results • View Results • Pulldown menu: Results View Results • Select statistics • Object Statistics:Closure:Transmitter:Radio Transmitter: Traffic Sent (bits/sec) • Object Statistics:Closure:Receiver:Radio Receiver: Traffic Received (bits/sec) • Show results • Click Show • Conclusion • Traffic is being generated by transmitter • Traffic is being received by receiver • Closure was failing due to occlusions
Lab: Closure - Summary • Zero antenna height (altitude) • common problem of packet loss • Pipeline stage modification • Record custom statistic • Helps assess problem • Use of dra_closure_all • Eliminates closure computations • Causes no link failures due to occlusions • NOTE: Another common problem of packet loss in the pipeline is due to the ECC threshold. The same approach as above can be applied to isolate the problem and counter with a pipeline modification.
Stage 3: Channel Match • Invocation • Once for each destination channel satisfying stage 2 • Called immediately after stage 2 - no intervening events • Purpose • Classifies the transmission • Valid, noise, or ignore • Based on frequency, bandwidth, data rate, spreading code, etc. • Requirements • Sets MATCH_STATUS TDA • Results • Kernel destroys ignored packets • If ignore, no further stages are called for packet
FTx FRx FTx FRx DRTx DRRx ModTx ModRx FTx FRx DRTx DRRx ModTx ModRx Stage 3: Channel Match (default) • Name • dra_chanmatch • Computation • Accounts for frequency overlap, data rate, modulation, and spreading code • Three cases • Case 1: No frequency overlap - ignored • Case 2: Partial characteristic match - noise • Case 3: Full characteristic match - valid • Result • Sets MATCH_STATUS TDA based on case Case 1: Case 2: Case 3:
Stage 4: Transmitter Antenna Gain • Invocation • Once for each destination channel satisfying stage 2 and stage 3 • Called immediately after stage 3 - no intervening events • Purpose • Computes transmitter antenna gain in the direction of the receiver • Requirements • Sets TX_GAIN TDA • Results • Typically used by stage 7 for receiver power computation
Gain (dB) Tx Rx Stage 4: Transmitter Antenna Gain (default) • Name • dra_tagain • Computation • Distance vector between tx and rx • Aligns all entities w.r.t. same coordinate system • Antenna patterns / pointing directions, node locations • Majority of the computation • Determines lookup angles • Performs table lookup to obtain gain (dB) • Result • Value placed in TX_GAIN for use by stage 7 Default:
Stage 5: Propagation Delay • Invocation • Once for each destination channel • Called immediately after stage 4 - no intervening events • Purpose • Calculates signal propagation time from transmitter to receiver • Usually dependent on distance and propagation velocity • Requirements • Sets START_PROPDEL and END_PROPDEL TDAs • Results • Kernel schedules • Start of reception event • End of reception event
Rx Rx Time Prop Delay Rx Start Rx End Stage 5: Propagation Delay (default) Default: • Name • dra_propdel • Computation • Based on distance and propagation velocity • Computed for start and end of transmission • Takes into account mobility • Obtains distances (in meters) • START_DIST and END_DIST TDAs • Result • Places computed values in START_PROPDEL and END_PROPDEL TDAs • Kernel schedules start and end reception events
Lab: Doppler Shifts - Overview • Problem • Doppler shifts - caused by transceiver mobility • Receiver must handle frequency effects • Default stages assume no frequency shift • Goals • Determine appropriate stage location • Implement Doppler shifting and record frequency shift statistic • Purpose • Show pipeline stage modifications to account for Doppler shifts • Show use of external files
Lab: Doppler - Project/Scenario • Return to OPNET Modeler (Radio) • Maximize application • Open project • Doppler • View scenario • No_Doppler_Shift • Transmitter - aircraft • Receiver
Lab: Doppler - Choose Results / Simulation • Observe chosen results • Pulldown menu: Simulation Choose Individual Statistics • Node Statistics:Radio Receiver: Traffic Received (bits/sec) • Node Statistics:Radio Transmitter: Traffic Sent (bits/sec) • Node Statistic:Radio Transmitter: Transmission Frequency - Unshifted (Hz) • Node Statistic:Radio Transmitter: Transmission Frequency - Shifted (Hz) • Execute simulation • Pulldown menu: Simulation Run Simulation