2

在 Ryu 控制器中,对于选定的数据路径,如何从交换机获取 OpenFlow 规则?例如,对于以下规则:

cookie=0x0,持续时间=18575.528s,表=0,n_packets=1,n_bytes=98,优先级=1,ip,in_port=3,nw_dst=10.0.0.1 动作=输出:1

我想获得 nw_dst 和操作字段。

4

1 回答 1

1

使用OFPTableStatsRequest对象。它将返回一个包含所有已安装流的列表。

请注意,还有一个OFPGroupStatsRequest对组执行相同的操作。

一个未经测试的示例,它依赖于实例变量datapath

import ryu.app.ofctl.api as api

def ofdpaTableStatsRequest(datapath):
    parser = datapath.ofproto_parser
    return parser.OFPTableStatsRequest(datapath)

def getFlows(self):
    """
    Obtain a list of Flows loaded on the switch
    `
    :return: A list of Flow Entires
    """
    msg = ofdpaTableStatsRequest(self.datapath)
    reply = api.send_msg(self.ryuapp, msg,
                         reply_cls=self.parser.OFPTableStatsReply,
                         reply_multi=True)
    // the flow entries you are looking for will be in the reply

让我知道这是否适合您

于 2016-12-01T18:47:42.083 回答