通过 OpenFlow 协议,控制器可以增删改交换机流表中的流表项。相应的,控制器增
删改流表项有两种模式:被动与主动。每个交换机中的流表都拥有一个流表项的集合。
而每个流表项都由 匹配域、计数器、指令集 组成,报文通过流表项进行匹配与执行。
报文从第一个流表开始匹配,并且也可能跳转到另一个流表。流表项按照优先级对报文
进行匹配,使用匹配到的第一个流表项(see 5.3)。如果报文匹配了一个流表项,那么报
文将会执行流表项中的指令集。如果报文没有在流表中匹配到流表项,那么此时会以一
个默认动作进行处理(这个动作由交换机配置决定),如:丢弃报文、对下一张流表进
行匹配、转发给控制器等等(see 5.4)。
与流表项关联的指令集包含了动作,或者会修改流水线处理流程。在指令中包含的
动作描述了报文如何转发,报文的修改和组表的处理。在指令集中没有指定跳转表
动作后,流水线停止,此时报文往往会被修改或者被转发。
流表项可能设定将报文转发到一个端口上,通常是一个物理口,但也可以是逻辑口
或保留口(4.1)。保留口可能指定一类转发动作,比如发给控制器,泛洪,用非 OF
方法转发,比如“normal”的交换机处理方式(译者注:传统的交换机 MAC-PORT
学习,4.5);交换机定义的逻辑口也可能指定了链路聚合组,隧道,或者环回等
接口。
与流表项关联的动作可以将报文定向到一个组上。组指定对报文进行额外处理
(5.6)。组代表了一个动作集,一般用于泛洪及更复杂的转发语义(如多路径,
快速重路由,链路聚合)。作为间接、通用的一层,组可以接受由多条流定向到同
一个组的做法(如 IP 转发到同样的下一跳)。可以快速的为不同流表项改变输出
动作也是这个抽象层的优点。
评论0
最新资源