? Required: TABLE: 表示 openflow 流水线的开始。这个端口仅在输出行为的时候有效,
此时交换机提交报文给第一流表使数据包可以通过定期通过 OpenFlow 流水线处理。
? Required: IN PORT: 代表数据包进入端口。用于输出端口时,只允许入端口发送的数据
包通过。
? Required: ANY: 特别值,用在未指定端口的 OpenFlow 指令(端口通配符) 。不能使用的
入口端口,也不作为一个输出端口。
? Optional: LOCAL: 表示交换机的本地网络堆栈和管理堆栈。可以用作一个入口端口或作
为一个输出端口。本地端口使远程实体通过 OpenFlow 网络和交换机以及其网络服务互通,
而不是通过一个单独的控制网络进行互通。使用一组合适的默认流表项,本地端口可以用
来实现一个带内控制器的连接。
? Optional: NORMAL: 代表传统的非 OpenFlow 流水线(见 5.1 )。仅可用于为一个输出端
口,使用普通的流水线处理数据包。如果交换机不能转发数据包从 OpenFlow 流水线到普通
流水线,它必须表明它不支持这一行动。
? Optional: FLOOD: 表示使用普通流水线处理进行泛洪(见 5.1 )。可用于作为一个输出
端口,一般可以讲数据包发往所有标准端口,但不能发往入端口或 OFPPS_BLOCKED状态的
端口。交换机也可以通过数据包的 VLAN ID 选择哪些端口泛洪。
只有 OpenFlow-only 交换机不支持 NORMAL端口和 FLOOD端口,而 OpenFlow-hybrid 交换机
均支持上述端口(见 5.1 )。转发数据包到 FLOOD端口依赖交换机上的实现和配置,而使用
一组类型进行转发可以使控制器能够更灵活地实现泛洪(见 5.6.1 )。
5 OpenFlow 表
本节描述流表和组表的组件,以及与匹配和行动处理的技术。
5.1 流水线处理
OpenFlow 兼容的交换机有两种类型: OpenFlow-only 和 OpenFlow-hybrid 。 OpenFlow-
only 交换机只支持 OpenFlow 操作,在这些交换机中的所有数据包都由 OpenFlow 流水线处
理,否则不能被处理。
OpenFlow-hybrid 交换机支持 OpenFlow 的操作和普通的以太网交换操作,即传统的 L2 以
太网交换, VLAN隔离, L3 路由( IPv4 的路由, IPv6 路由),ACL和 QoS处理。这些交换机
提供一个交换机外的分类机制,使流量路由到 OpenFlow 流水线或普通流水线。例如,某个
交换机可以使用 VLAN标签或数据包的输入端口,来决定是否使用一个流水线或其他流水线,
或者它可指导所有数据包都到 OpenFlow 流水线进行处理。
这种分类机制是本规范的范围之外。 一个 OpenFlow-hybrid 交换机也允许数据包通过
NORMAL或者 FLOOD的保留端口从 OpenFlow 流水线到普通流水线处理(见 4.5 )。