OpenFlow中的指令和操作之间的区别

时间:2016-10-14 21:00:27

标签: sdn openflow

在OpenFlow协议中,我们有一个流表(或多个流表)。 switich中的每个流表包含一组流条目。每个流条目都包含标题字段,计数器和一组要应用的指令或操作。指令类似于“将此操作添加到操作集”(write-actions指令)或“清除操作集”(clear-actions指令),操作类似于“输出到端口X”({ {1}}操作)或“丢弃此数据包”(output操作)。但是如何工作?流入口,动作或指令到底是什么?或者两者都是?什么是行动集?有人会给我一些使用这些条款的例子吗?

1 个答案:

答案 0 :(得分:1)

“操作可以丢弃,修改,排队或转发数据包。在OpenFlow协议的1.0版本中,Action集合直接由FlowMod消息中的Actions列表修改;但是,在1.1.0和后续版本中协议,动作集由FlowMod中携带的指令结构修改。指令可以携带动作列表来更新动作集,或者立即应用于绕过动作集的数据包。“

REF。 (http://flowgrammable.org/sdn/openflow/actions/#ofp_1_4

换句话说,当数据包与特定的OpenFlow流匹配时,运行OpenFlow v1.0的交换机会对数据包应用一组操作。现在,使用新的OpenFlow版本,交换机不会应用一组操作,而是将流指令应用于匹配的数据包。

根据OpenFlow规范1.5.1(https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.5.1.pdf),与流条目关联的指令集包含每个类型最多一条指令,遵循以下顺序: Apply-Actions,Clear-Actions,Write-Actions,Write-Metadata,Stat-Trigger或Goto-Table。