![]() |
5G-LENA nr-v3.3-159-ga6832aa7
The 5G/NR module for the ns-3 simulator
|
MAC scheduler SRS interface. More...
#include "nr-mac-scheduler-srs.h"
Classes | |
struct | SrsPeriodicityAndOffset |
Struct to indicate to the scheduler the periodicity and the offset, in slots. More... | |
Public Member Functions | |
virtual | ~NrMacSchedulerSrs ()=default |
Default. | |
virtual SrsPeriodicityAndOffset | AddUe ()=0 |
Function called when the scheduler needs to know what is the offset and periodicy of a newly added ue. | |
virtual bool | DecreasePeriodicity (std::unordered_map< uint16_t, std::shared_ptr< NrMacSchedulerUeInfo > > *ueMap)=0 |
Decrease the periodicity and assign to all UEs a different offset. | |
virtual bool | IncreasePeriodicity (std::unordered_map< uint16_t, std::shared_ptr< NrMacSchedulerUeInfo > > *ueMap)=0 |
Increase the periodicity and assign to all UEs a different offset. | |
virtual void | RemoveUe (uint32_t offset)=0 |
Function called when the scheduler has to release a previously owned periodicity and offset. | |
MAC scheduler SRS interface.
This class is an interface for various SRS periodicity algorithms. An algorithm must assign a periodicity and an offset to a newly added UE. At this moment, the constraint is that two (or more) UEs cannot send the SRS in the same slot.
The SRS periodicity and offset are set by the RRC layer, and communicated to the UE. In the NR standard, complex operations as frequency-hopping SRS are also defined. Luckily, there is also another opportunity, which is a scheduler-based SRS. The GNB informs the UE (through a DCI format 2_3) of the resources that are available to such UE to transmit its SRS.
Deciding the SRS offset and periodicity at RRC would involve the scheduler as well, because the scheduler must not schedule any data that would be on the same resources as the expected SRS (DL or UL). Hence, implementing the decision at RRC would have lead to the complexity of modifying RRC plus the complexity of informing the scheduler of such decision, including multiple SAP interface modifications to allow intra-layer communication.
Therefore, we went for implementing such decision inside the scheduler, which will create a DCI format 2_3 to inform the UE about its scheduled time for sending SRS. Note that this reuses most of the structures and code used for data scheduling, and so it takes into account the various L1L2 latency plus the K latencies.
This interface will be used by the scheduler to ask the offset/periodicity for a UE, and various implementation can be written to simulate different algorithms.
Note: This interface assumes that all the UEs will share the same periodicity. If that's not the case, the API would have to be updated.
Definition at line 53 of file nr-mac-scheduler-srs.h.
|
pure virtual |
Function called when the scheduler needs to know what is the offset and periodicy of a newly added ue.
Implemented in ns3::NrMacSchedulerSrsDefault.
|
pure virtual |
Decrease the periodicity and assign to all UEs a different offset.
ueMap | the UE map |
The method decreases the periodicity, and then re-assign offsets and periodicity to all the UEs to avoid conflicts.
Implemented in ns3::NrMacSchedulerSrsDefault.
|
pure virtual |
Increase the periodicity and assign to all UEs a different offset.
ueMap | the UE map |
The method increases the periodicity, and then re-assign offsets and periodicity to all the UEs to avoid conflicts.
Implemented in ns3::NrMacSchedulerSrsDefault.
|
pure virtual |
Function called when the scheduler has to release a previously owned periodicity and offset.
offset | The offset used by the UE |
Note: This interface assumes that all the UEs will share the same periodicity. If that's not the case, the API would have to be updated.
Implemented in ns3::NrMacSchedulerSrsDefault.