NS2的仿真中经常会遇到不同层之间信息的访问问题,因此就涉及到跨层设计的一些概念,本文参考网络上的一些资源,并结合自己的想法给出跨层设计的简单步骤。
首先,来看看路由层和MAC层之间的信息如何交互,在这里主要是路由层访问MAC层的一些信息。以AODV协议为例,简述跨层设计的步骤。
(1)在aodv.h中增加头文件
#include "mac/mac-802_11.h"
紧接着,在AODV类里面定义一个Mac802_11的对象指针,如下所示:
Mac802_11* clmac;
(2)修改aodv.cc文件中的command()函数,增加以下代码
int AODV::command(int argc, const char*const* argv) {
………
else if(argc == 3) {
if (strcmp(argv[1], "cl-mac") == 0){
clmac = (Mac802_11 *) TclObject::lookup(argv[2]);
if (clmac == 0){
f