1.开启混杂模式,接收邻居转发的所有数据包,不进行MAC过滤,全部

sendToWatchdog(const Packet *p)

2.当前节点转发数据包后,缓存数据包

sendToWatchdog(const Packet *p, int mac_dst)
//Start Watchdog Code
voidAODV::tap(const Packet *p) { sendToWatchdog(p);}

void AODV::sendToWatchdog(const Packet *p){if(debug>1) printf("taping\n");char* data; //ns-2 does not send real data, we use the uid of the packet because is unique.hdr_ip *iph = hdr_ip::access(p);//hdr_mac *ipm = hdr_mac::access(p);hdr_cmn *pk = hdr_cmn::access(p);

hdr_mac802_11 *mh;mh = HDR_MAC802_11(p);

data = (char *) malloc(sizeof(char)*15);sprintf(data, "%d", pk->uid());

printf("\n\nIP %d:%d (%d) -> IP %d:%d (%d), Type:%d, Data: %s, Time: %f \n",iph->src().addr_, iph->sport(), ETHER_ADDR(mh->dh_ta), iph->dst().addr_, iph->dport(), ETHER_ADDR(mh->dh_ra), pk->ptype_, data, Scheduler::instance().clock());watchdog->newPacket(iph->src().addr_, iph->dst().addr_, ETHER_ADDR(mh->dh_ta), ETHER_ADDR(mh->dh_ra), iph->sport(), iph->dport(), pk->ptype_, data, Scheduler::instance().clock());if(debug>1) printf("End tapping\n");}

void AODV::sendToWatchdog(const Packet *p, int mac_dst){if(debug>1) printf("taping\n");char* data; //ns-2 does not send real data, we use the uid of the packet because is unique.hdr_ip *iph = hdr_ip::access(p);//hdr_mac *ipm = hdr_mac::access(p);hdr_cmn *pk = hdr_cmn::access(p);

hdr_mac802_11 *mh;mh = HDR_MAC802_11(p);

data = (char *) malloc(sizeof(char)*15);sprintf(data, "%d", pk->uid());

printf("\n\nIP %d:%d (%d) -> IP %d:%d (%d), Type:%d, Data: %s, Time: %f \n",iph->src().addr_, iph->sport(), ETHER_ADDR(mh->dh_ta), iph->dst().addr_, iph->dport(), mac_dst, pk->ptype_, data, Scheduler::instance().clock());watchdog->newPacket(iph->src().addr_, iph->dst().addr_, ETHER_ADDR(mh->dh_ta), mac_dst, iph->sport(), iph->dport(), pk->ptype_, data, Scheduler::instance().clock());if(debug>1) printf("End tapping\n");}//End Watchdog Code

转载于:https://www.cnblogs.com/zhangrui/archive/2012/03/07/2384183.html

AODV中实施watchdog相关推荐

  1. 网络营销专员浅析在当下移动互联网中实施网络营销的基本特点

    所谓的移动互联网就是"移动+互联网",将移动通信与互联网技术结合是现在移动通讯中满足用户对于互联网检索需求.这一应用的实现不仅满足用户需求更在一定程度上实现了企业商业模式的进一步拓 ...

  2. 哈萨克斯坦特警抓住一个在骚乱中实施破坏的“恐怖分子”团伙,缴获大量枪支弹药和外国护照

    瞩目惊心:哈萨克斯坦特警抓住一个在骚乱中实施破坏的"恐怖分子"团伙,缴获大量枪支弹药和外国护照!

  3. 一个BADI中实施多个Implementation

    业务场景:例如我们需要对国家的税率做一个增强,以完成某种业务运算,但是每个国家的税率又是不同的,所以可以新建一个BADI用于增强国家税率计算,对BADI进行多次实施,分别用于不同国家的税率计算. 1. ...

  4. 仓库管理的5S如何在仓库中实施

    一.什么是"5S" 5S"是指整理.整顿.清扫.清洁和素养 整理:将工作场所在内的物品分类,并把不要的物品坚决清扫掉. 整顿:把有用的物品按规定分类摆放好,并做好适当地标 ...

  5. 日历报表_在报表中实施不同的日历

    日历报表 介绍 (Introduction) There is a common need in reporting to aggregate or return data that is crunc ...

  6. aws rds监控慢sql_在AWS RDS SQL Server中实施SSL连接

    aws rds监控慢sql This article explores a method to enforce SSL for all connections in AWS RDS SQL Serve ...

  7. 在测试中实施人工智能

    人工智能实施如何改进软件测试过程? 软件测试中的人工智能是自动化 QA 的自然演变.AI 测试自动化比模拟手动工作更进一步."机器"还首先决定何时以及如何运行测试. 创新不止于此. ...

  8. Linux内核中的Watchdog

    linux内核中有多个watchdog,他们属于不同模块,可同时存在. 用户态watchdog 可以在用户态程序操作,设置超时时间喂狗时间 .(只是通过内核提供的接口操作) 1./dev/watchd ...

  9. 在 Android* 商务应用中实施地图和地理围栏特性

    摘要 本案例研究讨论了如何将地图和地理定位特性构建到 Android* 商务应用中,包括在 Google Maps* 上覆盖商店位置,以及在设备进入商店地理围栏邻近区域时借助地理围栏通知用户. 目录 ...

最新文章

  1. EC20模块、主机休眠唤醒机制
  2. python开发需要掌握哪些知识-Python的10个基础知识点,新手必须背下来!
  3. AlertDialog.Builder setCancelable用法
  4. N-Gram的数据结构
  5. mt4 python神经网络_迈达克软件公司承认Python运算对量化交易的重要性----将Python与Metatrader 5集成一体...
  6. 面试官:Spring事务失效的场景有哪些?如何解决?
  7. c语言char数字转int补位,如何补位??
  8. Python3制作网易云音乐下载器
  9. zscore标准化步骤_数据的标准化
  10. 【SQL面试】求出各科成绩前三名的学生和成绩
  11. 绝了!超全面的Java调优方案,我司已用7年,并得到验证!(万能通用)
  12. NLP专题直播 | 详谈Transformer, BERT, ALBERT, XLNet(ALBERT第一作者亲自讲解)
  13. CAN矩阵(入门篇)(史上最全)
  14. 微信小程token_微信小程序登录换取token
  15. Jedis使用lua脚本完成令牌桶限流
  16. antd 表格分页功能
  17. 【新番尝鲜】白色相簿——我的女朋友是偶像?
  18. 最新MSNMessenger机器人列表(转)
  19. Vuex3 / Vuex4 使用指南
  20. realloc函数和malloc函数区别

热门文章

  1. ant构建项目迁移到gradle_Gradle构建工具
  2. qregexp限制数字范围_数字系统实现电压电流控制的必经之路数模转换器
  3. 计算机怎么设置网络共享,局域网共享设置,教您电脑怎么设置局域网共享
  4. JSP页面传值出现中文乱码的问题
  5. composer(作曲家)安装php-ml
  6. 微信开发之 二维码生成类库
  7. [转]js判断url是否有效
  8. 并行编程2——多核体系架构
  9. 跨站点脚本(XSS)
  10. sticky-footer实现记录