5G/NR - SR    

 

 

 

SR (Scheduling Request)

Basic funcationality and mechanism for NR SR is almost same as LTE SR. If you are familiar with LTE SR, it would not be difficult to understand SR in NR and easier to understand NR SR by comparision with LTE SR.

What is SR ?

SR is a special Physical Layer message for UE to ask Network to send UL Grant (DCI Format 0_0 /0_1) so that UE can transmit PUSCH. Putting it other way, SR is an Uplink Physical Layer message from UE to Network, saying "I have some data to send to you. Would you send me some Grant for me to send the data ?".

When is SR triggered / transmitted ?

There are roughly two cases of occasion where SR is triggered. First case would be the necessity based and the second case would be periodicity based.

Necessity based case mean that UE triggers SR when it has some data to transmit but have no UL grant from Network.

Periodicity based case mean that UE triggers SR with a certain periodicity (specified in RRC) regardless of whether it has any data to send or not.

Following illustration shows overal process for Necessity based SR transmittion.

 

Physical Channel to Carry SR

How UE send SR message ? UE send it on a PUCCH (or on UCI part on PUSCH). Not all PUCCH format can carry the SR. Some PUCCH format can carry SR and some other don't. UE is using a certain PUCCH format depending on situations to send SR. (For the detailed PUCCH format that can carry SR, refer to PUCCH format page).

 

In NR, PUCCH format 0 or 1 carrySR.

==> 38.213 - 9.2.4 states : A UE can be configured by SchedulingRequestResourceConfig a set of configurations for SR in a PUCCH transmission using either PUCCH format 0 or PUCCH format 1

Who is controlling the SR process ?

Even though SR message itself is a kind of physical layer message, it is controlled by MAC layer process (it is similar to many other physical layer channel are controlled by MAC layer)

Overall SR process (when to send SR) is controlled by MAC layer as illustrated below. (See 38.321 5.4.4 for details)

When SR is not triggered/pre-empted ?

There are some cases where UE does not trigger SR even when it may trigger it otherwise. Followings are the list of those cases where UE does not send SR. These are all based on 38.321-5.4.4)

  • UE already received UL Grant
  • SR Opportunity falls into measurement gap period
  • SR Prohitbit timer is running
  • SR_COUNTER reaches the sr-TransMax
  • PUCCH Resources for SR overlaps with the resources of PUSCH
  • SR Occasion is in the same slot as PUSCH// this is what I checked with a few experts, but I haven't found any explicit statement in 3GPP spec yet. It make sense to me that SR would not be transmitted in the same slot as PUSCH since UE already got the resource to transmit data, but not 100% sure in case of periodic SR. Is UE expected not to send SR at all ? or is still expected to send SR (at least Negative SR) ?

Positive SR vs Negative SR

This is one of the most confusing concept to me regarding 5G SR, which is still not clear to me. So as part of learning process, I will put down what is described in 3GPP specification and put my own questions. It will be appreciated if any of you let me learn via email or linkedIn.

My question is simple :What is the meaning / role of Negative SR ?

==> Today (May 4, 2022) I asked a PHY/L1 Guru who have tought me the most in PHY L1 aspect and he cleared most part of confusion. Unfortunately he wants to remain anonymous in this page :).  See "Chat with an Expert" below.

38.213-9.2.4 UE procedure for reporting SR 

The UE transmits a PUCCH in the PUCCH resource for the corresponding SR configuration only when the UE transmits a positive SR.

==> Does this imply that UE does NOT transmit PUCCH when UE transmit a negative SR ?  Does negative SR mean 'No PUCCH / NO SR' ?

For a positive SR transmission using PUCCH format 0, the UE transmits the PUCCH by obtaining m_0 as described for HARQ-ACK information  and by setting m_cs = 0. For a positive SR transmission using PUCCH format 1, the UE transmits the PUCCH as described in by setting b (0) = 0

==> Does this imply that there is no specific bit value in UCI dedicated for SR ? SR is encoded as a special case of HARQ Ack/Nack bits ?

38.213 - 9.2.5.1 UE procedure for multiplexing HARQ-ACK or CSI and SR in a PUCCH

If a UE would transmit a PUCCH with positive SR and at most two HARQ-ACK information bits in a resource using PUCCH format 0, the UE transmits the PUCCH in the resource using PUCCH format 0 in PRB(s) for HARQ-ACK information

If the UE would transmit negative SR and a PUCCH with at most two HARQ-ACK information bits in a resource using PUCCH format 0, the UE transmits the PUCCH in the resource using PUCCH format 0 for HARQ-ACK information

==> What is the difference between the two statements ?  It sounds same to me.

