2

Ryu Controller で、選択したデータパスについて、スイッチから 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 と actions フィールドを取得したい。

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 に答える