在Ryu Controller中,对于选定的数据路径,如何从交换机获取OpenFlow规则?例如,对于以下规则:
cookie = 0x0,持续时间= 18575.528s,表= 0,n_packets = 1,n_bytes = 98, priority = 1,ip,in_port = 3,nw_dst = 10.0.0.1 actions = output:1
我想获得nw_dst和actions字段。
答案 0 :(得分: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
如果这对您有用,请告诉我