If a UE would transmit a PUCCH with O_ACK HARQ-ACK information bits in a resource using PUCCH format 2 or PUCCH format 3 or PUCCH format 4 in a slot, ceil[log2(K+1)] bits representing a negative or positive SR, in ascending order of the values of schedulingRequestResourceId and a schedulingRequestResourceId associated with schedulingRequestID-BFR-SCell, are appended to the HARQ-ACK information bits and the UE transmits the combined O_UCI = O_ACK + ceil[log2(K+1)] UCI bits in a PUCCH using a resource with PUCCH format 2 or PUCCH format 3 or PUCCH format 4 that the UE determines. If one of the SRs is a positive LRR, the value of the ceil[log2(K+1)] bits indicates the positive LRR(Link Recovery Request). An allzero value for the ceil[log2(K+1)] bits represents a negative SR value across all  SRs.

==> Does this imply that SR can be transmitted via PUCCH format 2,3,4 as well as format 0,1 ? Is it going against the statement 'The UE transmits a PUCCH in the PUCCH resource for the corresponding SR configuration only when the UE transmits a positive SR.' from 38.213-9.2.4 ?

If a UE would transmit a PUCCH with O_CSI report bits in a resource using PUCCH format 2 or PUCCH format 3 or PUCCH format 4 in a slot, ceil[log2(K+1)] bits representing a negative or positive SR, in ascending order of the values of schedulingRequestResourceId and a schedulingRequestResourceId associated with schedulingRequestID-BFR-SCell, are appended to the HARQ-ACK information bits and the UE transmits the combined O_UCI =  ceil[log2(K+1)] + O_CSI UCI bits in a PUCCH using a resource with PUCCH format 2 or PUCCH format 3 or PUCCH format 4 that the UE determines. If one of the SRs is a positive LRR(Link Recovery Request), the value of the ceil[log2(K+1)] bits indicates the positive LRR. An allzero value for the ceil[log2(K+1)] bits represents a negative SR value across all  SRs.

38,213 - 9 UE procedure for reporting control information :

If a UE would transmit on a serving cell a PUSCH without UL-SCH that overlaps with a PUCCH transmission on a serving cell that includes positive SR information, the UE does not transmit the PUSCH.

==> Does this imply that if aperiodic CSI report occasion and SR occasion overlaps, the aperiodic CSI report should drop ?

Chat with an Expert 1

: As mentioned above, I got much clearer understanding than before after chat with PHY/L1 Guru. I think the form of live dialog as quoted below would be better than I am trying to summarize it.

    [Q] what would be the definition of negative SR ?  'No SR from UE' ? or 'SR from UE with bit field set to 0' ?

    [A] it means "No SR". It is just that in NR, on certain PUCCH format and/or multiplexing rule, the UE sometimes send a SR bit if there is a SR occasion, even if UL Grant is not required

     

    [Q] what do you mean by this "the UE sometimes send a SR bit if there is a SR occasion" ?   

         UE send SR with bit = 0 ?

    [A] yes, but only when SR is not alone

     

    [Q] 'only when SR is not alone' mean 'only the case where SR is scheduled together with other UCI' ?

    [A] yes

     

    [Q] What if a periodic SR is scheduled at slot N, No data to send from UE side. No other UCI is scheduled

         at slot N... in this case UE should skip SR ? or send Negative SR ?

    [A] The UE skips SR. 38.213 - 9.2.4 : The UE transmits a PUCCH in the PUCCH resource for the corresponding SR configuration only when the UE transmits a positive SR.

     

    [Q] I see... but I got confused by other statements from 9.2.5.1

    [A]  9.2.5.1 states what happens when you have collision with other resources

         -> PUCCH Format 0 : a positive SR changes the cyclic shift values

         -> PUCCH Format 1: put the HARQ in the SR resources for positive SR

         -> Long PUCCH format: SR bits are appended to the payload

     

Chat with an Expert 2

