节省流表空间
组表的能力就可以存储多个动作,当匹配到一个合适的动作后可以执行多个动作,优化了流表一个匹配+一个动作的工作模式。
数据包复制
组表可以将进入的流量复制成多份,并对每一份单独处理。特定场合下如流量分析,可以一边将流量正常转发,一边将流量导入到某一个分析机中。
容错能力—备用端口和路径
组表有识别up端口和down端口的能力,可以在up的端口down掉之后将选择一个新的up端口转发流量。
负载分流
组表可以选择动作中的某一个动作执行,在负载的场景下就可以通过转发到不同的端口实现后端流量负载。
组表类型
all: 执行组表中所有的动作。这种类型通常被用在组播或者广播转发。数据包非常高效的复制给每一个桶。每一个数据都被组表中的动作桶执行。如果一个动作是直接将数据包转发到进入的端口,这个包的复制会被放弃。如果控制器中写入了转发到进端口的流表,组表必须包含一个转发动作为OFPT_IN_PORT的保留动作。
select: 执行组表中的一个动作桶。数据包被组表中一个单个的桶处理,具体是哪一个动作通取决于交换机的选择算法。所有关于选择算法的配置和状态都是独立于OpenFlow协议之外的。
indirect: 执行组表中的一个定义的动作桶。这种组表只支持一个动作桶。允许多个流表条目或者组表指向这个id,支持更快,更高校的聚合。这种组类型是所有组类型中最高效的方式。
fast failover: 执行第一个活动的桶。每个动作桶和特殊的端口或组表有关系,可以控制动作桶的存活。动作桶有序的定义在组表中,第一个和活动的端口有关系的桶会被选择。这种类型可以修改交换机的流表而不需要控制器下发流表。如果没有动作桶是活动的,数据包会被丢弃。