加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Ns-2技巧第一篇:跨层设计cross-layer (路由层获取Mac信息)

(2014-01-15 18:17:45)
标签:

杂谈

怎样在任意层访问下层的信息(包括 netif,mac,ifq,ll 等) 以 aodv 中访问 mac 为例

1。在 aodv.h 中增加头文件

#include "mac/mac-802_11.h"

在 AODV 类里面声明 Mac802_11 * mymac;

2。修改 command()函数,增加以下代码

intAODV::command(int argc, const char*const* argv) {

。。。。。。

else if(argc == 3) {

if(strcmp(argv[1], "index") == 0) {

index = atoi(argv[2]);

return TCL_OK;

}

//add for utilized 

else if (strcmp(argv[1], "set-mac") == 0) {

mymac = (Mac802_11 *) TclObject::lookup(argv[2]);

if (mymac == 0) {

fprintf(stderr, "MESPAgent: %s lookup %s failed.\n", argv[1], argv[2]);

return TCL_ERROR; }

else { //test

printf("Get Node mac bss_id:%d \n", mymac->bss_id());

// fprintf(stderr, "Get Node address .\n", nodeID);

return TCL_OK; } }

。。。 。。。}

3。在 tcl 脚本中初始化

set rt($i) [$node_($i) agent 255] # 获得路由层协议

$rt($i) set-mac [$node_($i) set mac_(0)] #初始化 mac 对象

4。然后就可以在 AODV 中通过 mymac 对象访问 mac 的信息mymac->bss_id()即为调用mac中的 bss_id()函数。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有