关于跨层调用读取问题

 

对于括层设计我整理了一下我的文档,发上来供大家参考一下,希望那个能够有些帮助!

这个文档很久以前写的,如果那里有错误请通知我,我会及时修改,免得误导他人:)

NS2 括层调用问题简析

 lzqlgq@gmail.com

NS2 各层对应的都是一些类,只要得到其他层类的入口指针即可,比如说通过TCL解释器可以得到,也可以自己设置新的包头位置,然其他层的函数直接填写,但是注意逻辑的正确性。

 

通过tcl解释器访问从MAC层访问路由层( 我没有未测试过)

 

Tcl& tcl=Tcl::instance();

int i=mac->index_;

       sprintf(tcl.buffer(),"$node_(%d) set ragent_",i);

tcl.eval();

agent=(AODV*)TclObject::lookup(tcl.result());

agent->hello();

 

从路由层访问所在节点的MAC/IFQ

      

       最简单的方法是通过tcl解释器

       IFQ:              int i= index;

                     Queue *ifq;

                     Tcl& tcl=Tcl::instance();

                     int i=index;

                     sprintf(tcl.buffer(),"$node_(%d) set ifq_(0)",i);

                     tcl.eval();

                     ifq=(Queue*)TclObject::lookup(tcl.result());

 

       MAC  int i= index;

                     MAC * mac;

                     Tcl& tcl=Tcl::instance();

                     int i=index;

                     sprintf(tcl.buffer(),"$node_(%d) set mac_(0)",i);

                     tcl.eval();

                     mac=(Queue*)TclObject::lookup(tcl.result());

 

其他方法

 

至于通过ns手册上面说明的关系来访问,经常出现问题,很多指针没有初始化,要自己写代码才可以使用

       类似:

              //LL * ll;

              //ll=(LL*)mac->link();

 

              //Queue *ifq;

              //ifq=(Queue *)ll->downtarget();

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值