在 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 和操作字段。
使用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
让我知道这是否适合您