This is a nice chat with another expert, Xinya Shen.  He kindly reached out to me to help me with the detailed understanding and allowed me to share this discussion with readers. I tried not to summarize anything and share the chat as it is so that you can have a kind of first hand experience with our chat and follow through the thread of chat (thought process) in real context.

    [Xingya] In general, the SR resource is called Positive SR when the UE has a demand for SR transmission on the SR resource, and the SR resource is called Negative SR when the UE has no demand for SR transmission on the SR resource.

    [Sharetechnote] Assuming this is periodic SR case,  Does "the UE has no demand for SR transmission on the SR resource" mean that 'UE has no demand for SR transmission because it already has enough UL grant or no data to transmit' ?

    [Xingya] Yes, your understanding is correct.

     

    [38.213-9.2.4] The UE transmits a PUCCH in the PUCCH resource for the corresponding SR configuration only when the UE transmits a positive SR.

    [Sharetechnote] Does this imply that UE does NOT transmit PUCCH when UE transmit a negative SR ?  Does negative SR mean 'No PUCCH / NO SR' ?

    [Xingya] This statement means that the UE transmits PUCCH on the SR resource ("PUCCH resource of the corresponding SR configuration") only if both PUCCH transmission and SR transmission are present.

    When the UE does not need to transmit SR but only PUCCH, the UE transmits on the PUCCH resource, at this time, the SR resource is called negative SR

     

    [38.213 - 9.2.5.1] If a UE would transmit a PUCCH with positive SR and at most two HARQ-ACK information bits in a resource using PUCCH format 0, the UE transmits the PUCCH in the resource using PUCCH format 0 in PRB(s) for HARQ-ACK information

    If the UE would transmit negative SR and a PUCCH with at most two HARQ-ACK information bits in a resource using PUCCH format 0, the UE transmits the PUCCH in the resource using PUCCH format 0 for HARQ-ACK information

    [Sharetechnote] What is the difference between the two statements ?  It sounds same to me.

    [Xingya] The difference between these two statements is the meaning of "resource". In the first statement, the "resource" refers to SR resource, while in the second statement, "resource" refers to PUCCH resource.

     

    [Sharetechnote] Does this imply that SR can be transmitted via PUCCH format 2,3,4 as well as format 0,1 ? Is it going against the statement 'The UE transmits a PUCCH in the PUCCH resource for the corresponding SR configuration only when the UE transmits a positive SR.' from 38.213-9.2.4 ?

    [Xingya] Yes. if the SR is transmitted via PUCCH fomat 2,3,4 it should be encoded with the ACK/NACK bits. For format 0, different m_cs value are used to distinguish the cases betwenn PUCCH with positive SR and PUCCH without SR. For PUCCH format 1, PUCCH with positive SR should be transmitted on SR resource.

     

    [38.213 - 9] If a UE would transmit on a serving cell a PUSCH without UL-SCH that overlaps with a PUCCH transmission on a serving cell that includes positive SR information, the UE does not transmit the PUSCH.

    [Sharetechnote] Does this imply that if aperiodic CSI report occasion and SR occasion overlaps, the aperiodic CSI report should drop ?

    [Xingya] Yes

     

    [Sharetechnote] Sometimes you use 'SR Resources' and 'PUCCH Resources' in different meaning which confuses me a little bit.  Since SR is carried by PUCCH, I thought SR Resource is also a type of PUCCH Resource as in following statement The difference between these two statements is the meaning of "resource". In the first statement, the "resource" refers to SR resource, while in the second statement, "resource" refers to PUCCH resource.

    When you say SR Resources, does it mean 'a type of PUCCH resource allocated for PUCCH' and when you say PUCCH resources, does it mean the PUCCH resource allocated only for Ack/Nack ?

    [Xingya] Yes, your understanding is correct. The SR resource I mentioned refers to a type of PUCCH resource, configured by IE "Resource" in IE "SchedulingRequestResourceConfig", where IE "Resource" is associated to "PUCCH-ResourceId". The PUCCH resource is the resource that carry ACK/NACK.

SR Configurations

Followings are Configurations and Interdependancies among the parameters regarding SR (NOTE : You may need further understandings on pucch-Config. Refer to this note for pucch config details)

RRC Parameters

SchedulingRequestConfig ::= SEQUENCE {

    schedulingRequestToAddModList       SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF

                                               SchedulingRequestToAddMod  OPTIONAL,

    schedulingRequestToReleaseList      SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF

                                               SchedulingRequestId  OPTIONAL -- Need N

}

 

SchedulingRequestToAddMod ::= SEQUENCE {

    schedulingRequestId                 SchedulingRequestId,

    sr-ProhibitTimer                    ENUMERATED {ms1, ms2, ms4, ms8, ms16,

                                                    ms32, ms64, ms128}

    sr-TransMax                         ENUMERATED {n4, n8, n16, n32, n64,

                                                    spare3, spare2, spare1}

}

 

schedulingRequestId : Used to modify a SR configuration and to indicate, in LogicalChannelConfig, the SR configuration to which a logical channel is mapped and to indicate, in SchedulingRequestresourceConfig, the SR configuration for which a scheduling request resource is used.

sr-ProhibitTimer : Timer for SR transmission in ms on PUCCH

sr-TransMax : Maximum number of SR transmissions

 

