如何使用Openair4G的OTG以及进行ping操作
为了使后续可以把文章所述的内容作为一个有效的参考,我会在文章开头把所使用的svn信息列出来。
=========================================================
URL: http://svn.eurecom.fr/openair4G/trunk
Relative URL: ^/trunk
Repository Root: http://svn.eurecom.fr/openair4G
Repository UUID: 818b1a75-f10b-46b9-bf7c-635c3b92a50f
Revision: 7528
Node Kind: directory
Schedule: normal
Last Changed Author: navid
Last Changed Rev: 7528
Last Changed Date: 2015-06-04 07:45:55 -0700 (Thu, 04 Jun 2015)
=========================================================
1> OTG
OTG,Openair4G Transmission Generator,传输生成器。现在可以与ITTI结合进行测试仿真。
测试流程如下:
首先在cmake_targets目录下,执行 ./build_oai --oaisim -c,当然你也可以选择XFORMS或者其他选项进行编译,之后到oaisim_noS1_build_oai/build目录下,+ 如果与ITTI一起: 执行命令 ./oaisim_nos1 -O ../../../targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -a -c 5 | grep -i otg
+ 如果不带 ITTI: 需要在../CMakeList.txt文件中修改设置set ( ENABLE_ITTI False ) ,之后进行编译执行即可: cmake ..; make oaisim_nos1 -j6; ./oaisim_nos1 -a -c5 | grep -i otg
- 其中选项-c 5 指示出选择targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml配置文件。
2> Ping
同时,也可以使用nasmesh驱动,发送IP包( ping, iperf, d-itg, etc)到OAI的协议栈。此时,最好不要使用OTG功能,你可以在xml文件中删除 <APPLICATION_CONFIG>。- 在oaisim_noS1_build_oai/build目录下,执行 make nasmesh; sudo insmod CMakeFiles/nasmesh/nasmesh.ko (使用dmesg命令查看是否插入相应模块)
- 在../CMakeList.txt文件中进行如下设置set ( OAI_NW_DRIVER_USE_NETLINK False ), set ( ENABLE_ITTI False ), and set ( OAI_NW_DRIVER_TYPE_ETHERNET False ) ,执行命令cmake ..; make oaisim_nos1 -j6; sudo -E ./oaisim_nos1 -a -l7 | grep -i pdcp ;
- 打开另一个终端,执行ifconfig命令,你应该能够看到如下的oai网络接口,针对eNB 和 UE。
oai0 Link encap:AMPR NET/ROM HWaddr
inet addr:10.0.1.1 Bcast:10.0.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
oai1 Link encap:AMPR NET/ROM HWaddr
inet addr:10.0.2.2 Bcast:10.0.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
[PDCP][D][FRAME 0][eNB][NETLINK][ IP->PDCP ] INST 0: Received socket with length 100 (nlmsg_len = 84) on Rab 1
and
[PDCP][D] PDCP->IP TTI 0 INST 0: Preparing 84 Bytes of data from rab 1 to Nas_mesh
同样的工作,也可以在lte-softmodem上实现,这需要大家自己去尝试。