inet-framework / simulte

SimuLTE - LTE System Level Simulation Model and Simulator for INET & OMNeT++ - deprecated, use Simu5G instead
https://simulte.omnetpp.org
Other
137 stars 110 forks source link

MAC SDU to codeword mapping in LcgScheduler.cc #37

Open alexonea opened 5 years ago

alexonea commented 5 years ago

I was browsing the LteSchedulerUeUl.cc and LcgScheduler.cc files in an attempt to better understand how the MAC -> PHY data flow is modeled in simulte. I stumbled upon the following function: LcgScheduler::schedule(unsigned int availableBytes, Direction grantDir) which returns a map of connection ids to number of SDUs which could be scheduled in the availableBytes limit. To me it seems that it is possible to schedule an arbitrary number of users as output of this function, which in turn is used by LteSchedulerUeUl::schedule () to further map those connection ids to a particular codeword.

My question is: is it possible in LTE to have a codeword shared between multiple users? My (rather limited) understanding is that codewords are generated as result of channel coding (PHY) procedure, which takes as (not direct) input a transport block received from the MAC layer. The transport block coming from the upper layer is always per connection and cannot include data for multiple connections.

However, I might be wrong. Do you think that some documentation (e.g. references to the 3GPP standard, etc.) can be provided at least for the critical decision-making code sections for a better understanding of the simulation model?

Also, are you referring in the simulation model to codewords as "data streams" mapped to antennas and physical resources, instead of "coded transport block"?

kruviser commented 5 years ago

Codeword is a concept that was mainly used in MIMO.

In Multi-User MIMO, two UEs can receive data on the same frequency simultaneously. In Single-User MIMO, one UE can receive double the data on the same frequency, i.e. it receives two codewords.

Currently, MU-MIMO and SU-MIMO have been discontinued in SimuLTE (meaning that we haven't updated that part of code through the last versions, thus they might be not working).

Hope this helps. BR

Antonio Virdis

Il giorno mer 15 mag 2019 alle ore 23:36 Alexandru N. Onea < notifications@github.com> ha scritto:

I was browsing the LteSchedulerUeUl.cc and LcgScheduler.cc files in an attempt to better understand how the MAC -> PHY data flow is modeled in simulte. I stumbled upon the following function: LcgScheduler::schedule(unsigned int availableBytes, Direction grantDir) which returns a map of connection ids to number of SDUs which could be scheduled in the availableBytes limit. To me it seems that it is possible to schedule an arbitrary number of users as output of this function, which in turn is used by LteSchedulerUeUl::schedule () to further map those connection ids to a particular codeword.

My question is: is it possible in LTE to have a codeword shared between multiple users? My (rather limited) understanding is that codewords are generated as result of channel coding (PHY) procedure, which takes as (not direct) input a transport block received from the MAC layer. The transport block coming from the upper layer is always per connection and cannot include data for multiple connections.

However, I might be wrong. Do you think that some documentation (e.g. references to the 3GPP standard, etc.) can be provided at least for the critical decision-making code sections for a better understanding of the simulation model?

Also, are you referring in the simulation model to codewords as "data streams" mapped to antennas and physical resources, instead of "coded transport block"?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/inet-framework/simulte/issues/37?email_source=notifications&email_token=AAMPQJW36PLHR7RUKZXWUTDPVR64FA5CNFSM4HNHFOX2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GUA5KRA, or mute the thread https://github.com/notifications/unsubscribe-auth/AAMPQJTA3Q2M7EXJT4PHUDTPVR64FANCNFSM4HNHFOXQ .

-- Antonio Virdis

alexonea commented 5 years ago

@kruviser Thanks for the quick response and for the insights.

Just to give a bit of background, I am trying to integrate 5G code block groups and per CBG feedback/HARQ on top of the existing LTE scheduler in simulte. I was looking for a starting point and codewords were very promising because I was planning to just map multiple CBGs to a codeword, but unfortunately I believe that, from what you explained, the current use of codewords does not fit into my original plan. I would have to rethink it.

Dan9921 commented 1 year ago

Codeword is a concept that was mainly used in MIMO. In Multi-User MIMO, two UEs can receive data on the same frequency simultaneously. In Single-User MIMO, one UE can receive double the data on the same frequency, i.e. it receives two codewords. Currently, MU-MIMO and SU-MIMO have been discontinued in SimuLTE (meaning that we haven't updated that part of code through the last versions, thus they might be not working). Hope this helps. BR Antonio Virdis Il giorno mer 15 mag 2019 alle ore 23:36 Alexandru N. Onea < notifications@github.com> ha scritto: I was browsing the LteSchedulerUeUl.cc and LcgScheduler.cc files in an attempt to better understand how the MAC -> PHY data flow is modeled in simulte. I stumbled upon the following function: LcgScheduler::schedule(unsigned int availableBytes, Direction grantDir) which returns a map of connection ids to number of SDUs which could be scheduled in the availableBytes limit. To me it seems that it is possible to schedule an arbitrary number of users as output of this function, which in turn is used by LteSchedulerUeUl::schedule () to further map those connection ids to a particular codeword. My question is: is it possible in LTE to have a codeword shared between multiple users? My (rather limited) understanding is that codewords are generated as result of channel coding (PHY) procedure, which takes as (not direct) input a transport block received from the MAC layer. The transport block coming from the upper layer is always per connection and cannot include data for multiple connections. However, I might be wrong. Do you think that some documentation (e.g. references to the 3GPP standard, etc.) can be provided at least for the critical decision-making code sections for a better understanding of the simulation model? Also, are you referring in the simulation model to codewords as "data streams" mapped to antennas and physical resources, instead of "coded transport block"? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#37?email_source=notifications&email_token=AAMPQJW36PLHR7RUKZXWUTDPVR64FA5CNFSM4HNHFOX2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GUA5KRA>, or mute the thread https://github.com/notifications/unsubscribe-auth/AAMPQJTA3Q2M7EXJT4PHUDTPVR64FANCNFSM4HNHFOXQ . -- Antonio Virdis

H!!i, i just want to ask something here as you are already discussing this topic. Are MU-MIMO and SU-MIMO still discontinued???