OVS 发送OFPT_PORT_STATUS 过程

根据openflow协议,当一个物理端口从ovs datapath 增加,修改或者删除的时候,都会通过ofp_port_status异步消息告知Controller,比如当我们执行 ovs-vsctl add-port br0 eth0 之类的命令后,就会更新ovsdb数据库,而后全局变量 reconfiguring
变为true,从而会重新配置这个ovs。

if (reconfiguring) {
		// cfg 条目可以追踪到ovsdb中某个配置发生改变
        if (cfg) {
            if (!reconf_txn) {
                reconf_txn = ovsdb_idl_txn_create(idl);
            }
	<span style="white-space:pre">	</span>// 重新配置每个cfg,核心入口
            if (bridge_reconfigure_continue(cfg)) {
                ovsrec_open_vswitch_set_cur_cfg(cfg, cfg->next_cfg);
            }
        } else {
            bridge_reconfigure_continue(&null_cfg);
        }
    }
时间: 2024-11-03 22:12:39

OVS 发送OFPT_PORT_STATUS 过程的相关文章

TCP带外数据学习总结(概念,发送接收过程,数据到达检测,代码实现)

最近在学习<Linux高性能服务器编程> 这本书,书中零零散散的讲了TCP带外数据的一些知识,在这里把这些知识总结以下,方便自己,也方便他人. 本文主要分为以下四个方面总结,分别为 TCP带外数据的概念,如何发送和接收带外数据,怎么检测带外数据的到达,最后介绍相关函数以及代码实现. 第一部分: TCP带外数据的概念 有很多传输层此协议都具有带外数据(OUT Of Band) 的概念,其作用是迅速通告通信的另一方本段发生的重要事件.带外数据具有比普通数据更高的优先级,理论上应该被立即发送和立即接

OVS 派OFPT_PORT_STATUS 流程

依据openflow合约[OFP1.0-38],当从物理端口ovs datapath 添加,改动或者删除的时候.都会先运行详细动作.然后通过ofp_port_status异步消息告知Controller,比方当我们运行 ovs-vsctl add-port br0 eth0 之类的命令后,就会更新ovsdb数据库.某一个轮询时全局变量 reconfiguring 变为true,从而会又一次配置这个ovs. if (reconfiguring) { // cfg 条目能够追踪到ovsdb中某个配置

webview 上 postUrl 发送参数过程中数据丢失或错误 的问题

用到了android 的 webview 来展示页面.webview需要用post来传递参数.于是问题出现了,后台解析中发现参数错误. 之前有因为String 和byte[]转行时,数据丢失的问题,于是一直再那方面入手,最后不行了,观察数据终于发现,数据中存在“+”号,到后台了,“+”号全部都不见了. 在网上搜了发现有这个问题的人很少,难道他们都做得比较好,早早就避过了这个问题了么? 由于数据是加密过的BASE64,会不时出现一些符合,如 webview.postUrl("www.testurl

[Akka]发送一条消息的内部流程

本想通过了解一下Akka-actor工程中主要的类的概念,来看下Akka内部运作的机制.无奈里边的类的确太多,注释中对每个类的功能也没有足够的解释.所以还是通过debug的方式,找个入手点,看一下互相之间调用的关系. 最初的选择是看一下ActorSystem的实始化过程,但发现难度挺大,因为这个初始化工作是为以后的行为做准备,所以仅根据初始化的动作,难以了解其目的是什么.所以就试着从消息发送的过程了解起,发现这个逻辑更好理解. 下面来看一下其执行过程吧.代码如下,使用默认的配置. object

UDT协议实现分析——数据发送控制

在前文中,我们有看到,数据发送的过程,大体是发送者CUDT将要发送的数据放进它的CSndBuffer m_pSndBuffer,并将它自己添加进它的CSndQueue m_pSndQueue的CSndUList m_pSndUList的堆里,后面CSndQueue m_pSndQueue的worker线程会通过CSndUList::pop()从CSndUList m_pSndUList的堆顶CUDT中获取一个要发送的包来发送,包的获取主要是通过CUDT::packData()来完成,而这个函数正

第四周作业 简单地邮件发送实现

先说发送邮箱用到的三大类: 创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件. 发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议. 接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议. 还有一个提供会话信息的类Session. 简单地邮件发送的过程: 相关的协议说明:见 smtp:

Windows下底层数据包发送实战

1.简介 所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP.UDP等包,这些传输层数据包已经能满足绝大部分需求,但是有些时候还是需要发送底层数据包的(例如SYN扫描),那么如何发送呢? 本文记录了我试图实现的过程中遇到的一些问题以及解决办法,需要注明:①本文只考虑Windows上的实现  ②本文主要目的是实现发送部分  ③本文假定读者理解网络分层结构和一些基本的网络编程方法  ④本文只是在讨论常规技术,切勿

第43课 发送自定义事件(上)

1. Qt中发送自定义事件 (1)阻塞型事件发送:事件发送后需要等待事件处理完成 (2)非阻塞型事件发送 ①事件发送后立即返回 ②事件被发送到事件队列中等待处理 2. QApplication类提供了支持事件发送的静态成员函数 (1)阻塞型发送函数 bool sendEvent(QObject* receiver, QEvent* event); (2)非阻塞型发送函数 void postEvent(QObject* receiver, QEvent* event); (3)注意事项 ①send

使用php发送电子邮件(phpmailer)

在项目开发过程中,经常会用到通过程序发送电子邮件,例如:注册用户通过邮件激活,通过邮件找回密码,发送报表等.这里介绍几种通过PHP发送电子邮件的 方式(1)通过mail()函数发送邮件(2)使用fsockopen方式连接smtp服务器发送(3)使用phpmailer邮件类发送.个人推荐使用 phpmailer邮件类发送,phpmailer比较方便使用且功能强大,接下来对这几种方式分别做一下介绍. (1)通过mail()函数发送邮件     PHP中的mail() 函数允许从脚本中直接发送电子邮件