SchedulingRequestResourceConfig ::= SEQUENCE {

   schedulingRequestResourceId          SchedulingRequestResourceId,

   schedulingRequestID                  SchedulingRequestId,

   periodicityAndOffset CHOICE {

      sym2                              NULL,

      sym6or7                           NULL,

      sl1                               NULL, -- Recurs in every slot

      sl2                               INTEGER (0..1),

      sl4                               INTEGER (0..3),

      sl5                               INTEGER (0..4),

      sl8                               INTEGER (0..7),

      sl10                              INTEGER (0..9),

      sl16                              INTEGER (0..15),

      sl20                              INTEGER (0..19),

      sl40                              INTEGER (0..39),

      sl80                              INTEGER (0..79),

      sl160                             INTEGER (0..159),

      sl320                             INTEGER (0..319),

      sl640                             INTEGER (0..639)

   } OPTIONAL, -- Need M

   resource PUCCH-ResourceId OPTIONAL -- Need M

}

 

SchedulingRequestResourceConfig-v1610 ::= SEQUENCE {

   phy-PriorityIndex-r16 ENUMERATED {p0, p1} OPTIONAL, -- Need M

   ...

}

 

periodicityAndOffset : SR periodicity and offset in number of symbols or slots (see TS 38.213 [13], clause 9.2.4) The following periodicities may be configured depending on the chosen subcarrier spacing:

    SCS = 15 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 5sl, 8sl, 10sl, 16sl, 20sl, 40sl, 80sl

    SCS = 30 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 8sl, 10sl, 16sl, 20sl, 40sl, 80sl, 160sl

    SCS = 60 kHz: 2sym, 7sym/6sym, 1sl, 2sl, 4sl, 8sl, 16sl, 20sl, 40sl, 80sl, 160sl, 320sl

    SCS = 120 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 8sl, 16sl, 40sl, 80sl, 160sl, 320sl, 640sl

sym6or7 corresponds to 6 symbols if extended cyclic prefix and a SCS of 60 kHz are configured, otherwise it corresponds to 7 symbols.

For periodicities 2sym, 7sym and sl1 the UE assumes an offset of 0 slots.

phy-PriorityIndex : Indicates whether this scheduling request resource is high or low priority in PHY prioritization / multiplexing handling. Value p0 indicates low priority and value p1 indicates high priority.

(38.213-9.2.4) The UE can be provided, by phy-PriorityIndex in SchedulingRequestResourceConfig, a priority index 0 or a priority index 1 for the SR. If the UE is not provided a priority index for SR, the priority index is 0.

resource :  ID of the PUCCH resource in which the UE shall send the scheduling request. The actual PUCCH-Resource is configured in PUCCH-Config of the same UL BWP and serving cell as this SchedulingRequestResourceConfig. The network configures a PUCCH-Resource of PUCCH-format0 or PUCCH-format1

schedulingRequestID : The ID of the SchedulingRequestConfig that uses this scheduling request resource.

 

LogicalChannelConfig ::= SEQUENCE {

    ul-SpecificParameters      SEQUENCE {

        priority INTEGER (1..16),

        prioritisedBitRate                      ENUMERATED {kBps0, kBps8, kBps16, kBps32,

                                                            kBps64, kBps128, kBps256, kBps512,

                                                            kBps1024, kBps2048, kBps4096,

                                                            kBps8192, kBps16384, kBps32768,

                                                            kBps65536, infinity},

        bucketSizeDuration                      ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150,

                                                            ms300, ms500, ms1000,

                                                            spare7, spare6, spare5, spare4,

                                                            spare3,spare2, spare1},

        allowedServingCells                     SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF

                                                            ServCellIndex  OPTIONAL,

        allowedSCS-List                         SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing

        maxPUSCH-Duration                       ENUMERATED {ms0p02, ms0p04, ms0p0625, ms0p125,

                                                            ms0p25, ms0p5, spare2, spare1}

        configuredGrantType1Allowed             ENUMERATED {true} OPTIONAL,

        logicalChannelGroup                     INTEGER (0..maxLCG-ID) OPTIONAL, -- Need R

        schedulingRequestID                     SchedulingRequestId OPTIONAL, -- Need R

        logicalChannelSR-Mask                   BOOLEAN,

        logicalChannelSR-DelayTimerApplied      BOOLEAN,

        ...,

        bitRateQueryProhibitTimer               ENUMERATED { s0, s0dot4, s0dot8, s1dot6,

                                                             s3, s6, s12,s30} OPTIONAL -- Need R

} OPTIONAL, -- Cond UL

...

}

 

logicalChannelSR-Mask : Controls SR triggering when a configured uplink grant of type1 or type2 is configured. true indicates that SR masking is configured for this logical channel

logicalChannelSR-DelayTimerApplied : Indicates whether to apply the delay timer for SR transmission for this logical channel. Set to false if logicalChannelSR-DelayTimer is not included in BSR-Config.

Reference