思考停止するなスマートフォン用の表示で見る思考停止するなネットワークとかアプリケーションとかWebとかこの広告は、90日以上更新していないブログに表示しています。2016-03-10Tremaでフローエントリを取得する方法Tremaスポンサーリンク今日もTrema(OpenFlow)ネタです。今日はTremaでフローエントリを取得する方法について書いてみます。今日紹介する内容はTremaの仮想ネットワーク以外にも、実機スイッチでも使える方法です。OpenFlowでフローエントリの情報を取得するには、FlowStatsRequestメッセージを送り、スイッチからFlowStatsReplyメッセージを受け取ることで、フローエントリの情報を取得することができます。フローエントリの情報を取得できると、何が嬉しいかというと、フローエントリ毎のパケットの量やバイト数を取得できます。最新のフローエントリの情報を取得するには、FlowStatsRequestを定期的に送り、FlowStatsReplyをもらう必要があります。今回の使用環境はTrema0.4.7です。5上記はクラス定義の下に書いておいてください。Controller次に、@dpidにデータパスID(dpid)を入れる処理を書いてください。end次に、FlowStatsRequestメッセージを送信するメソッドを追加します。end次に、FlowStatsReplyメッセージを受信した時に呼び出されるメソッドを記述します。endまとめたコードはこんな感じです。endendただ、上記プログラムではパケットインした時の処理は書いていません。何かしらパケットインした時の処理を入れておくといいと思います。上記のプログラムに、パケットインの処理を入れて、実行した時の表示結果は以下のようになります。0]これは、表示結果の一部なのですが、このような表示がフローエントリの数だけ表示されます。見やすく表示するには、ループで回してそれぞれの項目を表示させたり、データベースに格納してあげたほうがいいと思います。今日は久しぶりにOpenFlowの話です。(1)注目記事サイト検索リンクはてなブログをはじめよう!shimonssさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。