在 NS 2-35 中安装 UMTS 和 WiMax 补丁

我的操作系统是 Linux Mint Debian Mate Edition,201403版,内核版本 3.11-2-amd64,gcc version 4.8.2。

一、安装 NS-2.35

截至2014年10月,这是NS2最新的版本了。

首先安装几个包:“ sudo apt-get install build-essential libxmu-dev ”,依赖的几个包也要装上。

然后下载 ns-allinone-2.35,解压,复制 ns-allinone-2.35 文件夹到主目录下,我改名为.ns-allinone-2.35,方便隐藏;

在 /.ns-allinone-2.35/ns-2.35/linkstate/ls.h 的第137行,“ erase(baseMap::begin()”前添加“ this-> ”,改为

" void eraseAll() {this->erase(baseMap::begin(), baseMap::end()); } ";

然后在 .ns-allinone-2.35文件夹下运行 ./install 即可安装。

安装完成,需要在主目录下的 .bashrc 文件中加入下面的文字:

# enable Network Simulator 2
export PATH="$PATH:/home/suyangts/.ns-allinone-2.35/bin:/home/suyangts/.ns-allinone-2.35/tcl8.5.10/unix:/home/suyangts/.ns-allinone-2.35/tk8.5.10/unix"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/suyangts/.ns-allinone-2.35/otcl-1.14, /home/suyangts/.ns-allinone-2.35/lib"
export TCL_LIBRARY="$TCL_LIBRARY:/home/suyangts/.ns-allinone-2.35/tcl8.5.10/library "

其中 /home/suyangts 是我的主目录。

打开终端,运行“ ns  ./.ns-allinone-2.35/ns-2.35/tcl/ex/simple.tcl ”,将会测试一个简单的例子。

注意,文章末尾补充了在 Debian 7 下面,把NS-2.35安装到/opt目录下的方法。在 Debian 7 下面,.bashrc 的内容不能按照上面提到的内容添加。此外,也可以在为UMTS、LTE和WiMax模块修改完所有文件后在执行上一步安装ns-2.35的步骤。

----------

截至2015年4月,下述两个补丁的下载位置很难在网络上找到了。所以,我使用百度网盘分享了它们的备份:http://pan.baidu.com/s/1eQEknsQ   提取码3xsv

----------

二、安装 UMTS 补丁

感谢 yotrew.blogspot.com 的博文《Patch NS2 to Support UMTS》,文中给出了补丁文件 ns-2.35_eurane-1.12.diff 的链接,并且详细说明了安装方法以及出现错误的解决方法。搬运如下:

1、下载 ns-2.35_eurane-1.12.diff 文件,放到 /.ns-allinone-2.35/ns-2.35/ 目录下;

2、修改该目录下的 Makefile.in :

(1)将第56行的“CCOPT= @[email protected] ”改为“CCOPT= -Wall @[email protected] ”;

(2)搜索“apps/pbc.o”,找到大概在第336行的“apps/pbc.o \”,在下面添加

umts/am.o umts/classifier-sport.o umts/demuxer.o umts/demuxerRtModule.o umts/networkInterface.o umts/nif-classifier.o umts/tcs.o umts/um.o umts/umtslink.o umts/umtstrace.o umts/hsdpalink.o umts/um-hs.o umts/umts-timers.o umts/virtual_umtsmac.o umts/am-hs.o umts/umts-queue.o umts/dummy_drop_tail.o umts/error_model.o tools/coot.o \

(3)搜索“@[email protected]”,大概在570行,在上面另起一行添加

tcl/lib/ns-umts.tcl \

3、修改该目录下文件夹 common 中的 packet.h 文件:

(1)找到大概在200行的“ static packet_t       PT_NTYPE = 73; // This MUST be the LAST one”,用“ // ”将其注释掉;

(2)在其下另起一行,插入

// UMTS - used by hdr_cmn class for tracing purpose

static const packet_t PT_UM = 73;
static const packet_t PT_AMDA = 74;
static const packet_t PT_AMPA= 75;
static const packet_t PT_AMPBPA = 76;
static const packet_t PT_AMBA= 77;
static const packet_t PT_AMPBBA= 78;

// Used for tracking HARQ transmissions (MAC-hs PDUs)

static const packet_t PT_AMDA_H1= 79;
static const packet_t PT_AMDA_H2= 80;
static const packet_t PT_AMDA_H3= 81;

// End UMTS

// COOT packet

static const packet_t PT_COOT= 82;

// insert new packet types here

static  packet_t  PT_NTYPE = 83; // This MUST be the LAST one

(3)找到大概在400行的“endif //STL”,在其下另起一行,插入

// UMTS

               name_[PT_UM] = "UM";

                name_[PT_AMDA] = "AM_Data";

                name_[PT_AMPA] = "AM_Pos_Ack";

                name_[PT_AMPBPA] = "AM_Piggyback_Ack";

                name_[PT_AMBA] = "AM_Bitmap_ack";

                name_[PT_AMPBBA] = "AM_Piggyback_Back";

               // For HARQ transmission tracking

               name_[PT_AMDA_H1] = "HARQ_1";

               name_[PT_AMDA_H2] = "HARQ_2";

               name_[PT_AMDA_H3] = "HARQ_3";

// End UMTS

// coot

               name_[PT_COOT] = "coot";

上述插入的内容一定要在“// Bell Labs (PackMime OL)”行的前面。

4、 在 ns-2.35 的目录下打开终端,运行“ patch -p1 < ns-2.35_eurane-1.12.diff ”;如果没有错误信 息,则运行“ ./configure ”;如果没有错误信息,则运行“ make clean ”,然后运行“ make ”。

三、安装 WiMax 补丁

从 nsnam.isi.edu/nsnam /index.php/Contributed_Code 中得知有 NIST 的 WiMax 补丁,下载位置为 www.nist.gov/itl /antd/emntg/ssm_tools.cfm ,在右边的“ Download Information ”栏的下方有链接。下载前需要填写一些 信息。

下载下来一个 ns-nist-wimax.tgz 压缩文档。安装这个真是个巨坑啊!如果直接解压缩到 ns-2.35 目录下并运行 patch 命令去安装,那么恭喜你,你将会被一大堆错误给弄晕。所以,老老实实修改文件吧。

解压缩这个压缩包,将会出现一个 prerelease041707.tgz 的压缩包。再解压,出现一个 src-prerelease-041707 的文件夹以及两个文件。

1、把 src-prerelease-041707 中的 wimax 文件夹复制到 ns-2.35 文件夹中。

2、在 ns-2.35/tcl 文件夹中创建一个 wimax 文件夹。

3、把 src-prerelease-041707/tcl/lib 目录下的ns-wimax.tcl 文件复制到 ns-2.35/tcl/lib 目录下。

4、把 src-prerelease-041707/mac 目录下的 mac-stats.h 文件复制到 ns-2.35/mac 目录下。

5、编辑 ns-2.35 目录下的 Makefile.in 文件:

(1)在大概第68行的“ @[email protected] \ ”行的上面,另起一行,添加

-I./wimax \

(2)在大概第378行的“ @[email protected] ”行的上面,另起一行,添加

wimax/ofdmphy.o wimax/mac802_16pkt.o wimax/serviceflowqos.o wimax/serviceflow.o wimax/serviceflowhandler.o wimax/connection.o wimax/connectionmanager.o wimax/peernode.o wimax/mac802_16.o wimax/mac802_16SS.o wimax/mac802_16BS.o wimax/sduclassifier.o wimax/destclassifier.o wimax/mac802_16timer.o wimax/wimaxneighborentry.o wimax/neighbordb.o wimax/scheduling/wimaxscheduler.o wimax/scheduling/bsscheduler.o wimax/scheduling/ssscheduler.o wimax/scheduling/ulsubframetimer.o wimax/scheduling/dlsubframetimer.o wimax/scheduling/burst.o wimax/scheduling/contentionslot.o wimax/scheduling/contentionrequest.o wimax/scheduling/contentiontimer.o wimax/scheduling/dlburst.o wimax/scheduling/ulburst.o wimax/scheduling/framemap.o wimax/scheduling/phypdu.o wimax/scheduling/profile.o wimax/scheduling/subframe.o wimax/scheduling/scanningstation.o wimax/scheduling/wimaxctrlagent.o \

(3)在大概第570行的“ @[email protected] ”上面,另起一行,添加

tcl/lib/ns-wimax.tcl \

6、编辑 ns-2.35/common 目录下的 packet.h 文件:

(1)在大概第202行的“ // insert new packet types here ”下,另起一行,添加

// wimax packets
static const packet_t PT_WIMAXBS = 62;

一定要在“ // static packet_t       PT_NTYPE = 73; // This MUST be the LAST one”这一行之前。其中的参数“62”不一定对......

(2)在大概第400行“ #endif //STL”部分下,第460行,“//DCCP”块下,添加

// WIMAX
name_[PT_WIMAXBS]="wimaxCtrl";

在“ name_[PT_NTYPE]= "undefined"; ”的前面。

7、编辑 ns-2.35/tcl/lib 目录下的 ns-packet.tcl 文件,找到第188行“ # Other: ”部分,在“ HDLC # High Level Data Link Control ”下,另起一行,添加

802_16   # Wimax

8、编辑 ns-2.35/tcl/lib 目录下的 ns-lib.tcl ,在大概第218行“ source ../mcast/ns-lms.tcl ”下,另起一行,添加

# Wimax
source ns-wimax.tcl

9、在 ns-2.35 目录下打开终端,运行“ ./configure ”;如果没有错误信息,运行“ make clean ”;最后运行 “ make ”。

10、测试:终端切换到 ns-2.35/tcl/wimax 目录下,运行“ ns wimax1.tcl ”。

四、在 Debian 7 Wheezy 下安装 NS-2.35 到/opt 目录

1、将解压后的 ns-allinone-2.35 整个目录通过 # cp -rf ns-allinone-2.35/ /opt/ 复制到 /opt 下;

可以对解压出来的、还没有执行安装的 ns-allinone-2.35 在完成上述二、三步修改后不执行 configure 以及 make,直接复制到 /opt 下然后一起安装。

2、# cd /opt ,然后 # chmod -R 755 ns-allinone-2.35;这样使得文件夹中的文件可读可执行;

3、# cd ./ns-allinone-2.35, # ./install ,安装;

4、编辑自己的 .bashrc ,添加下面的几行:

# enable network simulator 2
# LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/suyangts/.ns-allinone-2.35/otcl-1.14:/home/suyangts/.ns-allinone-2.35/lib
# TCL_LIBRARY
export TCL_LIBRARY=/home/suyangts/.ns-allinone-2.35/tcl8.5.10/library
# PATH
PATH=$PATH:/home/suyangts/.ns-allinone-2.35/bin:/home/suyangts/.ns-allinone-2.35/tcl8.5.10/unix:/home/suyangts/.ns-allinone-2.35/tk8.5.10/unix

5、注销或者 $source .bashrc ,输入 ns ,看看是否出现了百分号。如果出现,则 ns 可用。exit退出。

时间: 2024-10-25 11:55:03

在 NS 2-35 中安装 UMTS 和 WiMax 补丁的相关文章

在centos6.5中安装mysql5.7

简介 博主最近在研究mysql的读写分离和主从复制,一台master和两台slave,三台机器在同一个局域网中,首先就就要在centos6.5中安装mysql5.7.好了,废话不多说,接下来进入正题. 一.解压缩到/usr/local/下面,mysql的主目录命名为mysql [[email protected] local]# cd /usr/local/soft/ [[email protected] soft]# tar zvxf mysql-5.7.10-linux-glibc2.5-i

在ns2.35中添加myevalvid框架

在用ns2进行网络视频通信仿真的时候,先要为我们自己的ns2添加evalvid或者myevalvid框架.其中myevalvid框架是由柯志亨老师整合evalvid和ns2之后得出的新框架,笔者建议大家安装该框架,而不要安装原生的evalvid框架.这样就可以结合柯志亨老师的<ns2仿真实验-----多媒体和无线网络通信>这本书,做配套的实验,比较方便. 网上关于myevalvid框架的安装文章很多,大家可以参考去做,笔者会在本文最后给出相关的链接.本文主要是对myevalvid框架源码中的错

mysql5.6.35编译安装

安装前,先确保本地的mysql已经被卸载: rpm -e mysql   //普通删除模式rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 安装mysql: 安装编译代码需要的包: yum -y install make gcc-c++ cmake bison-devel  ncurses-devel 下载解压mysql: tar xvf mysql-5.6.35.tar.gzcd mysql-5.

CentOS6.5_Nginx1.40_Php5.57_MySQL5.5.35编译安装全记录

环境说明:CentOS 6.5 32位  PHP Version 5.5.7  mysql version _5.6.16 一.准备工作 配置防火墙,允许防火墙通过22(sshd).80(WEB).3306(MYSQL)端口iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 3306 -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPTi

eclipse中安装tomcat插件

一.软件下载 Eclipse3.6 IDE for Java EE Developers: 下载地址:http://eclipse.org/downloads/ Tomcat Eclipse Plugin, 下载地址:http://www.eclipsetotale.com/tomcatPlugin.html 二.软件安装和配置(图文) 1.解压Eclipse到某个目录,例如/usr/local/eclipse 即可. 2. 解压Tomcat 插件到eclipse目录下的plugins目录中.

在VMware Workstation虚拟机中安装ESXi提示找不到网卡

在VMware Workstation虚拟机中安装ESXi提示找不到网卡 概述:今天一个网友问我,说在VMware Workstation的虚拟机中,安装ESXi提示找不到网卡.一开始我还以为他的操作步骤不对,后来了解到他的操作步骤正确之后,那问题的原因就是使用的ESXi的镜像问题,重新下载镜像之后,问题解决. 路人甲2016/4/1215:32:53王老师你好请假您一个问题esxi6在虚拟机上安装的时候提示找不到网卡用5.5就没这问题王春海2016/4/1215:33:23详细点详细的说清楚,

[python] 2、python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题

1.pyaudio安装大背景 最近在做智能音箱,需要编写声音拾取代码,我先是百度两篇比较常见的用python进行录音的操作的文章: python写一个录音小程序:http://blog.csdn.net/yexiaohhjk/article/details/73132562 利用百度语言识别API实现语音识别python:http://blog.csdn.net/yexiaohhjk/article/details/73134815 发现需要用到pyaudio,然后在其官网找到如何安装:http

centos中安装tomcat

1.先保证centos中安装了jre的环境. 2.上传tomcat的压缩包到root根目录. 3.切换到根目录 输入命令cd ~ , 然后 ll , 查看上传情况: 4.选中复制压缩文件,输入解压命令,tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local,  把它解压到/usr/local目录下,该目录是用户自己安装的软件的存放目录. 5.进入解压后的目录,查看解压情况,第一个文件夹就是tomcat的解压后的文件夹,tomcat解压后是可以直接使

在CDH5.14.4 中安装StreamSets与案例运行

在CDH5.14.4 中安装StreamSets与案例运行 标签(空格分隔): 大数据平台构建 一: Streamset 简介与系统环境介绍 二: 安装软件准备 三: 在CDH5.14.4 集成使用StreamSets 四: streamsets 基本使用案例运行 一: Streamset 简介与系统环境介绍 1.1: StreamSet 简介 StreamSets由Informatica前首席产品官Girish Pancha和Cloudera前开发团队负责人Arvind Prabhakar于2