RSSI measurements cannot be switched off
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openWNS OFDMA Phy |
Fix Committed
|
Medium
|
Sebastian Max |
Bug Description
In one of my simulation campaigns I noticed that the biggest portion of simulation time was spent computing RSSI values even though I do not use them. When I investigated this, I found that in Receiver.cpp the computation is only done if someone actually observes the RSSI because (as the comments in the code point out) the computation can be quite expensive. The problem, however, is that in Station.cpp the observation is always started in each OFDMA station so that the Receiver will always perform RSSI computations.
I guess the RSSI observation in Station.cpp should only be started if some configuration option is set accordingly!?
Any comments?
Receiver.cpp:
727 // For each started and stopped transmission, the Received Signal Strenght
728 // (RSS) at the receiver changes. Upper FUs can observe the RSS to detect a
729 // busy channel.
730 // The signalling is made only if observers are present, as the operation
731 // (adding dBm values) is costly and must be done for every packet at every receiver.
732 if (this->
733 {...
Station.cpp:
108 // Start to observe the receiver for onNewRSS calls
109 this->wns:
Changed in openwns-ofdmaphy: | |
status: | Confirmed → Fix Committed |
Dear Jan,
you are right. If the RSS values are not needed then we should not CarrierSensing> . I think what we must do is the following. CarrierSensing> we RSSInterface> .
calculate the RSS values, i.e. we should not add the Station as an
Observer. However, as far as I can see the Station forwards the RSS
value within the CarrierSensing notifies. It is itself a
wns::Subject<
If at least one Observer is added to wns::Subject<
need to attach the Station to the Receivers wns::Subject<
As far as I can see we can control this by hooking into the virtual void
addObserver() method of wns::Subject within the Station class.
Then we should control whether there are any Observers of the
CarrierSensing Subject. I think this can be then done by using
configuration values. If we directly make it configurable within the
Station, we are likely to run into inconsistent configurations.
We also should get Sebastian's opinion who makes use of the RSS values
within the WiFiMac.
Best Regards,
Daniel
wns::Observer< RSSInterface>
Jan wrote: wns::Subject< RSSInterface> ::hasObservers( )) :Observer< RSSInterface> ::startObservin g(receiver) ;
> Public bug reported:
>
> In one of my simulation campaigns I noticed that the biggest portion of
> simulation time was spent computing RSSI values even though I do not use
> them. When I investigated this, I found that in Receiver.cpp the
> computation is only done if someone actually observes the RSSI because
> (as the comments in the code point out) the computation can be quite
> expensive. The problem, however, is that in Station.cpp the observation
> is always started in each OFDMA station so that the Receiver will always
> perform RSSI computations.
>
> I guess the RSSI observation in Station.cpp should only be started if
> some configuration option is set accordingly!?
>
> Any comments?
>
> Receiver.cpp:
> 727 // For each started and stopped transmission, the Received Signal Strenght
> 728 // (RSS) at the receiver changes. Upper FUs can observe the RSS to detect a
> 729 // busy channel.
> 730 // The signalling is made only if observers are present, as the operation
> 731 // (adding dBm values) is costly and must be done for every packet at every receiver.
> 732 if (this->
> 733 {...
>
> Station.cpp:
> 108 // Start to observe the receiver for onNewRSS calls
> 109 this->wns:
>
> ** Affects: openwns-ofdmaphy
> Importance: Undecided
> Status: New
>
>