从数据路径获取 OpenFlow 规则
Getting OpenFlow rules from a datapath
在Ryu Controller中,对于选定的数据路径,如何从交换机获取OpenFlow规则?例如,对于以下规则:
cookie=0x0, duration=18575.528s, table=0, n_packets=1, n_bytes=98,
priority=1,ip,in_port=3,nw_dst=10.0.0.1 actions=output:1
我想要获取 nw_dst 和操作字段。
使用 OFPTableStatsRequest 对象。它将 return 一个包含所有已安装流的列表。
请注意,还有一个 OFPGroupStatsRequest 对群组执行相同的操作。
一个依赖实例变量的未经测试的例子数据路径。
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
让我知道这是否适合你
在Ryu Controller中,对于选定的数据路径,如何从交换机获取OpenFlow规则?例如,对于以下规则:
cookie=0x0, duration=18575.528s, table=0, n_packets=1, n_bytes=98, priority=1,ip,in_port=3,nw_dst=10.0.0.1 actions=output:1
我想要获取 nw_dst 和操作字段。
使用 OFPTableStatsRequest 对象。它将 return 一个包含所有已安装流的列表。
请注意,还有一个 OFPGroupStatsRequest 对群组执行相同的操作。
一个依赖实例变量的未经测试的例子数据路径。
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
让我知道这是否适合你