LTE用户文档

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

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

 
 
在上一节中,我们使用点对点链路连接基站和服务网关 (S1-U 接口) 以及在基站间连接 (X2-U 和 X2-C 接口)。 LTE 模块支持使用仿真(emulation )链路而不是点对点链路。这只是通过下列代码将创建 LteHelper 替换为 EpcHelper 来实现的:
 
  1. Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
  2. Ptr<EmuEpcHelper> epcHelper = CreateObject<EmuEpcHelper> ();
  3. lteHelper->SetEpcHelper (epcHelper);
  4. epcHelper->Initialize ();
 
属性 ns3::EmuEpcHelper::sgwDeviceName 和 ns3::EmuEpcHelper::enbDeviceName 分别用于在服务网关和基站设置传输 S1-U、 X2-U 和 X2-C 接口的设备名称。现在我们将讲解这个是如何在一个例子中实现的,我们使用虚拟以太网接口来执行程序 lena-simple-epc-emu 。
 
首先,我们正确地编译 ns-3 :
 
  1. # configure
  2. ./waf configure --enable-sudo --enable-modules=lte,fd-net-device --enable-examples
  3.  
  4. # build
  5. ./waf
 
然后,我们设置两个虚拟以太网接口,打开 wireshark 观察业务流的走向:
 
  1. # note: you need to be root
  2.  
  3. # create two paired veth devices
  4. ip link add name veth0 type veth peer name veth1
  5. ip link show
  6.  
  7. # enable promiscuous mode
  8. ip link set veth0 promisc on
  9. ip link set veth1 promisc on
  10.  
  11. # bring interfaces up
  12. ip link set veth0 up
  13. ip link set veth1 up
  14.  
  15. # start wireshark and capture on veth0
  16. wireshark &
现在使用模拟时钟运行实例程序:
 
  1. ./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1"
使用wireshark,你应该会先看到 ARP 协议,然后看到上行和下行链路有一些 GTP 数据包交换。
 
示例程序的默认设置为 1 个基站和 1 个用户。你可以通过命令行参数来修改它,例如:
 
  1. ./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1 --nEnbs=2 --nUesPerEnb=2"
 
获取一系列可用的参数:
 
  1. ./waf --run lena-simple-epc-emu --command="%s --PrintHelp"
为了运行实时时钟:事实证明默认的调试版本对于实时来说太慢。使用 BestEffort 方式软化实时约束并不是一个好主意:一些东西可能出错(例如,ARP 失败),如果这样的话, 你将得不到任何数据包输出。因此,你需要一个良好的硬件和具有静态链接的优化编译模块(optimized build with statically linked modules)。
 
  1. ./waf configure -d optimized --enable-static --enable-modules=lte --enable-examples --enable-sudo
 
然后运行实例程序:
 
  1. ./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. [daily][troubleshoot][archlinux][wps][font] wps文档中的图内容无法显示中文

    序 用linux作为工作生产环境的几个需要解决的问题之一是:文档协作,即如何兼容Micro$oft Office格式的文档. 我一般的工作方式是:在linux下创建一个win7的虚拟机,安装常用的wi ...

  2. python 多线程就这么简单(续)

    之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...

  3. 用soapUI生成客户端代码

    一.用soapUI生成客户端代码 方法一: 1.第一步,打开soapUI,菜单栏里的tools,选择apache CXF,如图, 2.第二步,WSDL:写上你连接服务端的地址,OutputDirect ...

  4. JSONP使用笔记

    JSONP JSONP是实现跨域GET请求的一种方法, 原理上利用script标签可以动态加载JS文件, 将不同源站点的JSON数据加载到本网站来,如果给定回调函数,将回调函数名传递到服务器端, 在服 ...

  5. EF CodeFirst 创建数据库

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    话说EF支持三种模式:Code First   M ...

  6. Quartz.NET

    http://www.360doc.com/userhome.aspx?userid=11741424&cid=2#

  7. IE10,IE11下cookie无法写入问题

    asp.net 4.0的程序,发布后,测试在ie6,ie7,ie8,ie9下均可以正常登录,但是在ie10,ie11下就是无法保存cookie,排查了一下是否ie10,ie11是否存在设置问题发下并不 ...

  8. 笔记本自带 WiFi 功能

    在寝室,动网速基本崩溃.平时打电话什么的都得到阳台,有时候还听不清声音.对于学校的环境,我不说什么了. 笔记本可以上网,那就要满足手机等移动电子设备上网的上网需求. WiFi 热点就显得尤为重要了. ...

  9. Fitnesse在eclipse中的调试

    需要在Fitnesse的wik中添加: '''此句话专门用来Debug'''!define COMMAND_PATTERN {java -Xdebug -Xrunjdwp:transport=dt_s ...

  10. jquery隐藏table表格的某一列

    jquery隐藏table表格的某一列: $('table tr').find('td:eq(13)').hide(); 隐藏table的第13列