ONOS中收到OF消息后,分发消息流程分析

本文深入分析ONOS在接收到OpenFlow消息后的处理流程,详细阐述了从South-OF Layer到App Layer的消息分发规则,包括OFPacketIn、OFFeaturesReply等各种消息的处理路径,以及不同层级如Provider Layer、Core Layer中的角色和工作方式,特别是对Packet-in消息的处理逻辑,揭示了优先级在决定处理顺序中的作用。
摘要由CSDN通过智能技术生成

首先介绍代码是如何走到消息处理的 APP ,然后分析分发消息的规则的代码的结构和语法。

代码如何走到消息处理的方法

dispatch message function

  • ① OFChannelHandler在Channel状态WAIT_DESCRIPTION_STAT_REPLY中调用Controller类的getOFSwitchInstance方法来获取交换机实例;
  • ② Controller类的getOFSwitchInstance方法,则调用DriverManager的静态方法getSwitch来获取不同厂家实现的交换机实例,获取的原则是基于OFDescStatsReply消息中的“厂家信息”和“硬件信息”。注意:在实例化交换机之后,将OpenFlowAgent实例赋给了该交换机,其中OpenFlowAgent实例的产生是在OpenFlowControllerImpl类的内部类OpenFlowSwitchAgent类实例化的,见⑤。
  • ③ 这里的driver意味着对接不同厂家的OF交换机,上图只是列出了少数几种OF交换机,例如:支持OF_13的OVS,OF_10的OVS和光的OF交换机
  • ④ 这里的OF交换机都继承了AbstractOpenFlowSwitch的handleMessage方法,而handleMessage方法调用了就是agent的processMessage方法,然后processMessage方法调用了processPacket方法,在processPacket方法中,就是处理消息分发的分发口
  • 分析分发消息的规则的代码的结构和语法

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值