精华内容
下载资源
问答
  • 这章主要讲用Trap机制来调用上下文切换函数(OSCtxSw()),以及系统时钟的实现等内容。 本文先来讲Tricore的Trap机制。 /***************************************************/ Trap简单来说,就是在发生一些异常...

    前两章分别介绍了Tricore内核的CSA机制和上下文切换的具体实现方法。这章主要讲用Trap机制来调用上下文切换函数(OSCtxSw()),以及系统时钟的实现等内容。

    本文先来讲Tricore的Trap机制。

    **********************
    展开全文
  • 目录 strongswan与xfrm之间的trap机制 0. 1. 前言 2. 描述 2.1 none 2.2 trap 3. 实验与过程 3.1 trap实验 3.2 none实验 ...

    strongswan与xfrm之间的trap机制

    0.

    你必须同时知道,strongswan,xfrm,strongswan connect trap三个概念。
    才有继续读下去的意义。
    入门请转到:【TODO...】

    1. 前言

    strongswan的vici配置文件中,child_conn配置项下,有一个配置start_action。里边有三个可选的值。
    分别为start,none,trap。none为默认。
    其中start代表在load好配置之后就up该条conn。
    然后,有关none与trap将做为本文的两个重点讨论场景,通过一下篇幅进行考察。
    欢迎收看,@_@~~

    2. 描述

    基于前文。我们现在来解释一下none与trap的含义。

    2.1 none

    none,代表只加载配置,而不对连接进行任何操作。等于控制程序进行触发conn的up操作。

    2.2 trap

    trap,翻译成中文是陷阱,捕获的意思。就是说一旦它捕获了一个包,就要触发conn的up。
    而捕获这个操作,是通过policy进行的。我们知道,在strongswan的配置信息一旦进行了加载之后,
    它就会下发policy给xfrm,这个捕获动作正是通过这个预下发的policy来完成的。

    3. 实验与过程

    我们分别用none与trap配置做了两个实验。

    3.1 trap实验

    1. 首先通过swanctl --load-all命令,将设置为trap的配置信息下发给strongswan。
    2. 这个时候,storngswan已经预先加载了policy给xfrm,为trap做准备。
      通过命令,我们在内核里可以查看到,类似如下的信息。
    [root@T9 sbin]# ip xfrm po
    src 10.9.0.0/16 dst 10.129.0.0/16 
            dir out priority 383615 ptype main 
            tmpl src 192.168.7.9 dst 192.168.7.129
                    proto esp spi 0xcbbb1290 reqid 1 mode tunnel
    src 10.129.0.0/16 dst 10.9.0.0/16 
            dir fwd priority 383615 ptype main 
            tmpl src 192.168.7.129 dst 192.168.7.9
                    proto esp reqid 1 mode tunnel
    src 10.129.0.0/16 dst 10.9.0.0/16 
            dir in priority 383615 ptype main 
            tmpl src 192.168.7.129 dst 192.168.7.9
                    proto esp reqid 1 mode tunnel
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket in priority 0 ptype main 
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket out priority 0 ptype main 
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket in priority 0 ptype main 
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket out priority 0 ptype main 
    src ::/0 dst ::/0 
            socket in priority 0 ptype main 
    src ::/0 dst ::/0 
            socket out priority 0 ptype main 
    src ::/0 dst ::/0 
            socket in priority 0 ptype main 
    src ::/0 dst ::/0 
            socket out priority 0 ptype main 
    1. 这个时候,作者在trap strongswan网关后面的子网里发了一个ping包给对方网络。
      可以观察到网络通了,是可以ping通的。然后通过ip xfrm命令也能查看到sa已经在kernel
      里边建立里起来。

    2. 用GBD启动charon进行,并重复上边的实验。
      我们能观察到,在发送第一个ping包之后,有如下现象:
      a。 xfrm发送了一条ACQUIRE event给strongswan。
      b。strongswan发送了一个NEWSA消息给xfrm。
      之后便建立了新的child sa。

    3.2 none实验

    很显然,该实验并没有什么好实验的。我们只观察一件事情,就是在load的config之后。xfrm里边的policy情况。
    如下:

    [root@T9 sbin]# ip xfrm po
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket in priority 0 ptype main 
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket out priority 0 ptype main 
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket in priority 0 ptype main 
    src 0.0.0.0/0 dst 0.0.0.0/0 
            socket out priority 0 ptype main 
    src ::/0 dst ::/0 
            socket in priority 0 ptype main 
    src ::/0 dst ::/0 
            socket out priority 0 ptype main 
    src ::/0 dst ::/0 
            socket in priority 0 ptype main 
    src ::/0 dst ::/0 
            socket out priority 0 ptype main 
    [root@T9 sbin]# 
    

    我们可以看到只有默认policy,而没有任何connection相关的policy。

    4 背景知识

    这里,需要额外补充一条背景知识。
    通过阅读netlink plugin与xfrm接口部分的源码。并没有任何与start_action相关的信息交互。
    主要的数据结构中,也都没有start_action这样一个概念存在。

    注:有关什么是netlink plugin,以及它在strongswan中的作用,以后补充。。。

    5. 机制分析

    通过第四小节中补充的知识,以及第三小节的实验。我们可以推断出。start_action这个事情是strongswan
    在控制层面上的概念。它通过使用预下发不同的policy和xfrm的acquire机制,共同实现了这一概念。

    5.1 什么是acquire

    acquire是xfrm通过API向上推送给应用程序的一种消息,它的类型是ACQUIRE。

    5.2 那么,什么时候发送acquire消息呢

    当xfrm收到一个包的时候,这个包命中了某条policy。这条policy却没有对应的child sa的时候。
    xfrm就会对所有注册进了xfrm netlink的应用程序广播这条消息。然后,你便看到了第三小节里的实验现象。
    strongswan收到这个消息后,主动下发一个新的sa给xfrm。

    6.

    完了。希望你已经懂了。

    展开全文
  • Erlang ERTS的Trap机制的设计及其用途

    千次阅读 2011-05-08 14:07:00
    erlang的trap机制在实现中用的很多,在费时的BIF操作中基本上都可以看到。它的实现需要erl vm的配合。它的作用基本上有3个: <br />1. 把费时操作分阶段做。由于erlang是个软实时系统,一个进程或者bif...

    erlang的trap机制在实现中用的很多,在费时的BIF操作中基本上都可以看到。它的实现需要erl vm的配合。它的作用基本上有3个:

    1. 把费时操作分阶段做。由于erlang是个软实时系统,一个进程或者bif不能无限制的占用cpu时间。所以erlang的每个进程执行的时候,最多只能执行一定数量的指令.这个是设计方面的目标。实现上也要配套。所以比如md5,list_member查找这种可能耗时的操作都是用trap机制来实现的,也就是说 当进程调度到的时候 执行一定数量的计算 然后把上下文trap起来 放弃执行 等待下一次的调度 来继续计算。

    2. 延迟执行,实现上层的决策。 明显的例子是 send操作。 send的时候 节点间可能未连接,所以这个send的操作不能继续,先trap, 然后在下一次的调度的时候 执行节点连接操作,一旦成功 send操作就继续往下执行。对客户来讲这个操作是透明的。他不知道你幕后的这些事情。

    3. 主动放弃CPU yield.

    erlang设计还是蛮细致的!

    PS:涉及到费时操作的BIF有:
    do_bif_utf8_to_list
    ets_delete_1
    spawn_3
    monitor_2
    spawn_link_3
    spawn_opt_1
    send_2
    crc32_1
    adler32_1
    md5_1
    send_3
    build_utf8_return
    build_list_return
    finalize_list_to_list
    do_bif_utf8_to_list
    ets_select_reverse
    ets_match_spec_run_r_3
    re_run_3
    re_exec_trap
    keyfind
    monitor_node_3.

    展开全文
  • erlang的trap机制在实现中用的很多,在费时的BIF操作中基本上都可以看到。它的实现需要erl vm的配合。它的作用基本上有3个: 1. 把费时操作分阶段做。由于erlang是个软实时系统,一个进程或者bif不能无限制的占用...

    erlang的trap机制在实现中用的很多,在费时的BIF操作中基本上都可以看到。它的实现需要erl vm的配合。它的作用基本上有3个:

    1. 把费时操作分阶段做。由于erlang是个软实时系统,一个进程或者bif不能无限制的占用cpu时间。所以erlang的每个进程执行的时候,最多只能执行一定数量的指令.这个是设计方面的目标。实现上也要配套。所以比如md5,list_member查找这种可能耗时的操作都是用trap机制来实现的,也就是说 当进程调度到的时候 执行一定数量的计算 然后把上下文trap起来 放弃执行 等待下一次的调度 来继续计算。

    2. 延迟执行,实现上层的决策。 明显的例子是 send操作。 send的时候 节点间可能未连接,所以这个send的操作不能继续,先trap, 然后在下一次的调度的时候 执行节点连接操作,一旦成功 send操作就继续往下执行。对客户来讲这个操作是透明的。他不知道你幕后的这些事情。

    3. 主动放弃CPU yield.

    erlang设计还是蛮细致的!

    PS:涉及到费时操作的BIF有:
    do_bif_utf8_to_list
    ets_delete_1
    spawn_3
    monitor_2
    spawn_link_3
    spawn_opt_1
    send_2
    crc32_1
    adler32_1
    md5_1
    send_3
    build_utf8_return
    build_list_return
    finalize_list_to_list
    do_bif_utf8_to_list
    ets_select_reverse
    ets_match_spec_run_r_3
    re_run_3
    re_exec_trap
    keyfind
    monitor_node_3.

    展开全文
  • AURIX397 TRAP 跟踪查看

    2020-04-14 20:00:53
    在Core Architecture文档的第6章Trap system中提到: Within each class,specific traps are distinguished by a Trap Identification Number (TIN) that is loaded by hardware into register D[15] before the ...
  • Trap gate) 其类型码为111,与中断门类似,其唯一的区别是,控制权通过 陷阱门 进入处理程序时维持IF标志位不变,也就是说,不关中断。 · 系统门(System gate) 这是Linux内核特别设置的,用来让...
  • snmp++ trap详解

    千次阅读 2013-12-16 19:54:08
    大家知道snmp有一种特殊的包,就是trap,是当agent向管理站发送的信息,一般包含着某项错误 在介绍包结构之前 先 说几个要点 1: snmpv2的trap与snmpv1的结构相比发生了变化,snmpv2的trap 类似getresponse的结构 2...
  • snmp trap日志

    2020-12-01 17:48:01
    日志类型有三种,file,syslog和snmp trap snmptrapd.conf 文件内容及参数 snmptrapd手册:http://www.net-snmp.org/docs/man/snmptrapd.conf.html,http://www.net-snmp.org/wiki/index.php/Snmptrapd 中文翻译...
  • SNMP-Trap之学习路线

    2017-11-21 13:59:00
    SNMP Trap 原理机制 生产案例 []() 浅谈 Linux 系统中的 SNMP Trap Zabbix的SNMPTrap监控配置 1.监控对象发送SNMPTrap信息到snmptrapd(Net-SNMP)服务器, 2.snmptrapd服务器将接收到的SNMPTrap信息发送给SNMPTT...
  • 本文是《在Tricore上移植μC/OS-III》系列文章的第一篇,先简单介绍下整个项目。Tricore是英飞凌旗下的一款单片机内核,目前汽车电子领域常用的TC2XX和TC3XX等系列的单片机都是基于Tricore内核,有双核有三核,还有1...
  • xv6 risc-v trap 笔记

    千次阅读 2020-09-22 13:31:36
    xv6中trap(即让cpu暂停执行当前代码,去执行相应的处理代码的情况)有三种: 系统调用 异常,如除以零 设备中断,例如完成了一次读写事件,当然也包括定时中断 发生trap时,一般的处理是: 控制转移到kernel ...
  • SNMPTRAP

    千次阅读 2019-04-24 18:55:57
    SNMP协议是用来管理设备的协议,目前SNMP已成为网络管理领域中事实上的工业...但由于告警信息一般是由受管服务器进行主动告警,这时候就不能通过管理方主动使用snmpget来进行,而是由受管服务器通过SNMPTRAP进行。...
  • SNMP协议是在服务器以及硬件管理中通常都会用到的管理协议,其好处在于使用起来简单,...SNMP TRAP是SNMP协议里面通常使用的通道(其他还有GET,SET),TRAP通常是使用UDP,且协议层没有消息确认机制的,所以如果你使
  • snmp trap配置

    万次阅读 2016-12-23 12:03:11
    TRAP是提供从代理进程到管理站的异步报告机制。 为了使管理站能够及时而又有效地对被管理设备进行监控,同时又不过分增加网络的通信负载,必须使用陷入(TRAP)制导的轮讯过程。代理进程负责在必要时 向管理站报告...
  • A SNMPv3 TRAP

    千次阅读 2018-05-14 07:20:32
    Then run snmptrap (in another window) to send a linkup trap: snmptrap -v 3 -n "" -a SHA -A mypassword -x AES -X mypassword -l authPriv -u traptest -e 0x8000000001020304 localhost 0 linkUp.0 You ...
  • SNMP TRAP实战

    2020-09-07 16:42:44
    一、什么是SNMPTRAP SNMP trap(SNMP 陷阱):某种入口,到达该入口会使SNMP被管设备主动通知SNMP管理器,而不是等待SNMP管理器的再次轮询。在网管系统中,被管理设备中的代理可以在任何时候向网络管理工作站报告错误...
  • 00. 目录 文章目录00. 目录01. 命令概述02. 命令格式03. 常用选项04. 其它说明05. 参考示例06....01. 命令概述 trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在...用法:trap [-lp] [[参数] 信号声明 .....
  • trap 基本介绍

    千次阅读 2016-12-23 07:30:53
    本文对trap做了简单的介绍,对网上搜到的知识点进行搬运,可能存在错误疏漏,后续会不断的补充修正。用途说明trap是一个shell内建命令,它用来在脚本中指定信号如何处理。比如,按Ctrl+C会使脚本终止执行,实际上...
  • 浅谈 Linux 系统中的 SNMP Trap 【转】

    千次阅读 2017-03-14 22:33:39
    文章来源:浅谈 Linux 系统中的 SNMP Trap 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧。 简单网络管理协议(Simple Network Management Protocol)是一种应用层协议,是...
  • TRAP程序和子程序

    千次阅读 2018-08-14 16:13:27
    LC-3 TRAP程序 由于像硬件I/O操作过于底层,如果直接让用户程序员去自己处理,有两个问题,1门槛过高,如程序要从键盘读取输入,则需要了解详细的硬件底层I/O操作。2如果赋予用户程序员硬件寄存器的读写权限,会...
  • trap命令是Shell内建命令,用于指定在接收到信号后将要采取的动作。常见的用途是在脚本程序被中断时完成清理工作。 2.命令格式 trap [-lp] [&amp;amp;amp;lt;arg&amp;amp;amp;gt; &amp;amp;amp;lt;...
  • 前端面试锦集

    千次阅读 多人点赞 2019-07-20 13:41:45
    前端面试锦集
  • Linux 系统中的 SNMP Trap及常用OID

    千次阅读 2018-04-16 11:23:25
    浅谈 Linux 系统中的 SNMP Trap转载:http://www.ibm.com/developerworks/cn/linux/l-cn-snmp/本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧。简单网络管理协议(Simple Network Management ...
  • Linux下trap信号的捕获

    2020-07-26 12:40:10
    trap是一个shell内建命令,它用来在脚本中指定信号如何处理。信号处理在shell编程中非常重要,一般我们会使用信号进行进程间的通信工作。 我们可以使用kill命令发送信号,然后使用trap命令捕获并处理信号。kill命令...
  • trap 端口号

    2018-01-18 11:33:00
    SNMPtrap使用的端口号为:162。 SNMP trap是由被管理的设备主动的向管理服务器发送设备的异常情况消息,可以看成是管理...用一句话来说的话,SNMPTrap就是被管理设备主动发送消息给NMS的一种机制。(此话最概况、...
  • LRLS按照一定的时间间隔,将TRAP中随时间不断增长日志链打断,生成多条子日志链,并在日志存储中保存每个数据块的最新快照,有效解决了TRAP机制对系统性能影响大、恢复时间长以及传统方案存储空间开销大等问题。...
  • 浅谈 Linux 系统中的 SNMP Trap

    千次阅读 2016-02-24 13:28:02
    本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧。 简单网络管理协议(Simple Network Management Protocol)是一种应用层协议,是TCP/IP协议族的一部分。它使网络设备之间能够方便地交换管理信息。...
  • 用一句话来说的话,SNMP Trap 就是被管理设备主动发送消息给 NMS 的一种机制。   二、SNMPTRAP功能特点 1、事件驱动,第一时间收到设备故障告警 以事件为驱动,由被监控的主机、网络设备、应用在发生...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,904
精华内容 5,161
关键字:

trap机制