LTE用户文档

(如有不当的地方,欢迎指正!)

15 Using the EPC with emulation mode(使用仿真方式的 EPC)

 
 
在上一节中,我们使用点对点链路连接基站和服务网关 (S1-U 接口) 以及在基站间连接 (X2-U 和 X2-C 接口)。 LTE 模块支持使用仿真(emulation )链路而不是点对点链路。这只是通过下列代码将创建 LteHelper 替换为 EpcHelper 来实现的:
 
Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
Ptr<EmuEpcHelper> epcHelper = CreateObject<EmuEpcHelper> ();
lteHelper->SetEpcHelper (epcHelper);
epcHelper->Initialize ();
 
属性 ns3::EmuEpcHelper::sgwDeviceName 和 ns3::EmuEpcHelper::enbDeviceName 分别用于在服务网关和基站设置传输 S1-U、 X2-U 和 X2-C 接口的设备名称。现在我们将讲解这个是如何在一个例子中实现的,我们使用虚拟以太网接口来执行程序 lena-simple-epc-emu 。
 
首先,我们正确地编译 ns-3 :
 
# configure
./waf configure --enable-sudo --enable-modules=lte,fd-net-device --enable-examples # build
./waf
 
然后,我们设置两个虚拟以太网接口,打开 wireshark 观察业务流的走向:
 
# note: you need to be root

# create two paired veth devices
ip link add name veth0 type veth peer name veth1
ip link show # enable promiscuous mode
ip link set veth0 promisc on
ip link set veth1 promisc on # bring interfaces up
ip link set veth0 up
ip link set veth1 up # start wireshark and capture on veth0
wireshark &
现在使用模拟时钟运行实例程序:
 
./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1"
使用wireshark,你应该会先看到 ARP 协议,然后看到上行和下行链路有一些 GTP 数据包交换。
 
示例程序的默认设置为 1 个基站和 1 个用户。你可以通过命令行参数来修改它,例如:
 
./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1 --nEnbs=2 --nUesPerEnb=2"
 
获取一系列可用的参数:
 
./waf --run lena-simple-epc-emu --command="%s --PrintHelp"
为了运行实时时钟:事实证明默认的调试版本对于实时来说太慢。使用 BestEffort 方式软化实时约束并不是一个好主意:一些东西可能出错(例如,ARP 失败),如果这样的话, 你将得不到任何数据包输出。因此,你需要一个良好的硬件和具有静态链接的优化编译模块(optimized build with statically linked modules)。
 
./waf configure -d optimized --enable-static --enable-modules=lte --enable-examples --enable-sudo
 
然后运行实例程序:
 
./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1 --simulatorImplementationType=ns3::RealtimeSimulatorImpl --ns3::RealtimeSimulatorImpl::SynchronizationMode=HardLimit"
 
注意 HardLimit 设置,如果不能实时跟上,会造成程序终止。
 
本节描述的方法可以用于任何类型的网络设备。例如,  [Baldo2014] 描述了它是如何在一个真正的多层次 packet-optical 传输网络运行仿真 LTE-EPC 网络。
 
 
 

参考文献

https://www.nsnam.org/docs/models/html/lte-user.html

LTE Module User Documentation(翻译9)——Using the EPC with emulation mode的更多相关文章

  1. LTE Module User Documentation(翻译8)——核心网(EPC)

    LTE用户文档 (如有不当的地方,欢迎指正!) 14 Evolved Packet Core (EPC)   我们现在讲解如何编写一个仿真程序——除了 LTE 无线接入网外,还允许仿真 EPC. EP ...

  2. LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧

    LTE用户文档 (如有不当的地方,欢迎指正!)     21 Examples Programs(示例程序)   路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不 ...

  3. LTE Module User Documentation(翻译14)——Uplink Power Control(上行功率控制)

    LTE用户文档 (如有不当的地方,欢迎指正!) 20 Uplink Power Control(上行功率控制)   上行功率控制功能默认是开启的.用户可以通过设置布尔属性 ns3::LteUePhy: ...

  4. LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)

    LTE用户文档 (如有不当的地方,欢迎指正!)   19 Frequency Reuse Algorithms(频率复用算法)   本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...

  5. LTE Module User Documentation(翻译12)——X2切换(X2-based handover)

    LTE用户文档 (如有不当的地方,欢迎指正!) 18 X2-based handover   正如 3GPP 定义的,切换是改变用户服务小区的连接方式的过程.这一过程中涉及的两个基站通常称为源基站和目 ...

  6. LTE Module User Documentation(翻译11)——配置用户测量

    LTE用户文档 (如有不当的地方,欢迎指正!) 17 Configure UE measurements   仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法.用户可能需要添 ...

  7. LTE Module User Documentation(翻译10)——网络连接(Network Attachment)

    LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接)   正如前面章节 Basic simulation program 所述,连接用户到基站时通过调 ...

  8. LTE Module User Documentation(翻译7)——无线环境地图(REM)、AMC 模型 和 CQI 计算

    LTE用户文档 (如有不当的地方,欢迎指正!) 12 Radio Environment Maps   通过使用类 RadioEnvironmentMapHelper  是可能输出文件 Radio E ...

  9. LTE Module User Documentation(翻译6)——物理误差模型、MIMO模型、天线模型

    LTE用户文档 (如有不当的地方,欢迎指正!) 9 PHY Error Model   物理误差模型包含数据误差模型和下行控制误差模型,两者默认为激活.可以使用 ns-3 属性系统去激活,具体为:   ...

随机推荐

  1. MySQL 表与字段编码格式报错

    MySQL 表与字段编码格式报错 一.数据库,表,字段编码格式都为latin1(iso-8859-1) .当数据保存到数据库后,中文显示乱码. 解决办法: 1.在访问数据库连接串中添加编码格式: &l ...

  2. JQuery + JSON作为前后台数据交换格式实践

    JQuery + JSON作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ JSON作为 ...

  3. zjuoj 3606 Lazy Salesgirl

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3606 Lazy Salesgirl Time Limit: 5 Secon ...

  4. PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum

    PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum PHP 5.4.16 has been released on PHP.net on 6th June 2013, ...

  5. ubuntu 15.04 联网提示:wifi已通过硬件开关禁用

    执行以下命令: echo "options asus_nb_wmi wapf=4"| sudo tee /etc/modprobe.d/asus_nb_wmi.conf 重启

  6. Android——初探Dagger2依赖注入

    1,在做项目时,经常需要在一个对象里去创建另一个对象的示例,这种行为是产生耦合的常见形式,对于一个大型项目来说,过多的相互依赖会导致代码难以维护,很容易就会碰到修改一个小需求需要大面积的修改各种代码, ...

  7. 0525 Scrum 项目7.0

    一.sprint总结 本次sprint总结,本次合作每个人都完成了属于自己的任务,我觉得这是十分不错的,但是做出来的项目不够美观,内容可以更丰富一点,多样化一点,虽然每个人做出来的网页都各有各的区别, ...

  8. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数006, image,影像处理(像素图)

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数006, image,影像处理(像素图) 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“* ...

  9. The import java.util cannot be resolved The import javax.servlet cannot be resolved

    The import java.util cannot be resolved 原因:这是由于你的项目buildpath不对 解决方案:右键项目-------buildpath--------最下面那 ...

  10. checkbox的单选全选,反选,计算价格,删除

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...