A method of scheduling resource blocks of a transmission link in time and frequency domain, said method comprising: - selecting, with a time domain scheduler, terminal devices for potential scheduling to obtain a first candidate list of terminal devices with new transmissions to be scheduled and a second candidate list of terminal devices with pending retransmissions to be scheduled; - estimating a number of resource blocks to be reserved for retransmissions; - calculating, with a frequency domain scheduler, a first scheduling metric per each resource block for each terminal device of said first candidate list; - assigning resource blocks for each terminal device of said first candidate list based on said first scheduling metric until all resource blocks for new transmissions have been assigned or all terminal devices of said first candidate list have obtained resource block sizes larger than their traffic demands; - calculating, with the frequency domain scheduler, a second scheduling metric per each remaining free resource block for each terminal device of said second candidate list; and - assigning resource blocks for each terminal device of said second candidate list based on said second scheduling metric until no free resource blocks are available or all terminal devices of said second candidate list have obtained resource block sizes larger than their transport block sizes to be retransmitted, the method further comprising: - composing a packet of a media access control layer by multiplexing control elements first and then using a remaining space to include pending status packets, then multiplexing logical channels in decreasing order of priority by a data amount dependant on past logical channel throughput and quality of service requirements, wherein a weighing factor is applied taking into account a guaranteed bit rate, delay and priority requirements. - selecting, with a time domain scheduler, terminal devices for potential scheduling to obtain a first candidate list of terminal devices with new transmissions to be scheduled and a second candidate list of terminal devices with pending retransmissions to be scheduled; - estimating a number of resource blocks to be reserved for retransmissions; - calculating, with a frequency domain scheduler, a first scheduling metric per each resource block for each terminal device of said first candidate list; - assigning resource blocks for each terminal device of said first candidate list based on said first scheduling metric until all resource blocks for new transmissions have been assigned or all terminal devices of said first candidate list have obtained resource block sizes larger than their traffic demands; - calculating, with the frequency domain scheduler, a second scheduling metric per each remaining free resource block for each terminal device of said second candidate list; and - assigning resource blocks for each terminal device of said second candidate list based on said second scheduling metric until no free resource blocks are available or all terminal devices of said second candidate list have obtained resource block sizes larger than their transport block sizes to be retransmitted, the method further comprising: - composing a packet of a media access control layer by multiplexing control elements first and then using a remaining space to include pending status packets, then multiplexing logical channels in decreasing order of priority by a data amount dependant on past logical channel throughput and quality of service requirements, wherein a weighing factor is applied taking into account a guaranteed bit rate, delay and priority requirements.