Any padding occurs at the end of the PDU unless only one or two bytes of padding are required. These are followed by the control elements, which are then followed by the MAC SDUs.
All subheaders are grouped at the start of the MAC PDU in the MAC header. For the MAC SDUs, the logical channel number and the size of the SDU are specified. For the control element, the subheader identifies the specific control element being sent. In addition, there can be a subheader to specify padding. There is one subheader for each MAC control element and each MAC SDU in the PDU. The MAC header consists of several subheaders. MAC control elements are used to piggyback control information, such as buffer status or power headroom reports. Each MAC PDU corresponds to one transport block and consists of a header, control elements, logical channel SDUs (corresponding to RLC PDUs), and optional padding. The structure of the MAC PDU used on UL-SCH and DL-SCH is shown in Figure 8.25.