选择的流经过所有的交换机
- 控制器实时构造rule graph
- 获取所有的ingress rule(入度为0的规则),并依长度降序排序
- 对每一个ingress rule \(r_0\): 若该path的节点未在节点集\(\mathbb{S}\)中:
- 将$r_0$所属的rule path所经过的节点加入$\mathbb{S}$中;
- 将 \(r_0\) 所属的rule path放到规则集$\mathbb{R}$中。
- 若节点集的节点数等于规则图中的节点数(这表明每一个交换机都有经过其的rule),则结束.
只针对交换机的流规则选择办法中,当攻击者对某个流进行恶意交付时,无法被检测。
选择的流经过所有的输出端口
- 控制器实时构造rule graph
- 针对每个交换机的输出端口,记为集合\(\mathbb{O}\).
- 计算每个rule path所经过的输出端口数。
- 每次选择经过$\mathbb{O}$中端口数最多的rule path \(r\),记$O(r)$为规则$r$所经过的输出端口
- \(\mathbb{O} = \mathbb{O} / \{O( r)\}\)
- \(\mathbb{R} = \mathbb{R} + \{r\}\)
- 若\(|\mathbb{O}| == 0\),则算法结束,返回\(\mathbb{R}\)