opnet的sink模块学习 分类: opnet 2014-05-18 10:28 161人阅读 评论(0) 收藏
Sink模块的状态机很简单,只有INIT和DISCARD两个,非强制状态只有DISCARD用于包的销毁。Sink模块的作用就是销毁从输入流接收到的包,并且返回关于包的一系列统计量。
Init的入口代码为
/* Initilaize the statistic handles to keep */
/* track of traffic sinked by this process. */
bits_rcvd_stathandle =op_stat_reg ("Traffic Sink.Traffic Received (bits)", OPC_STAT_INDEX_NONE,OPC_STAT_LOCAL);
bitssec_rcvd_stathandle =op_stat_reg ("Traffic Sink.Traffic Received (bits/sec)", OPC_STAT_INDEX_NONE,OPC_STAT_LOCAL);
pkts_rcvd_stathandle =op_stat_reg ("Traffic Sink.Traffic Received (packets)", OPC_STAT_INDEX_NONE,OPC_STAT_LOCAL);
pktssec_rcvd_stathandle =op_stat_reg ("Traffic Sink.Traffic Received (packets/sec)", OPC_STAT_INDEX_NONE, OPC_STAT_LOCAL);
ete_delay_stathandle =op_stat_reg ("Traffic Sink.End-to-End Delay (seconds)", OPC_STAT_INDEX_NONE,OPC_STAT_LOCAL);
bits_rcvd_gstathandle =op_stat_reg ("Traffic Sink.Traffic Received (bits)", OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
bitssec_rcvd_gstathandle =op_stat_reg ("Traffic Sink.Traffic Received (bits/sec)", OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
pkts_rcvd_gstathandle =op_stat_reg ("Traffic Sink.Traffic Received (packets)", OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
pktssec_rcvd_gstathandle =op_stat_reg ("Traffic Sink.Traffic Received (packets/sec)", OPC_STAT_INDEX_NONE, OPC_STAT_GLOBAL);
ete_delay_gstathandle =op_stat_reg ("Traffic Sink.End-to-End Delay (seconds)", OPC_STAT_INDEX_NONE,OPC_STAT_GLOBAL);
op_stat_reg函数的作用是返回进程模型中节点或模块统计量,即初始化统计量句柄,第一个参数为统计量所在组的名称
所以上述代码分别返回的是局部统计量和全局统计量,包括:收到的bit数,bit速率,包数,包速率,端对端延时
DISCARD仅有出口代码:
/* Obtain the incoming packet. */
pkptr = op_pk_get (op_intrpt_strm ());
从输入流中获取包的指针
/* Caclulate metrics to be updated. */
pk_size = (double) op_pk_total_size_get (pkptr);
ete_delay = op_sim_time () - op_pk_creation_time_get (pkptr);
计算包的总体大小和包传输延时
/* Update local statistics. */
op_stat_write函数功能为写入统计量,第一个参数为统计量的统计量句柄,第二个参数为统计量将写入的值。
op_stat_write (bits_rcvd_stathandle, pk_size);收到的bit数
op_stat_write (pkts_rcvd_stathandle, 1.0); 收到的包
op_stat_write (ete_delay_stathandle, ete_delay);端对端延时
op_stat_write (bitssec_rcvd_stathandle, pk_size);
bit速率
op_stat_write (bitssec_rcvd_stathandle, 0.0);
op_stat_write (pktssec_rcvd_stathandle, 1.0); 包速率
op_stat_write (pktssec_rcvd_stathandle, 0.0);
/* Update global statistics. */全局统计量
op_stat_write (bits_rcvd_gstathandle, pk_size);
op_stat_write (pkts_rcvd_gstathandle, 1.0);
op_stat_write (ete_delay_gstathandle, ete_delay);
op_stat_write (bitssec_rcvd_gstathandle, pk_size);
op_stat_write (bitssec_rcvd_gstathandle, 0.0);
op_stat_write (pktssec_rcvd_gstathandle, 1.0);
op_stat_write (pktssec_rcvd_gstathandle, 0.0);
/* Destroy the received packet. */
op_pk_destroy (pkptr); 销毁包
版权声明:本文为博主原创文章,未经博主允许不得转载。
opnet的sink模块学习 分类: opnet 2014-05-18 10:28 161人阅读 评论(0) 收藏的更多相关文章
- 网站通用登录模块代码 分类: ASP.NET 2014-12-06 10:49 615人阅读 评论(0) 收藏
1.HTML部分: <form id="form1" runat="server"> <script src=".. ...
- 博弈论入门小结 分类: ACM TYPE 2014-08-31 10:15 73人阅读 评论(0) 收藏
文章原地址:http://blog.csdn.net/zhangxiang0125/article/details/6174639 博弈论:是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策 ...
- Hdu 1507 Uncle Tom's Inherited Land* 分类: Brush Mode 2014-07-30 09:28 112人阅读 评论(0) 收藏
Uncle Tom's Inherited Land* Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- iOS开发:创建真机调试证书 分类: ios相关 2015-04-10 10:22 149人阅读 评论(0) 收藏
关于苹果iOS开发,笔者也是从小白过来的,经历过各种困难和坑,其中就有关于开发证书,生产证书,in_house证书,add_Hoc证书申请过程中的问题,以及上架发布问题.今天就着重说一下关于针对于苹果 ...
- 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 73人阅读 评论(0) 收藏
也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...
- 欧拉回路-Door Man 分类: 图论 POJ 2015-08-06 10:07 4人阅读 评论(0) 收藏
Door Man Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2476 Accepted: 1001 Description ...
- 多校3- RGCDQ 分类: 比赛 HDU 2015-07-31 10:50 2人阅读 评论(0) 收藏
RGCDQ Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practic ...
- makefile基础实例讲解 分类: C/C++ 2015-03-16 10:11 66人阅读 评论(0) 收藏
一.makefile简介 定义:makefile定义了软件开发过程中,项目工程编译链.接接的方法和规则. 产生:由IDE自动生成或者开发者手动书写. 作用:Unix(MAC OS.Solars)和Li ...
- max_flow(Edmond_Karp) 分类: ACM TYPE 2014-09-02 10:47 92人阅读 评论(0) 收藏
#include <cstdio> #include <iostream> #include <cstring> #include<queue> usi ...
随机推荐
- 安装JDK,配置环境变量有感
前天无事,心血来潮给公司新配的笔记本(win10系统64位)装开发工具,然后不可避免的就装了JDK,顺理成章的需要配置环境变量,结果就出问题了. 配置完成,测试时,在dos命令窗口输入java命令执行 ...
- 利用base64库暴力破解base加密
做个base加密题python语法出了一堆错误..... 附上py中关于base加密/解码的知识:http://www.open-open.com/lib/view/open1433990719973 ...
- 【原创】源码角度分析Android的消息机制系列(一)——Android消息机制概述
ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.为什么需要Android的消息机制 因为Android系统不允许在子线程中去访问UI,即Android系统不允许在子线程中更新UI. 为什 ...
- 解密SuperWebview的一种另类方法
解密SuperWebview的一种另类方法 什么是SuperWebview SuperWebview是APICloud官方推出的另一项重量级API生态产品,以SDK方式提供,致力于提升和改善移动设备W ...
- Ecshop去掉模版中随机出现Ecshop版权的方法
EC如果是免费用户用的话,模版里面会随机出现 powered by ecshop 的字样,看了一下原来是在COMMON.JS里面写的一段代码,删除掉就可以解决掉了,方法如下: 打开 js/commo ...
- Python:Anaconda安装虚拟环境到指定路径
1 曾经的困扰 有段时间,想使用基于不同python版本的anaconda,就直接从官网下载了两个不同的anaconda版本进行安装.刚开始的时候,还觉得也没啥问题.用了一小段时间,在安装其他的第三方 ...
- Jquery Ajax 保存
Jquery Ajax 保存: $.ajax({ type: "POST", async:false, url: "${ctx}/url", data: {pI ...
- 枚举:enum——初写
入门的时候,针对某一字段状态的判断,一开始是在前端用if else 判断,有一些弊端:①把内置的code暴露给用户②if else最好不要超过3层③前端很长一段冗余判断不规范后改进使用枚举,在后台进行 ...
- php实现人员的权限管理
权限是指不同的人员登录以后会用不同的页面. 一.想好这个权限是什么? 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 是会另外有两张相互关联的表,这样也就是5张表 在数 ...
- chart.js使用常见问题
Chart.js是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库. 在使用过程中新手可能会遇到很多问题导致图标无法显示.下面我们来看一下在使用过程中可能会遇到的问题. 刚开始用chart.j ...