OpenFlow在什么情况下会将数据包转发给控制器以供决策?

问题描述 投票:0回答:1

我刚刚阅读完OpenFlow规范here的1-6.2节。

第6.1.2节说:

Packet-in事件可以配置为缓冲数据包。对于由输出动作生成的数据包流条目或组存储桶,可以在输出操作本身中单独指定(请参见7.2.6.1),对于其他数据包输入,可以在交换机配置中配置(请参见7.3.2)。如果packet-in事件是配置为缓冲数据包,并且交换机具有足够的内存来缓冲它们,数据包进入事件仅包含一部分数据包头和一个缓冲区ID,控制器在使用该缓冲区ID时准备好交换机转发数据包。不支持内部缓冲的交换机是配置为不为入包事件缓冲数据包,或者内部缓冲已用尽,必须将完整的数据包作为事件的一部分发送给控制器。缓冲的数据包通常将通过来自控制器的Packet-out或Flow-mod消息,或在一段时间后自动过期

这听起来像每个到达OpenFlow交换机的数据包都必须将异步消息发送到控制器以做出转发决定。但是,第5章听起来像是交换机具有一组OpenFlow流,并在其末尾生成一个操作集,该操作集确定应对数据包执行的操作,并且仅在流表未命中时才将数据包转发给控制器。 。

在什么条件下将数据包发送到控制器以进行决策?总是这样吗?还是只是偶然的?

openflow
1个回答
0
投票

只要将out端口设置为控制器,数据包就会发送到OpenFlow控制器。

PACKET_IN事件在交换机上的流量不匹配时发生,然后将其发送到控制器。否则,将不会创建任何事件-交换机仅根据流规则转发数据包,而没有一个控制器更明智。

© www.soinside.com 2019 - 2024. All rights reserved.