使用Ryu向流表添加流条目

时间:2017-02-07 11:39:53

标签: python sdn ryu

我正在使用scapy工具生成proto=150流量。我想添加一个流表条目,以便交换机始终将此pkt发送到控制器。

我使用原型150的scapy生成IP流量:

S=IP(proto=150,dst='10.0.0.2',len=100)

我在ryu控制器中编辑simple_switch.py app。

我正在尝试使用Table Miss流条目在此应用程序的开头添加条目,但是当我检查流表时,我只能看到Table miss flow条目,但没有其他条目我想在这里添加。

我在做什么:

// This is proto 150 which i want always to be sent to controller

match = parser.OFPMatch(ip_proto=150)
actions = [parser.OFPActionOutput(ofproto.OFPP_CONTROLLER)]
self.add_flow(datapath, 2, match, actions)

//This is Table miss flow entry

match = parser.OFPMatch()
actions = [parser.OFPActionOutput(ofproto.OFPP_CONTROLLER,                                                 ofproto.OFPCML_NO_BUFFER)]
    self.add_flow(datapath, 0, match, actions)

我没有收到错误,我觉得Match(ip_proto=150)出了问题。 请帮助我如何将proto 150始终发送给控制器。

非常感谢。

我希望我很清楚,如果不清楚请告诉我。

1 个答案:

答案 0 :(得分:1)

您需要在流程中添加eth_type匹配。匹配Eth_type是在Openflow Spec中匹配ip_proto的先决条件。 (参见规范https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.3.1.pdf)第51页