In LCP, Prioritize Bit Rate (PBR) is added to each logical channel. Hence while filling the MAC PDU, first it will take and add the minimum data i.e PBR from all the channels into the MAC PDU. After that if there are any space left in MAC PDU, then it will fill according to the priority.
Hence all the channels will get a chance to participate in sending the data.
For example:
Channel 1 has priority 1 with 60 bytes of data PBR is 20 bytes
Channel 2 has priority 2 with 40 bytes of data PBR is 10 bytes
Channel 3 has priority 3 with 20 bytes of data PBR is 10 bytes
So if MAC layer wants to transmit 100 bytes of data in MAC PDU to PHY layer, then first it will take 20 bytes from Channel 1, 10 from channel 2, 10 from channel 3. Total it will fill 40 bytes from all the 3 channels.
Now we have 60bytes of data to be filled. Now it will fill according to the priority. Hence it will take 60bytes from channel 1 and fill total 100 bytes.
How priority will be considered for LCP?
For LCP the priority in decreasing order:
– MAC control element for C-RNTI or data from UL-CCCH;
– MAC control element for BSR, with exception of BSR included for padding;
– MAC control element for PHR;
– data from any Logical Channel, except data from UL-CCCH;
– MAC control element for BSR included for padding.
RRC IEs LogicalChannelConfig
RRC IEs LogicalChannelConfig LogicalChannelConfig Priority (1 to 16) PrioritisedBitRate (0kbps to 2048kbps) BucketSizeDuration (ms50 to ms1000) LogicalChannelGroup (0 to 3)
Reference TS 36.321