opnet的ip模块在哪里判断是否到达目的地址
发布日期:2021-10-26 12:56:46 浏览次数:2 分类:技术文章

本文共 1212 字,大约阅读时间需要 4 分钟。

hot3.png

问题:   ip模块很复杂,一开始只是看ip模块中的代码,搞得云里雾里。

            从头到尾都没有判断目的地址的地方,甚至都没有处理来自arp层的流中断strm_inprtr。

原因:   具体实现代码在 ip_rte_support.ex.c 文件中ip_rte_packet_send

            是这样子的,OPNET在调用子进程时,有四种方式,分别是:

               Manual Steering
Normal Steering
Type-based Steering
Port-based Steering
对于后两种方式,当收到特定类型(type-based)或特定端口上(port-based)的中断时,就直接进入相应的子进程而不通过父进程进行调用。
具体的你可以参考OPNETWork2002 1504

嗯,里面说的挺清楚的。把我的理解贴出来,请你看看对不:

Manual Steering:顾名思义就是手工的来调用子进程。比如说,父进程收到一个流中断后,经过判断是要交给某个子进程处理的,那么就通过op_pro_invoke()来手工的调用子进程。

Normal Steering:用一个例子来说吧:当子进程用op_intrpt_schedule_self()定制了一个自中断,那么当这一中断到来时,系统内核会自动调用该子进程而不通过父进程来调用它。

Type_based Steering:则需要子进程通过op_intrpt_type_register()来注册某一类型的中断,当该类型的中断到来时,也会直接的调用该子进程。

Port_based Steering:与基于Type的类似。

  应该是某个子进程注册了Port_based Steering之类的函数,截断了来arp来的流中断。然后执行了 ip_rte_support.ex.c中的ip_rte_packet_send 函数。

参考文章

唉,之前没有意识到,子进程功能实现是另外再画了个进程图。悲剧!!!许多功能都是子进程做的,看父进程一头雾水。

查看子进程:

      首先创建好子进程,并保存

在进程模块里,FILE--delcare child process models,选中创建的进程,即加入了子进程。
在进程中,使用op_pro_create("proc_name",ptc_mem_ptr)创建子进程,返回进程句柄prohandle(事先需要使用op_prg_mem_alloc()开辟一个内存ptc_mem_ptr,即parent to child memory,父子共享内存,用于存放共享数据)。具体使用方法可以在help和核心函数里查询。
然后通过op_pro_invoke(prohandle,argmem_ptr),就可以需要的地方调用子进程。

参考地址:

转载于:https://my.oschina.net/liyong1689/blog/82804

转载地址:https://blog.csdn.net/weixin_33782386/article/details/92479808 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:安全的iptables防火墙配置(只开通SSH,WEB,DNS服务)
下一篇:远程重装linux

发表评论

最新留言

不错!
[***.144.177.141]2024年03月08日 09时39分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql执行计划中性能最差的是_MySQL性能优化(七):MySQL执行计划,真的很重要,来一起学习吧... 2019-04-21
易语言执行mysql命令_易语言通过“打开”命令操作数据库 2019-04-21
mysql slave 1062_mysql主从同步slave错误1062 2019-04-21
mysql构造器_MySQL行构造器表达式优化(Row Constructor Expression) 2019-04-21
2008日志清理 server sql_SQL Server 2008 清除日志 2019-04-21
mac mysql root 权限_Mac平台重新设置MySQL的root密码 2019-04-21
mysql新增一列_MySQL-ProxySQL中间件 2019-04-21
mysql 30入门_30分钟带你快速入门MySQL教程 2019-04-21
kangle主机怎么配置MySQL_kangle web服务+easypanel主机控制面板快速搭建网站和数据库以及管理空间详细教程... 2019-04-21
mysql 翻页 存储过程_MySQl通用翻页(存储过程) 2019-04-21
2020word替换所有文本_Excel字符函数(5):REPLACE、SUBSTITUTE查找替换函数之区别... 2019-04-21
win10安装ipython_win10环境 ipython app.py 8080 这里为什么是ipython 这步无法启动 2019-04-21
假定在MYSQL_假定在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义如下 - 问答库... 2019-04-21
mysql多字段存储过程_mysql 的存储过程_多字段 2019-04-21
python怎么创建字符串列表_如何在python列表中为每个字符串创建子列表? 2019-04-21
vba ado 执行多条mysql 语句_access 按钮 多条sql语句 VBA 2019-04-21
弹性方法计算连续梁板内力_(梁板结构)混凝土结构设计复习题及答案 2019-04-21
java root权限_android java获得root权限调用linux命令 | 学步园 2019-04-21
java最小化窗体_JAVA窗体最大化最小化控制+托盘 2019-04-21
java 注解 数组默认值_Java注解默认值 2019-04-21