首页 文章

OpenFlow 1.3,Python RYU,OFPMatch到所有非tcp数据包

提问于
浏览
1

我希望使用Python-RYU控制器为OpenFlow交换机创建匹配规则 . 规则应匹配任何非tcp数据包(ip协议6) .

据我所知,tcp连接的匹配规则是:

match = parser.OFPMatch(in_port = in_port,eth_dst = dst,ip_proto = 6)self.add_flow(datapath,1,match,actions)

我需要补充规则 . 谢谢

1 回答

  • 2

    您可以为TCP数据包创建具有更高优先级的规则,为所有数据包创建另一个具有较低优先级的规则这样,所有* TCP数据包都将匹配第一个规则,所有*非TCP数据包将匹配第二个规则 .

    (*)所有匹配 in_porteth_dst

    唯一的缺点是您需要知道如何处理TCP数据包 . 一个想法是将它们发送到控制器( ofproto.OFPP_CONTROLLER ) .

    tcp_match = parser.OFPMatch(in_port=in_port, eth_dst=dst, ip_proto=6)
    self.add_flow(datapath, 2, tcp_match, tcp_actions)
    nontcp_match = parser.OFPMatch(in_port=in_port, eth_dst=dst)
    self.add_flow(datapath, 1, nontcp_match, nontcp_actions)
    

    编辑:
    您似乎需要将 eth_type=0x0800 添加到匹配项中以使其正常工作 .

相关问题