OpenAirInterface OAI 代码分析
【高清的图在 OAI学生交流群里】
最近有不少同学发邮件问我关于OAI的问题,为了方便大家交流,我建立了一个OAI的学生讨论QQ群,群号1 512786903 群号2:796058599 加群请备注(OAI)。有兴趣的同学欢迎加入交流。
OAI前段时间为了在eNB侧添加NGFI功能,对eNB侧代码做了较大的修改。同时,UE侧的数据处理也改成了多线程处理。我简单整理了eNB侧和UE侧各个主要线程的调用关系以及各个线程之间的信号量同步。
eNB:包含单线程模式、多线程模式
单线程模式
eNB_thread_single,收发函数在同一个线程中
多线程模式
2个 eNB_thread_rxtx,分别负责奇、偶子帧数据的收发,收发函数在同一个线程中;
包含NGFI的功能,Turbo编码和译码有单独的线程,以后Turbo编译码会改成多线程处理。
多线程模式下线程梳理关系如下图所示。(图片若不清晰,可以下载后放大观看)
UE:多线程处理,收发函数在同一个线程中
2个UE_thread_rxn_txnp4线程,分别负责奇、偶子帧的数据处理,在第n子帧接收数据后,再生成n+4子帧要发送的数据;
当前子帧要处理下一个子帧的0号OFDM符号用于信道估计。
UE侧线程梳理关系如下图所示。(图片若不清晰,可以下载后放大观看)
尾注:个人能力有限,如果发现博客中有不对的地方,欢迎指正。